数字建筑设计与建造:DADA2015系列活动 数字建筑国际学术会议论文集
上QQ阅读APP看书,第一时间看更新

算法及数字建模技术在设计中的应用

李晓岸1,徐卫国2

1,2清华大学建筑学院

1lxa8964@126.com, 2xwg@mail.tsinghua.edu.cn


摘要:算法是一系列解决问题的指令集合,通过计算机编程及计算,指令集合可以进行数字建模、生成可视化图形,而这些图形即为建筑设计的雏形。本文通过案例阐述了算法及数字建模技术在建筑设计中的应用。文中案例涉及Circle Packing, Substrate, L-System, Voronoi等算法,以及用于生成村落路网、划分地块、建立景观乃至设计建筑单体,探讨了算法及数字建模技术在设计中应用的潜能。

关键词:算法;数字建模技术;建筑设计

算法(Algorithm)是一个古老的数学概念,在计算机诞生前就已存在了。算法是一系列解决问题的指令集合,算法中的指令描述的是一个计算,当其运行时能从一个初始状态和初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态 [1]。算法有很多种类,有的算法得到的结果是一系列几何图形,如计算几何算法,有的算法得到的结果是一系列数据,如检索算法、加密算法。将算法引入到设计中,是以计算机图形学为基础,利用计算机将输入的数据(如日照、声音参数等)或几何图形(如几条曲线、几个立方体等),通过可以生成可视化图形的算法规则,生成图形,作为建筑或城市的雏形。

利用算法进行设计时,应用计算机语言描述算法规则系统,生成计算机模型。计算机模型可通过不同方式建立,可以使用已有软件菜单命令,如Rhino软件里的放样操作;也可使用已有的参数化设计软件,如Digital Project、Grasshopper等建立形态参数模型;或利用已有软件的脚本语言来描述规则,如Maya里的MEL语言或Rhino里的Rhinoscript等;我们也可利用操作系统平台的语言,如C++, Python, C#, VB等编写程序,建立计算机模型 [2]

与传统的人工设计相比,算法设计利用计算机建立起了一套富有逻辑的规则系统,每一步生形的过程都是可见可控的,不再是人脑黑箱操作过程,特别是涉及数据、技术指标方面的设计,更体现出算法设计的优势。本文就以位于北京第二绿化隔离带内的孙河乡规划设计为例,探讨了算法及数字建模技术在建筑设计中的应用。

本项目基于北京孙河乡地区的地段调研、村民访谈等资料分析存在的问题,针对各个问题以及规划要求,以产业规划为基本出发点,文化旅游、手作慢村、艺术家作坊、家具拓展、泛养老产业等为具体研究方向,选择适应场地基本特征的算法,对功能分区、交通流线、人的活动、开放空间进行设计。

在设计中,可以通过算法设置全局参数(Global Parameters)如建设用地面积、交通用地面积等,采用合适的算法生成符合条件的多个方案,然后通过其他限制条件如道路最短、绿地面积最多等进行优选。文中涉及了采用Circle Packing, Cellular Automata, Substrate, L-System, Voronoi等算法,生成村落的路网、地块、景观乃至建筑单体,探讨算法设计如何在乡村景观规划中应用及其特点。

1.Circle Packing算法在集市规划建筑设计中的应用

Circle Packing(圆覆盖)是一种算法,它的规则是在给定的面上由大小不同或相同的圆填充,圆与圆之间没有重叠,且任何一个圆至少与旁边的一个圆相切 [3]

本设计选址在孙河乡上辛堡村南部一条东西向的街道旁,基于前期调研和孙河乡整体产业规划,通过研究传统的赶集行为及赶集空间的可能性,创造一个活动中心与集市并存的建筑群。在服务于本村人员的同时,也惠及外来游客,成为上辛堡村的一个商业文化景点。人们在集市中的行为一般是沿着一条线性的路径前进,从而能够逛到每个摊位。但有时会有一些特殊行为的摊位如海鲜竞拍等,会形成一个围合的区域。于是本设计中选择了Circle Packing算法,向心的圆形成围合的空间,相连的圆形边沿形成线性的流线。

本设计中Circle Packing算法是通过Rhino(犀牛)软件的可视化编程插件Grasshopper(草蜢)中的Kangaroo(袋鼠)插件实现的。Kangaroo用于模拟动态的力学过程,分散各处的圆在牵引力的作用下聚集在一起,彼此接触但不重叠。牵引力大小影响圆和圆之间排列的紧密程度;数量决定了形成多少个圆;初始吸引点可以设置多个,根据场地分析布置;圆的半径根据行为分析和空间需要设置。通过一系列实验,根据圆组成的流线形状、与周围地段的关系,筛选出较为适合的结果,在此基础上深化建筑设计和周围景观设计(见图1)。

图1 Circle Packing生形研究(图片来源:清华大学建筑学院贾园绘制)

建筑单体深化则是在Circle Packing生成的圆平面的基础上,将建筑分层,将屋顶平台连成一体,建筑内部流线保证有一条是可以走通每个摊位和活动室的。房间所需宽度也根据功能需要进行变化,让空间更加丰富。景观设计也是以算法生成的圆为雏形,设置不同类型的花池、水塘、广场等多种功能,在空间上进行下沉升起等变化,与建筑和周边环境相协调(见图2)。

图2 Circle Packing建筑与场地生形图解及结果(图片来源:清华大学建筑学院贾园绘制)

2.元胞自动机与Substrate算法在村庄规划设计中的应用

元胞自动机(Cellular Automata,简称CA),不是由严格定义的物理方程或函数确定,而是用一系列模型构造的规则构成。依据确定的局部规则作同步更新,大量元胞通过简单的相互作用而构成动态系统的演化 [4]

本设计将孙河乡相关地块规划为一个以手工制作、自然原生态为特色,旅游、房屋租赁、农产品及手工艺品产销、家具产销等多产业叠合的“手作慢村”。设计中以村落生成方式和人的活动特点的研究为出发点,采用元胞自动机和Substrate算法生成乡村景观规划。

元胞自动机生成的图案具有一定的随机性,同时具有规律性,并且可以通过调节参数进行控制。它的逻辑与居民选取定居点类似——当周围定居点过多,该地点过于拥挤时,这个地区不宜定居;当周围定居点过少,该地点缺乏同类,不够安全,同样不宜定居。以这个逻辑为出发点,设计出类似元胞自动机的规则生成村庄选点和建筑选点。通过Python语言编程模拟选点的动态过程,首先在村落范围内随机产生若干个居住点,给不同类型的居住点设置给定的存活率值,根据存活率生成下一代选点,直到循环100代后达到稳定为止。

生成村落的选点后,以这些点为基础在整个规划区域内采用Grasshopper(草蜢)的一个工具Substrate算法生成路网,并划分地块。Substrate算法可以在选定的范围内,根据一定的规则随机生成指定数量和方向的直线,通过调整角度控制直线的方向,并通过改变种子值生成不同的随机图形,它生成的过程与自然形成的村落有着很强的相似性,同时具有一定随机性。通过Grasshopper的一个循环运算工具Anemone,改变seed值,生成多个解,通过设定道路密度的约束条件,比如在村落中只能拥有一定数量的道路,不能太密也不能太疏,来进行优选。然后选择分支较多的直线作为主干路,其余的作为进入村落的支路和步行路(见图3,图4)。

图3 元胞自动机与Substrate生形研究(图片来源:清华大学建筑学院张晗悠、高菁辰绘制)

图4 Substrate场地生形图解及结果(图片来源:清华大学建筑学院张晗悠、高菁辰绘制)

3.L-System算法在村民中心规划设计中的应用

L-System(L系统)或被称为Lindenmayer system是一个相似重写系统,是1968年由匈牙利生物学家林登麦伊尔(Lindenmayer)提出的有关生长发展中的细胞交互作用的数学模型。它是一系列不同形式的正规语法规则,多被用于植物生长过程建模,但是也被用于模拟各种生物体的形态。L-System的自然递归规则导致自相似性,也因此使得分形一类形式可以很容易地使用L-System描述。植物模型和自然界的有机结构生成,非常相似并很容易被定义,因此通过增加递归的层数,可以缓慢生长并逐渐变得更复杂 [5]

L-System算法有多个类别,本例应用的是Koch curve(科赫曲线)的算法。该算法曲线由瑞典数学家Helge von Koch于1904年提出,由于这种曲线的片段很像雪花的结晶体,所以又叫做Snowflake Curve。大自然中可以看见许多类似于Koch curve的曲线,这些曲线都是由相互接合的线段所组成,它们的复杂性就像是大自然中的海岸线那般,在折叠中,还包含着更细腻的折叠 [6]

本设计利用的是Grasshopper的插件Rabbit中的L-System组件,主要用于生成道路网格划分地块。通过调整Axiom(公理)、Production rules(生成规则)和Iteration generation(迭代次数),生成不同形态的网状结构。公理和生成规则决定了分支的形态,迭代次数决定了分支的密度,地块的大小控制了分支的密度,从而决定了迭代次数(见图5)。

图5 L-System生形研究(图片来源:清华大学建筑学院康思迪绘制)

地段规划面积为14.4hm2,被原有的城市支路包围,地段内主要是景观和农田,局部设置村民中心和商业文化服务设施。地段内的车行道路为居住区级道路,宽10m,剩余的皆为步行道宽1.5m。地段内的道路系统、建筑轮廓、地块肌理皆由L-System算法生成。建筑的分布通过圆覆盖的方式生成,保证每个服务中心覆盖半径100m可以完全覆盖整个地段(见图6)。

图6 L-System建筑与场地生形结果(图片来源:清华大学建筑学院康思迪绘制)

4.Voronoi算法在社区规划设计中的应用

Voronoi(泰森多边形)是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成的。N个在平面上有区别的种子点(Seeds),按照最邻近原则划分平面,每个点与它的最近邻区域相关联。Delaunay三角形是由与相邻Voronoi多边形共享一条边的相关点连接而成的三角形。Delaunay三角形的外接圆圆心是与三角形相关的Voronoi多边形的一个顶点 [7]

本设计利用的是Grasshopper中的Voronoi和Delaunay Edges组件,主要用于生成居住社区的道路网格划分地块,以及住宅平面雏形。首先在用地边界内利用Circle Packing算法生成一系列不同半径的圆,大圆代表景观区域,小圆代表建筑区域,提取其中一部分圆心作为生成Voronoi多边形和Delaunay三角形的种子点。利用Delaunay Edges组件连接种子点,生成景观路。利用Voronoi组件生成Voronoi多边形后通过算法提取一定长度,以长度方向为东西方向的边生成建筑,使得建筑的主要朝向是南北向。建筑边端点的连线生成连廊,连廊下层架空可以通车避雨,上层连接相邻的建筑。因为每个种子点所在的多边形,被称为Voronoi晶胞(Voronoi Cells)内的任意一点到这个多边形内的种子点的距离都比到相邻多边形种子点的距离小,从而使得采用Voronoi算法生成的住宅到相邻的景观区域最便捷(见图7,图8)。

图7 Voronoi建筑与场地生形图解(图片来源:清华大学建筑学院张弛绘制)

图8 Voronoi建筑与场地生形结果(图片来源:清华大学建筑学院张弛绘制)

算法应用在设计中,需要根据规划要求、人的行为特点、周边环境、建筑功能等,选择适合并且受这些因素影响的算法,不是简单地利用算法生成一个形态。同时利用算法可以生成在统一规则系统下的多个随机解,之后再利用约束条件层层筛选出最优解,相比传统的设计方式更加理性且高效 [8]。除了本文中提到的四种算法外,还有像DLA, Branch, Electric Fields等算法可以应用于相应场地的设计中。

本文中的方案主要是算法应用于规划、景观和建筑雏形的设计中,算法还有更广阔的应用方面,包括城市设计、建筑单体设计、室内设计、工业产品设计、景观设计等,对于建筑单体设计还包括建筑的表皮设计、节点设计、性能模拟优化等。利用算法结合交通流量分析、可达性分析、经济指标分析、建筑性能分析等结合,这样更能凸显出算法设计的优势,同时能让设计更具可行性和说服力。

参考文献

[1] 百度百科:算法[EB/OL]. http://baike.baidu.com/view/7420.htm.

[2] 徐卫国.参数化设计与算法生形[J].世界建筑,2011(06): 110.

[3] ROBERT W. The Geometrical Foundation of Natural Structure: A Source Book of Design[M]. Dover Publications, 1979: 35-39.

[4] STEPHEN W. Statistical Mechanics of Cellular Automata[J]. Reviews of Modern Physics, 1983, 55(3):601-644.

[5] PRUSINKIEWICZ P, HANAN J, MĚCH R. An L-System-Based Plant Modeling Language[M]. Applications of Graph Transformations with Industrial Relevance. Berlin Heidelberg: Springer, 2000:395.

[6] ZHU Z W, BAO G J. On the Lower Bound of the Hausdorff Measure of the Koch Curve[J]. Acta Mathematica Sinica, 2003, 19(4): 715-728.

[7] AURENHAMMER F, KLEIN R & LEE D T.Voronoi Diagrams and Delaunay Triangulations[M]. World Scientific, 2013: 337.

[8] 徐卫国.非线性体:表达复杂性[J].世界建筑,2016(12):119.