python建筑案例_建筑衍生式设计——自动化办公室布局Dynamo程序详解

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-1 07:45   1026   0

衍生式设计是人与计算机之间的协作设计过程。在这个过程中,设计师定义设计参数,计算机运行出各种可能的设计方案。设计师制定可量化的评价目标,以评价每个方案在这些目标上的达成情况。计算机在迭代生成设计方案的过程中不断学习前序方案的经验,并吸收设计师的反馈,不断提高接下来生成方案的质量,这就是衍生式设计的原理。

44382e6af536f530fc73572352e6b5d2.gif

衍生式设计不是一蹴而就的,经过了多年的研究和开发,正式版的衍生式设计功能将在即将发布的Revit2021上和设计师们见面。

b23c546b680253fb38dd32252bc86c53.png

a9831ac25c239324ec63ab43668b160c.png

我们以一个办公室布局设计的例子来详细介绍衍生式设计的起承转合。该案例来源于Refinery Primer。

——| 初始Revit模型 |——

2449d5c75934402dd727cffd4bda6ca1.png

  • 办公区楼板

  • 走道楼板

  • 各办公区分割线

  • 墙体

———| 设计目标 |———

  • 自动生成一系列基于楼板和办公区边界线的布局方案。

  • 标准办公桌尺寸1400mm x 800mm,每排办公桌距离2200mm。

  • 每一个办公区内除布置办公桌外,还需设置公共设施区域(休息区,茶水区)。

———| 优化目标 |———

  • 筛选出一个方案,最大限度增加办公桌数量,同时保证尽可能大的公共设施区域面积。

——| Dynamo方案生成 |——

分别选择Revit项目中的楼板(图中高亮显示部分)和6条办公区分割线,并设置办公桌的长宽。

b3f15d610a9dd2dccb6b2c6da7926d2d.png

将Revit楼板转化为Dynamo可编辑的几何实体,使用分解功能获得楼板的各个表面。判定各个表面的中心点标高是否等于楼层标高,得到唯一的用于布置办公桌的楼板上表面。进一步获得其边界线。

2683612a3ca0d22f34427bd35ffd8f1f.png

获取6条办公区分割线的起点和终点。

6237f967cad130b4d99eb8e4ad1ec0c9.png

本项目中,楼板边界线共计12条。判定6个起点分别在哪一条楼板边界线上,并按照列表中起点的顺序,将找到的6条边界线按顺序形成列表。对于6个终点,也使用同样的方法找到对应的边界线列表。

ab6267c0e7c3e5aeb7c59d90bf0ed6e5.png

这里使用了一个Python节点,IN[0]输入起点列表,IN[3]输入起点偏移值列表(变量),输出偏移后且仍在楼板边界线上的起点。本例中通过区域边界线的微调,从而调整区域内的办公桌布局,而区域边界线是由起点和终点连接而成的。起点和终点偏移值不断变化,以此得到不同的办公室布局。

35d995bb8a6cc0b38c6e32d49b39ccae.png

如图所示。

8975fc99ae41bd6f115c99732ae24bec.png

将各条分割线沿楼板面法线方向拉伸,以此作为切分工具,将原楼板面拆分为7个办公区域。

ad536cada530348e43fc5eeea77c5cc4.png

使用节点AmenitySpace.Create,输入偏移量1000(即板边退距1米),区域宽度3000(即宽度3米),根据各办公区域形状生成公共设施区域。计算各个区域的面积,转换为Revit项目单位,并汇总求得总面积。

e5f3e937e879212184013c4abd4e27d2.png

使用节点DeskLayout.Create,在除去公共设施区域以外的办公区域上生成办公桌布局,并计算可布置的办公桌总数量。

0bfaf1c3524f328f10c99250c4fe74af.png

本步骤用到的两个节点来自于Refinery Toolkits,目前还未收录进已发布的Dynamo软件包库。可在公众号中留言,向我索取安装文件。

将公共设施区域总面积和办公桌总数量设为输出项。在前端输入量变化过程中,这两个输出值也将不断变化,最优化的办公室布局应是在保证办公桌数量最大化的情况下,仍保持较大的公共设施区域。衍生式设计的优势是可以探索尽可能多的布局方案,并找到同时满足这两个条件的最优解。

73783b56e78703139148d691b2f1ce14.png

——| Refinery衍生式设计 |——

启动Dynamo中的Generative Design功能,将该Dynamo程序导入其中,第一次运行,使用Randomize的衍生方法,设置随机生成数量为200,软件会自动生成出200个方案可能性。

1dd9a380a6f01df30a68b516cab5893b.png

从中找出“办公桌总数”和“公共设施区域面积”同时排名靠前的方案,如图中所示。这一步是为了分析排名靠前的方案所对应的输入值所属的数值区间。接下来使用这一区间再进行衍生优化。

6c9ddeb61a51d931692e9e5c685d70c8.png

改为使用Optimize的衍生方法,设置最大的“办公桌总数”和最大的“公共设施区域面积”为优化目标。根据Randomize运行的结果,可知有小部分方案能达到超过265张办公桌的布局。将“办公桌总数”限制为大于等于265。进行第二次衍生。

3a20fcac35d07c52e79d544ae547bb72.png

通过优化衍生,我们最终获得了4个最优方案,其中综合来说最好的办公室布局能容纳271张办公桌,同时保证了298.22平方米的公共设施区域。

最后,我们以这个方案为基准,使用Like This的衍生方法,寻找是否还存在其他的,和这个方案接近的布局。如图,筛选后,并未找到优于基准方案的结果,选择该方案作为我们最终的设计成果。(需注意,我们所设置的衍生次数会对结果产生影响,衍生次数越多,得到的结果越精确,这是一个逐渐逼近最优解的过程)

2e3c3f03d989056b699a3a029b8453f0.png

以最优方案的输入配置,运行Dynamo程序,创建最终的Revit模型。

edc9208908649eeccf1bf7c78538dbcc.png

9da317f1bed29c9b95d41deaf4db1e12.gif

衍生式设计的过程是不是颇有乐趣?赶紧试试看吧!

如果大家想尝试这个案例,欢迎在公众号留言,我会将此案例的原始Revit文件和Dynamo程序分享给大家。感谢阅读到最后!

fb736e755e4fb347a13b0ac70463344b.gif

转载请注明出处

点我关注,谢谢支持!

----------------------------------------------

下期预告

9e0f251f5341ab98d2c765cc6a8c42af.png

9dceeb2c7361ef26c2109230fb401f21.png

建筑衍生式设计——让你的户型动起来

Dynamo程序详解

~尽请期待~

END
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP