摘要
BIM模型不支持有限元计算,且BIM模型与有限元分析模型数据交互困难,故BIM技术正向设计过程中存在建模效率低、模型修改困难等问题,无法做到BIM结构设计与有限元力学分析一体化,增加了结构模型建模与纠错成本.本文依托Revit和Midas/Civil软件平台,在Dynamo环境下采用IronPython语言设计了一套Revit-Midas/Civil的模型信息转换程序.以博士大桥主桥为对象,通过程序自动实现:1)Revit模型桥梁构件分解、截面特性计算、拉索及梁塔弹性连接处理,并转换成适用于Midas/Civil的语言格式MCT文件,实现了Revit向Midas/Civil模型信息自动转换;2)将有限元计算结果反馈到Revit模型中,对作用效应信息按数值大小赋予渐变颜色,实现了在BIM模型中显示有限元分析结果的展示功能.本文程序可实现Revit-Midas/Civil模型信息转换,有效提高了BIM正向应用效率,弥补了BIM技术在桥梁结构分析方面的不足.
在建筑结构尤其是桥梁结构日益大型化、规模化、复杂化的今
BIM模型集成了建筑结构构件的三维尺寸、空间位置、材料特性等几何物理信
常用的桥梁工程BIM及有限元建模软件分别是Revit和Midas/Civi
本文结合已有方案,在既有Revit桥梁模型的基础上,提出基于Dynamo实现:1)Revit模型构件分解、截面特性计算、材料参数提取、拉索及梁塔弹性连接处理,并将之转换为Midas/Civil建模MCT格式数据;2)Midas/Civil有限元分析结果反馈至Revit模型,实现有限元数据可视化.
1 模型转换程序开发
1.1 开发工具
Revit除了可以使用GUI对构件创建修改外,其开放的API接口为外部程序的访问提供了极大的方便.基于Revit API.dll和Revit APIUI.dll程序集,可以深入访问Revit底层数据库,获取模型的几何和非几何信息.Revit API是.NET类型的,只要支持.NET Framework的语言都可以访问,故C#、Visual Basic、Visual C++以及安装了.NET绑定库的Python都可以调用.采用这些方法访问或修改构件信息,其本质都是对Revit API操作.
本文以Revit 2022为BIM建模平台,利用Revit扩展应用Dynamo2.10访问Revit API的方式进行二次开发,并选择IronPython2为编程语言,提出了一种Revit-Midas/Civil模型交互方法(见

图1 Revit-Midas/Civil模型交互方法
Fig.1 Methodology of Revit-Midas/Civil model interaction
1.2 开发流程
Midas/Civil有限元模型的建立要素大致可以分为:1)建立节点、单元;2)赋予边界条件;3)定义截面特性;4)选择材料力学参数.这些信息都可以用程序从Revit中获取.利用Dynamo二次开发对数据进行提取与转存,实现Revit与Midas/Civil之间的模型转换.MCT是两者之间数据载体,因此从Revit中提取出来的信息必须遵循MCT文件规范,程序开发流程如

图2 程序开发流程图
Fig.2 Flowchart of program development
1)模型创建并处理.BIM模型尤其是钢箱梁桥模型中多了很多有限元模型创建时不需要的构件,比如过人孔、横隔板加劲等.这些构件在有限元模型建立中并不必要,且对后续的构件分解会产生较大影响,需提前将这些构件从主体结构中分离出来.
2)材质获取与构件分解.通过窗口选择并过滤出需要的构件实例,并将之传输至Dynamo空间中.遍历构件以下信息:①获取构件的材料信息;②通过计算Pearson系数方式寻找构件变截面点,截取变截面点处截面轮廓.具体流程如

图3 Dynamo获取构件材质以及变截面轮廓
Fig.3 Component materials and variable cross-section profiles obtained from Dynamo
3)通过三角分块法计算截面特性.桥梁结构中,不管是上部结构、下部结构还是桩基础,构件截面都可以用多个封闭轮廓来表达.实心截面由一个封闭轮廓构成,空心截面需要有多个封闭轮廓,定义轮廓中最外层的为外轮廓,其余统称为内轮廓.如

图4 按轮廓角点顺序划分三角单元
Fig.4 Dividing triangular units according to contour corners
(a)内外轮廓三角单元分块 (b)三角单元节点坐标示意
在三角单元划分完成之后,在已知三角单元三个角点坐标的情况下[见
4)整合构件信息.获取各个构件的节点坐标、截面特性、材料信息之后,由于相邻构件建模时紧贴在一起,故需清除重复信息.将各构件信息整合在一起,然后以MCT格式输出文件并存放至预先选择路径.
5)有限元模型建立.Midas/Civil软件通过读取MCT文件建立有限元模型,对于Revit模型中支座、荷载、施工阶段等缺失的信息,可以在生成的有限元模型上手动添加.
6)有限元分析及反馈.有限元计算分析完成后,将需要的计算结果导出至Excel文件中,通过
Dynamo读取该文件作为Revit原始模型的变化信息,并对变化信息按数值大小赋予渐变颜色,实现在BIM模型中显示有限元分析结果的展示功能.
2 模型转换方法验证
为验证本文方法的可行性,以博士大桥主桥为例进行验证.主桥桥型为独塔双索面斜拉桥,跨径布置为2×100 m,主塔采用人字形,主梁采用分离式钢箱梁,斜拉索采用马鞍形索面,大桥结构采用漂浮体系,塔墩固结,塔梁分离.建立的全桥以及箱梁Revit模型见

图5 博士大桥主桥Revit模型
Fig.5 Revit model of main bridge of Boshi Bridge

图6 博士大桥主桥箱梁Revit模型
Fig.6 Revit model of box girders for main bridge of Boshi Bridge
2.1 构件材料信息提取
Revit中族实例的材质属性存储于结构材质这一参数中,该参数是可读可更改的,Revit开放了该参数的API接口,故可以通过Dynamo访问修改族实例的材质参数.
博士大桥Revit模型钢结构部分为Q345材质,混凝土部分为C50,由程序读取材料参数如
材料 类型 | 弹性模量 | 泊松比 | 线膨胀系数 /(1 | 容重 γ/(kN· |
---|---|---|---|---|
Q345 | 206 | 0.3 | 1.0 | 77 |
C50 | 20.5 | 0.2 | 1.0 | 23.6 |

图7 Dynamo获取材质程序执行过程界面
Fig.7 Interface of Dynamo’s material acquisition procedure
2.2 构件截面信息获取
截取Revit模型中钢箱梁(见

图8 薄壁钢箱梁截面图(单位:mm)
Fig.8 Cross section of thin-walled steel box girder (unit: mm)
截面特性 | 周长C/m | 面积A/ | 惯性矩I/ | 截面形心坐标Z/m | |||
---|---|---|---|---|---|---|---|
外轮廓 | 内轮廓 | 对X轴惯性矩 | 对Y轴惯性矩 | X坐标 | Y坐标 | ||
本文 | 56.973 27 | 108.721 22 | 1.073 58 | 1.540 89 | 37.702 50 | 9.656 42 | 1.318 39 |
SPC | 56.973 04 | 108.718 55 | 1.073 53 | 1.540 83 | 37.701 18 | 9.656 46 | 1.318 51 |
相对误差 / % |
4.037 0×1 |
2.455 9×1 |
4.657 5×1 |
3.894 0×1 |
3.501 2×1 |
-4.142 3×1 |
-9.101 2×1 |
截面特性计算核心代码如下:
def get_section_property(contour_point_lst, jud ge): # 传入轮廓点
area=0
p1=contour_point_lst[0]
for point_ind in range(1,len(contour_point_ lst)-1):
p2=contour_point_lst[point_ind]
p3=contour_point_lst[point_ind + 1]
area+=((p2.Y-p1.Y) * (p3.Z - p1.Z)-(p2.Z-p1.Z) * (p3.Y-p1.Y)) / 2
if (area>0 and judge ==0)or (area < 0 and judge == 1):
# 当为内轮廓且为顺时针时
contour_point_lst = list(reversed(contour_point_lst))
p1 = contour_point_lst[0]
area, sy, iy, sz, iz = 0, 0, 0, 0, 0
for point_ind in range(1, len(contour_point_lst) - 1):
p2 = contour_point_lst[point_ind]
p3 = contour_point_lst[point_ind + 1]
area += ((p2.Y-p1.Y) * (p3.Z-p1.Z)-(p2.Z - p1.Z) * (p3.Y - p1.Y)) / 2
sy += area * (p1.Z + p2.Z + p3.Z) / 3
iy += area * ((p1.Z + p2.Z) ** 2 + (p2.Z + p3.Z) ** 2 + (p1.Z + p3.Z) ** 2) / 12
sz += area * (p1.Y + p2.Y + p3.Y) / 3
iz += area * ((p1.Y + p2.Y) ** 2 + (p2.Y + p3.Y) ** 2 + (p1.Y + p3.Y) ** 2) / 12
return [area, sy, iy, sz, iz]
2.3 构件分解
基于面积的Pearson系数对梁塔这类框架族实例构件进行分解,得到构件变截面点坐标序列,并依照梁轴线对坐标序列进行加密处理,使最终线形贴合Revit模型.以某节段主梁为例,分解加密后节点坐标如
X坐标/m | Y坐标/m | Z坐标/m | 是否为变截面点 |
---|---|---|---|
12.300 0 | 2.994 0 | 15.979 6 | False |
13.077 5 | 2.994 0 | 15.976 9 | False |
13.855 0 | 2.994 0 | 15.974 1 | False |
14.632 5 | 2.994 0 | 15.971 1 | False |
15.410 0 | 2.994 0 | 15.967 9 | True |
16.060 0 | 2.994 0 | 15.965 2 | False |

图9 博士桥主桥线形
Fig.9 Main bridge alignment of Boshi Bridge
2.4 数据整合及有限元计算
由于博士桥为斜拉桥,索塔、索梁间弹性连接较多,手动添加会带来较大的工作量,故程序在索梁、索塔连接位置添加节点并建立弹性连接.核心程序代码如下:
# 找出主梁中与各根拉索最接近点索引
intersect_beam_cable_ind = []
for i in range(len(cable_coordinate_lst)):
x_coordinate = cable_coordinate_lst[i][0][0]
for j in range(len(beam_point_lst)):
tmp_x = beam_point_lst[j][0]
diff_x = tmp_x - x_coordinate
if diff_x >= 0:
intersect_beam_cable_ind.append(j - 1)
break
# 在主梁节点列表内添加新节点
new_beam_point_lst = []
cross_ind = 0
for beam_point_ind in range(len(beam_point_lst)):
point = beam_point_lst[beam_point_ind]
new_beam_point_lst.append(point)
if beam_point_ind in intersect_beam_cable_ind:
next_point = beam_point_lst[beam_point_ind + 1]
tmp_x = cable_coordinate_lst[cross_ind][0][0]
tmp_y = point[1]
diff_x = next_point[0] - point[0]
diff_z = next_point[2] - point[2]
tmp_z = point[2] + (diff_z / diff_x) * (tmp_x - point[0])
new_point = [tmp_x, tmp_y, tmp_z, "cross_cable", False]
new_beam_point_lst .append(new_point)
cross_ind += 1
# 创建弹性连接
intersect_cable_inode_lst = []
inode_lst = []
inode = 0
for point in point_lst:
file.write(f"{inode}, {point[0]}, {point[1]}, {point[2]}\n")
inode_lst.append(inode)
point.insert(-1, inode)
if point[-2] == "cross_cable":
intersect_cable_inode_lst.append(inode)
inode += 1
i = 0
for cable_lst in cable_coordinate_lst:
file.write(f"{link_ino}, {cable_lst[0][-1]}, intersect_cable_inode_lst[i]}, RIGID, 0, NO, 0.5, 0.5,\n")
link_ino += 1
i += 1
经整合桥梁线形、截面特性、拉索及梁塔弹性连接等数据之后,博士大桥Midas/Civil有限元模型如

图10 博士大桥Midas/Civil有限元模型
Fig.10 Midas/Civil finite element model of Boshi bridge
手动添加支座、拉索张拉力等计算参数后,取一次成桥状态进行有限元计算(计算结果见

图11 Z方向位移有限元分析结果图
Fig.11 Finite element analysis results in Z-direction
为了验证本文模型转换的正确性,与采用Midas/Civil软件直接建模分析的结果对比,如
有限元分析结果 | 主梁Z向最大挠度/mm | 主梁Z向最小 挠度/mm | 塔应力最小值/MPa | 梁应力最大值/MPa | 梁应力最小值/MPa | 最外侧拉索 索力值/kN | 最内侧拉索 索力值/kN |
---|---|---|---|---|---|---|---|
本文 | 0.238 | -16.314 | -53.1 | 12.2 | -19.5 | 2 261.5 | 1 693.8 |
直接建模 | 0.226 | -16.267 | -55.0 | 12.4 | -20.0 | 2 267.1 | 1 700.8 |
相对误差 / % | 5.31 | 0.29 | -3.45 | -1.61 | -2.50 | -0.25 | -0.41 |
2.5 有限元结果反馈与展示
通过Dynamo读取Excel表格的计算结果,经格式转换并输入Revit模型作为作用效应信息,并将作用效应信息按其数值大小赋予渐变颜色.以一次成桥施工阶段主梁Z方向位移沿X轴变化情况为例,如

图12 主梁Z方向位移显示
Fig.12 Displacement display of the main beam in Z-direction
3 结 论
1)本文提出一种Revit与Midas/Civil间的模型数据交互方法,即通过Dynamo-IronPython访问Revit API的方式,编写了模型转换程序,获取Revit模型中构件的节点、材料、截面等信息,并将其转换为Midas/Civil软件语言格式MCT文件,实现了两种模型之间的转换.
2)有限元计算结果导出至Excel文件,通过
Dynamo读取该文件作为Revit原始模型的变化信息,并对变化信息按数值大小赋予渐变颜色,实现了在BIM模型中显示有限元分析结果的展示功能.通过在博士大桥上的应用,验证了模型转换方法与程序的可行性.
3)由Revit模型直接转换为有限元模型,避免了分别建模可能产生模型物理信息不一致的弊端,并且提高了建模效率,也弥补了BIM技术在桥梁结构分析方面的不足.
参考文献
何祥平,王浩, 张一鸣,等.Revit-Midas/Civil模型转换方法及应用[J].东南大学学报(自然科学版),2021,51(5):813-818. [百度学术]
HE X P,WANG H,ZHANG Y M,et al.Revit-Midas/Civil model conversion approach and its application[J].Journal of Southeast University (Natural Science Edition),2021,51(5):813-818.(in Chinese) [百度学术]
VENUGOPAL M,EASTMAN C M,SACKS R,et al.Semantics of model views for information exchanges using the industry foundation class schema[J].Advanced Engineering Informatics,2012,26(2):411-428. [百度学术]
OH M,LEE J,HONG S W,et al.Integrated system for BIM-based collaborative design[J].Automation in Construction,2015,58:196-206. [百度学术]
LAI H H,DENG X Y,CHANG T Y P.BIM-based platform for collaborative building design and project management[J].Journal of Computing in Civil Engineering,2019,33(3):05019001. [百度学术]
ZHENG X,LU Y J,LI Y K,et al.Quantifying and visualizing value exchanges in building information modeling (BIM) projects[J].Automation in Construction,2019,99:91-108. [百度学术]
杜一丛,王亮.基于BIM参数化在桥梁工程设计阶段应用初探[J].建筑结构,2019,49(增刊2):972-978. [百度学术]
DU Y C,WANG L.Preliminary exploration on the application of BIM parameterization in bridge engineering design stage[J].Building Structure,2019,49(Sup.2):972-978.(in Chinese) [百度学术]
赵宇璇. 吊杆拱桥BIM模型创建与有限元数据转换方法研究[D]. 杭州:浙江大学,2021. [百度学术]
ZHAO Y X. Research on BIM model creation and finite element transformation method for suspension arch bridges[D]. Hangzhou: Zhejiang University, 2021.(in Chinese) [百度学术]
徐照, 徐夏炎, 李启明, 等. 基于WebGL与IFC的建筑信息模型可视化分析方法[J]. 东南大学学报(自然科学版), 2016, 46(2): 444-449. [百度学术]
XU Z,XU X Y,LI Q M,et al.Combining WebGL and IFC to create 3D visualization for building information models[J].Journal of Southeast University (Natural Science Edition),2016,46(2): 444-449.(in Chinese) [百度学术]
GESQUIÈRE G,MANIN A.3D visualization of urban data based on CityGML with WebGL[J].International Journal of 3D Information Modeling,2012,1(3):1-15. [百度学术]
张晓洋, 胡振中. 面向结构有限元分析的模型转换方法研 究[J].工程力学, 2017,34(6):120-127. [百度学术]
ZHANG X Y,HU Z Z.Research on model conversion approach towards structural finite element analysis[J].Engineering Mechanics,2017,34(6):120-127.(in Chinese) [百度学术]
宁晓旭,李健刚,王磊,等.基于BIM设计的有限元模型转化计算方法研究[J].公路,2020,65(9):107-113. [百度学术]
NING X X,LI J G,WANG L,et al.Research on calculation method of finite element model transformation based on BIM design[J].Highway,2020,65(9):107-113.(in Chinese) [百度学术]
何欣. 基于BIM技术的钢桁拱施工监控可视化研究[D]. 成都:西南交通大学, 2018. [百度学术]
HE X. Research on visual monitoring of steel truss arch construction based on BIM technology[D]. Chengdu:Southwest Jiaotong University, 2018.(in Chinese) [百度学术]
邓达. 基于BIM技术的大跨径连续刚构桥施工监控研究[D]. 长春:吉林大学, 2019. [百度学术]
DENG D. Research on construction monitoring of long span continuous rigid frame bridge based on BIM technology[D].Changchun: Jilin University, 2019.(in Chinese) [百度学术]
РАЙКОВА Л С, АКИМОВ М Б. Выбор автоматизированной системы для проектирования мостовых сооружений[J]. САПР и ГИС автомобильных дорог, 2015, 2 (5): 78-85. [百度学术]
陈皓翔. 基于BIM的预应力变截面连续梁桥参数化设计与应用[D]. 广州:广州大学, 2020. [百度学术]
CHEN H X. Parametric design and application of prestressed variable cross-section continuous beam bridge based on BIM [D]. Guangzhou: Guangzhou University, 2020.(in Chinese) [百度学术]
董卯,郭乃胜,王楠,等.基于Revit与MIDAS/CIVIL的桥梁结构模型转换方法[J].大连海事大学学报,2020,46(3):101-108. [百度学术]
DONG M,GUO N S,WANG N,et al.Bridge structure model conversion method based on Revit and MIDAS/CIVIL[J].Journal of Dalian Maritime University,2020,46(3):101-108.(in Chinese) [百度学术]
ZHANG X Y,QU Q L,LIANG D,et al.Endowing BIM model with mechanical properties:finite element simulation analysis of long-span corrugated steel web continuous beam bridge[J].Journal of Physics:Conference Series,2022,2215(1): 012006. [百度学术]