首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

参数化建筑设计初探

转瞬间,2017年就这样过去了,在感叹时间过得太快之余也有一种时空转折的释然——这一年的纷乱和焦虑也许并不是我一个人的体会,好在新的一年开始了,而且能赶在2017年结束之前终于实现了对参数化建筑设计的一次“初探”,作为一个“吃技术饭”的人在这方面也算画上了一个比较好的句号。

尽管近两年无论是从商业推广还是行政施压,工程建设领域都把所谓“BIM”技术吹得“热火朝天”,但其真正全面应用的价值在我看来还有待商榷,早在2011年,我就尝试过一个项目上建筑专业从方案报批到施工图设计全部运用这项所谓新技术,但从我个人体会来讲并不怎么理想,有个人能力和见识的原因,更多我想应该还是技术和市场本身的成熟度的问题。后来软件技术也不断发展,中间也间断性尝试过一些项目,但总体感觉依然没有达到较理想的结果。

任何一项被称作好的技术,对于实用者来说,你解决了什么问题,带来了什么与劳动付出相匹配的价值才是最核心的问题,市场也服从于这个基本原则,因此一项好的技术是无需行政推动的,技术领域会追逐创新而传播,市场也会逐利而选择。

言归正传,对于“参数化”这种节点式编程设计方法我也算是窥视已久,只因此感觉其过于复杂,而且身边没有什么现实案例而一直没有什么进展,特别是网上看到的大都是一些非常规建筑的体型和表皮案例,多属于一些概念性较强高大上建筑,跟着做个体型表皮什么得倒还好,要是换成自己日常接触到的建筑就不知道从哪里入手了。正好前几天学校一个老师咨询要建一个类厂房形式的实验室,大体尺寸是100米×100米,8米高,于是我就决定以这个为题把参数化建筑设计对于常规建筑来作一个探索,因为这类建筑比较规整,比较适合作为“初探”的研究对象。

参数化设计和一般感性主导的设计方法最大的区别就在于其一切过程和结果都基于一系列的算法逻辑,就像解数学题,必须一步一步推下去,最终才能建立一个可参数化驱动的逻辑体系。在正式开始之前,先要根据建筑本身的特点和条件分析预设一些基础数据。

根据分析,开间方向暂定为7.5米×13跨,进深方向暂定为7.0米×(3×5)跨,基本满足大体尺寸,致于最终的柱网柱距,可以后面再来调整,这也正是参数化设计的魅力所在。这里要解释一下为什么进深方向的柱跨为什么是(3×5),因为按照大空间的要求,综合考虑经济性,计划按照三小跨一个屋面跨度的尺寸来把握,每个屋面跨度控制在24米以内。

接下来就要建立一个结构网架系统,这也是整个建筑的核心驱动,理清点、线的位置关系和数据结构是参数化设计的关键。通过对外框轴线矩形的开间和进深两个方向的线分别提取并按设定的尺寸或份数分割,从而获得相应的轴点轴线。

根据建筑内部柱和外部柱的不同特点要求,对点数据分别提取,并创建出相应的柱。设计时一定要注意把握好不同位置柱子的特点,对相应数据进行合理分割组合,如外部柱的偏心与墙体厚度关系,内部柱高度与牛腿设计的关系都要按数学方法理清,从而实现参数化的联动。

我们可以通过对数据的逻辑判断实现柱网布局,排除不用柱子的轴线交点。在对柱子、牛腿、天沟等构件要根据所处的位置不同可能存在的不同形式按照一个合理可延伸的逻辑进行节点程序的编写。

接下来再根据跨度、坡度以及天沟对跨度净距的影响进行屋面钢梁的程序编写:通过两天沟之间的距离线长度和屋面坡度求得钢梁脊高度点,与之前距离线两端的点构成梁的结构控制线,偏移出梁的高度,挤出截面厚度,得到如下效果。

在利用节点式编程方式进行设计时,一定要注意“逻辑关系”是核心,“数据结构”是根本。不要用传统“堆砌式“建模的思维方式思考问题。如下图中,各建筑构件之间是通过一种逻辑关系进行联动的,它与我们如CAD、Revit等软件中锁定式的参数化是不同的,节点式编程的参数化设计更像是做数学题,你不能直接“知道”答案,必须一步一步“计算”出最终的结果。

梁建好后,再根据梁的长度和檩条的间距关系创建檩条,在具体的设计过程中大的逻辑大致都相同,具体操作上会千差万别。由于笔者考虑梁端头和梁脊与檩条的关系并不完全一样,因此本案在探索过程中根据梁上平线按距离等分的方式定义檩条位置和数量。在操作的过程中可能因为线的数据方向一致的缘故,梁脊两边的檩条在端头顺向等距:即一边从天沟边开始时到另一边就从屋脊开始,没有达到预想的效果,就采取了先将各跨檩条参照线(单独路径)分开进行单独的方向控制后再合并控制,就达到了如图所示的效果。

这次的目的并不是为了设计一个建筑,而是为了探索参数化设计在这类建筑的实际操作中运用方面的问题,至此,目的已基本实现,在现有的利用程序编写的建筑主要构件能实现参数化控制的话,完整的屋面、墙以及窗就都不是问题了,而且有了这些东西也不利于观察参数化控制下的建筑内部构造细节的变化,接下来就是检验程序的“逻辑”是否严密的时候了。

通过上面的动画我们发现,当建筑的大跨数超过5时屋面出现了错误,经过分析发现原因是由于创建檩条时采用的数据分组方式有一定的局限性,只有在设定的范围内才能正确计算,如果不解决这个问题,显然就失去了参数化的意义。

最后通过分析数据结构,改写了檩条参照线分类控制的程序,经测试正常。

同时,对于柱间距、柱跨、屋面坡度等我们都能随意调整,程序会根据定义的条件“计算”出相应的结果。同时,在具体项目中,如建筑面积、容积率等综合指标都可以根据调整实时得出对应的结果。

下面来总结一下本案的基本创建逻辑:

第一步,定义一个基础网架结构轮廓,将其中一组对应线进行等分,利用等分点获得一个方向的定位轴线,再将轴线等分并利用等分点获得另一个方向的定位轴线。

第二步,利用数据循环分别保留和排除轴交点,利用保留的点创建柱子,同时柱子要注意不同位置的要通过数据分组控制,以及内柱和边柱上端牛腿的不同形式。

第三步,通过之前数据循环保留的线创建天沟,同时注意内部天沟和外部靠墙天沟的不同。

第四步,在各天沟之间创建线段,通过坡度求出梁脊高度(由于两边的一跨受天沟宽度影响与中间天沟的不同,因此其净跨度不同,计算出的梁脊高度也应有相应的差别),并利用这三点得出梁上平线,通过偏移和挤出得到梁架。

第五步,通过梁上平线定距等分得出檩条控制点,并将该线偏移出檩条的高度,同时将檩条控制点垂直投影到该偏移线上,再通过两点连线得出檩条的定位线,生出截面并挤出檩条的相应长度。屋面板可用同样的思路,只是不用等分点操作……

作为“初探”,写到这里已经可以结束了,不过笔者通过之前业内前辈的反复告诫和自己的体会,不得不再次强调参数化设计时,合理的逻辑是核心,数据结构是根本,宁可花一两年时间领悟数据结构(对像笔者这种非理工科出身和非编程专业背景的人来说),也不要先只忙着试图学会更多“组件”功能,忙着跟“大神”们学做那些“牛逼”的建筑。也许你跟着学会建了很多,自己且设计不出一个,你希望实现的效果总是实现不了。历史的经验告诉我们,任何急功近利的行事方式都不能获得最好的结果,只有耐得住寂寞才能成就非凡的你(其实此话是在对自己说,哈哈!)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180105G01PPQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券