哈喽,好久不见了各位亲们,由于兰亭君的“事务繁忙”与“不务正业”,公众号已经好久没有更新文章了。想起来去年真是很有趣的一年,如果是我的好友应该能知道本君干了一堆不靠谱的事儿。其中之一就是完结了曾经的一个愿望——用GH来研究一下古建数据化建模(严格来说不能叫参数化)。整个过程原本只预期三四个月就能完成,谁知一系列的变故让此项工作从2018年的5月份一直拖到今天。回顾一下,现在看似很简单的学习、研究与建模,的确花了不少的精力。兰亭君从完全的古建小白,一点一点啃专著,再手工按照专著图例建模,再到用GH将所有数据构建古建中的每一个零件,最后生成展示动画。在这一系列的工作中,兰亭君学到了很多有趣的知识,感受到一次次濒临崩溃与放弃的边缘,最终依然发现探索与学习才是人生最快乐的事情。
兰亭君在研究过程中分别对清式法式的硬山,悬山,歇山做了一定的学习研究,并通过手工建模仔细打磨每个零件的尺寸与细节,再到通过GH复原一个标准模型。所以在研究中产生的手工模型,及相关注释标注,都在后面的文章中放出来供大家参考学习。兰亭君从来不是个小气的人,所做的一切也只是希望能帮助到更多的感兴趣而觉得有难度有压力的同学们。
如果你刚好会GH,如果你刚好也对古建感兴趣,那么,最近的几篇文章希望能让你从中得到启发,从而更方便的入门并深入研究,那将会变成很有趣的事情。
时长6分钟,建议WiFi观看
本文将分为五个部分阐述对清式悬山建筑的参数化辅助建模工作。
01、选题,为什么是清式悬山建筑
中国“古建”的概念非常宽泛,既包括唐宋元明清的时间轴线,也有南北之分,更有很多独具地方特色的建筑类型,而本案借用 “清式” “小式” “悬山” 建筑有如下几个考量因素:
第一,虽然清式建筑在体量和造型上是公认的最“丑”形式,但既是坏处也是好处。导致“丑”的原因之一,正是原本起到力学作用的斗拱的作用被极大地受到了压制,从受力构件转化成偏装饰构件。这对我们初学者其实是个很好的福音,我们可以跳出复杂的斗拱结构,直接考量木结构最简单本初的形式,从而对其进行研究。当然在网上也能找到专门对斗拱进行参数化研究的文章案例,本案不涉及此方面,不过也许会形成研究范围的互补。
第二,这次学习研究是循序渐进的过程,一开始完全不会的状态下只能从最基本的“硬山”建筑开始,从每一个构件开始入手建模,研究构件之间的榫卯搭接关系,我在建模过程中标注了尽可能详细的资料,供自己今后查询,也希望可以帮助到更多的人快速了解简单古建结构的做法。
而悬山建筑,相对来说最为普遍(除住宅硬山外),是最具代表性的建筑类型,通过GH数据化建模研究,比较容易正规化,标准化。
第三,等研究到歇山建筑之后,所谓的标准化概念就越来越弱,这是在循序渐进中能体会到的。硬山再怎么变化也只是柱网和廊的变化,悬山的标准形态为前后左右对称,其变化多出于开间和梁檩的数据不同。而到了歇山、亭廊类建筑就因地制宜、因情况而异了。
本案悬山柱网分布
在柱网相同情况下,悬山整体的屋架结构也不会产生太过复杂的变动。
图片出处《中国古建木作营造技术》
但相比之下,歇山即使是所有情况都一致,“踩步金”也会有好几种做法,从而导致顺梁和趴梁的区别都令人非常头疼。
图片出处《中国古建木作营造技术》
从这一点看,悬山也是最容易进行参数化辅助建模(或者将来是BIM)的研究对象。而且梁檩、步架、举架这些数据就自然而然成为初始参数代入进行数据运算。从这个角度来说,本篇的价值可能远高于后面关于歇山的一篇(这里简单预告一下),因为歇山仅仅是为了建模,而悬山可以用来方便地研究参数算法关系。毕竟悬山的檩数、步长可以从初始进行修改,但歇山就非常困难,修改内部结构无异于重新建模一遍。虽然无奈,但的确也是古代建筑体现工匠灵活性设计的亮点,也许只有到了AI阶段才能让电脑自主生成吧。
02、研究,学习中的重点难点及对策
本次的学习阶段主要借鉴了马炳坚《中国古建筑木作营造技术》、梁思成《清式营造则例》、刘大可《中国古建筑瓦石营法》三本书,基本是对法式标准建筑的复原建模及研究。
而参数化的思维逻辑其实早在梁先生的书中就有所体现,也正是他第一个通过西方建筑学方式研究中国古建筑,所以在此也表达对梁先生的敬意。不做不知道,只有静下心来学习了,才能明白其中的重要性与开创性。马炳坚的《中国古建筑木作营造技术》是本次的主要学习“教材”,而本次研究的重点正是古建筑木构部分,少量涉及瓦石营造技术,所以台阶、墙体、基础等内容虽然也有建模,但没有严格按照施工做法操作。至于木作部分,也有妥协的内容,将在下文一一阐述。
第一,本次研究重点为古建中的木作结构部分,原因即参数化、数据化的建模能较为准确地描述木构部分。常言道:古建的设计只要知道平面柱网图和剖面图就可以进行施工,这是有一定道理的。但研究并不能完美阐述瓦石作的内容,如屋顶望板、泥背、铺瓦的工作有很大程度是工匠“见机行事”,其实甚至像歇山的“標大连檐”工作也没办法用几何学参数进行描述,所以本次研究中尽量较少地涉及这类不确定、交给自然与人为的做法工作,而将重点放在确定的、可以把控的数据部分。
第二,本次建模的难点是所有构件的细节还原。虽然已经近乎标准,依然还是有很多并不能准确描述的部分。主要体现在:1、所有构件的榫卯衔接已经最大化地做到还原法式内容,包括最常见的燕尾榫、透隼、半隼、馒头榫等都按照一定的要求做到严丝合缝,收分也真实的还原了书上的内容。
檐柱、檐枋、檐垫板、檐檩及抱头梁之间的衔接关系
2、在手工建模还原阶段,所有构件的滚楞(倒角)都严格地做了出来。但在GH建模阶段,由于此项并不是对木构结构产生决定性改变的因素,而且通过GH建立滚楞倒角操作成本过高,从而简化了此项步骤,所以在手工建模版本中可以看见模型被“精心”地“打磨”了,而GH模型却是有棱有角。
手工模型(左)与GH模型(右)
3、所有的檐柱收分并没有表达,这点也是咨询了专门学古建的老师同学,有些细节在建模的过程中是可以省略的,例如柱脚收分,再如屋顶瓦作等内容,都是工匠根据图纸及模型,参照工作经验进行“自主创作”的,所以也不必精细到一分一毫。不过将来BIM的趋势也许可以越来越完善模型的细节与信息。
4、最后GH建模过程中貌似还少了一项檩构件底皮的“金盘”,也是由于建模附加成本较高的原因吧,在计算零碎数字,让檩与垫板贴合的时候总是遇到各种麻烦,所以直接简化了此步骤,在此特加说明。
手工模型(左)与GH模型(右)
第三、本次GH建模并没有最终打包为Cluster电池包的形式,原因大多为很多数据间的共享与引用都超出了打包电池输入输出端的意义,会显得非常多余,除非调用脚本直接get后台数据,否则就会大量接入接出例如柱径D、收分0.8、对称平面这类的中间过渡数值。所以考量之后,并没有将所有电池打包,也没有对数据运算做进一步的优化,而是进行一定的整理之后直接排列在顶层画布上,只是把关键数值与数据提炼出来放在了开头,并将最终的模型Display也整理在最方便的位置处。很多电池组看似复杂,其实只是处理琐碎的图形内容,也不用被如此庞大的电池数量所惊倒,很多都是重复的操作。有问题有需求直接找准位置进行修改即可。
所有构件数据输入端整理
03、思考,对参数化辅助建模的探讨
参数化辅助建模普遍意义上来说是针对后现代非线性建造类型的设计建模过程,尤其GH主要是方便了在大批量简单规律指导下所呈现的宏观复杂形体建模。但是像古建这类原本是属于古代,与后现代完全没有关系的建筑类型,是否可以通过GH这类数据编辑插件直接生成模型结果的问题却讨论的并不多。这可能是大多数人观念上的一个定式。但其实仔细思考就能发现,古建虽然样式繁多,但万变不离其宗。它的本质受力结构是比我们想象的简单,也当然比如今的非线性建筑要简单很多倍。所以古人才会仅通过平面图和剖面图两个信息来源就可以得心应手地完成整个古建的建造。从这点来说古建木构是更容易也更应该作为参数化辅助建模的对象来进行讨论。接下来列举简单几例来阐述古建“模数”对整个建筑的影响。
1、柱径“D"的作用:柱径和斗口宽度是古建的两个基本模数。大式建筑带斗拱的,其所有构件的尺寸都是斗口的整数倍,同样,在小式建筑里,檐柱柱径D就是参数的基本数据。在本案中,我就只将柱径作为最重要的一个起始因素来使用,其他的尺寸起始都是D的倍数,所以可以明显发现在其他输入端,都是类似于“***宽度 D”这样命名的。
一级数据其实只是简单的几个输入端
2、面宽、步架、举高的倍数关系:这三个数据基本上算是古建的第二级重要内容,只要确定柱径及步架、举高三个参数就能基本上把建筑的规模确定好了。再所有的次一级数据例如檐柱高(11D)、明间面宽(檐柱高*10/8)、梢间面宽(明间面宽*8/10)等都可以一步全都推导出来。进一步可以推导出所有构件的长宽高,因为步架与举架固定以后,所有檩的位置其实已经完全确定,再在此基础上定出各个“三件套”(檩、垫板、枋)的详细数据,剩下的构件继续反推就能全都确定尺寸。再细的数据就和整体结构关系不大了,构件本身的细节数据,如榫卯长宽之类,都是附加在构件上的构件,但其尺寸依然是D的倍数。
通过初始参数进行全模调整
3、相比之下悬山是最有意思,也是最容易做参数化辅助建模的建筑类型。除去墙体部分,其实悬山的木构是左右、前后对称的形式,所以在数据控制上也显得简洁漂亮。在建模过程中其实只要建出四分之一的模型就可以,这样大大的减少的工作量和电池数量。当然歇山等建筑也是如此,但内部构件不如悬山简洁。不过有利也有弊,本案在建模过程中遇到过几个矛盾的地方:当我们希望是对称的时候,构件的排序是类似1243或者1342这样的顺序,但有时候又是希望是完全从左到右的1234的顺序。在处理构件index时就会经常性地转化排列关系,而这样的顺序矛盾在我看来是整个建模逻辑中最令人难受,也是最无奈的一个操作。
黑色为手工建模顺序,为一般从左到右顺序
红色为GH建模顺序,由于对称轴呈现颠倒的顺序
4、在构建细节方面,有些图形的绘制会显得逻辑很冗长,这个可能也是毛病之一,不得不承认,如在处理枋类构件的时候,为了在端头有撞一回二(撞肩回肩)的效果,就会造成非常多的电池参与计算,最终达到预计效果。所以在所有构件的“滚楞”操作上,就只能艰难舍弃了。一方面,似乎滚楞对结构几乎无影响,是一个美化操作,另一方面,我也看到很多古建模型的研究和表现上省略了这一步骤,所以应该不算是大的bug。所以就此提及一下,作为后续研究者的参照。
为了绘制”撞一回二“而出现的冗长电池组
04、呈现,动画制作的相关内容
动画部分其实没什么好说的,一以贯之地采用Rhino+Grasshopper直接出图的标准操作。此次多亏Rhino6新的显示模式,让动画的效果有了显著的提升,可以做到所见即所得的表达能力,这里为Rhino原厂打call,支持Rhino,支持正版与原创。
对于动画的呈现,个人觉得赶制出来还不够理想,也只是为了建模结果更具有可读性和观赏性。全部的动画都是通过GH中number slider来解决的,这一点在Rhino6中的表现非常舒服,基本上全程AO图效果动画,构件之间的区分度非常好,能让人通过画面直接了解构建形态及搭接关系。在此不在多说,视频中也有所表现动画制作过程。
05、总结,希望有点利用价值
总体整理完GH电池之后,我的感觉就是简洁,明了。可能不熟悉古建的人在看到最简单的建筑形式(五檩三开间)都会觉得古建是非常复杂,难以理解的“怪物”,不如现代建筑砖混柱梁简单浇筑搭接。但经过这样的一个研究流程下来,就会发现古建木构营造并不是那么难,而且可以简洁到用GH很方便地复制,并参照一下模数就能全面复盘。而古建真正最有趣的地方就是简单形体的复杂组合变换。所以单个形体易做,组合型体就很难完成参数化辅助建模的工作了,可能在不久的将来AI是完全能胜任这样的工作的,只是目前的开发成本不允许研究到这方面而已。
最后,特别感谢过程中帮助过我的同志们,尤其是我的同事兼学姐滕工,在她专业的古建帮助下我才非常容易地上手以及了解古建学习的各种关键问题。也希望我的工作能继续帮助更多的同学们。整个过程的研究内容都会在下面的文章中放出来供大家参阅,包括 硬山建筑的手工模型及标注,悬山建筑的手工模型及标注以及悬山的GH文件等。希望对大家有所帮助。
百度链接:https://pan.baidu.com/s/1K1poo-54jnWrwTJCPGIDiQ
提取码:hawa
6666~能分享电池图吗?
不知道形容的时候只能用一句卧槽来形容了
回复MOON: 学长!
6666我们学古建的应该学习
强强强
师父,请收下徒儿吧。。。。
6666我们学古建的应该学习
66666666
强