基于Dynamo 的预制叠合板参数化建模方法研究与应用
2024-03-26赵桐桐王亮陈鑫尧
赵桐桐 王亮 陈鑫尧
(1. 北京建筑大学 土木与交通工程学院,北京 100044;2. 中航天建设工程集团有限公司,北京 100070)
引言
随着新时期建筑业的转型升级,房屋集成化的新型装配式建筑迎来了新的发展契机。在BIM 模型中每一个构件能独立存在、独立操作,这与装配式建筑的构件化特点契合[1]。因此使用BIM 技术来发展装配式建筑具有很大优势。Revit 作为国内主流BIM 软件,在构件智能拆分、异形构件及钢筋模型创建与工程信息管理等方面存在劣势,不能很好地满足预制构件的设计、施工需求。装配式预制构件形状不规则且含多种附属构件,其蕴含参数信息的数量是传统现浇构件的1倍以上,在工程量大幅提升的同时,对工期的要求却没有降低,极易影响到工程质量[2]。如何通过BIM 技术提高设计、施工工作的速度与效率是目前急需解决的问题。
不少学者针对以上问题进行了研究。孙璨等[3]探讨了预制装配式构件的参数化设计方法,应用于实际项目并取得良好成效。罗远峰等[4]基于Revit 二次开发技术建立了一套辅助设计软件,有效减少了钢筋手动建模量。杨谦等[5]将钢筋标准化设计与软件开发方法相结合,研发了一款基于Revit 软件的预制剪力墙构件配筋设计软件。刘春原等[6]利用Dynamo 对Revit进行二次开发,实现了部分装配式构件的批量化拆分、复杂构件的智能命名。雷杰等[7]通过对Rhino 平台进行二次开发,实现对预制异型楼板的拆分及深化,提高了设计图纸的准确程度和设计效率。文志彬等[8]基于Dynamo 编制了桁架钢筋混凝土叠合板参数化设计程序,实现了一键生成叠合板钢筋模型、一键统计钢筋信息的功能,并对后续楼板参数化拆分研究进行了展望。程霄等[9]运用“Dynamo+ Revit”的技术形式,实现了装配式楼梯构件混凝土板及钢筋的参数化创建,并且扩展了构件工程量统计、二维出图的应用。
以上研究证明,运用Dynamo 编程来实现预制构件拆分、精细化建模是可行的。此外,构件本身及其附属构件尺寸、数量及安装点位的准确性是施工顺利进行的关键因素,在进场前需要做严格的检验。本文以装配式建筑中使用较多且被优先选择的桁架钢筋混凝土叠合板(后简称叠合板)为例,运用可视化编程工具Dynamo 对Revit 软件进行二次开发。
1 程序开发技术路线
预制构件深化设计的核心阶段为构件设计,构件设计又以构件拆分为前提。因此提高设计工作效率与质量的关键在于构件拆分、构件设计工作的顺利开展。然而现阶段装配式预制叠合板种类较多,拆分方案不统一,手工拆分量大。Revit中的构件拆分功能存在欠缺,无法实现板的智能化拆分与尺寸归并。叠合板形状不规则,附属构件及钢筋含量较多,建模效率有待提升。作为一个异形构件,预制构件参数信息量多,质检工作量大[10]。
通过上述分析可知,应将构件智能化拆分、构件参数化建模与构件尺寸信息提取作为Dynamo 的使用需求与本文的研究重点,本研究参数化程序开发的技术路线如图1 所示。
图1 程序开发技术路线
2 程序功能模块设计
2.1 叠合板智能拆分模块
通过对现有相关文献、市面相关软件及装配式设计人员的调研,了解到现有的叠合板标准化拆分做法主要分为两种:一是等分法,即用板格拆分边尺寸扣除板间后浇带部分总宽度后根据拆分数量进行均分取整;二是模数法,即用固定的模数宽度和后浇带宽度来对板格拆分边进行拼凑。拆分后的余值有三种处理方式:一是均分到板间后浇带;二是合并到其中一块板中;三是将其另外设置为单独的后浇带。因此本文设计了限值等分和模数拆分两套拆分方式,在此基础上根据叠合板和后浇带宽度是否可变、拆分余值设定位置设计了不同的拆分模式,供用户在使用时根据工程要求进行选择。
本文是以一个房间为基本单元,将拆分规则编辑到程序中,使Revit 软件在现浇结构设计模型的基础上实现楼板的智能化拆分。程序使用流程如图2 所示,程序UI 界面如图3 所示。
图2 智能拆分程序使用流程
图3 智能拆分程序UI 界面
2.1.1 限值等分程序编写逻辑
通过单选或多选的方式获取Revit 中的现浇板,在获取现浇板拆分边的尺寸与输入的两端支座搁置宽度后,将二者相加得到拆分总尺寸。参照“等分且拆分数量最少”的拆分原则,借助Python Script 节点编写Python 脚本来根据“最大宽度限值”和“后浇带宽度”智能判断叠合板拆分个数。通过对板边定位线进行阵列得到各叠合板的左右两边定位线,由定位线生成面进而生成板。限值等分程序逻辑图如图4 所示。
其中l0、b0为现浇板的长度、宽度,l为模数取整后的板宽值,n为叠合板拆分数量,l_hjd1 为最终的板间后浇带宽度,l_hjd2 为后浇带宽度固定情况下因余值另外加设的后浇带宽度。其余变量含义均在逻辑图中进行了说明。
2.1.2 模数拆分程序编写逻辑
拆分总尺寸的获取同限值等分方式。借助Python脚本来根据“板宽模数”和“后浇带宽度”智能判断叠合板拆分个数。通过阵列板边定位线得到各叠合板的左右两边定位线,再由线生成面进而生成板。模数拆分程序逻辑图如图5 所示。
图5 模数拆分程序逻辑图
其中l1为与拆分余值合并后的板宽值,l_hjd2 为叠合板与后浇带宽度均固定情况下因余值另外加设的后浇带宽度。其余变量含义均在逻辑图及上文进行了说明。
本拆分程序的优势在于:
(1)限值等分方式在保证板均分的同时,也保证了叠合板宽度不超过最大限值,防止因板宽过大给生产、运输和吊装等环节带来不便。通过设置基本模数,对板宽尺寸进行合理的归并,有效减少了叠合板种类,符合预制构件模数化、标准化设计的要求;
(2)模数拆分方式综合考虑了拆分余值的各种处理做法,应用范围较广,有很强的实用性;
(3)在由现浇板生成叠合板的过程中,叠合板的标高信息取自原现浇板,因此可进行跨层批量拆分,提高拆分工作的效率。
2.2 叠合板参数化建模模块
参考《桁架钢筋混凝土叠合板(60mm 厚底板)》(15G366-1)(后简称图集)[11]、《装配式混凝土结构技术规程》(JGJ 1-2014)[12]等图集和规范,将桁架混凝土叠合板分解为预制混凝土底板、钢筋、切角及预留孔洞等部分。其中钢筋包含板底受力钢筋、板底分布钢筋、桁架钢筋和吊点加强筋四类,如图6 所示。
本模块参考借鉴了文献[8]中钢筋及切角的创建思路,并对桁架钢筋的生成方式进行了改进,进一步增加了叠合板预留洞口创建功能。
2.2.1 叠合板板底钢筋参数化建模
通过Select.Model Elements 节点批量选择预制混凝土底板,通过Element.Faces 节点获取板的六个面,中心点Z 坐标值最小的表面即为下表面。运用节点Surface.PerimeterCurves 获取下表面的长边和短边,进而通过Curve.ExtendStart 和Curve.ExtendEnd 两个节点根据各类钢筋的“伸出长度”输入值对长边和短边进行延长。利用Geometry.Translate 节点将延伸后的曲线按“首根分布/受力钢筋距板边距离”、“分布/受力钢筋网”输入值分别沿短边与长边两个方向进行平移和阵列得到所有板底钢筋定位线,再根据钢筋混凝土保护层厚度、相关钢筋直径沿Z 轴移动定位线,即可得到所有钢筋中心线,运用Rebar.ByCurve 节点即可生成板底受力筋和分布筋。
2.2.2 叠合板桁架钢筋参数化建模
运用Curve.ExtendStart 和Curve.ExtendEnd 两个节点将叠合板长边按“桁架钢筋首端、末端缩进”输入值进行缩进。根据“桁架钢筋分布”输入值,利用Geometry.Translate 节点将缩进后的曲线沿短边方向进行平移和阵列,得到所有桁架上弦钢筋定位线。将定位线按“桁架钢筋宽度”输入值进行左右偏移得到下弦钢筋定位线,进而根据“桁架钢筋高度”输入值、相应钢筋直径沿Z 轴移动上下弦钢筋定位线得到上下弦钢筋中心线。根据“波峰宽度”输入值及相应钢筋直径,利用 Curve.PointAtParameter 节点在上、下弦钢筋的中心线上获取腹杆钢筋的定位点,将其向外偏移并连接,得到腹杆钢筋的中心线,最后利用Rebar.ByCurve 节点生成桁架钢筋。
如图集所示,桁架钢筋正下方的板底纵筋应被桁架钢筋取代。考虑到程序操作的便捷性与实用性,利用List.FilterByBoolMask 节点筛选出桁架钢筋正下方的同向板底纵筋,进而通过节点List.RemoveItemAtIndex将板底筋中心线列表中重叠的部分进行自动删除,如图7 所示。
图7 查找删除重叠板底纵筋
2.2.3 吊点加强筋参数化建模
通过“吊点分布位置”、“吊点距板两端距离”输入值生成吊点,系统默认吊点加强筋间距为桁架钢筋波峰宽度,再根据“吊点加强筋长度”输入值对吊点进行坐标变换生成吊点加强筋中心线,最后利用Rebar.ByCurve 节点生成吊点加强筋。
2.2.4 切角参数化建模
首先创建基于线的参数化空心构件族并通过File Path 及Document.LoadFamily 节点进行加载,同上述步骤中获取板下表面的方法获取板上表面与其四条边。通过Element.CopyByVector 节点根据板边个数对空心族进行复制,通过节点FamilyInstance.ByFace对空心构件族进行放置。最后利用节点Element.SetParameterByName 根据空心族所在边的尺寸对空心族的长度进行调整,实现板切角。
2.2.5 预留洞口参数化建模
板的预留洞口包含以烟风道洞口为代表的矩形洞口和以管线洞口为代表的圆形洞口两类。两者参数化生成逻辑相同,在此以预留矩形洞口为例进行阐述。
通过“预留矩形洞口距板长边/短边的距离”、“预留矩形洞口长/宽”输入值创建洞口的轮廓,再运用Chynamo 节点包中的OpeningByClosedPolyCurve 节点生成洞口。
本参数化建模程序对UI 输入端参数进行了一定程度的精简,如图8 所示。仅需输入UI 界面所设参数值便可以完成底筋、桁架钢筋、吊点加强筋以及切角等模型的创建,同时程序可自动判断并删除重复布置的板底钢筋,简化了钢筋建模步骤。通过多选可批量布置同类型叠合板。
图8 预制叠合板参数化建模UI 界面
2.3 叠合板外形尺寸信息单智能导出模块
Revit 的信息写入写出功能比较薄弱,装配式工程项目需要更加高级的信息写入功能来集成预制构件自身携带的大量参数信息[2]。与此同时,Revit 的输出功能也不能够满足实际工程中对信息的需求。Dynamo 强大的图元参数信息读取和写入功能可以完善Revit 这一不足,其可对图元的参数进行单独或批量的操作。此外,Dynamo 可借助自带节点包与Excel 等外部软件进行交互。
2.3.1 预制构件参数信息集成
为了实现BIM 模型上建筑信息的集成以及便于后续质检信息的快速提取,利用 Parameter.CreateProjectParamete 节点创建项目参数, 利用Element.SetParameterByName 节点对创建的参数进行赋值,使预制构件及其附属构件的尺寸、定位信息等汇总于BIM 模型,如图9 所示。
图9 预制叠合板参数信息写入
2.3.2 叠合板外形尺寸信息单智能导出
鉴于装配式预制构件质量的重要影响及现阶段预制构件质量验收工作的障碍,通过查阅《装配式混凝土建筑技术标准》(GB/T51231-2016)[13]《建筑工程施工质量验收规范》(GB50300-2013)[14]等相关规定,对预制构件进场验收环节涉及到的外形尺寸参数进行了归纳和总结。将各检查项所对应的构件设计值作为新的一列插入到表格中,并将整个表格编写到Dynamo中,可供用户在选择待检叠合板和尺寸信息文件储存路径后一键导出包含检查项目、允许偏差、各项具体参数值及检验办法等内容的预制叠合板外形尺寸信息单。
主要运用Element.GetParameterValueByName 节点获取构件各项参数值,利用Data.ExportExcel 节点将信息单所包含信息写入Excel。
2.3.3 程序集成
为便于程序的使用,借助Data_Shape 节点包及Dyno 插件实现了程序输入参数和程序功能的集成。
(1)输入参数集成
在相关可视化编程的编写工作完成后,程序即可进行目标功能的实现。但本程序需要操作的参数较多,为了便于用户操作需要对相关参数进行集成。常用的集成方式为将编辑完成的程序导入Dynamo Player 中运行,其导入方式简单,但运行速度相对缓慢。本研究借助Data-Shape 节点包,制作了可与Revit 交互选择的UI。以UI 界面的形式将需要操作的参数进行集成,并定义了合适的初始默认值,方便用户使用[15]。
主要节点有MultipleInputForm ++: 用户界面;TextBox Data:文本框输入;Boolean input:布尔输入;FilePath Data:文件路径和目录路径输入;SelectModelElements Data:Revit 选 择 输 入;ConditionalInput Data:条件输入;InputGroup Data:对输入进行分组。
(2)程序功能集成
运用Dyno 插件将Dynamo 程序加载到Revit 工具栏中,使程序可以快速运行,方便用户使用。操作流程如图10 所示。
图10 叠合板参数化程序功能集成流程图
设置完成后重启Revit,程序即可插入到工具栏中。本研究添加了“叠合板参数化应用程序”选项卡,其包含“叠合板智能拆分”、“叠合板参数化建模”及“外形尺寸信息单智能导出”三个功能区,如图11 所示。
图11 叠合板参数化工具程序界面
3 工程实例应用
北京市某棚户区改造回迁安置房为装配整体式高层建筑,本文项目应用其西区731 地块。以1#为例,运用叠合板参数化程序实现了标准层楼板的拆分与建模,并对叠合板的尺寸信息单进行了提取,如图12 所示。以叠合板DBD66-3317 为例对程序的建模和尺寸信息提取效果进行展示,如图13 ~图14 所示。将导出的外形尺寸信息单应用于叠合板的进场验收环节,为质检工作提供了极大的便利,减少了因构件质量不合格导致的工期延误。
图12 叠合板参数化程序应用效果图
图13 叠合板DBD66-3317 建成效果图
图14 叠合板DBD66-3317 外形尺寸信息单
4 结论
综上所述,本文编制了系列叠合板智能应用程序,解决了预制叠合板深化设计阶段和施工阶段面临的难题,拓宽了BIM 技术在信息管理层次的应用范围,主要成果有以下三个方面。
(1)实现了叠合板的智能化批量拆分。本程序涵盖多种拆分模式,具有较强的实用性和灵活性且遵循模数化、标准化拆分的理念;
(2)实现了叠合板的参数化批量建模。输入相关参数信息即可实现同类型叠合板的批量建模与构件参数信息的集成;
(3)实现了叠合板尺寸信息单的智能导出。为构件的质量检验工作提供了便捷的工具,减轻了质检工作的压力,加快精益化施工目标的实现。