浅析某机场屋面钢结构深化BIM模型的参数化设计
奚春林
【摘要】某国际机场屋顶钢结构网壳基于曲面布置弧形构件,所有构件的板厚、螺栓选择、配筋的类型等根据自身或者周边进行计算后,选取不同的类型及规格。因此深化难度大、定位困难,传统手动建模效率低、出错率高。本文介绍一种通过Rhino软件进行曲面、控制线建立,通过开发自定义Grasshopper组件与Tekla Structures进行参数化交互式BIM建模的一种程序设计思路,从而达到简化BIM建模流程、提高建模效率。
【关键词】钢结构深化设计;BIM;Rhino;Grasshopper;Tekla Structures;参数化设计;交互式建模
1.屋面钢结构深化概况
某国际机场采用三角形状设计,屋面覆盖面积约30万平方米,屋面结构有40跨弧形单元,每跨中包含4~5个网壳单元,每个单元中包含136~510个网壳盒子组成。网壳盒子采用钢板组合1.5~4.5米大小的盒子,盒子底部浇筑160mm的混凝土,盒子之间采用螺栓连接后组成结构体系,钢板盒子总数达到40000多个。由于组成盒子的底部需要按照建筑造型切割为弧形,造型又為双曲渐变,因此每个构件相似但又不相同。盒子的板厚由垂直方向的长度进行控制,连接螺栓数量按照连续跨设计(连接板左右二个单元的跨度尺寸进行控制),盒子底部设置混凝土配筋体系,同时单元中间部分盒子又开有天窗孔洞。参照国际惯例设计图纸仅提供了控制点坐标以及节点的计算原则,需要按照控制点位及计算原则搭设LOD400精度等级的BIM深化加工模型进行生产、安装。
2.本工程屋面钢结构深化BIM模型的实施思路
2.1 深化模型软件分析
在钢结构深化设计阶段BIM搭建使用最为广泛的软件为Tekla Structures软件,该软件能够在材料或结构十分复杂的情况下,实现准确细致、极易施工的三维模型建模和管理。对深化加工图纸、加工数据及CNC加工衔接度高。在搭建模型均基于BIM对象(如:梁、板、螺栓对象),但对曲面不规则适用性差。需要其他软件在三维空间中创建点、线导入后作为建模参考,才能创建BIM对象。
对于曲面造型建筑领域使用最广泛的为Rhino软件,Rhino软件是基于NURBS为主三维建模软件。能通过点、线精确创建NURBS曲面,快速便捷的通过曲面创建构件的基准线、基准点。但Rhino是基于点、线、面的三维建模软件,并非基于BIM对象,后期出图、管理、材料数据提取较为困难。
Grasshopper是基于Rhino软件下可视化程序设计建模的插件,通过编写建模逻辑算法,机械性的重复操作可被计算机的循环运算取代。程序设计简单、快捷,与Rhino模型指令结合度高,能提供复杂的建模以及大幅度提高工作效率,同时逻辑计算模块可以自主进行二次开发。
结合本项目的特点,通过对目前行业内使用最为成熟、广泛的软件进行分析、选取,本工程屋面钢结构深化最终确定使用Rhino、Grasshopper与Tekla Structures各自优点进行结合使用。
2.2 BIM模型搭建的实施思路
本工程屋面钢结构深化先由Rhino建立控制面,通过Grasshopper编制逻辑程序模块,由建模参数计算后通过基准面建立控制线、同时建立实体模型,由二次开发组件与Tekla Structures进行交互式建模,最终由Tekla Structures进行出图、加工Grasshopper数据、CNC数据提取。二个软件内部数据结构不同,Rhino实体模型导入并不能够进行后期出图和数据提取,交互式建模采用位置信息、构件属性数据的传递,为保证Tekla Structures的模型准确性,后期把Rhino实体模型导入Tekla Structures对形体进行一次校对、复核。最终在Tekla Structures中以BIM模型对象形式呈现,与其他主体结构体系软件保持一致性,保证整个项目的衔接性及可靠性。
3.钢结构参数化深化设计
3.1 核心组件的二次开发介绍
为打通Rhino与Tekla Structures之间的数据交互,通过C#开发Grasshopper的自定义组件。对本次屋顶钢结构深化节点进行盘点,需要开发的Tekla Structures的建模功能有直梁、折梁、多边形边、螺栓以及物体切割。结合Grasshopper提供的SDK开发帮助、Tekla Structures的OpenAPI_Reference帮助文件进行二次开发。Grasshopper自定义组件开发的架构如下:
提取Rhino中的参考线、参考点的数据来建立Tekla Structures中的对象,以直梁为例:
由于Grasshopper一旦数据输入完整会即时计算,为防止不必要的运算和构件重复创建,我们在开发模块中设置了Eanble开关,仅在确认Rhino中的辅助线无误时才会对Tekla Structures进行交互建模。
本工程的构件是基于双曲曲面,大部分构件在三维空间中存在角度偏转,在参数化建模时虽然可以对偏转角度进行设置,但角度的计算对数学逻辑要求极高、难度极大。为解决角度偏转问题,在完成辅助线时引入与构件对齐的Plan与Tekla Structures中的用户坐标系进行匹配。在Tekla Structures建模前先建立与Rhino中Plan一致的用户坐标系,传递物体的控制点前先使用矩阵向量从世界坐标系转换为局部坐标系(TransformationMatrixToLocal.Transform)后再进行赋值创建。在局部坐标系中创建的物体仅需对坐标Plan进行控制,基于世界坐标系的角度偏转,软件自动完成计算。通过局部坐标系有效的统一了不同构件的三维空间位置。
建立完的Tekla Structures物体提取Guid值作为参数进行输出,Guid值在Tekla Structures是唯一编码,为后期再次查询、操作物体提供查找依据(如:在该物体上创建螺栓、切割)。
3.2 参数化建模程序设计
3.2.1 深化逆向搭建控制面、控制線
在创建屋顶钢结构BIM模型前先逆向建立控制曲面,通过曲面进行控制生成控制线来进行控制物体的位置。从设计图纸中提取坐标点至Excel,同样编制Grasshopper的程序读取Excel的坐标点进行展点,展点的同时对点的U、V值进行编号,后期网壳盒子的构件编号与U、V值进行对应,防止相似不相同的构件查找困难。点通过Grasshopper安装坐标位置(X、Y值)进行排序后连成成为曲线,由网格曲线群来进行控制曲面。网壳盒子的板件、钢筋位置均由网格曲线及曲面来进行位置控制。
3.3.2 参数化自动建模设计
虽然Grasshopper做好数据匹配,每个单元可以一次性完成建模,但本工程深化设计时规格、尺寸、数量需要计算后由参数进行驱动【如:U(V)向板厚由V(U)向的长度确定;节点板大小、螺栓数量有左右二边的二分之一的长度确定;配筋的类型及尺寸有跨度确定;边跨和中间跨的取值有完全相同】,数据匹配难度较大。因此我们在设计深化程序时简化设计流程、同时选取的参数可以再进行一次人工复核,自动化建模采用一个网格计算一次,对中间必要条件的参数进行标注显示,人工复核时可通过标注的参数进行判定。
Grasshopper特性是一旦有条件输入或数据变更,便立即参与计算或者部分条件计算,我们计算的输入条件较多(四个网格边线及底部偏移参考面和周边的八个网格线等),且工程计算又较为复杂、耗时较多。在输入条件中设置一个计算开关,输入时仅对输入数据进行标注确认,并不直接参与辅助线、实体模型的计算建立,完成所有参数输入后,计算开关设置为True后才会开计算和建立模型。计算开关的建立改善条件输入时的效率,避免产生不必要的计算。
参数驱动我们采用c# Script模块直接输入代码进行计算判定,此部分代码为本项目专用、无通用性,因此无需编译单独的插件模块。Script模块优点:在计算时即时编译代码,可以实时调整计算代码,方便调整参数及排除Bug。
在设计参数化自动建模程序时,为优化计算、数据的统一性、排Bug的便捷性,我们采用模块化的设计思路。按照功能打成Group组,如:参考面计算、主构件板块、连接板、檩拖、钢配筋等。对于一些重复使用的功能打包成为Cluster族,不但可以简化主程序,修改功能或除Bug时仅需修改一次即可。
通过上述的程序设计思路,选用Rhino三维空间建模功能、Grasshopper的参数化、自动化功能、Tekla Structures 实体化构件、加工图、加工数据提取功能,通过开放的软件接口把三者有机的进行结合,把各自软件的优点放大、扬长避短,使本次的屋顶钢结构深化设计达到效率最高、深化更加便捷。
参考文献
[1] RhinoCommon SDK documentation:Http://developer.rhino3d.com/api/RhinoCommonWin/html/N_Rhino.htm
[2] TeklaOpenAPI_Reference.chm:软件安装文件夹\Tekla Structures\18.1\nt\help\enu
[3] Grasshopper SDK :http://developer.rhino3d.com/5/guides/#grasshopper
[4]王奕修. Grasshopper 入门&晋级必备手册. 清华大学出版社,2013年10月第1版
(作者单位:上海精锐金属建筑系统有限公司 )
【中图分类号】TU318
【文献标识码】A
【文章编号】1671-3362(2019)06-0060-04