■ 劉彥明
基于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