白嬌嬌 呂希奎,2 孫培培
(1. 石家莊鐵道大學(xué)交通運輸學(xué)院,050043,石家莊;2.河北省交通安全與控制重點實驗室,050043,石家莊,第一作者,碩士研究生)
以三維數(shù)字技術(shù)為基礎(chǔ)的建筑信息模型(BIM)技術(shù),集成了工程項目各種相關(guān)信息的數(shù)據(jù)模型,具有多維化和協(xié)同性等特點,并貫穿設(shè)計、施工、運營維護整個工程生命周期,對提高城市軌道交通設(shè)計、施工和運營水平,促進軌道交通設(shè)計全面信息化和可視化,具有重要的應(yīng)用價值[1]。國內(nèi)已經(jīng)有多個城市軌道交通工程項目正積極推進BIM技術(shù)應(yīng)用[2-7]。
城市軌道交通線路作為一種典型的長帶狀線形工程,涉及的專業(yè)多、模型復(fù)雜、模型數(shù)據(jù)量極大,在應(yīng)用BIM技術(shù)過程中,面臨著以下兩個關(guān)鍵問題需要解決:
1) 在城市軌道交通規(guī)劃設(shè)計中,通常需要對設(shè)計方案不斷的修改完善,因此,對于大量復(fù)雜構(gòu)件族,單純手工利用BIM軟件建模方式存在建模和修改工作量大、效率低,模型拼裝困難,不能滿足不斷修改完善設(shè)計的要求。
2) 城市軌道交通一般長為幾十km,所涉及的完整的BIM數(shù)據(jù)量極大,目前即使高端圖形工作站在顯示和加載大數(shù)據(jù)量的復(fù)雜BIM時,也存在加載過程慢、瀏覽顯示卡滯等問題,嚴重影響模型的應(yīng)用。
針對上述問題,采用Revit BIM軟件平臺及其參數(shù)化技術(shù),并利用其二次開發(fā)技術(shù)、參數(shù)建模方法、構(gòu)件參數(shù)數(shù)據(jù)庫存儲技術(shù)和線路區(qū)間自動劃分方法等,實現(xiàn)城市軌道交通線路構(gòu)件族的快速創(chuàng)建和線路整體BIM的自動拼裝。提高城市軌道交通線路設(shè)計質(zhì)量和效率,為解決城市軌道交通BIM應(yīng)用提供解決方案。
Revit軟件作為目前一種主流的BIM軟件,具有強大的二次開發(fā)功能,使用二次開發(fā)技術(shù)可以解決或者簡化很多人工不能完成的操作。特別是重復(fù)量較大、規(guī)律性很強的工作,能夠大大簡化相應(yīng)的過程,高效、快速的實現(xiàn)需求功能。利用Revit API軟件、C#語言進行Revit軟件的二次開發(fā)來實現(xiàn)族模型的自動創(chuàng)建和搭建。
Revit軟件的二次開發(fā)需要三個必要條件,分別是Revit系列產(chǎn)品、Revit SDK以及Visual Studio軟件。Revit API有兩種開發(fā)工具:VSTA(Visual Studio Tools for Application)和Visual Studio。兩種開發(fā)工具對比如表1所示。
表1 Revit API的兩種開發(fā)工具
有兩種方式來擴展Revit的功能,即外部命令方式和外部應(yīng)用方式。兩種方式如下:
1) 外部命令方式:從IExternalCommand接口派生,重載IExternalCommand.Execute()的方法添加功能代碼來實現(xiàn)命令,應(yīng)用最為廣泛。
2) 外部應(yīng)用方式:從IExternal Application接口派生。該方式可以添加菜單、工具條或者其他的初始化命令,在啟動及關(guān)閉Revit的時候自動執(zhí)行,應(yīng)用較少。
以Visual Studio 2010為開發(fā)平臺,采用外部命令I(lǐng)External Command接口派生方法的Revit軟件二次開發(fā)流程如圖1所示。
圖1 Revit軟件二次開發(fā)流程
城市軌道交通線路結(jié)構(gòu)部件主要包括橋梁、隧道、道床、軌枕、鋼軌、扣件等。利用Revit軟件平臺實現(xiàn)城市軌道交通線路BIM應(yīng)用及模型拼裝,首先構(gòu)建線路結(jié)構(gòu)部件的族,完成構(gòu)件參數(shù)化建模。一種方式是利用Revit軟件平臺,手工完成建模;另外一種方式是通過BIM二次開發(fā),通過程序自動創(chuàng)建線路構(gòu)件族。
參數(shù)化有兩方面的含義:一是指構(gòu)建的幾何尺寸的參數(shù)化,通過對尺寸添加標簽就可以通過修改尺寸標注來修改結(jié)構(gòu)部件尺寸,通過控制參數(shù)來改變結(jié)構(gòu)部件的形狀;二是指構(gòu)件之間的參數(shù)化,即某一構(gòu)件的刪除、修改尺寸、移動等操作會引起與之相關(guān)聯(lián)的構(gòu)件變化。
采用“公制常規(guī)模型.rft”族樣板文件和“自適應(yīng)公制常規(guī)模型.rft”族樣板創(chuàng)建的部分構(gòu)件族如圖2~圖7所示。
a) 一字型
a) II型彈條
a) 環(huán)框式洞門
a) 洞身樣式1
對于城市軌道交通而言,BIM需要大量的模型構(gòu)件,通用方法是2.1節(jié)所示的手工建立各個構(gòu)件族,模型構(gòu)件的修改仍需要手工對模型進行修改,效率低。利用Revit API的豐富接口,將構(gòu)件參數(shù)存儲到外部文件(如文本文件、Excel或數(shù)據(jù)庫中),讀取外部數(shù)據(jù)文件,實現(xiàn)族輪廓、拉伸、放樣等的自動創(chuàng)建,并根據(jù)參數(shù)實現(xiàn)模型構(gòu)件的自動修改和生成。
城市軌道交通線路模型數(shù)據(jù)量極大,若一次性完成整條線路模型的加載、組裝,整體模型瀏覽和查看不順暢,嚴重影響模型使用效果。因此,根據(jù)線路設(shè)計信息,將線路劃分為多個區(qū)間,劃分規(guī)則如下:
1) 首先根據(jù)線路敷設(shè)方式將線路里程劃分為不同區(qū)間;
2) 若1)的區(qū)間過長(如線路均為地下隧道敷設(shè)),則進一步按一定的里程長度劃分多個子區(qū)間。劃分示意圖如圖8所示。
圖8 按線路里程劃分為不同子區(qū)間示意圖
最后,根據(jù)線路各區(qū)間的線路中心線設(shè)計數(shù)據(jù)信息,按里程逐一加載各區(qū)間的線路模型(橋梁、隧道、軌道結(jié)構(gòu)模型等)到線路中準確位置上,完成線路整體模型組裝。加載的基本流程如圖9所示。
為了實現(xiàn)城市軌道交通線路的BIM的組裝,首先需要確定加載區(qū)間,并根據(jù)該區(qū)間和獲取對應(yīng)的線路的空間位置信息,程序界面如圖10所示。在圖10中可選擇相應(yīng)的加載區(qū)間。其中各區(qū)間的中心線設(shè)計數(shù)據(jù)已存儲在數(shù)據(jù)庫中,可自動讀取。
將創(chuàng)建的族加載到項目中后,通過FilteredElement Collector函數(shù)收集所有的元素,遍歷所有的族,找到族后,根據(jù)空間關(guān)系,放置在相應(yīng)的位置。操作步驟如下:
1) 將建好的橋梁族、隧道族、軌道族以及扣件等載入到項目中。
圖9 加載族模型流程圖
圖10 線路數(shù)據(jù)管理
2) 根據(jù)線路中心線數(shù)據(jù),在Revit中生成線路中心線模型。
3) 拾取線路中線作為一條線路,然后選中。
4) 使用RevitAPI,以.NET平臺編譯程序,實現(xiàn)族的自動放置和拼裝。
部分運行結(jié)果如圖11~圖13所示。
圖12 路基鋪裝軌道的運行結(jié)果
基于線路設(shè)計數(shù)據(jù),采用Revit BIM平臺,利用Revit API軟件平臺二次開發(fā)技術(shù),通過控制參數(shù)化方法和族模型外部數(shù)據(jù)存儲方法,實現(xiàn)了線路結(jié)構(gòu)物族的快速創(chuàng)建和模型的自動拼接。該建模方法能夠方便地通過改變族模型的控制參數(shù),來修改族模型以更方便地適應(yīng)項目的需要。根據(jù)線路敷設(shè)方式劃分線路區(qū)間,通過區(qū)間分段加載,利用Revit軟件二次開發(fā)技術(shù),實現(xiàn)城市軌道交通線路所有結(jié)構(gòu)部件BIM的自動組裝,建立了城市軌道交通線路三維BIM的快速拼接方法。為基于Revit平臺的線路模型深化設(shè)計奠定了基礎(chǔ)。