Dynamo-Python Prefabrication for BIM Assembly Rooms
-
摘要: 随着BIM技术在装配式机电设计中的应用,对BIM模型的建立、拆分、成组以及加工图的输出等显得越来越重要。本文基于Revit参数化编程软件,通过可视化编程方法,利用Dynamo及Python实现了自动拆分管道并快速制作出满足我国设计规范的图纸。与传统手动建模及出图方法相比,大大提高了设计效率及出图质量,具有推广和应用价值。Abstract: With the increasing application of BIM technology in prefabricated electromechanical design, the establishment, splitting, grouping of BIM models and the output of machining drawings are gradually important. Based on Revit parametric programming software and visual programming, this paper uses Dynamo and Python to realize automatic pipeline splitting and quickly produce drawings that meet design specifications. Compared with the traditional manual modeling and drawing method, it greatly improves the design efficiency and drawing quality, which has the value for popularization and application.
-
Keywords:
- BIM /
- Dynamo /
- Assembled /
- Prefabrication of Machine Rooms /
- Visual Programming /
- Python
-
引言
随着新型城镇化的不断推进,传统的建造方式已难以适应现代建筑业转型发展的需要,大力推广装配式建筑已成为国家战略。装配式机电是机电安装领域的一种新趋势,利用工厂化预制组件完成机电系统安装,能达到建筑产品节能目的,实现环保及绿色建造[1]。
Dynamo是一个开源可视化编程平台,运行时作为其他软件的插件,允许工程师可以使用不同的脚本语言(C#、JAVA、Python等)自定义脚本的逻辑行为。Dynamo作为Revit的辅助工具,有利于数据信息的分析,填补了处理Revit模型在可视化方法及管理数据信息方面的空缺,使BIM技术的应用更加完善[2]。
目前,适用于机电预制管道设计出图的通用参数化工具比较少,文中通过Dynamo可视化编程实现了相关节点的连接,建筑模型信息的调用、参数化族的建立和逻辑数据处理,得到了模型管道及管件的选取、成组及加工图输出等一系列自动处理方法,该方法在装配式机电管道设计中具有良好的应用价值。
1. 机电预制管道设计出图现状
常规的机电预制管道设计出图的方法是通过Revit软件,主要用于CAD二维图纸的翻模,其作用仅限于辅助设计和校核图纸,在施工阶段中没有真正发挥实际作用[3]。
Revit软件本身具有模型成组功能,如图 1所示。利用该按键功能,可达到在机电管道上建立模块或者部件的目的。操作简便:选择需要的模块,点击建立组件,随后可选择组件并产生视图。但机电管道设计中会涉及到几百根、几千根管道及其附件,如果每根管道都要手动拆分并成组,就会造成庞大的工作量[4]。
2. 解决思路
可视化编程方法的具体实施流程就是在软件中将建立的达到预制精度的Revit模型通过一定功能要求组合为预制管段,创建成部件(AssemblyInstance),创建部件视图(AssemblyView), 将部件视图拖放在创建好的图纸中,然后再进行详尽的标注工作。
参数化设计流程利用了Dynamo、Revit、Python三者之间的交互性,以Python编写代码为源数据贯穿Dynamo程序的各个环节, 实现相关节点的连接、建筑模型信息的调用以及参数化族的建立和逻辑数据处理。首先根据预制规则及运输与安装要求,选定机房内管道和管件进行拆分;再利用Dynamo节点所选择的管道和管件建立分组;最后利用Dynamo程序实现了部件的三维视图,明细表和平面详图的生成[5],如图 2所示。
3. 基于Dynamo的参数化设计思路
3.1 生成管路部件加工图方法
使用Python Script生成管路部件加工图方法如下:
(1)管线部件脚本接口
点同代码块一样,是可视化编程环境的脚本接口。在Python Script中编写Python的代码,即利用“Python Script选择多个图元”节点选取机房中的管道及管件[6]。如图 3所示。
在Revit的机电模型中被选择的管道及管件会高亮显示,如图 4所示。
(2)创建部件并输入其名称
使用“Python Script创建部件并修改名称”节点,将被选取的管道及管件组成预制构件,在Dynamo程序中把预制构件取名为“部件”[7],如图 5所示。
在“Code Black”输入第一组被拆分部件的名称即“01”,使用节点“Boolean”来提供“True”和“False”的选项,选择“True”即每次运行程序,Revit中的模型管道都会被重新选择,反之亦然。其结果在Revit的项目浏览器中生成部件视图列表,如图 6所示。
(3)临时隐藏部件
从隐藏图元到再创建新的部件,这一过程中需要用到逻辑判断及数学运算,通过“Python Script临时隐藏图元”节点编写的代码,避免已创建部件的构件影响下一步选择构件,将其在视图中临时隐藏,如图 7所示[8]。
利用Dynamo自带“Views”节点选择三维视图后,在Revit三维界面中生成临时隐藏图元,并通过Dynamo程序执行“选择图元→组成部件→隐藏图元→再次选择图元、组成部件”的过程。
(4)创建部件视口
组成部件之后,利用“Python Script创建部件视图”节点给部件创建视图窗口,此节点如图 8所示。
利用“Python Script创建部件视图”节点编写的代码“view1”“view2”“view3”,分别代表创建了三维正交、平面详图、明细表等三个视图窗口,如图 9所示。
(5)Dynamo获取公制图纸高度参数
由于在Revit的机械样板中没有自带公制图纸,因此就需要在族库中找到A0公制图纸手动载入到机械样板中。Revit中载入A0公制图纸之后,在Dynamo模型中的Family Types节点选择“A0公制”,并使用Element.GetParameterValueByName节点,读取公制图纸的高度参数,如图 10所示。
(6)自定义设置视图在公制图纸中的位置
在最后出图之前,还需要自定义设置三维正交、平面详图、明细表三个视图在公制图纸中的位置,如图 11所示。
在Code Block节点输入“100”表示三维正交图距离A0公制图纸的边框100mm;“250”表示三个视图之间相隔的距离为250mm;“a/2”表示三个视图放置在公制图纸高度的1/2处。
(7)将视图放置在图纸中
利用Element.SetPa-rameterByName节点,将获取的图例类型,替换为实际的族类型,再通过List.OfRepeateditem节点重复执行三次对部件参数的处理,最后将处理好的参数输入到“Python Script视口放入图纸”节点中生成三个视图并放入公制图纸中,如图 12所示[9]。
(8)Dynamo辅助生成部件加工图
部件加工图已经在Revit中生成,部件的三维视图、明细表及平面详图都完整清晰地展现了出来。由此可见,可以通过Dynamo程序一键生成管道及管件的视图,更加地证实了BIM技术和Dynamo可视化编程的结合为机电预制装配式提供了便利[10],图 13是完整的Dynamo程序,图 14是部件加工图。
3.2 参数化建模方式与手动出图的效率对比
手动生成三维正交图、平面详图和明细表,只能一个一个单独地生成,很难一次都生成在公制图纸中。通Dynamo的方式,可以瞬间完成管道及管件的视图,而且项目规模越大,Dynamo提升效率更加明显,如图 15所示。
4. 结论
借助Dynamo for Revit的可视化编程功能,从而实现管道快速出图的综合利用。与手动出图比较,参数化建模所生成的部件加工图,更能够反映Dynamo图形编程的益处,不但参数统计精确,也可以根据需要自定义部件加工图显示样式,排版等,有效解决设计出图繁琐和精度的问题,提高质量和效率。
通过构建基于Dynamo与Python的装配式参数化建模功能集成系统,可以快速实现装配式机电的相关功能,能够在现场快速拼装机房,提高安装效率,为预制的参数化建模提供了一种新的解决方案,并在促进机电装配的参数化设计方面发挥了作用。
-
[1] 刘傲东, 陈浩, 李林林. 装配式住宅在绿色建筑中的应用实例分析[J]. 智能建筑与智慧城市, 2022, (11): 135-137. https://www.cnki.com.cn/Article/CJFDTOTAL-GCYZ202211042.htm [2] 郝小杨. 基于Dynamo参数化BIM实际工程应用研究[D]. 导师: 张生; 李昊. 内蒙古农业大学, 2021. [3] 杜前洲, 蔡亚桥, 杨礼桢, 等. 基于BIM技术的管道阀门自动定位[J]. 土木建筑工程信息技术, 2021, 13(06): 59-64. DOI: 10.16670/j.cnki.cn11-5823/tu.2021.06.10 [4] 李德全. Dynamo for Revit在施工图设计中的应用—门窗表、门窗详图[J]. 土木建筑工程信息技术, 2021, 13(06): 51-58. DOI: 10.16670/j.cnki.cn11-5823/tu.2021.06.09 [5] 徐咏, 屈钰森, 舒波, 等. 可视化编程Dynamo在土木工程专业教学中的应用[J]. 四川建筑, 2021, 41(05): 271-272. https://www.cnki.com.cn/Article/CJFDTOTAL-SCJI202105094.htm [6] 孙杰贤. BIM普及与建筑行业转型升级[J]. 中国信息化, 2017, (02): 50-53. https://www.cnki.com.cn/Article/CJFDTOTAL-IGXN201702020.htm [7] 裴爱华, 谷呈朋, 黄慧超, 等. 基于Revit自适应构件和Dynamo城市轨道交通轨道BIM建模方法研究[J]. 铁道勘察, 2022, 48(02): 18-23. https://www.cnki.com.cn/Article/CJFDTOTAL-TLHC202202004.htm [8] 王宁, 闫飞, 李丽君, 等. Dynamo在水利工程BIM三维设计中的应用[J]. 人民长江, 2022, 53(02): 214-218. https://www.cnki.com.cn/Article/CJFDTOTAL-RIVE202202036.htm [9] 张胜超, 郭新贺, 鲍大鑫. 基于Dynamo的预制箱梁BIM模型参数化建模技术[J]. 土木建筑工程信息技术, 2021, 13(3): 107-111. DOI: 10.16670/j.cnki.cn11-5823/tu.2021.03.16 [10] 张柳柳. 基于Dynamo可视化编程的桥梁BIM模型参数化布设方法研究[D]. 浙江大学, 2021. -
期刊类型引用(2)
1. 赵虎. 基于BIM的住宅装配式装修部品模块设计. 黑龙江工业学院学报(综合版). 2024(09): 152-156 . 百度学术
2. 黄斌,刘晨,徐云凤,谢玄,刘畅. 基于Revit和Dynamo的排水管网快速建模技术研究. 人民长江. 2024(S2): 174-177+184 . 百度学术
其他类型引用(1)