陳培旺
(廣東博意建筑設(shè)計(jì)院有限公司,廣東 佛山 528300)
目前Revit 涵蓋方案、建筑、結(jié)構(gòu)、設(shè)備四大專業(yè),同時(shí)能參與方案、設(shè)計(jì)施工、后期運(yùn)營(yíng)維護(hù)三大過程,是一款應(yīng)用于BIM(Building Information Modeling,建筑信息模型)技術(shù)的常用軟件[1]。Revit 在設(shè)計(jì)階段能進(jìn)行參數(shù)化設(shè)計(jì)、多專業(yè)協(xié)同設(shè)計(jì),多樣化出圖,這是傳統(tǒng)CAD 設(shè)計(jì)所不具備的強(qiáng)大功能[2-3]。然而,Revit 在建模設(shè)計(jì)上有不少缺點(diǎn),如模型搭建命令單一繁瑣,相同的建模操作不能一鍵復(fù)制,缺乏便捷性;建模有時(shí)無法有效搭建族塊;搭建模型的族塊類型有限;模型信息統(tǒng)計(jì)查詢繁瑣等,這些不足在影響設(shè)計(jì)效率的同時(shí),也間接阻礙了BIM 技術(shù)的發(fā)展和應(yīng)用[4-5]。面對(duì)日趨復(fù)雜的工程項(xiàng)目和Revit 自身建模功能不完善的背景下,基于Revit API 二次開發(fā),不斷優(yōu)化改進(jìn)其操作和功能,是當(dāng)今提高BIM 技術(shù)應(yīng)用的一個(gè)重要方向[6-7]。
基于Revit 2015 二次開發(fā)流程如圖1。
圖1 基于Revit 2015 二次開發(fā)流程圖
針對(duì)暖通專業(yè)統(tǒng)計(jì)和數(shù)據(jù)輸出功能,在Revit 軟件自身統(tǒng)計(jì)混亂,統(tǒng)計(jì)步驟繁瑣、統(tǒng)計(jì)數(shù)據(jù)無法一鍵導(dǎo)出Excel 格式的情況下,基于Revit API 二次開發(fā)單獨(dú)統(tǒng)計(jì)暖通專業(yè)工程材料量、暖通專業(yè)設(shè)備參數(shù)明細(xì)及造價(jià)的插件。設(shè)計(jì)的插件構(gòu)想圖如圖2 所示。
IExternalCommand 是Revit API 用戶通過外部命令來拓展功能的接口,本插件用此外部拓展接口進(jìn)行二次開發(fā)。根據(jù)圖2 構(gòu)思插件的界面,二次開發(fā)的內(nèi)容主要包括插件窗體的設(shè)計(jì)、初始化窗體、顯示族參數(shù)和獲取族參數(shù)。
圖2 插件設(shè)計(jì)的界面
插件界面包括主窗體設(shè)計(jì)及子窗體界面,主窗體設(shè)計(jì)內(nèi)容包括:添加WPF 窗體、添加現(xiàn)有項(xiàng)目、添加引用及添加窗體控件。通過TreeView 控件展現(xiàn)所需要統(tǒng)計(jì)的內(nèi)容,即工程量、參數(shù)、成本三個(gè)方面。在界面的右下角的“統(tǒng)計(jì)”和“導(dǎo)出”來實(shí)現(xiàn)對(duì)暖通專業(yè)工程量、參數(shù)、成本統(tǒng)計(jì),及針對(duì)的統(tǒng)計(jì)數(shù)據(jù)進(jìn)行導(dǎo)出。子窗體設(shè)計(jì)內(nèi)容,主要是在窗體上放置能顯示Revit 模型族參數(shù)的DataGrid 控件,通過編寫應(yīng)用程序標(biāo)記語言XAML 賦值給窗體控件。
以參數(shù)明細(xì)統(tǒng)計(jì)功能為例,參數(shù)明細(xì)統(tǒng)計(jì)有子項(xiàng)“空調(diào)設(shè)備”“水泵”“空調(diào)水管直徑長(zhǎng)度”及“風(fēng)管面積”。用CountSubCategory 類來封裝下面的數(shù)據(jù):
a.字符串“空調(diào)設(shè)備”“水泵”“空調(diào)水管直徑長(zhǎng)度”“風(fēng)管面積”。
b.“空調(diào)設(shè)備”“水泵”“空調(diào)水管直徑長(zhǎng)度”“風(fēng)管面積”分別對(duì)應(yīng)的族參數(shù)。
c.“空調(diào)設(shè)備”“水泵”“空調(diào)水管直徑長(zhǎng)度”“風(fēng)管面積”分別對(duì)應(yīng)的子窗體。
TreeView 控件上包含的就是本插件主窗口所顯示的三大方面的統(tǒng)計(jì)功能,用CountCategory 封裝該“數(shù)量統(tǒng)計(jì)”“參數(shù)明細(xì)統(tǒng)計(jì)”“成本統(tǒng)計(jì)”這3 個(gè)字符串。將這3 個(gè)字符串對(duì)應(yīng)的統(tǒng)計(jì)參數(shù)保存到CountSubCategory 類中。將CountCategory 類所儲(chǔ)存的數(shù)據(jù)再封裝到Vm.Count 類的屬性中,這樣經(jīng)過創(chuàng)建Vm.Count 類的對(duì)象,進(jìn)而將此對(duì)象傳遞給窗體,從而窗體得到數(shù)據(jù),達(dá)到初始化窗體的目的。
將保存有暖通族數(shù)據(jù)的CountSubCategory 類賦值到子窗體控件,子窗體帶有DataContext 屬性的Grid 控件,從而Grid 便可得到數(shù)據(jù),這樣窗體就能顯示族參數(shù)。
Revit 文件中所有的族均為圖元,帶有ID 編號(hào)。使用Revit 本身的過濾器篩選暖通族的ID,通過封裝ID 的參數(shù),為每個(gè)參數(shù)賦予屬性,這樣插件便能獲取數(shù)據(jù)。
經(jīng)過這4 個(gè)方面的制作內(nèi)容,完成暖通插件如圖3所示。
圖3 完成的暖通統(tǒng)計(jì)插件
現(xiàn)通過一個(gè)地鐵模型檢驗(yàn)插件。圖4 為某地鐵站的Revit 模型;圖5 為只顯示地鐵站內(nèi)MEP 的模型;圖6 為風(fēng)管及管徑工程量統(tǒng)計(jì)結(jié)果;圖7 是空調(diào)水管參數(shù)明細(xì)統(tǒng)計(jì)結(jié)果;圖8 為暖通空調(diào)設(shè)備成本統(tǒng)計(jì)結(jié)果。
圖4 Revit 模型
圖5
圖6 對(duì)風(fēng)管及管徑進(jìn)行工程量統(tǒng)計(jì)
圖7 對(duì)空調(diào)水管進(jìn)行參數(shù)明細(xì)統(tǒng)計(jì)
圖8 對(duì)空調(diào)機(jī)械設(shè)備成本統(tǒng)計(jì)
本文從改進(jìn)Revit 統(tǒng)計(jì)功能為方向,基于Revit API進(jìn)行二次開發(fā),制作了能便捷統(tǒng)計(jì)BIM 模型中暖通空調(diào)專業(yè)參數(shù)的統(tǒng)計(jì)插件。改進(jìn)效果如下:
(1)本插件避免原先軟件層層篩選族的方式來統(tǒng)計(jì),能做到一鍵將暖通專業(yè)的工程量、使用的設(shè)備參數(shù)規(guī)格及設(shè)備的成本一鍵統(tǒng)計(jì)到位。
(2)能解決Revit 軟件本身統(tǒng)計(jì)混亂。本插件能區(qū)分暖通專業(yè)和給排水專業(yè)的管道,做到精準(zhǔn)統(tǒng)計(jì)。
(3)統(tǒng)計(jì)的數(shù)據(jù)能導(dǎo)出Excel 格式,解決了Revit 只能導(dǎo)出TXT 文本格式的問題,為統(tǒng)計(jì)人員提供更加便捷計(jì)算的文本格式。
Revit 軟件整合了建筑、結(jié)構(gòu)、MEP 三個(gè)專業(yè),包含不同專業(yè)的建模操作,出現(xiàn)使用功能便捷性的缺失難以避免,針對(duì)與不同專業(yè)功能便捷型缺失的問題進(jìn)行二次開發(fā),是目前BIM 發(fā)展研究其中的一個(gè)方向。本文通過基于Revit API 進(jìn)行二次開發(fā)制作針對(duì)暖通專業(yè)的統(tǒng)計(jì)插件,希望能對(duì)暖通專業(yè)或者其他專業(yè)同行給予啟發(fā),開發(fā)更多基于本專業(yè)情況而優(yōu)化Revit 軟件本身的功能或者開發(fā)其沒有的功能,讓BIM 技術(shù)更好地服務(wù)自己的專業(yè)。