白嬌嬌 呂???,2 孫培培
(1. 石家莊鐵道大學交通運輸學院,050043,石家莊;2.河北省交通安全與控制重點實驗室,050043,石家莊,第一作者,碩士研究生)
以三維數字技術為基礎的建筑信息模型(BIM)技術,集成了工程項目各種相關信息的數據模型,具有多維化和協同性等特點,并貫穿設計、施工、運營維護整個工程生命周期,對提高城市軌道交通設計、施工和運營水平,促進軌道交通設計全面信息化和可視化,具有重要的應用價值[1]。國內已經有多個城市軌道交通工程項目正積極推進BIM技術應用[2-7]。
城市軌道交通線路作為一種典型的長帶狀線形工程,涉及的專業多、模型復雜、模型數據量極大,在應用BIM技術過程中,面臨著以下兩個關鍵問題需要解決:
1) 在城市軌道交通規劃設計中,通常需要對設計方案不斷的修改完善,因此,對于大量復雜構件族,單純手工利用BIM軟件建模方式存在建模和修改工作量大、效率低,模型拼裝困難,不能滿足不斷修改完善設計的要求。
2) 城市軌道交通一般長為幾十km,所涉及的完整的BIM數據量極大,目前即使高端圖形工作站在顯示和加載大數據量的復雜BIM時,也存在加載過程慢、瀏覽顯示卡滯等問題,嚴重影響模型的應用。
針對上述問題,采用Revit BIM軟件平臺及其參數化技術,并利用其二次開發技術、參數建模方法、構件參數數據庫存儲技術和線路區間自動劃分方法等,實現城市軌道交通線路構件族的快速創建和線路整體BIM的自動拼裝。提高城市軌道交通線路設計質量和效率,為解決城市軌道交通BIM應用提供解決方案。
Revit軟件作為目前一種主流的BIM軟件,具有強大的二次開發功能,使用二次開發技術可以解決或者簡化很多人工不能完成的操作。特別是重復量較大、規律性很強的工作,能夠大大簡化相應的過程,高效、快速的實現需求功能。利用Revit API軟件、C#語言進行Revit軟件的二次開發來實現族模型的自動創建和搭建。
Revit軟件的二次開發需要三個必要條件,分別是Revit系列產品、Revit SDK以及Visual Studio軟件。Revit API有兩種開發工具:VSTA(Visual Studio Tools for Application)和Visual Studio。兩種開發工具對比如表1所示。

表1 Revit API的兩種開發工具
有兩種方式來擴展Revit的功能,即外部命令方式和外部應用方式。兩種方式如下:
1) 外部命令方式:從IExternalCommand接口派生,重載IExternalCommand.Execute()的方法添加功能代碼來實現命令,應用最為廣泛。
2) 外部應用方式:從IExternal Application接口派生。該方式可以添加菜單、工具條或者其他的初始化命令,在啟動及關閉Revit的時候自動執行,應用較少。
以Visual Studio 2010為開發平臺,采用外部命令IExternal Command接口派生方法的Revit軟件二次開發流程如圖1所示。

圖1 Revit軟件二次開發流程
城市軌道交通線路結構部件主要包括橋梁、隧道、道床、軌枕、鋼軌、扣件等。利用Revit軟件平臺實現城市軌道交通線路BIM應用及模型拼裝,首先構建線路結構部件的族,完成構件參數化建模。一種方式是利用Revit軟件平臺,手工完成建模;另外一種方式是通過BIM二次開發,通過程序自動創建線路構件族。
參數化有兩方面的含義:一是指構建的幾何尺寸的參數化,通過對尺寸添加標簽就可以通過修改尺寸標注來修改結構部件尺寸,通過控制參數來改變結構部件的形狀;二是指構件之間的參數化,即某一構件的刪除、修改尺寸、移動等操作會引起與之相關聯的構件變化。
采用“公制常規模型.rft”族樣板文件和“自適應公制常規模型.rft”族樣板創建的部分構件族如圖2~圖7所示。


a) 一字型

a) II型彈條


a) 環框式洞門

a) 洞身樣式1
對于城市軌道交通而言,BIM需要大量的模型構件,通用方法是2.1節所示的手工建立各個構件族,模型構件的修改仍需要手工對模型進行修改,效率低。利用Revit API的豐富接口,將構件參數存儲到外部文件(如文本文件、Excel或數據庫中),讀取外部數據文件,實現族輪廓、拉伸、放樣等的自動創建,并根據參數實現模型構件的自動修改和生成。
城市軌道交通線路模型數據量極大,若一次性完成整條線路模型的加載、組裝,整體模型瀏覽和查看不順暢,嚴重影響模型使用效果。因此,根據線路設計信息,將線路劃分為多個區間,劃分規則如下:
1) 首先根據線路敷設方式將線路里程劃分為不同區間;
2) 若1)的區間過長(如線路均為地下隧道敷設),則進一步按一定的里程長度劃分多個子區間。劃分示意圖如圖8所示。

圖8 按線路里程劃分為不同子區間示意圖
最后,根據線路各區間的線路中心線設計數據信息,按里程逐一加載各區間的線路模型(橋梁、隧道、軌道結構模型等)到線路中準確位置上,完成線路整體模型組裝。加載的基本流程如圖9所示。
為了實現城市軌道交通線路的BIM的組裝,首先需要確定加載區間,并根據該區間和獲取對應的線路的空間位置信息,程序界面如圖10所示。在圖10中可選擇相應的加載區間。其中各區間的中心線設計數據已存儲在數據庫中,可自動讀取。
將創建的族加載到項目中后,通過FilteredElement Collector函數收集所有的元素,遍歷所有的族,找到族后,根據空間關系,放置在相應的位置。操作步驟如下:
1) 將建好的橋梁族、隧道族、軌道族以及扣件等載入到項目中。

圖9 加載族模型流程圖

圖10 線路數據管理
2) 根據線路中心線數據,在Revit中生成線路中心線模型。
3) 拾取線路中線作為一條線路,然后選中。
4) 使用RevitAPI,以.NET平臺編譯程序,實現族的自動放置和拼裝。
部分運行結果如圖11~圖13所示。


圖12 路基鋪裝軌道的運行結果

基于線路設計數據,采用Revit BIM平臺,利用Revit API軟件平臺二次開發技術,通過控制參數化方法和族模型外部數據存儲方法,實現了線路結構物族的快速創建和模型的自動拼接。該建模方法能夠方便地通過改變族模型的控制參數,來修改族模型以更方便地適應項目的需要。根據線路敷設方式劃分線路區間,通過區間分段加載,利用Revit軟件二次開發技術,實現城市軌道交通線路所有結構部件BIM的自動組裝,建立了城市軌道交通線路三維BIM的快速拼接方法。為基于Revit平臺的線路模型深化設計奠定了基礎。