明茂剛
(中鐵十四局集團(tuán)第四工程有限公司 山東濟(jì)南 250002)
BIM技術(shù)的應(yīng)用最先開始于建筑領(lǐng)域,并逐步延伸至交通施工領(lǐng)域,且進(jìn)展速度很快。目前國內(nèi)外建設(shè)高速公路隧道方面BIM應(yīng)用主要體現(xiàn)在參數(shù)化設(shè)計(jì)、施工流程仿真、工作量計(jì)算等。Revit是BIM應(yīng)用的核心軟件,在運(yùn)用其創(chuàng)建三維模型時,既可以生成幾何信息,又可以導(dǎo)入、導(dǎo)出非幾何信息。但在公路設(shè)計(jì)領(lǐng)域,僅使用Revit無法達(dá)到預(yù)想的建模要求,工程人員急需尋找一種新的方法以實(shí)現(xiàn)橋梁、隧道這類存在多種異形結(jié)構(gòu)形式的建模意圖[1]。Dynamo是Revit的功能增強(qiáng)器,是一個程序開發(fā)平臺,和Revit API一樣,它可以創(chuàng)造出Revit并不具有的功能。比如Dynamo所具有的參數(shù)化設(shè)計(jì)、自動化重復(fù)性操作、節(jié)點(diǎn)自定義的優(yōu)點(diǎn),既能夠在編程的同時實(shí)時生成模型,使得建立的模型實(shí)現(xiàn)可視化,又避免了數(shù)據(jù)交換帶來的諸多問題,使得Revit作為信息處理的中樞功能更強(qiáng)大。Dynamo能夠直觀地查看腳本行為、自定義邏輯并使用各種文本編程語言,且支持在視覺程序設(shè)計(jì)流程中工作。它通過自主鏈接節(jié)點(diǎn)以定義邏輯關(guān)系并生成能滿足特定要求的自定義的動作序列,使得從處理數(shù)據(jù)至產(chǎn)生幾何圖形的過程可實(shí)時實(shí)現(xiàn),不需要編寫一句代碼[2-3],享受節(jié)點(diǎn)帶來的便捷。
汪勇[4]等在BIM橋梁工程設(shè)計(jì)中介紹了將可視化編程和橋梁工程設(shè)計(jì)相結(jié)合的方法,并在總結(jié)出一些很好的研究成果。程文碩等[5]利用參數(shù)化的自適應(yīng)族技術(shù)和Dynamo程序,可迅速建立全新的隧道運(yùn)維工作模式,并利用Dynamo、Revit以及自適應(yīng)族技術(shù)完成了對隧道模型幾何參數(shù)的自主調(diào)節(jié),實(shí)現(xiàn)施工期信息一鍵添加和隧道線體的動態(tài)比選等新功能。
本文采用Revit+Dynamo的參數(shù)化建模方法,對南昌某深長越湖隧道建立模型,使得建模效率大幅提高。并且在整合模型過程中,對不同斷面的模型銜接進(jìn)行了優(yōu)化設(shè)計(jì),使其自然過渡,該方法可為類似工程提供技術(shù)參考。
在三維模型建立過程中,利用Revit直接建模,雖然可以快速實(shí)現(xiàn)對常規(guī)模型的創(chuàng)建,但在一些斷面形式復(fù)雜多變的隧道模型創(chuàng)建過程中,由于結(jié)構(gòu)斷面變化大、曲面多,以及結(jié)構(gòu)形式復(fù)雜,異形結(jié)構(gòu)數(shù)量多,已經(jīng)無法通過簡單的操作完成模型建立,只使用Revit進(jìn)行建模的缺點(diǎn)逐漸暴露出來[6]。而Dynamo是使用各種文字的程序設(shè)計(jì)語言,通過編寫Script的方法完成建模,對于空間曲面建模以及不規(guī)則的曲面建模都可以輕松實(shí)現(xiàn)。Dynamo的每個節(jié)點(diǎn)都是一個功能模塊,可以實(shí)現(xiàn)繪圖建模、數(shù)學(xué)運(yùn)算、文件讀寫、參數(shù)修改及信息數(shù)據(jù)的管理等功能,并且通過連線將某一節(jié)點(diǎn)的執(zhí)行結(jié)果傳遞給下一節(jié)點(diǎn)。同時因每個工程結(jié)構(gòu)的獨(dú)有性,利用Revit得到的模型會呈現(xiàn)出一次性的特點(diǎn)。但是Dynamo編輯的Script序列可以重復(fù)運(yùn)用于同類建筑的模型建立過程中,只需要更改相應(yīng)的模型中心線以及族庫就可以直接運(yùn)行,可實(shí)現(xiàn)對類似模型的快速創(chuàng)建,可復(fù)制性高。另外,需要注意到的是,模型建立之后發(fā)現(xiàn)錯誤時,Dynamo可以直接通過調(diào)整族參數(shù)的方法修正錯誤,避免了傳統(tǒng)使用Revit中速度慢、易出錯的弊端[7]。
另外,Dynamo幫助Revit與外界溝通。在信息寫出功能方面,Revit僅有圖紙生成、明細(xì)表生成的功能[8],使得信息寫入寫出功能比較薄弱,缺乏模型內(nèi)信息輸出的高級功能。Dynamo能夠彌補(bǔ)Revit在這方面的不足,它本身自帶的CodeBlock和List功能,可以方便自己創(chuàng)建數(shù)據(jù);此外,其自帶的Excel等節(jié)點(diǎn)包,能夠和諸如Excel等外部軟件實(shí)現(xiàn)實(shí)時交互,簡便快捷。
參數(shù)化建模不僅可以只使用Dynamo單獨(dú)編程建模,也可以采用Revit+Dynamo組合建模。本文采用后者,如圖1所示。此次建?;赗evit平臺實(shí)現(xiàn)最終的模型建立,Dynamo則作為Revit的一個插件使用。
圖1 建模思路
首先利用Dynamo與例如 Excel、C3D等外界軟件交互便捷的優(yōu)勢獲取模型基礎(chǔ)信息,然后在Dynamo中進(jìn)行可視化編程,成功運(yùn)行后再將Dynamo中所生成的模型與Revit相關(guān)聯(lián)[9]。這種以Dynamo為中介使Revit與外界軟件得以溝通的便捷建模形式可廣泛應(yīng)用于復(fù)雜異形工程的模型建立中。
通過自由拖拽及連接程序設(shè)計(jì)所需要的節(jié)點(diǎn),便能以“所見即所得”的形式進(jìn)行模型建立,節(jié)點(diǎn)可以來自于Dynamo的節(jié)點(diǎn)庫,也可以是使用者為實(shí)現(xiàn)特定功能對系統(tǒng)節(jié)點(diǎn)再開發(fā)的自定義節(jié)點(diǎn)[10]?;谶@種設(shè)計(jì)模式,實(shí)現(xiàn)隧道工程的建模主要包括:線路模型的數(shù)據(jù)采集及建立、模型分段及族庫的創(chuàng)建、Dynamo程序的編制。建模前,可以先將包括中心線和結(jié)構(gòu)的位置、高程等要素有序記錄于Excel表中;建模過程中,由Dynamo程序讀取Excel表中信息進(jìn)行參數(shù)化建模。具體技術(shù)路線如圖2所示。
圖2 技術(shù)路線
南昌艾溪湖隧道工程項(xiàng)目,全長2 208 m,其中985 m為湖中隧道。上部為雙向六車道公路隧道,下部為雙向地鐵隧道,并且上部隧道底板與下部隧道頂板不共板,造成上下隧道間距、下部左右線地鐵隧道的間距不一致,湖中、湖西、湖東三段各里程的結(jié)構(gòu)剖面多樣。同時因地質(zhì)條件影響,隧道的風(fēng)機(jī)、雨水泵房的設(shè)置使得各里程結(jié)構(gòu)更具有特殊性,如圖3所示。
圖3 隧道橫截面
4.2.1 生成線路模型
線路模型在后期生成隧道構(gòu)件模型時起導(dǎo)向作用,利用隧道中心線建立線路模型并導(dǎo)入Revit一般有兩種方法:一個是根據(jù)C3D的數(shù)據(jù)報(bào)告,通過Excel對隧道中心線坐標(biāo)及高程等相關(guān)信息進(jìn)行數(shù)據(jù)處理,形成最終所需的曲線坐標(biāo);然后在Dynamo中輸入相關(guān)節(jié)點(diǎn)命令將Excel中的坐標(biāo)運(yùn)行生成建模所需的中心線;最終根據(jù)程序驅(qū)動將Dynamo中生成的中心線輸出到Revit。第二種則是在C3D中將其中心線轉(zhuǎn)成帶有高程的樣條曲線,然后再將樣條曲線另存為DWG格式的文檔導(dǎo)入Revit中[11]。后續(xù)處理方式與第一種相同,只是所用節(jié)點(diǎn)命令不同。本文采用第一種方法,具體節(jié)點(diǎn)名命令如圖4所示。
圖4 線路模型節(jié)點(diǎn)命令流
4.2.2 模型分段與族庫的建立
本項(xiàng)目采用Revit+Dynamo的建模方式來完成深長越湖隧道模型的建立。盡管隧道工程為帶狀分布,但同一類型構(gòu)件的放置規(guī)律固定,使用編程把信息位置輸入放置。考慮到整合模型時的運(yùn)行效率,確保軟硬件運(yùn)行性能的流暢,將模型拆分為上部公路隧道結(jié)構(gòu)、下部地鐵廊道結(jié)構(gòu)。最后結(jié)合本項(xiàng)目變截面多的特點(diǎn),對模型截面明顯變化處再次進(jìn)行合理分段,以單個文件大小不超過100 M為宜。
因?yàn)镽evit的基礎(chǔ)族庫中并不包括隧道專業(yè)族,所以建立其參數(shù)化模型的前提條件就是要構(gòu)建一個隧道家族庫,而構(gòu)建完整家族庫時則需要根據(jù)拆分后的構(gòu)件級模型依次構(gòu)建族[12]。而公制常規(guī)模型中在空間線上的點(diǎn)既無法自動適應(yīng),也無法增加自動適應(yīng)點(diǎn)。與之比較,自適應(yīng)族可以通過調(diào)整族的屬性和工作面,達(dá)到參數(shù)調(diào)整要求,對復(fù)雜構(gòu)件的創(chuàng)作也更加靈活。所以,可以在本項(xiàng)目背景下選用自適應(yīng)族構(gòu)建隧道族庫。
4.2.3 模型結(jié)構(gòu)的建立
由于隧道太長,本文只截取其中一段CDk2+49.41~CDk2+66.701進(jìn)行建模分析,其他部分方法一致。隧道上部建模過程主要步驟如下:通過上述中心線的確定,然后在Dynamo中輸入Family Types節(jié)點(diǎn)命令將創(chuàng)建的自適應(yīng)族導(dǎo)入Dynamo中,并放在相應(yīng)位置。有些自適應(yīng)族導(dǎo)入后需要矢量旋轉(zhuǎn),為此需輸Geometry.Rotate節(jié)點(diǎn)命令對其調(diào)整角度。最后采用節(jié)點(diǎn)命令Solid.ByLofe將所輸入的自適應(yīng)族進(jìn)行放樣生成上部結(jié)構(gòu)模型,具體命令流如圖5所示。
圖5 隧道上部結(jié)構(gòu)模型命令流
因?yàn)樗淼罏榭招慕Y(jié)構(gòu),為此必須將上述實(shí)體模型的內(nèi)外輪廓進(jìn)行幾何差積[13],將模型中間部分去掉。如果去掉部分成孔個數(shù)為1,可使用 Solid.Difference節(jié)點(diǎn)命令使其進(jìn)行布爾差值運(yùn)算,也可采用Solid.DifferenceAll節(jié)點(diǎn)命令;但如果成孔個數(shù)大于1則只能采用后者,否則不能構(gòu)建所需的孔型。隧道上部結(jié)構(gòu)建模如圖6所示。
圖6 隧道上部結(jié)構(gòu)建模
同理,其他組段結(jié)構(gòu)及隧道下部結(jié)構(gòu)建模過程與此一致,按照以上方法所建立的模型見圖7,至此Dynamo建模結(jié)束。最后采用 Springs.FamilyInstance.ByGeometry節(jié)點(diǎn)命令,完成Dynamo圖元到Revit圖元的轉(zhuǎn)換。
圖7 隧道下部結(jié)構(gòu)建模
4.2.4 模型整合
模型的最終整合只需要在Revit中根據(jù)二維圖紙中各段結(jié)構(gòu)模型的位置關(guān)系將其以鏈接的形式匯總到項(xiàng)目文件即可,斷面形式不同的族因自適應(yīng)族參數(shù)化的特征,放樣過程中會自動進(jìn)行融合,結(jié)合以變截面處為節(jié)點(diǎn)進(jìn)行分段放樣的方式,可以優(yōu)化模型的銜接與過渡。
本文采用Revit+Dynamo的交互式建模方式對深長越湖隧道進(jìn)行建模分析,過程雖然看似復(fù)雜,但是建立了一套便捷易懂的節(jié)點(diǎn)命令,導(dǎo)入自適應(yīng)族后,能夠快速生成自己所需要的任意里程的三維模型。具體有以下優(yōu)勢:
(1)Dynamo可以利用其自帶的節(jié)點(diǎn)包和諸如Excel等軟件實(shí)現(xiàn)實(shí)時交互,幫助Revit與外界溝通。
(2)與單獨(dú)使用Revit建模相比,Revit+Dynamo的參數(shù)化建模方式使異形結(jié)構(gòu)的模型建立更加靈活,速度更快,更優(yōu)化了結(jié)構(gòu)變截面間的銜接。
目前信息化、智慧化在土建行業(yè)快速發(fā)展成為未來趨勢,Revit+Dynamo的建模方式在未來也會發(fā)揮越來越重要的作用。