• ISSN: 1674-7461
  • CN: 11-5823/TU
  • 主管:中国科学技术协会
  • 主办:中国图学学会
  • 承办:中国建筑科学研究院有限公司

基于Dynamo的族构件精准放置建模方法研究

王茹珍, 王庆国

王茹珍, 王庆国. 基于Dynamo的族构件精准放置建模方法研究[J]. 土木建筑工程信息技术, 2023, 15(3): 27-32. DOI: 10.16670/j.cnki.cn11-5823/tu.2023.03.05
引用本文: 王茹珍, 王庆国. 基于Dynamo的族构件精准放置建模方法研究[J]. 土木建筑工程信息技术, 2023, 15(3): 27-32. DOI: 10.16670/j.cnki.cn11-5823/tu.2023.03.05
Ruzhen Wang, Qingguo Wang. Research on Modeling Method of Precise Placement of Family Components Based on Dynamo[J]. Journal of Information Technologyin Civil Engineering and Architecture, 2023, 15(3): 27-32. DOI: 10.16670/j.cnki.cn11-5823/tu.2023.03.05
Citation: Ruzhen Wang, Qingguo Wang. Research on Modeling Method of Precise Placement of Family Components Based on Dynamo[J]. Journal of Information Technologyin Civil Engineering and Architecture, 2023, 15(3): 27-32. DOI: 10.16670/j.cnki.cn11-5823/tu.2023.03.05

基于Dynamo的族构件精准放置建模方法研究

基金项目: 

国家自然科学基金 41571396

详细信息
    作者简介:

    王茹珍(1997-),女,硕士研究生,主要研究方向:BIM建模与智能交通系统

    通讯作者:

    王庆国(1974-),男,博士,教授,主要研究方向:智能交通系统

  • 中图分类号: TU17

Research on Modeling Method of Precise Placement of Family Components Based on Dynamo

  • 摘要: 针对路桥BIM建模过程中沿线离散放置“族”的传统方法存在自动化水平低、生产成本高、族构件定位精度低、放置偏差大等问题,本文依托Dynamo可视化编程平台提出了一种由数据驱动族构件精确定位放置的新型BIM智能建模方法。通过自适应嵌套族旋转放置程序设计,对预放置族进行参数数据处理与局部坐标系修正,实现自适应常规模型嵌套族的精准定位放置。以某桥梁项目中路灯及护栏的自适应嵌套族构建与放置为例进行验证,实验结果表明:本文所提智能建模方法相对于手工建模方法,能够有效避免人工放置误差,提高放置精度;本建模方法所用程序相对于传统奇偶列分类建模程序的平均运行时间减少约60%。这一改进可以推进BIM自动化建模过程中精确放置“族”技术的广泛应用,加快路桥等线性工程领域的BIM建设进程。
    Abstract: The common method discrete placement of "families" along road and bridge in the process of BIM modeling always leads to the low automation level, high production cost, less positioning accuracy and large positioning deviation of family members. This paper proposes a new BIM intelligent modeling method on the basis of the Dynamo visual programming platform for accurate positioning and placement of family members driven by data. In order to realize the precise positioning and placement of the nested family of the adaptive conventional model, the paper carries out the parameter data processing and local coordinate system modification by functioning the rotating placement program of the adaptive nested family. Taking the construction and placement of adaptive nested family of street lamps and guardrail in a bridge project as an example, its results prove that the automatic placement modeling method established in this paper can effectively avoid manual placement errors and improve placement accuracy compared with the manual modeling method. The average running time of the program under the automatic placement modeling method is reduced by about 60% in contrast with the traditional parity column classification modeling process, which can promote the wide application of accurate placement of family in the process of BIM automatic modeling, and accelerate the BIM construction in linear engineering fields, e.g., road and bridge.
  • 路桥BIM是构建智慧交通的基础[1],高效率、智能化的路桥BIM建模对于长周期、大任务量的生产设计与施工运营管理具有重要意义[2]。因此,探索一种路桥BIM高效建模方法成为路桥工程领域数字化建设的研究热点[3]

    目前,根据标高与轴网进行定位放置常规族构件的传统路桥BIM建模方式(下文简称传统手工建模方法M1)效率低,不具有构建与批量处理形体扭曲度高的复杂族功能,且在缓和曲线段建模过程中存在以直代曲的误差[4, 5]。虽然部分学者利用Dynamo编程技术对手工建模方式进行了改进,将族的放置点里程号进行了标识与分类识别(下文简称奇偶列分类建模方法M2),实现了族构件批量旋转放置建模,但其未考虑路拱坡度,族构件放置精度较低[6, 7]

    针对以上问题,本文提出了由数据驱动的新型BIM智能建模方法(下文简称智能建模方法M3),基于Dynamo平台进行常规功能节点、DesignScript代码块与自定义PythonScript节点端口匹配,实现“族”精确放置程序设计。首先,通过DesignScript代码块与常规功能节点结合进行数据读取,利用PythonScript节点调用Revit.API第三方库,将公用函数封装成函数节点进行参照点坐标系修正。然后通过PythonScript节点遍历中心线里程列表,依次调整族的放置参照点,从而使族构件实现批量精确定位放置。

    本文基于自适应嵌套族的放置程序设计主要分为三个阶段:

    (1) 基于常规功能节点与代码块串接的路桥中心线数据源处理程序设计;

    (2) 基于常规功能节点与代码块串接的自适应嵌套族数据源处理程序设计;

    (3) 基于自定义Python Script节点的嵌套族参照点坐标系修正程序设计。

    路桥中心线数据源的创建及数据读取和处理程序是开展自动化离散放置族构件的BIM设计工作基础[8, 9]

    以Dynamo为设计平台,利用File.Path节点获取桥梁中心线桩号的数据源文件存储路径,并将文件路径作为参数传入Files.FromPath节点,该节点通过文件路径获取并传出文件对象。利用Data.ImportExcel节点获取文件对象逐桩坐标表中的坐标信息和对应桩号的高程信息,将其传入List.Deconstruct节点,同时生成含每列数据字段名的第一项列表和含有设计数据的其余项列表两部分。

    含有设计数据的列表通过List.Transpose节点实现列表行列互换(设计数据转置为按列分类的数据列表),空值占位保证列表转化前后始终为矩形形态,避免后续节点读取数据失败而报错。由Code Block节点根据占位符参数读取相应数据列表,由Point.By Coordinates节点读取x、y、z参数相对应的笛卡尔坐标数据列表,并通过笛卡尔坐标系形成点规范表数据,按照桩号生成一系列路线中线点数据。

    利用PolyCurve.Bypoints节点将含有点数据列表的道路中线点拟合为多段线,再利用Curve. PointsAtEqualChordLength节点等间距分割,并通过List.NormalizeDepth节点实现起始与终点坐标整合,将其传入NurbsCurve.ByPoints节点进行折线点间插值,最终在Revit界面生成具有均匀局部坐标系的相对光滑桥梁中心线。

    基于Dynamo编程节点的中心线桩号数据处理程序如图 1所示。

    图 1 道路数据处理程序图
    图  1  道路数据处理程序图

    在确定族构件沿路桥中心线放置的里程数据源后,还需分析路桥上部结构、下部结构和附属结构的族类型建造方式,确定其与路桥中心线正向沿线方向的旋转角度和距离参数,进行族类型参数数据源的读取与处理程序设计。

    利用Files.fromPath节点调取族类型设计数据,Data.ImportExcel节点读取外部Excel文件中处理完成的设计数据[10]。通过List.Deconstruct节点生成含每列数据字段名的第一项列表和含有设计数据的其余项列表两部分。将含数据字段名的列表传入List.TakeItems节点,使Code Block节点值为负一,读取倒数第一列编码数据字段名,随后将编码数据字段名通过String from Object节点转化为字符串格式,作为参数名称传入Element.SetParameterByName节点的ParameterName接口,从含有设计数据的其余项列表中读取编码数据,作为参数值传入Element.SetParameterByName节点的Value接口。

    利用Code Block节点读取经转置的设计数据其余项列表中起始桩号、里程号、族类型名称和族类型旋转角度,并设计里程号减去起始桩号的值为python节点预放置的族实例距离起点的距离参数。

    基于Dynamo编程节点的族类型数据源处理程序如图 2所示。

    图 2 族类型数据处理程序图
    图  2  族类型数据处理程序图

    根据族类型沿线放置里程及其与中心线正向沿线的旋转角度和距离参数进行排布放置的族构件精度较低[11, 12]。本文在Dynamo平台中进行python script节点的自定义,批量计算每一里程桩号的局部坐标,使自适应族根据参照点局部坐标进行精确定位并放置。

    旋转定位放置方法流程如图 3所示,设计步骤如下:

    图 3 旋转定位放置方法流程图
    图  3  旋转定位放置方法流程图

    (1) 通过相邻旋转轴正方向一点(非原点)与原点坐标值之差判定族类型旋转方向,差值为正,则为顺时针方向,差值为负,则为逆时针方向;

    (2) 利用放置点处的平面坐标方位角、纵向倾角及其在对应局部坐标系与世界坐标系轴向量上投影的夹角,进行曲线方向方位角计算;

    (3) 通过族类型的ID标识,将族实例绕世界坐标系对应轴进行自适应参照点旋转。

    通过以上步骤,能够使自适应参数族在线性空间上通过捕捉自适应点坐标系实现自由旋转,从而根据道路中心线完成自动化布置任务。鉴于程序具有继承性、可移植性与稳定性等特性,对此算法进行封装处理。封装该节点时将输入接口设定为缓和曲线、族类型名称列表、族类型旋转角度列表、绕X轴旋转布尔值和绕Y轴旋转布尔值等参数,然后添加调整族参数,即输出接口设置为构件,并通过Element. SetParameterByName将类型编码参数自动批量化添加至族类型属性信息。封装后的节点程序设计对比传统根据奇偶列分类标识放置族构件的Dynamo程序解决了代码块冗余、族构件定位放置精度低等问题,传统奇偶列分类建模方法M2的程序设计如图 4所示,本文所提智能建模方法M3的旋转定位放置程序设计如图 5所示。

    图 4 基于奇偶列分类放置族的程序设计图
    图  4  基于奇偶列分类放置族的程序设计图
    图 5 旋转定位放置方法程序设计图
    图  5  旋转定位放置方法程序设计图

    为验证所提智能建模方法M3的建模放置精度与程序运行时间效率提升效果,本文以某桥附属结构BIM中路灯及护栏的参数化自适应嵌套族构建与放置为例,运用传统手工建模方法M1、奇偶列分类建模方法M2和智能建模方法M3进行对比实验。程序运行硬件环境:CPU为AMD R7-5800H;主频:3.20GHz;内存:16GB;运行软件:Revit2020_Dynamo2.5.0。

    本文在传统“公制常规模型”基础上,借助“自适应公制常规模型”模板创建桥梁附属结构路灯、护栏的嵌套族。即新建自适应公制常规模型样板项目,设置自适应参照点。基于连接空间中参考点放置线的设计方法,通过调整自适应参照点工作平面,对放置位置进行合理改变。鉴于实例坐标系自适应点的坐标不贴合体量环境的坐标系和贴合放置点处的坐标系,而是保持自适点自身的XYZ轴方向不变,因此将常规族路灯、常规族护栏载入自适应常规族项目中,设定参照点1为坐标系原点,使其自适应并定向为实例坐标系(xyz),添加材质,设定放置点为自适应点从而形成路灯、护栏嵌套族,分别如图 6~图 7所示。由于自适应嵌套族的建模核心是参数的设计和绑定,参数设定的主要目的是通过调控相应参数,高效驱动族类型其位置、数量、空间尺寸等属性信息的改变,使模型有唯一对应解的过程[13, 14]。因此本文采用连接空间中自适应参考点,将放置线参照对齐锁定,进行详图族中相关参数与构件参数关联交互,自适应路灯、护栏嵌套族参数关联图分别如图 8~图 9所示。

    图 6 路灯嵌套族
    图  6  路灯嵌套族
    图 7 护栏嵌套族
    图  7  护栏嵌套族
    图 8 路灯参数关联图
    图  8  路灯参数关联图
    图 9 护栏参数关联图
    图  9  护栏参数关联图

    在初始数据读取与处理模块,本文设计的可视化节点程序采用控制点(路灯/ 护栏放置对应的中心线点) 生成要素线,桥梁中心线确定桥梁走向的建模思路。首先对族的几何、位置等信息的逻辑关系及算法结构进行分析,创建了含有嵌套族的族名称、起始桩号、里程号、及偏转角度等关键信息的Excel表格,自适应嵌套族路灯和护栏的部分族数据源创建分别如表 1~表 2所示。其次通过某桥梁工程项目建筑平面施工图中的道路中心线桩号里程信息和高程信息,提取出控制点的x、z坐标值,然后通过对嵌套族的关联参数进行分析。由于本项目中嵌套族路灯放置点高程参数h1为0.8m,放置点距中心线水平距离参数l为9m,即自适应族放置点沿y方向偏移x轴规范距离9m,因此不需要读取参数L,即桥梁中心线南北方向偏移值默认取0,控制点y坐标值为0;嵌套族护栏放置点高程参数h1为0m,放置点距中心线水平距离参数l为0m,即自适应族放置点沿y方向偏移x轴规范距离0m,因此需要读取参数L,即桥梁中心线南北方向偏移值默认取8.25m,控制点y坐标值为0。创建桥梁中心线坐标表如表 3所示。

    表  1  路灯族数据表
    起始桩号 里程号(m) 族类型名称 角度(度) 分类编码
    0 1744 路灯 0 20.09.15.03
    1774 路灯 0 20.09.15.03
    1804 路灯 0 20.09.15.03
    1834 路灯 0 20.09.15.03
    4 路灯 180 20.09.15.03
    34 路灯 180 20.09.15.03
    64 路灯 180 20.09.15.03
    94 路灯 180 20.09.15.03
    下载: 导出CSV 
    | 显示表格
    表  2  护栏族数据表
    起始桩号 里程号(m) 族类型名称 角度(度) 分类编码
    0 1466.88 护栏 0 20.09.06.00
    1470.04 护栏 0 20.09.06.00
    1473.2 护栏 0 20.09.06.00
    1476.36 护栏 0 20.09.06.00
    1479.52 护栏 0 20.09.06.00
    1482.68 护栏 0 20.09.06.00
    1485.84 护栏 0 20.09.06.00
    1489 护栏 0 20.09.06.00
    下载: 导出CSV 
    | 显示表格
    表  3  桥梁中心线坐标表
    X值(m) y值(m) z值(m)
    -270 0 14.146
    -240 0 14.796
    -152 0 14.707
    -54 0 14.96
    54 0 14.96
    152 0 14.707
    240 0 14.296
    270 0 14.146
    下载: 导出CSV 
    | 显示表格

    通过桥梁中心线和自适应路灯、护栏嵌套族参数处理程序读取起始里程桩号、相邻族类型需放置的里程桩号、族类型名称及相对于道路中心线里程号增大方向的旋转角度,生成放置中心线效果分别如图 10(a)~(b)所示。

    图 10 自适应嵌套族模型
    图  10  自适应嵌套族模型

    由于桥梁中心线与参数化自适应嵌套族路灯及护栏数据处理结果实现了X、Y定位值准确,因此高精度定位调整仅需嵌套族绕Z轴进行旋转放置。在自适应嵌套族参数处理程序设计中将绕X轴旋转布尔值和绕Y轴旋转布尔值调整为False;调用批量创建空间模型的Revit.API,运行程序使自适应族中的自适应点按照旋转放置算法逻辑与Dynamo程序调整的Z坐标一一映射,完成Dynamo工作空间与Revit指定图层的模型输出。因此由智能建模方法M3驱动的路灯嵌套族和护栏嵌套族在Revit工作空间中的局部自动化放置效果分别如图 11(a)~(b)所示,所测试族构件均精确放置到定位点。

    图 11 基于M3方法的放置图
    图  11  基于M3方法的放置图

    传统手工建模M1方法输出至Revit内的部分路灯族和护栏族效果分别如图 12(a)~(b)所示,由于传统手工建模不可避免会出现视觉偏差,从而导致三维建模精确度不足,因此由自适应嵌套族旋转放置程序设计的M3方法,在一定程度上能够避免人工放置误差,提高建模精度。

    图 12 基于M1方法的族放置图
    图  12  基于M1方法的族放置图

    为对比本文所提智能建模方法M2与奇偶列分类建模方法M3的程序设计时间,取10次Dynamo中Tune UP节点所测的不同规模族构件放置程序运行所耗时间平均值作为主要评价指标,程序运行所耗平均时间的具体数值如表 4所示。可见相对于利用传统Dynamo程序实现奇偶列分类放置族构件的M2方法,智能建模方法M3的建模程序平均运行时间减少约60%;就不同BIM建模方式的阶段性建模效率对比,智能建模方法M3相对于人工建模方法M1和利用传统Dynamo程序实现奇偶列分类放置族构件的M2方法,其数据源构建与程序设计的高效性也使其在建模工作总进程中具备一定优势,如图 13所示。

    表  4  M2与M3程序运行时间数据表
    指标参数 10次平均程序运行时间/ms 提升效率
    类型 规模 M2方法 M3方法
    路灯 44 10 137 4 356 57.02%
    88 14 379 5 633 60.82%
    护栏 45 11 695 4 692 59.88%
    90 17 024 6 793 60.09%
    下载: 导出CSV 
    | 显示表格
    图 13 各阶段建模消耗时长对比图
    图  13  各阶段建模消耗时长对比图

    针对大型复杂项目,利用自适应嵌套族的精准定位放置程序进行BIM建模,可根据路桥中心线坐标表将构件自动放置,建模效率提高数倍以上。

    本文采用以世界坐标系为基准旋转放置参照点局部坐标系的精准定位算法,借助于Python语言在Dynamo平台上完成了自适应常规模型嵌套族在Revit三维空间内的自动化批量精准放置,实现了以下三个方面的要求:

    (1) 建模技术路线方面,统一梳理了对于具有参数化,族类型的复杂工程建模过程中的数据处理逻辑;

    (2) BIM模型精度方面,通过数据驱动实现族构件自动化批量放置,保证了模型精度,解决了复杂线性工程的建模难点;

    (3) 建模效率方面,利用Python Script自制节点,实现模型的参数快速更新,有效减少人机交互,提高同类型模型修改重建的效率。

  • 图  1   道路数据处理程序图

    图  2   族类型数据处理程序图

    图  3   旋转定位放置方法流程图

    图  4   基于奇偶列分类放置族的程序设计图

    图  5   旋转定位放置方法程序设计图

    图  6   路灯嵌套族

    图  7   护栏嵌套族

    图  8   路灯参数关联图

    图  9   护栏参数关联图

    图  10   自适应嵌套族模型

    图  11   基于M3方法的放置图

    图  12   基于M1方法的族放置图

    图  13   各阶段建模消耗时长对比图

    表  1   路灯族数据表

    起始桩号 里程号(m) 族类型名称 角度(度) 分类编码
    0 1744 路灯 0 20.09.15.03
    1774 路灯 0 20.09.15.03
    1804 路灯 0 20.09.15.03
    1834 路灯 0 20.09.15.03
    4 路灯 180 20.09.15.03
    34 路灯 180 20.09.15.03
    64 路灯 180 20.09.15.03
    94 路灯 180 20.09.15.03
    下载: 导出CSV

    表  2   护栏族数据表

    起始桩号 里程号(m) 族类型名称 角度(度) 分类编码
    0 1466.88 护栏 0 20.09.06.00
    1470.04 护栏 0 20.09.06.00
    1473.2 护栏 0 20.09.06.00
    1476.36 护栏 0 20.09.06.00
    1479.52 护栏 0 20.09.06.00
    1482.68 护栏 0 20.09.06.00
    1485.84 护栏 0 20.09.06.00
    1489 护栏 0 20.09.06.00
    下载: 导出CSV

    表  3   桥梁中心线坐标表

    X值(m) y值(m) z值(m)
    -270 0 14.146
    -240 0 14.796
    -152 0 14.707
    -54 0 14.96
    54 0 14.96
    152 0 14.707
    240 0 14.296
    270 0 14.146
    下载: 导出CSV

    表  4   M2与M3程序运行时间数据表

    指标参数 10次平均程序运行时间/ms 提升效率
    类型 规模 M2方法 M3方法
    路灯 44 10 137 4 356 57.02%
    88 14 379 5 633 60.82%
    护栏 45 11 695 4 692 59.88%
    90 17 024 6 793 60.09%
    下载: 导出CSV
  • [1] 伍军, 宋林, 王步云, 等, 赵夕国. 面向对象和服务的桥梁工程信息管理平台研究与实践[J]. 图学学报, 2020, 41(05): 824-832. https://www.cnki.com.cn/Article/CJFDTOTAL-GCTX202005017.htm
    [2] 陈志为, 吴焜, 黄颖, 等. 基于BIM的复杂结构有限元精细模型生成[J]. 土木工程与管理学报, 2018, 35(05): 60-64+81. DOI: 10.3969/j.issn.2095-0985.2018.05.010
    [3] 佘宇深. 基于BIM技术的桥梁参数化建模及轻量化研究[D]. 北京交通大学, 2021.
    [4] 赵伟兰, 李远富. 某大桥基于Revit软件的桥梁BIM模型参数化设计探析[J]. 公路工程, 2018, 43(01): 36-41. https://www.cnki.com.cn/Article/CJFDTOTAL-ZNGL201801008.htm
    [5]

    Yang B, Liu B, Zhu D, et al. Semiautomatic Structural BIM-Model Generation Methodology Using CAD Construction Drawings[J]. Journal of Computing in Civil Engineering, 2020, 34(3): 04020006. DOI: 10.1061/(ASCE)CP.1943-5487.0000885

    [6] 张宜洛, 邓展伟, 郭创. 基于BIM技术的公路工程正向设计应用探究[J]. 公路, 2020, 65(09): 176-183. https://www.cnki.com.cn/Article/CJFDTOTAL-GLGL202009034.htm
    [7] 陈华卫, 谢立广. Dynamo插件在T形梁桥BIM建模中的应用[J]. 公路, 2021, 66(05): 163-166. https://www.cnki.com.cn/Article/CJFDTOTAL-GLGL202105030.htm
    [8] 刘笃兴, 季小普, 陈华, 等. 基于Dynamo的缓和曲线形体结构应用研究[J]. 土木建筑工程信息技术, 2021, 13(04): 125-131. DOI: 10.16670/j.cnki.cn11-5823/tu.2021.04.19
    [9] 王宁, 闫飞, 李丽君, 等. Dynamo在水利工程BIM三维设计中的应用[J]. 人民长江, 2022, 53(02): 214-218. https://www.cnki.com.cn/Article/CJFDTOTAL-RIVE202202036.htm
    [10] 朱昊然. 基于Civil 3D+Dynamo的道路设计应用研究[D]. 东南大学, 2020.
    [11] 张礼祺. 基于bim技术在桥梁工程信息化建设中的应用[D]. 太原理工大学, 2021
    [12] 王茹, 权超超. 公路立交BIM参数化快速精确建模方法研究[J]. 图学学报, 2019, 40(04): 766-770. https://www.cnki.com.cn/Article/CJFDTOTAL-GCTX201904020.htm
    [13] 仇朝珍, 贺波, 葛胜锦. Dynamo在桥梁BIM建模中的应用[J]. 中外公路, 2019, 39(05): 179-182. https://www.cnki.com.cn/Article/CJFDTOTAL-GWGL201905041.htm
    [14] 张胜超, 郭新贺, 鲍大鑫. 基于Dynamo的预制箱梁BIM模型参数化建模技术[J]. 土木建筑工程信息技术, 2021, 13(03): 107-111. DOI: 10.16670/j.cnki.cn11-5823/tu.2021.03.16
  • 期刊类型引用(2)

    1. 贾冉冉,曾敏,严晶晶,郭培栋,杜雪松,柏华军. 基于三维边线的现浇箱梁自适应建模技术研究. 铁道标准设计. 2025(03): 182-188+206 . 百度学术
    2. 郭剑勇,张春雷,王秀妍,赵世杰,杨炳晔. BIM构件库系统建设与应用研究——以天津市域铁路某线为例. 建筑经济. 2024(S1): 453-457 . 百度学术

    其他类型引用(1)

图(13)  /  表(4)
计量
  • 文章访问数:  1355
  • HTML全文浏览量:  993
  • PDF下载量:  27
  • 被引次数: 3
出版历程
  • 发布日期:  2023-06-29
  • 刊出日期:  2023-06-29

目录

/

返回文章
返回