(鄭州大學土木工程學院,鄭州 450001)
裝配式建筑將工地作業(yè)為主的建造方式改變?yōu)楣S制造為主。與傳統(tǒng)建筑工藝相比,裝配式建筑能縮短工期,提升建筑質量,節(jié)約資源,保護環(huán)境,實現(xiàn)建筑業(yè)的可持續(xù)發(fā)展[1]。2016年9月《國務院辦公廳關于大力發(fā)展裝配式建筑的指導意見》明確要求,推動建造創(chuàng)新,落實綠色發(fā)展理念,大力發(fā)展裝配式混凝土建筑和鋼結構建筑,不斷提高裝配式建筑在新建建筑中的比例。
BIM(Building Information Modeling建筑信息模型)是以工程項目各階段數(shù)據(jù)信息為基礎建立的建筑模型,能真實集成反應項目中有關信息。其具有可視化,協(xié)同性等特點[2]。裝配式建筑的強調各個環(huán)節(jié)部件的協(xié)調,BIM平臺能有效提高裝配式建筑在設計,制作,安裝等方面的效率[3],甚至可以利用BIM技術優(yōu)化整個項目,促進裝配式建筑的發(fā)展。
目前,裝配式建筑與BIM技術結合應用還處于探索研究階段?;贐IM技術解決裝配式混凝土建筑建設的維護管理問題,可以有效減少施工過程的返工[4]。參考計算機集成制造系統(tǒng),基于BIM的裝配式建筑集成建造系統(tǒng)框架理論的提出對提高裝配式建筑信息化,提高構件生產(chǎn)率方面具有重要意義[1]。3D激光掃描技術和BIM技術結合,能實現(xiàn)自動檢查預制構件的尺寸質量[5]。應用BIM軟件建立預制梁柱的連接節(jié)點,可以設計符合規(guī)范要求的預制抗震框架模型,從而建立PC構件結構系統(tǒng)庫[6]。基于BIM平臺對裝配式建筑協(xié)同設計減少設計師重復工作,提高工作效率[7]。
綜上所述,結合BIM技術實現(xiàn)預制構件工程量的自動統(tǒng)計和預制率的自動計算問題還有待研究,而預制率是衡量裝配式建筑重要指標,因此研究自動提取構件工程量,計算預制率十分有必要。
預制率是衡量裝配式建筑的重要指標之一,也是政府制定裝配式建筑扶持政策的主要依據(jù)指標。同時預制率的高低也直接影響工程成本,通過對不同預制裝配率工程成本量化分析,預制裝配式建筑的經(jīng)濟預制率在46%~65%之間[8]。因此,預制率是裝配式建筑實施時首先要考慮的指標。
然而,在預制率計算方面還存在一些問題。傳統(tǒng)計算方法根據(jù)圖紙尺寸手工計算預制構件混凝土量。計算過程復雜,計算效率低下,計算結果不準確。建筑信息模型BIM技術的出現(xiàn)為解決裝配式建筑預制率的自動計算提供了強大的技術支持。但是僅僅建立裝配式建筑的BIM模型,利用建模軟件的自身功能,還很難實現(xiàn)工程量的自動統(tǒng)計和預制率的自動計算。Revit作為主流的BIM建模軟件之一,其內部包含功能豐富的API(Application Programming Interface 應用程序接口),通過對Revit的二次開發(fā),Revit使用者可以根據(jù)需要進行功能拓展,滿足不同的設計和施工需求。因此,利用Revit平臺的二次開發(fā)功能,解決基于BIM模型的預制裝配式混凝土建筑預制構件工程量的自動統(tǒng)計和預制率的自動計算,是本文研究的重點。
本文通過BIM建模軟件——Revit建立裝配式建筑BIM模型,基于Revit二次開發(fā),研究利用模型里的信息,統(tǒng)計各類預制構件的工程量,從而設定計算規(guī)則,計算項目中各類構件預制率,解決手工計算復雜,效率低,結果不準確的問題,實現(xiàn)準確快速計算的目的。通過不同構件預制率的動態(tài)選擇組合,可以估算建設成本,進而選擇成本可接受增幅范圍內的預制方案,增加經(jīng)濟效益。
Revit軟件為建模工作提供了很好的功能支持,可以快速高效創(chuàng)建三維模型,并且模型中包含豐富的數(shù)據(jù)信息,包括模型幾何尺寸、標高、材質、類型等等。Autodesk公司為Revit軟件提供了API接口,可以通過API編程直接讀取到這些信息。因此,本文的開發(fā)思路及目標是,研究通過BIM模型,設定過濾規(guī)則,統(tǒng)計模型中各類預制構件的工程量,獲取現(xiàn)澆混凝土構件的工程量,從而設定計算規(guī)則,實現(xiàn)裝配式建筑預制率的自動計算。
此次開發(fā)是基于Revit 2016版本,主要開發(fā)工具有VisualStudio 2015、RevitSDK(SoftwareDevelopmentKit軟件開發(fā)工具包)、RevitLookup等。其中采用VisualStudio 2015開發(fā)環(huán)境來編寫程序代碼,RevitSDK里包含RevitAPI幫助文檔以及一些源代碼的實例,RevitLookup用來直觀看到模型中構件的API。具體開發(fā)步驟如圖1所示。
圖1 程序開發(fā)流程
Revit二次開發(fā)有兩種開發(fā)模式,一種是通過外部命令(IExternal Command),另一種是外部應用(IExternalApplication)。IExternalCommand是用戶擴展Revit時必須在外部命令中實現(xiàn)的接口,這個接口只有一個抽象函數(shù)Excute(),通過重載這個函數(shù)來實現(xiàn)外部命令[9]。IExternalApplication接口有OnStartup和OnShutdown兩個抽象函數(shù),它們是在Revit啟動和關閉時候定制所需要的功能。這兩種模式在開發(fā)前首先要引用RevitAPI.DLL和RevitAPIUI.DLL兩個接口裝配文件。本文采用添加外部命令的方式,編寫好程序生成DLL文件,通過AddInMangaer加載DLL文件運行程序。
本文采用的計算規(guī)則是根據(jù)國標中的計算方法[10],基于Revit二次開發(fā),快速準確獲取混凝土體積,用室外地坪以上預制構件混凝土體積除以混凝土總體積計算得出預制率。
根據(jù)預制率的計算規(guī)則,要計算預制率需要獲得兩個主要參數(shù),一個是預制混凝土體積,另一個是現(xiàn)澆混凝土體積。其中,預制混凝土體積通過過濾規(guī)則獲取構件模型的內置體積參數(shù)得到。現(xiàn)澆混凝土體積除了通過項目中的構件模型得到,還有一部分通過比例得出。對于預制疊合樓板,其厚度一般為60mm,現(xiàn)澆部分為70mm厚,因此樓板的現(xiàn)澆體積為預制疊合樓板體積乘以系數(shù)13/6。
為了查看各類構件的預制體積和預制率,預制混凝土體積應分構件類型分別獲取。在RevitAPI中,有兩種方式訪問對象。對于系統(tǒng)族,如Wall,F(xiàn)loor,Opening等,通過過濾其類名可以獲得對象。對于柱子,梁等構件,沒有專門的類來表示,他們都是FamilyInatance的實例,可以通過內置參數(shù)過濾。在Revit中系統(tǒng)族不能自建族,因而本項目預制墻、預制樓板、洞口等都是通過新建常規(guī)模型來建立的,他們也屬于FamilyInstance,通過過濾其內置參數(shù)獲取對象。創(chuàng)建預制構件必須滿足一定的命名規(guī)則,這樣才能設置過濾規(guī)則訪問對應的構件參數(shù)。根據(jù)國家建筑標準設計圖集15J939-1中的示例四,總結出一套預制構件命名規(guī)則,見表1。
表1預制構件建模規(guī)則
(1)預制混凝土體積獲取
預制構件有預制外墻、預制內墻、預制樓板、預制陽臺板、預制空調板等,這些構件均通過新建常規(guī)模型這個族樣板文件來建立。獲取這些預制構件體積的過程如下:
1)創(chuàng)建收集器,訪問項目中所有對象,收集器創(chuàng)建首先聲明實例化FilteredElementCollector這個類。調用快捷函數(shù)OfClass()快速過濾出項目中的族類別。通過調用名稱屬性判斷,過濾出所有預制構件。具體代碼如圖2所示。
2)預制外墻名稱中含有“WQ”,內墻含有“NQ”,樓板含有“DB”,通過名稱的判斷將不同種類的構件分別放在不同的集合里。如圖3所示,預制外墻的過濾方法是先獲取項目中外墻的族類型,然后通過LIMQ語句過濾該類型下所有實例并存放于相應集合中。
圖2 過濾項目預制構件方法
圖3 獲取預制外墻的方法
3)預制構件的體積通過獲取實例的內置參數(shù)獲取。這樣需要注意的是,Revit軟件后臺操作的單位是英尺,因此體積參數(shù)的值因乘以304.83轉換為立方米。代碼如圖4所示。
圖4 計算構件體積的方法
4)獲取構件體積后,通過調用屬性獲取每個構件的名稱、數(shù)量等。最后這些數(shù)據(jù)信息設置為dataGridView這個控件的數(shù)據(jù)源,顯示在列表里。
5)現(xiàn)澆混凝土構件體積獲取
現(xiàn)澆構件包括墻體,預制疊合板上的現(xiàn)澆部分,梁,樓梯休息平臺樓板的現(xiàn)澆部分,節(jié)點處的現(xiàn)澆。墻體、樓板、節(jié)點處的現(xiàn)澆體積采用和上述相似過程,得出構件的體積。預制疊合板和梁的現(xiàn)澆體積,分別是預制疊合板體積和預制內墻體積乘以對應的系數(shù)獲得。
圖5 PC建筑預制率分析軟件界面
6)計算各類構件預制率
各類構件的預制率為該類的預制體積除以預制構件體積和現(xiàn)澆構件體積之和,總預制率為選擇采取預制的構件預制率之和。
創(chuàng)建窗體,將各類構件的名稱、體積等信息在窗體中顯示。前面提到,Excute()函數(shù)有三個參數(shù)的重載,創(chuàng)建窗體執(zhí)行Revit命令,必須要先傳遞這三個參數(shù)。首先,在Excute()函數(shù)中聲明并實例化窗體,設置窗體顯示,然后,在Form1中生成構造函數(shù)即可。窗體的設計中,用到Button,Label,CheckBox等多種控件,需要在每個控件的事件里編寫代碼實現(xiàn)軟件功能。軟件界面如圖5所示。
本項目采用國家建筑標準設計圖集15J939-1中的示例四,根據(jù)上述建模規(guī)則和示例四的構件詳圖,分別建立各類構件的BIM模型。然后將構件的模型組裝成示例四標準層BIM模型,見圖6。運行Revit軟件,通過外部工具中的AddInMangaer加載插件的DLL文件,即可運行此預制率計算軟件。如圖6所示,點擊不同的選項卡,可以分開顯示各類預制構件的工程量清單。右邊可以動態(tài)計算預制率,通過勾選不同的構件,實現(xiàn)自動計算出該類構件的預制體積和預制率,并且下面動態(tài)顯示已勾選構件的預制體積和預制率。
示例四項目地上21層,五層及以上為裝配式混凝土剪力墻結構,五層以下是現(xiàn)澆混凝土剪力墻結構。為驗證插件的可靠性,選擇建立了標準層BIM模型,通過此預制率計算插件計算示例四標準層預制率,與標準圖集預制率結果對比,從而驗證此插件計算的準確性。當標準層中的外墻、內墻、樓板、樓梯均采取預制方式時,通過插件計算得出標準層預制率為60.84%,如圖7所示。標準圖集中給出,此項目標準層預制率為60.81%,兩者相差1%,誤差在可接受范圍內。在導出選項卡里,可以將項目中的預制構件信息導出到Excel。
圖6 示例四標準層BIM模型
圖7 導出Excel預制構件清單工程量
Revit是主要的BIM應用軟件之一,但目前應用水平多停留在建模應用?;赗evit軟件,通過API對其進行所需功能的開發(fā),有助于發(fā)掘BIM技術更深層次的應用。本文以國家建筑標準設計圖集15J939-1中的示例四為例,建立構件BIM模型,進而組裝項目標準層BIM模型,結合BIM軟件Revit的二次開發(fā)技術,開發(fā)出一款預制裝配式建筑預制率分析軟件,實現(xiàn)快速統(tǒng)計項目各類預制構件體積,計算預制率的功能,提高工作效率,動態(tài)顯示預制不同構件對應的預制率,進而為確定預制方案提供決策依據(jù)。