伍丹琪,陳俊濤,肖明
(1.武漢大學水資源與水電工程科學國家重點實驗室,湖北 武漢430072; 2.武漢大學水工巖石力學教育部重點實驗室,湖北 武漢430072)
建筑信息模型(Building Information Modeling,簡稱“BIM”)技術是在計算機輔助設計(CAD)等技術基礎上發(fā)展起來的多維建筑模型信息集成管理技術[1]。傳統的二維圖紙易出錯,信息不易統一修改、管理,不符合行業(yè)走向工業(yè)化、信息化、智能化的發(fā)展趨勢。而三維BIM模型具有直觀,便于后期檢查、修改、管理等優(yōu)點。
BIM理念進入實施階段以來,各種BIM軟件紛紛占據了中國市場。BIM軟件使用最為廣泛的有A(Autodesk Revit)、B(Bentley)、C(Catia)三大平臺,其中Revit操作簡單,易于開發(fā),兼容性較好,通用性強,適合科研機構以及中小規(guī)模用戶使用,在建筑行業(yè)占據了巨大的市場。
近年來BIM技術在民用建筑領域中已經獲得了較為廣泛的應用,但針對水工建筑領域的相關研究卻 相對較少。如肖彬等[2]進行了BIM技術在伊辛巴水電站廠房設計施工階段的應用與探索,王元明等[3]進行了BIM技術在新疆喀拉托別水電站工程中的應用與探索,王陸等[4]自主開發(fā)了基于設計流程的CAITA水利樞紐快速建模工具,王天興等[5]以CATIA為平臺進行二次開發(fā),建立了土石壩參數化模型。這些研究多是針對工程應用領域,即使有參數化設計方面的研究也多集中在水利樞紐方向,鮮有針對廠房參數化設計方面的研究。
在泵站廠房中,存在大量的不規(guī)則結構,且在使用Revit軟件對泵站廠房三維模型進行創(chuàng)建的過程中,存在操作程序較為繁瑣、沒有對應命令、繪圖捕捉困難、系統性地修改困難等問題,因此難以使用Revit的基本建模功能高效準確地構建廠房模型。對沒有系統學習過BIM三維建模的大量工程人員來說,廠房設計創(chuàng)建無疑十分費時費力,成為BIM應用的主要障礙。但實際上,廠房上部建筑中許多構件如牛腿柱,吊車梁等,都是標準化的構件,且構件位置也較為固定,有條件實現參數化設計。
由于Revit軟件在泵站廠房領域卻沒有系統性、通用性的解決方案,為提高構建泵站廠房模型的效率,本文針對傳統二維設計中存在的各種缺陷和Revit軟件自身的局限性,提出了一套泵站廠房上部建筑的通用性BIM解決方案,在Revit原有功能的基礎上,通過二次開發(fā)設計了一套能通過窗口直觀輸入參數,實現智能創(chuàng)建模型的程序。
按照Revit的一般操作步驟,創(chuàng)建一個泵站廠房需要首先根據二維圖紙確定縱橫軸網,然后再根據設計要求,確定標高,分別創(chuàng)建梁、板、柱、墻等相應構件,對于項目模板中沒有的族,只能逐個繪制。故運用BIM技術,在Revit平臺基本功能的基礎上,提出Revit平臺下的泵站廠房設計建模解決方案,進行二次開發(fā),實現廠房上部建筑參數化構建具有較大的實用與經濟價值。
為總結出一套符合規(guī)范要求的通用性解決方案:①首先,開發(fā)的軟件要滿足通用性需求,要了解泵站廠房的相關知識,對廠房建筑中的各種構件進行分類,通過劃分廠房的組成部分,將廠房分為主、副、附屬建筑等標準模塊和其它構件;②其次,了解設計人員在水工建筑設計過程中的思維和習慣,梳理出設計創(chuàng)建泵站廠房的一般流程;③然后,對于研究所需的BIM基礎理論進行梳理,研究Revit二次開發(fā)技術,通過Revit API對模型進行控制;④最后,研究UI界面開發(fā)技術,針對Revit平臺上交互式設計流程及操作特點,通過搭建窗體對話框形式的插件系統,實現運行過程中的數據傳遞,開發(fā)泵站廠房交互式三維設計程序的專用界面。通過該解決方案,可在Revit界面中按工程需求對模型進行創(chuàng)建、組裝,實行三維可視化操作,設計和創(chuàng)建泵站廠房上部建筑模型。通過三維實體模型、實時顯示技術來保證BIM輔助設計的友好性和糾錯性,保證泵站廠房設計的準確和高效。
由于各種廠房上部建筑雖然有一定的建設規(guī)范,但廠房布置的形式多樣,難以用一種模板輸出各種形式的廠房。于是,本文提出的泵站廠房解決方案,采用了劃分廠房結構,多次組合輸出的方式:根據需求選擇創(chuàng)建的構件種類(包括牛腿柱、吊車梁等),然后將廠房上部建筑劃分為多個標準模塊,針對每個標準模塊運行一次創(chuàng)建命令,分步輸出模型,再通過多次輸出的模型,組合成一個完整的廠房。
每一組標準模塊是以一個基點作為模塊參照點,所創(chuàng)建的外墻、梁、板、柱、房頂等一組構件的組合,如以主廠房、副廠房、附屬結構來劃分標準模塊。每個標準化模塊,可以通過運行“廠房布置”命令進行一次性創(chuàng)建,每次創(chuàng)建都會輸出一組標準模塊結構。模塊的劃分不一定有統一的標準,基本原則是墻梁板柱能以同一個基點組合,方便創(chuàng)建為要。
創(chuàng)建一個完整的泵站廠房步驟如下:①劃分廠房結構;②創(chuàng)建所需構件;③運行命令創(chuàng)建主廠房的主體結構;④運行命令創(chuàng)建副廠房的主體結構;⑤為主廠房墻板等結構創(chuàng)建洞口,方便與副廠房的連接;⑥創(chuàng)建附屬廠房結構;⑦再在主副廠房墻板等結構上創(chuàng)建洞口,方便與附屬結構的連接;⑧最后完善模型細節(jié)。
流程如圖1所示。
圖1創(chuàng)建泵站廠房的流程圖
為實現參數化泵站廠房的創(chuàng)建過程,本文運用了Revit二次開發(fā)技術,充分發(fā)揮了其可擴展性。Revit 具有完整的應用程序編程接口(Application Program Interface 以下簡稱“API”),可用 Visual Basic. NET、C#以及C++/ CLI等任何與.NET兼容的編程語言進行編程。本文通過Revit API對模型對象進行訪問、編輯和創(chuàng)建。RevitAPI.dll包含了在數據庫層控制Revit的應用、文檔、對象和參數的方法,而RevitAPIUI.dll包含了Revit在操作和用戶界面層的所有的自定義API接口[6]。
Revit提供兩種方式來擴展其功能:一種方式是創(chuàng)建一個外部命令(IExternal Command),這種方式由用戶點擊添加的命令按鈕來啟動二次開發(fā)生成的相應命令;另一種方式是加一個外部應用(IExternal Application),即添加菜單或工具條[7]。
經過對Revit API提供的創(chuàng)建和訪問方法的研究,本文實現了對項目文件和對族文件的訪問和修改,使用了外部應用調用外部命令的方式實現了廠房創(chuàng)建程序的二次開發(fā)。
本文使用外部應用完成廠房參數化建模的人機界面交互功能。主要通過外部應用重載OnStartup()和OnShutdown()兩個方法,創(chuàng)建工具欄Ribbon Tab、面板Ribbon Panel和按鈕Button。
菜單欄中創(chuàng)建了一個名為“廠房創(chuàng)建”的Ribbon Tab,分別下設三個Ribbon Panel:參數族創(chuàng)建、廠房布置、洞口創(chuàng)建。“參數族創(chuàng)建”Panel下分別有創(chuàng)建牛腿柱和吊車梁命令的PushButton。
每個命令打開后,即會跳出與命令對應的交互窗口,按照提示完成對應參數的輸入,即可創(chuàng)建廠房模型。
廠房上部建筑參數化程序主要分為三個模塊:參數族創(chuàng)建、廠房布置、洞口創(chuàng)建。
1.4.1參數族創(chuàng)建
廠房上部建筑構件分為系統族構件,如墻、板、柱等,和標準族構件,如創(chuàng)建的牛腿柱、吊車梁等。系統族繼承自項目模板,無法單獨保存,而標準族可單獨保存為rfa格式的族文件。對于系統族,程序采取直接調用API,將其實例化的方法,對于牛腿柱、吊車梁等結構,先通過程序進行參數化創(chuàng)建,再與系統族一同實例化,整體輸出。
參數族創(chuàng)建模塊主要包含泵站廠房中各種非系統族構件的創(chuàng)建命令,如牛腿柱、吊車梁。
牛腿柱的形態(tài)創(chuàng)建是根據窗口輸入的控制參數。命令以公制柱作為創(chuàng)建樣板,根據輸入的控制參數,并充分考慮到參數變化可能對模型產生的影響,創(chuàng)建牛腿柱族,最后為創(chuàng)建的牛腿柱添加材質參數。
吊車梁等構件的創(chuàng)建同理。
對于普通的梁和柱,如果需要新建族,可先利用Revit創(chuàng)建系統族,由于創(chuàng)建系統族的過程較為簡單,且可完全實現參數化,所以程序直接利用了Revit的基本功能,未進行二次開發(fā)。
1.4.2廠房布置
廠房布置是創(chuàng)建程序的核心步驟。具備所有設計所需構件之后,就需要按要求,對構件進行布置和拼裝,組織墻、梁、板、柱的位置,將對應族在對應坐標實例化,組合成泵站廠房模型上部建筑,實現通過參數化窗口界面,對模型的操作。
廠房布置的命令窗口主要由墻、牛腿柱、吊車梁、柱、梁、板和屋頂五個選項卡組成。每個選項卡中都有控制各種構件數量、位置和構件屬性的參數。
先在“墻”要素的選項卡中設置基點,這是整個模塊的參照點,其余墻、梁、板、柱的布置都會基于這個基點坐標。
對于每一個選項卡的要素,均可通過窗口中的選擇和輸入命令確定其種類、數量和坐標。
1.4.3洞口創(chuàng)建
廠房的每個部分建好之后,需要打通與下一個部分的通道,所以啟用洞口創(chuàng)建命令。
洞口創(chuàng)建命令啟動時,需要先在界面選擇開洞元素,然后按窗口提示,根據洞口的位置輸入洞口控制參數。Revit中雖然已有創(chuàng)建洞口的命令,但經二次開發(fā)的程序可以做到完全用坐標控制開洞。
經二次開發(fā)后,可做到僅通過輸入參數就輸出廠房模型,簡化了繪制圖形的步驟,提高了三維建模的效率和準確性。由于程序可以多次運行,不僅可以組合成用多種形式的廠房,還可為廠房添加各種附屬結構,大大提高了程序的通用性。
針對上述研究成果,本文以實際工程項目來測試其有效性。以文頭嶺泵站的廠房為例,下面詳細演示其創(chuàng)建步驟。
第一步,劃分廠房結構。將整體廠房上部建筑劃分為五個標準模塊:中間的主廠房、兩側副廠房、前后的監(jiān)控室、辦公室等附屬廠房,以及其他細節(jié)。
第二步,創(chuàng)建所需構件。首先根據設計要求在窗口中添加屬性和參數,建出牛腿柱族,如圖2,并在面板中選擇吊車梁命令,建出符合需求的吊車梁,以及所需的普通梁和普通柱。
圖2建好的牛腿柱族
第三步,創(chuàng)建主廠房主體結構。選擇“廠房布置”命令,在窗口中添加廠房參數,然后布置牛腿柱族,再選擇矩形柱、板、梁,以及房頂的屬性和參數,即可輸出主廠房上部主體建筑,完成的主廠房如圖3。
圖3主廠房主體結構
第四步,創(chuàng)建副廠房主體結構。先創(chuàng)建其中一側副廠房,然后再次運行“廠房布置”命令,用同樣的方法去完成另一側。建好左右副廠房后,為左右側墻創(chuàng)建洞口,以便主、副廠房連接。連接之后,再次調用命令,創(chuàng)建吊車梁,以及貫穿廠房的普通梁,如圖4。
圖4主、副廠房主體結構
第五步,創(chuàng)建附屬廠房結構。同樣是根據程序輸入要素,但由于附屬建筑的框架梁系統較為復雜,不適合批量創(chuàng)建,可留到最后補充,最后對需要留出樓梯的樓層板和底板創(chuàng)建洞口。附屬建筑完成后,在主廠房的上下游幕墻上開洞,以便與附屬廠房連接,如圖5。
圖5完整的廠房主體結構
第六步,完善細節(jié)。對一些不適合用程序創(chuàng)建的特殊梁板等進行補充,創(chuàng)建門、窗、樓梯等附屬結構和下部大體積混凝土,如圖10。由于Revit中這部分功能很完善,就未對此內容進行二次開發(fā)。在完善細節(jié)的過程中,對于一些可以批量創(chuàng)建的附屬結構,也可以利用程序中的部分命令,達到快速創(chuàng)建的效果。最后,添加廠房的下部結構以及周邊的環(huán)境設施,完善細部結構后的廠房模型如圖6。
圖6完善細節(jié)后的泵站廠房
除文頭嶺泵站廠房外,本文還運用該參數化解決方案對文頭嶺泵站的啟閉機室進行了測試,最終效果如圖7。
圖7完善細節(jié)后的啟閉機室
實際測試的結果非常理想,程序最終能實現在較短的時間內參數化創(chuàng)建符合工程要求的泵站廠房BIM模型。且相對于手工繪制的BIM模型,通過參數和坐標創(chuàng)建的模型具有更高的準確性,更完善的構件體系,方便管理,大大減少了后期的增刪修改工作,提高了設計人員和施工人員的工作效率。
本文的研究內容致力于解決泵站廠房BIM模型設計和創(chuàng)建過程中存在的各種問題,提出的解決方案成功實現了參數化、自動化創(chuàng)建泵站廠房上部建筑模型,可以方便高效地實現泵站廠房BIM模型輸出。
通過二次開發(fā)實現復雜形體的創(chuàng)建過程是對Revit快速建模、智能創(chuàng)建的探索,將來可以進一步進行包括樓梯、下部結構等BIM模型的創(chuàng)建開發(fā),研究泵站廠房的智能設計方法,形成一套完整、細致的參數化解決方案。