林方怡 周傳輝 黃振華
(1.武漢科技大學(xué)城市建設(shè)學(xué)院,武漢 430000;2.陜西大唐高科機(jī)電科技有限公司,西安 710000)
隨著新型城鎮(zhèn)化的不斷推進(jìn),傳統(tǒng)的建造方式已難以適應(yīng)現(xiàn)代建筑業(yè)轉(zhuǎn)型發(fā)展的需要,大力推廣裝配式建筑已成為國(guó)家戰(zhàn)略。裝配式機(jī)電是機(jī)電安裝領(lǐng)域的一種新趨勢(shì),利用工廠化預(yù)制組件完成機(jī)電系統(tǒng)安裝,能達(dá)到建筑產(chǎn)品節(jié)能目的,實(shí)現(xiàn)環(huán)保及綠色建造[1]。
Dynamo 是一個(gè)開(kāi)源可視化編程平臺(tái),運(yùn)行時(shí)作為其他軟件的插件,允許工程師可以使用不同的腳本語(yǔ)言(C#、JAVA、Python 等)自定義腳本的邏輯行為。Dynamo 作為Revit 的輔助工具,有利于數(shù)據(jù)信息的分析,填補(bǔ)了處理Revit 模型在可視化方法及管理數(shù)據(jù)信息方面的空缺,使BIM 技術(shù)的應(yīng)用更加完善[2]。
目前,適用于機(jī)電預(yù)制管道設(shè)計(jì)出圖的通用參數(shù)化工具比較少,文中通過(guò)Dynamo 可視化編程實(shí)現(xiàn)了相關(guān)節(jié)點(diǎn)的連接,建筑模型信息的調(diào)用、參數(shù)化族的建立和邏輯數(shù)據(jù)處理,得到了模型管道及管件的選取、成組及加工圖輸出等一系列自動(dòng)處理方法,該方法在裝配式機(jī)電管道設(shè)計(jì)中具有良好的應(yīng)用價(jià)值。
常規(guī)的機(jī)電預(yù)制管道設(shè)計(jì)出圖的方法是通過(guò)Revit軟件,主要用于CAD 二維圖紙的翻模,其作用僅限于輔助設(shè)計(jì)和校核圖紙,在施工階段中沒(méi)有真正發(fā)揮實(shí)際作用[3]。
Revit 軟件本身具有模型成組功能,如圖1 所示。利用該按鍵功能,可達(dá)到在機(jī)電管道上建立模塊或者部件的目的。操作簡(jiǎn)便:選擇需要的模塊,點(diǎn)擊建立組件,隨后可選擇組件并產(chǎn)生視圖。但機(jī)電管道設(shè)計(jì)中會(huì)涉及到幾百根、幾千根管道及其附件,如果每根管道都要手動(dòng)拆分并成組,就會(huì)造成龐大的工作量[4]。
圖1 創(chuàng)建成組鍵
可視化編程方法的具體實(shí)施流程就是在軟件中將建立的達(dá)到預(yù)制精度的Revit 模型通過(guò)一定功能要求組合為預(yù)制管段,創(chuàng)建成部件(AssemblyInstance),創(chuàng)建部件視圖(AssemblyView),將部件視圖拖放在創(chuàng)建好的圖紙中,然后再進(jìn)行詳盡的標(biāo)注工作。
參數(shù)化設(shè)計(jì)流程利用了 Dynamo、Revit、Python三者之間的交互性,以Python 編寫代碼為源數(shù)據(jù)貫穿Dynamo 程序的各個(gè)環(huán)節(jié),實(shí)現(xiàn)相關(guān)節(jié)點(diǎn)的連接、建筑模型信息的調(diào)用以及參數(shù)化族的建立和邏輯數(shù)據(jù)處理。首先根據(jù)預(yù)制規(guī)則及運(yùn)輸與安裝要求,選定機(jī)房?jī)?nèi)管道和管件進(jìn)行拆分;再利用Dynamo 節(jié)點(diǎn)所選擇的管道和管件建立分組;最后利用Dynamo 程序?qū)崿F(xiàn)了部件的三維視圖,明細(xì)表和平面詳圖的生成[5],如圖2所示。
圖2 參數(shù)化設(shè)計(jì)流程
使用Python Script 生成管路部件加工圖方法如下:
(1)管線部件腳本接口
點(diǎn)同代碼塊一樣,是可視化編程環(huán)境的腳本接口。在 Python Script 中編寫 Python 的代碼,即利用“Python Script 選擇多個(gè)圖元”節(jié)點(diǎn)選取機(jī)房中的管道及管件[6]。如圖3 所示。
圖3 “Python Script 選擇多個(gè)圖元”節(jié)點(diǎn)的代碼
在Revit 的機(jī)電模型中被選擇的管道及管件會(huì)高亮顯示,如圖4 所示。
圖4 選擇管道及管件
(2)創(chuàng)建部件并輸入其名稱
使用“Python Script 創(chuàng)建部件并修改名稱”節(jié)點(diǎn),將被選取的管道及管件組成預(yù)制構(gòu)件,在Dynamo 程序中把預(yù)制構(gòu)件取名為“部件”[7],如圖5 所示。
圖5 創(chuàng)建部件
在“Code Black”輸入第一組被拆分部件的名稱即“01”,使用節(jié)點(diǎn)“Boolean”來(lái)提供“True”和“False”的選項(xiàng),選擇“True”即每次運(yùn)行程序,Revit 中的模型管道都會(huì)被重新選擇,反之亦然。其結(jié)果在Revit 的項(xiàng)目瀏覽器中生成部件視圖列表,如圖6 所示。
圖6 部件視圖列表
(3)臨時(shí)隱藏部件
從隱藏圖元到再創(chuàng)建新的部件,這一過(guò)程中需要用到邏輯判斷及數(shù)學(xué)運(yùn)算,通過(guò)“Python Script 臨時(shí)隱藏圖元”節(jié)點(diǎn)編寫的代碼,避免已創(chuàng)建部件的構(gòu)件影響下一步選擇構(gòu)件,將其在視圖中臨時(shí)隱藏,如圖7所示[8]。
圖7 臨時(shí)隱藏部件
利用 Dynamo 自帶“Views”節(jié)點(diǎn)選擇三維視圖后,在Revit 三維界面中生成臨時(shí)隱藏圖元,并通過(guò)Dynamo 程序執(zhí)行“選擇圖元→組成部件→隱藏圖元→再次選擇圖元、組成部件”的過(guò)程。
(4)創(chuàng)建部件視口
組成部件之后,利用“Python Script 創(chuàng)建部件視圖”節(jié)點(diǎn)給部件創(chuàng)建視圖窗口,此節(jié)點(diǎn)如圖8 所示。
圖8 創(chuàng)建部件視口節(jié)點(diǎn)
利用“Python Script 創(chuàng)建部件視圖”節(jié)點(diǎn)編寫的代碼“view1”“view2”“view3”,分別代表創(chuàng)建了三維正交、平面詳圖、明細(xì)表等三個(gè)視圖窗口,如圖9 所示。
圖9 “Python Script 創(chuàng)建部件視圖”節(jié)點(diǎn)的代碼
(5)Dynamo 獲取公制圖紙高度參數(shù)
由于在Revit 的機(jī)械樣板中沒(méi)有自帶公制圖紙,因此就需要在族庫(kù)中找到A0 公制圖紙手動(dòng)載入到機(jī)械樣板中。Revit 中載入A0 公制圖紙之后,在Dynamo模型中的Family Types 節(jié)點(diǎn)選擇“A0 公制”,并使用Element.GetParameterValueByName 節(jié)點(diǎn),讀取公制圖紙的高度參數(shù),如圖10 所示。
圖10 讀取公制圖紙高度參數(shù)
(6)自定義設(shè)置視圖在公制圖紙中的位置
在最后出圖之前,還需要自定義設(shè)置三維正交、平面詳圖、明細(xì)表三個(gè)視圖在公制圖紙中的位置,如圖11 所示。
圖11 設(shè)置視圖在圖紙中的位置
在Code Block 節(jié)點(diǎn)輸入“100”表示三維正交圖距離A0 公制圖紙的邊框100mm;“250”表示三個(gè)視圖之間相隔的距離為250mm;“a/2”表示三個(gè)視圖放置在公制圖紙高度的1/2 處。
(7)將視圖放置在圖紙中
利用 Element.SetPa-rameterByName 節(jié)點(diǎn),將獲取的圖例類型,替換為實(shí)際的族類型,再通過(guò)List.OfRepeateditem 節(jié)點(diǎn)重復(fù)執(zhí)行三次對(duì)部件參數(shù)的處理,最后將處理好的參數(shù)輸入到“Python Script 視口放入圖紙”節(jié)點(diǎn)中生成三個(gè)視圖并放入公制圖紙中,如圖12所示[9]。
圖12 視圖放入圖
(8)Dynamo 輔助生成部件加工圖
部件加工圖已經(jīng)在Revit 中生成,部件的三維視圖、明細(xì)表及平面詳圖都完整清晰地展現(xiàn)了出來(lái)。由此可見(jiàn),可以通過(guò)Dynamo 程序一鍵生成管道及管件的視圖,更加地證實(shí)了BIM 技術(shù)和Dynamo 可視化編程的結(jié)合為機(jī)電預(yù)制裝配式提供了便利[10],圖13 是完整的Dynamo 程序,圖14 是部件加工圖。
圖13 完整的 Dynamo 程序
圖14 部件加工圖
手動(dòng)生成三維正交圖、平面詳圖和明細(xì)表,只能一個(gè)一個(gè)單獨(dú)地生成,很難一次都生成在公制圖紙中。通Dynamo 的方式,可以瞬間完成管道及管件的視圖,而且項(xiàng)目規(guī)模越大,Dynamo 提升效率更加明顯,如圖15 所示。
圖15 柱狀圖
借助Dynamo for Revit 的可視化編程功能,從而實(shí)現(xiàn)管道快速出圖的綜合利用。與手動(dòng)出圖比較,參數(shù)化建模所生成的部件加工圖,更能夠反映Dynamo 圖形編程的益處,不但參數(shù)統(tǒng)計(jì)精確,也可以根據(jù)需要自定義部件加工圖顯示樣式,排版等,有效解決設(shè)計(jì)出圖繁瑣和精度的問(wèn)題,提高質(zhì)量和效率。
通過(guò)構(gòu)建基于Dynamo 與 Python 的裝配式參數(shù)化建模功能集成系統(tǒng),可以快速實(shí)現(xiàn)裝配式機(jī)電的相關(guān)功能,能夠在現(xiàn)場(chǎng)快速拼裝機(jī)房,提高安裝效率,為預(yù)制的參數(shù)化建模提供了一種新的解決方案,并在促進(jìn)機(jī)電裝配的參數(shù)化設(shè)計(jì)方面發(fā)揮了作用。