■ 刘彦明
基于Bentley平台的铁路桥梁构件参数化建模研究
■ 刘彦明
Bentley作为BIM平台软件提供商之一,虽然在基础设施领域提供了大量软件产品,但仍难以满足铁路桥梁设计的实际需求,需要进行二次开发实现基于线路的桥梁参数化建模。基于Bentley PowerCivil的铁路桥梁构件三维参数化设计,以通桥(2009)4301/4201系列圆端形实体墩自动加载PCL文件为例,创建标准图进而建出银西线实体桥墩参考图,合理确定桥墩高度,完成构建的参数化设计。Bentley平台能够进行高效率、高质量建模,实现桥梁三维设计软件参数化、关联化、标准化。
Bentley;BIM;PCL;铁路桥梁;二次开发;构件;参数化;关联化;标准化
Bentley是一个国际化的BIM软件开发商和平台服务商,在建筑工程、地理工程、土木工程(道路、桥梁、场地)、工厂设计及机械制造等行业提供有效的软件解决方案,从勘察、设计到施工及运维的各个阶段为基础设施全生命周期的可持续发展提供支持。目前该公司软件已在我国的建筑、水利水电、厂房、城市轨道交通得到应用[1-4],在土木工程中也提供较多产品如PowerCivil、 BridgeMaster、ProConcrete等,但是在铁路桥梁工程进行探索应用时仍不能满足桥梁设计的实际需求[5],需要进行二次开发实现基于线路的桥梁参数化建模。
由于PowerCivil和MicroStation的实体参数化功能较弱,为方便实现结构物的三维参数化,在开发过程中定义了一种描述语言——PCL(Parametric Component Language),并在MicroStation平台上开发了相应的语言解释器,以实现结构体的参数化。该方法将结构体分为3个层次:图元Element、构件Component和组件Assembly,一般用Element定义二维参数化图元,Component定义三维参数化构件,Assembly定义三维参数化组装体。
参数化构件的原理:首先实现二维轮廓的参数化,通过拉伸、扫描二维轮廓等方法形成参数化构件,再由构件通过组合、并交差、排列、变换等操作形成复杂构件或组件。由此可知,一个参数化构件的主要参数是其轮廓几何参数、高度参数、定位参数等,而由这些参数组成的构件或组件为保证其相互关系,就必须注意建立其参数关系。在PCL里通过参数传递、共用表达式等方式来建立,建立的PCL文件在PowerCivil启动时自动完成加载。
下面以定义支承垫石为例进行说明,在PCL文件中使用“#”,“#”后面的内容全部为注释内容。
[Component] # 开始一个对象定义,可以是Element,Component,Assembly
ID=_pcPadStone # 该对象标识,ID是关键字,_pcTwoPadStone是定义的该对象
# 的标识字串,可任意定义,但不能和其他对象相同。在其他对
# 象要引用该对象时,也必须通过该ID来调用。
Name=单排支承垫石 # 该对象的名称,可与其他对象同名
Type=PointPositioning # 该对象的生成方法,主要方法如下:# PointPositioning—定位组合
# SolidByExtrusion—拉伸体
# LoftSolid—放样体
# Subtract—实体相减
# UniteSubtract—实体相加后相减
# ArcCone—圆弧过渡体
Unit=m # 变量单位
Variable=L(2.2);W(2.2);H1(0.3);H2(0.32);dx(5)
# 指定该对象需要的参数及初始值
Pivot=P0(0.0,0.0,0.0) # 该对象的定位点,可以有多个,实际是相对插入点的偏移值
# 可以由变量或变量表达式组成,但变量必须是Variable中定义
# 的变量。
Part1=_pcBlock(P0(P0);L(L);W(W);H(-H1);@Tx(-dx/2))
Part2=_pcBlock(P0(P0);L(L);W(W);H(-H2);@Tx(dx/2))
# 该对象的构件组成,关键字必须是Element或Part作为前缀,
# “=”后面的是调用的对象名称及其参数,参数的顺序可任意,
# 但参数应该是定位点如P0,P1或调用对象所需要的参数。该例
# 中L,W,H是调用对象_pcBlock所需要的参数(即_pcBlock中
# Variable定义的参数),“()”里是传入参数值,此处的参数值可
# 以是具体的数值(即代替被调用对象的变量初值),也可以是此对
# 象要传入给被调用对象(_pcBlock)的变量参数或变量表达式,如此
# 处L(L)意思是:_pcBlock的L变量等于本对象定义的L变量,
# H(-H1)意思是:_pcBlock的H变量等于本对象的-H1。
# 以“@”开头为系统变量,主要的系统变量如下:
# @Tx:对象生成后沿X轴移动@Tx指定的值
# @Ty:对象生成后沿Y轴移动@Ty指定的值
# @Tz:对象生成后沿Z轴移动@Tz指定的值
# @Rx:对象生成后饶X轴旋转@Rx指定的值,单位为度
# @Ry:对象生成后饶Y轴旋转@Ry指定的值,单位为度
# @Rz:对象生成后饶Z轴旋转@Rz指定的值,单位为度
利用已定义的对象:_pePolygon、_pcBlock、_ pePolyline、_peHalfRoundProfile、_ peHalfRoundProfileWithGap、_peTrapezoidProfile、_ pcCylinder,等定义通桥(2009)4301/4201系列圆端形实体墩(见图1)。
图1 通桥(2009)4301/4201系列圆端形实体墩
#双支承垫石
[Component]
ID=_pcTwoPadStone_yinxi
Name=双支承垫石
Type=PointPositioning
Unit=m
Kind=1201
Variable=L(1.2);W(2.4);H(0.35);dx(4.5)
Pivot=P0(0.0,0.0,0.0);P1(0.0,0.0,-H)
Part1=_pcBlock(P0(P0);L(L);W(W);H(H);@Tx(-dx/2))
Part2=_pcBlock(P0(P0);L(L);W(W);H(H);@Tx(dx/2))
#圆端形带检查孔顶帽
[Component]
ID=_pcHalfRoundCone_yinxi
Name=圆端形台体
Type=LoftSolid
Unit=m
Variable=H(0.5); UP_L(4.8); UP_W(3.4);DW_ L(4.8);DW_W(3.4)
Pivot=P0(0.0, 0.0, 0.0); P1(0.0, 0.0, -H)
Element0= _peHalfRoundProfile(L(UP_L);W(UP_W))
Element1= _peHalfRoundProfile(L(DW_L);W(DW_ W))
[Component]
ID=_pcHalfRoundConeWithGap_yinxi
Name=带泄水管圆端形台体
Type=LoftSolid
Unit=m
Variable=H(0.5); UP_L(4.8); UP_W(3.4);DW_ L(4.8);DW_W(3.4)
Pivot=P0(0.0, 0.0, 0.0); P1(0.0, 0.0, -H)
Element0= _peHalfRoundProfileWithGap(L(UP_ L);W(UP_W))
Element1= _peHalfRoundProfileWithGap(L(DW_ L);W(DW_W))
[Component]
ID=_pcArcCone_yinxi
Name=带泄水管弧形圆端形台体
Type=ArcCone
Unit=m
Variable=H(2.75);UP_L(4.8); UP_W(3.0);DW_ L(3.7);DW_W(2.3);R1(4.651);R2(10.979);d(0.2)
Pivot=P0(0.0, 0.0, 0.0); P1(0.0, 0.0, -H)
Element0= _peHalfRoundProfileWithGap(L(UP_ L);W(UP_W);d(d))
Element1= _peHalfRoundProfileWithGap(L(DW_ L);W(DW_W);d(d))
#检查凹槽
[Component]
ID=_pcTrapezoidSlot_yinxi
Name=梯形槽体
Type=SolidByExtrusion
Unit=m
Variable=L(1.5);W(3.4);H(0.5)
Pivot=P0(0.0, 0.0, 0.0); P1(0,0,-W)
Element= _peTrapezoidProfile(L(L);H(H))
[Component]
ID=_pcArcTop_yinxi
Name=带凹槽的圆端形托盘顶帽
Type=UniteSubtract
Pivot=P0(0., 0., 0.);P1(0.,0.,-djw);P2(0.,0.,djw);P3(0.,0.,zhi_H)
Variable=zhi_L(1.2);zhi_W(2.4);zhi_D(4.5);zhi_ H(0.35);ding_D(3);ding_B(4.8);ding_H(0.15);ding_ kd(0.2);jing_D(2.3);jing_B(3.7);jing_H(2.75);dun_ HR(4.651);dun_ZR(10.979);djw(0.05);cao_L(1.5);cao_H(0.5)
Part1=_pcHalfRoundCone_yinxi(P0(P1);H(ding_ H);UP_L(ding_B);UP_W(ding_D);DW_L(ding_B);DW_ W(ding_D) #顶帽
Part2=_pcHalfRoundCone_yinxi(P0(P2);H(djw);UP_ L(zhi_L+zhi_D);UP_W(0.001);DW_L(Part1.UP_L);DW_ W(Part1.UP_W-2*djw) #排水坡
Part3=_pcHalfRoundCone_yinxi(P0(P0);H(djw);UP_ L(Part2.DW_L);UP_W(Part2.DW_W);DW_L(Part1.UP_ L);DW_W(Part1.UP_W) #倒角
Part4=_pcTwoPadStone_yinxi(P0(P3);L(zhi_ L);W(zhi_W);H(zhi_H);dx(zhi_D) #支承垫石
Part5=_pcArcCone_yinxi(P0(Part1.P1);H(jing_H);UP_ L(ding_B);UP_W(ding_D);DW_L(jing_B);DW_W(jing_ D);R1(dun_HR);R2(dun_ZR);d(ding_kd) #圆弧托盘
Part6=_pcTrapezoidSlot_yinxi(P0(P2);L(cao_ L);W(ding_D+0.5);H(cao_H+0.5);@Rx(90);@Ty(-Part1. UP_W/2);@Tz(0.5) #凹槽
#群桩基础
[Component]
ID=_pcGroupPile_yinxi
Name=群桩
Unit=m
Type=MatrixDistributing
Variable=D(1.25);L(20.0);dx(3.3);dy(4.0);nx(4);ny(2)
Pivot=P0(0.0,0.0,0.0);P1(0.0,0.0,-L)
Element=_pcCylinder(P0(P0);R(D/2);H(L))
#圆端形实体桥墩-圆弧过渡
[Assembly]
ID=_paArcPier_yinxidun
Name=圆端形实体桥墩(托盘圆弧过渡)-银西
Kind=500
Descripition=银西客专预制梁实体墩
Type=PointPositioning
Pivot=P0(0.0, 0.0, 0.0);P1(0.0,0.0,-ding_H-jing_ H-0.05)
Variable=dsH(20);zhi_L(1.2);zhi_W(2.4);zhi_ D(4.5);zhi_H(0.35);ding_D(3);ding_B(4.8);ding_ H(0.15);ding_kd(0.2);jing_D(2.3);jing_B(3.7);jing_ H(2.75);dun_HR(4.651);dun_ZR(10.979);dun_PL(45);ctai_ L(12.0);ctai_W(6.3);ctai_H(2.5);pile_D(1.25);pile_ L(30);pile_DX(3.125);pile_DY(3.75);pile_nx(4);pile_ny(2)
#带凹槽的圆端形托盘顶帽
Part1=_pcArcTop_yinxi(P0(P0);zhi_L(zhi_L);zhi_ W(zhi_W);zhi_D(zhi_D);zhi_H(zhi_H);ding_D(ding_ D);ding_B(ding_B);ding_H(ding_H);ding_kd(ding_kd);jing_ D(jing_D);jing_B(jing_B);jing_H(jing_H);dun_HR(dun_ HR);dun_ZR(dun_ZR))
#墩身
Part2=_pcHalfRoundConeWithGap(P0(P1);H(dsH);UP_L(jing_B);UP_W(jing_D);DW_L(jing_D+2*dsH/dun_ PL);DW_W(jing_B);d(ding_kd))
#承台
Part3=_pcBlock(P0(Part2.P1);L(ctai_L);W(ctai_ W);H(ctai_H)
#桩基础
Part4=_pcGroupPile_yinxi(P0(Part3.P1);D(pile_ D);L(pile_L);dx(pile_DX);dy(pile_DY);nx(pile_nx);ny(pile_ ny))
在启动PowerCivil时,自动加载定义的PCL文件,选择一个三维视图,执行[调用参数化构件]—将在组件页面中显示所定义的实体桥墩—“圆端形实体桥墩(托盘圆弧过渡)—银西”(见图2)。右侧显示出所定义的主控参数,在三维视图中点击页面中[调用]按钮,实体墩的参数化的模型将显示在视图中(见图3)。
图2 调用参数化构件图
选择三维视图中的实体桥墩模型,点击右键—修改标准构件参数页面,修改主控参数后(见图4),执行页面中[修改]按钮,驱动实体模型的修改。
利用所定义的实体桥墩模型,可以创建标准图(见图5),利用标准图创建出银西线实体桥墩参考图,在基于线路创建桥梁模型时,直接选择银西线实体桥墩参考图,则能根据线路高程与地形图相对关系自动确定合理桥墩高度,调用参考图完成桥墩参数实例化。
图3 定义的实体桥墩模型
图4 修改标准构件参数
图5 创建实体桥墩标准图
高效率高质量建模是BIM技术应用的基础,构件的参数化设计是二次开发中需要首要解决的问题。通过对图元Element、构件Component和组件Assembly等PCL格式定义可以建立构件模型的标准库,利用模型库能够快速创建出铁路桥梁模型,该方法能够实现铁路桥梁构件的参数化、关联化、标准化设计。
[1] 蒋慧. Bentley三维软件在建筑设计中的应用[J]. 工程设计与研究,2014(137):19-23.
[2] 高博. 三维协同设计在水利设计院中的应用[J]. 水科学与工程技术,2013(5):94-96.
[3] 庄叶凯. Bentley三维工厂软件在工程设计中的应用[J].有色冶金设计与研究,2009(6):108-109.
[4] 刘奥. 武汉地铁2号线常青花园车辆段BIM设计[J]. 铁路技术创新,2015(3):81-84.
[5] 刘彦明. BIM技术在铁路设计中的推广应用[J]. 铁路技术创新,2015(3):51-54.
刘彦明:中铁第一勘察设计院集团有限公司,教授级高级工程师,陕西 西安,710043
责任编辑 李葳
U442.5+4;TP311
A
1672-061X(2016)03-0036-05