趙 強(qiáng) 張景煜 劉 躍 王漫漫 郭曉慶
(1.安徽建筑大學(xué) 環(huán)境與能源工程學(xué)院,合肥 230601;2. 安徽省智慧城市工程技術(shù)研究中心,合肥 230601;3. 合肥市公安局科技信息化支隊(duì),合肥 230601)
地下軌道交通作為城市重要的基礎(chǔ)設(shè)施,有著交通便捷、運(yùn)輸量大的優(yōu)點(diǎn),同時(shí)地鐵站具有空間較為封閉且人員相對(duì)密集的特征,為其安全運(yùn)營(yíng)和管理提出了更高的要求。建筑信息模型(Building Information Modeling,BIM)具有數(shù)字化、可視化、真實(shí)化的特點(diǎn),有利于軌道交通項(xiàng)目從設(shè)計(jì)、施工、到運(yùn)營(yíng)維護(hù)全生命周期實(shí)現(xiàn)動(dòng)態(tài)可視化管理、信息共享和決策支持[1-4]。
近年來(lái),如何應(yīng)用BIM技術(shù)開(kāi)展地下空間安全管理,引起了國(guó)內(nèi)外學(xué)者的探討。鐘輝等人基于BIM模型二次開(kāi)發(fā),提出一套BIM數(shù)據(jù)提取與應(yīng)用技術(shù)方案,解決建筑業(yè)各專(zhuān)業(yè)間數(shù)據(jù)使用效率低的問(wèn)題[5]。趙強(qiáng)等人利用IFC和CityGML進(jìn)行地下綜合管廊模型轉(zhuǎn)換研究[6]。孫少楠等人基于BIM技術(shù),利用Revit對(duì)地鐵車(chē)站進(jìn)行建模,并結(jié)合Pyrosim 軟件對(duì)火災(zāi)模擬分析[7]。張學(xué)鋼等人利用Revit與魯班系列軟件構(gòu)架BIM方案,對(duì)蘭州地鐵東崗站開(kāi)展施工過(guò)程應(yīng)用研究[8]。Mohamed Marzouk和Ahmed Abdelaty基于BIM,對(duì)地鐵車(chē)站室內(nèi)環(huán)境質(zhì)量進(jìn)行監(jiān)測(cè),建立了一套地鐵車(chē)站網(wǎng)絡(luò)全球評(píng)級(jí)系統(tǒng),能夠監(jiān)測(cè)地鐵站內(nèi)的室內(nèi)溫度和顆粒物(PM)濃度水平[9]。
本文針對(duì)地鐵站安全監(jiān)管,基于建筑信息模型,利用Revit,通過(guò)自建和加載標(biāo)準(zhǔn)構(gòu)件族,構(gòu)建地鐵站安全設(shè)備信息族庫(kù),實(shí)現(xiàn)地鐵站安全信息設(shè)備庫(kù)建立,并進(jìn)行二次開(kāi)發(fā),以合肥市地鐵3號(hào)線安徽大學(xué)磬苑校區(qū)站為例,進(jìn)行安全設(shè)備信息族庫(kù)構(gòu)建以及建模應(yīng)用。
地鐵站安全設(shè)備信息族庫(kù)構(gòu)建與應(yīng)用技術(shù)路線流程如圖1所示,通過(guò)Revit族的定義和類(lèi)型設(shè)置、新建標(biāo)準(zhǔn)構(gòu)件族、加載標(biāo)準(zhǔn)構(gòu)件族構(gòu)建地鐵站安全設(shè)備信息族庫(kù); 然后基于Revit,進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)地鐵站三維模型展示以及安全設(shè)備信息提取和管理。
圖1 地鐵站安全設(shè)備信息族庫(kù)構(gòu)建與應(yīng)用流程Fig. 1 Construction and application flow chart of information Library of subway station safety equipment
地鐵站族庫(kù)由建筑、結(jié)構(gòu)、機(jī)電三大模塊組成,由于Revit本身攜帶的系統(tǒng)族比較常規(guī),無(wú)法滿足需求,還需通過(guò)創(chuàng)建和加載來(lái)完善設(shè)備族庫(kù)。完善的族庫(kù)可應(yīng)用于生成明細(xì)表,統(tǒng)計(jì)工程量; 1比1的模型比例和還原圖紙的構(gòu)件位置,能用于碰撞檢測(cè),在地鐵站施工前發(fā)現(xiàn)設(shè)計(jì)缺陷,可以及時(shí)修改和優(yōu)化設(shè)計(jì),避免返工現(xiàn)象; 監(jiān)控設(shè)備、消火栓等安全設(shè)施,賦予特定的參數(shù)并進(jìn)行開(kāi)發(fā)使用后,可為地鐵站的安全運(yùn)營(yíng)提供保障。
族(Family)是構(gòu)建地鐵站安全設(shè)備信息的基礎(chǔ),是Revit項(xiàng)目中對(duì)構(gòu)件的專(zhuān)用稱(chēng)呼,它的本質(zhì)是特殊的圖元組,包括了相關(guān)圖形表示以及本身攜帶的參數(shù)信息[10]。相同的族都具有相關(guān)的圖形表示和一組相同的參數(shù)(族類(lèi)型參數(shù)),在Revit API中,提供了一系列的類(lèi)和方法來(lái)提供管理族文檔,包括族類(lèi)型和族參數(shù)管理等,地鐵站安全設(shè)備族庫(kù)成員構(gòu)件創(chuàng)建相關(guān)的API類(lèi)如圖2所示。當(dāng)把指定的族類(lèi)型加載到項(xiàng)目中后,就形成獨(dú)立的族實(shí)例(FamilyInstance),族實(shí)例既具有族的屬性也有其自身的獨(dú)立屬性。族、族類(lèi)型、族實(shí)例都是元素(Element)的子類(lèi),它們的類(lèi)圖如圖3所示。
圖2 族創(chuàng)建的相關(guān)類(lèi)Fig. 2 Relevant categories of the Family creating
圖3 族類(lèi)別Fig. 3 Division of the Family
地鐵車(chē)站安全設(shè)備族庫(kù)的許多成員形狀規(guī)格比較特殊,即使是同種構(gòu)件,在不同的地鐵車(chē)站也可能具備不同屬性,因而需要量身打造。站臺(tái)層安全隔離門(mén)是地鐵站安全設(shè)備族庫(kù)的一個(gè)重要組成,本文通過(guò)Revit API來(lái)實(shí)現(xiàn)安全隔離門(mén)族的創(chuàng)建。Revit軟件支持實(shí)體幾何圖元和空心幾何圖元的創(chuàng)建,并通過(guò)各種圖元的結(jié)合來(lái)形成各種幾何形體,圖元的創(chuàng)建方式共五種包括拉伸、融合、旋轉(zhuǎn)、放樣和放樣融合[11]。Revit API支持完全相同的實(shí)體和空心體的創(chuàng)建方式,所用的API為 Autodesk.Revit.Creation.FamilyItemFactory類(lèi)。安全隔離門(mén)族的創(chuàng)建主要通過(guò)拉伸的方式創(chuàng)建,在Revti API中需要輸入四個(gè)參數(shù)來(lái)創(chuàng)建拉伸圖元,本文采用C#為開(kāi)發(fā)語(yǔ)言,創(chuàng)建拉伸圖元所用的方法如下:
(a)安全隔離門(mén)參數(shù)輸入界面 (b)安全隔離門(mén)模型圖4 安全隔離門(mén)參數(shù)輸入界面及BIM模型Fig. 4 The input interface and BIM model of parameters on safety isolation doors Extrusion New Extrusion(bool is Solid, CurveArrArray profile, SketchPlane sketchPlane, double end):
第一個(gè)參數(shù)is Solid是一個(gè)bool類(lèi)型的參數(shù),用來(lái)設(shè)定該拉伸體是實(shí)體還是空心體; 第二個(gè)參數(shù)profile是CurveArrArray類(lèi)型,用來(lái)確定一個(gè)平面上的二維輪廓,且輪廓必須是閉合的; 第三個(gè)參數(shù)sketchPlane是SketchPlane類(lèi)型,用來(lái)確定拉伸的工作平面; 第四個(gè)參數(shù)end是double類(lèi)型,用來(lái)確定拉伸的長(zhǎng)度。編寫(xiě)好創(chuàng)建幾何圖元的外部命令之后通過(guò)Add-In Manager加載,就能實(shí)現(xiàn)安全隔離門(mén)圖元的創(chuàng)建,參數(shù)輸入界面和模型如圖4所示。
城市地鐵車(chē)站模型中所需的部分常見(jiàn)構(gòu)件,可以通過(guò)從互聯(lián)網(wǎng)加載并修改的方式獲取,提高建模效率,本文以安全設(shè)備族庫(kù)的監(jiān)控設(shè)備族為例,進(jìn)行研究。如圖5所示,槍型攝像頭族通過(guò)編輯族選項(xiàng)進(jìn)入編輯界面,點(diǎn)擊屬性面板族類(lèi)型命令,即可進(jìn)行參數(shù)的添加與修改。通過(guò)網(wǎng)絡(luò)上獲取的該族,除了本身攜帶的參數(shù)外,該族還需添加的族參數(shù)有施工坐標(biāo)、WGS-84坐標(biāo)、設(shè)備類(lèi)型、設(shè)備相對(duì)位置、設(shè)備運(yùn)行狀態(tài)等。全部參數(shù)添加完畢后,點(diǎn)擊選項(xiàng)面板中的載入到項(xiàng)目選項(xiàng),在項(xiàng)目文件中選定族實(shí)例,通過(guò)編輯類(lèi)型,就可以進(jìn)行對(duì)應(yīng)參數(shù)的設(shè)置。監(jiān)控設(shè)備族的坐標(biāo)信息(如WGS-84坐標(biāo)),能夠準(zhǔn)確描述族實(shí)例在地鐵站中的空間位置,一旦發(fā)生險(xiǎn)情或特殊情況(如火災(zāi)、罪犯逃逸等),可以瞬間定位事件的所處位置,并調(diào)動(dòng)附近的監(jiān)控畫(huà)面,為應(yīng)急處置方案的制定提供強(qiáng)力的支持。
(a)槍型攝像頭模型 (b)族參數(shù)的添加圖5 槍型攝像頭模型及族參數(shù)Fig. 5 The model of Gun camera and addition of its family parameters
圖6 地鐵站安全設(shè)備族庫(kù)Fig. 6 Segmental family library of subway station
利用Revit API的豐富接口,運(yùn)用Revit中編輯族的拉伸、融合、旋轉(zhuǎn)、放樣、放樣融合這5大工具,輔以參照平面,同樣可以創(chuàng)建安全設(shè)備族庫(kù)的其他構(gòu)件族,其他主要構(gòu)件族如圖5所示,為了方便安全設(shè)備的信息管理,將所創(chuàng)建的安全設(shè)備族全部保存到數(shù)據(jù)庫(kù)中。
Revit本身攜帶的功能模塊通常無(wú)法符合用戶的全部需要,此時(shí)用戶可以通過(guò)二次開(kāi)發(fā),自行編寫(xiě)外部程序,進(jìn)行功能拓展。基于Revit的二次開(kāi)發(fā)主要需要參照Revit API(Application Programming Interface)中的類(lèi)和方法進(jìn)行代碼的編寫(xiě),能夠更好地實(shí)現(xiàn) BIM 技術(shù)在項(xiàng)目全生命周期的運(yùn)用。用戶能夠從軟件管網(wǎng)獲取開(kāi)發(fā)工具包 Revit SDK(Software Development Kit)。借助 SDK 文件可以幫助用戶更好地掌握 API 的使用方式,用戶也能借此進(jìn)行二次開(kāi)發(fā)輕松獲取 BIM 模型的數(shù)據(jù)資料,然后進(jìn)行查詢(xún)、變更等操作。
本文基于Revit軟件和Microsoft Visual Studio 2015開(kāi)發(fā)平臺(tái)、SQL Server 2008數(shù)據(jù)庫(kù),使用C#語(yǔ)言進(jìn)行安全設(shè)備信息管理平臺(tái)的二次開(kāi)發(fā),實(shí)現(xiàn)地鐵站中監(jiān)控設(shè)備族庫(kù)管理以及信息的實(shí)時(shí)查看和管理。
基于Revit的設(shè)備插件二次開(kāi)發(fā)流程圖如圖7所示,首先需要添加外部引用RevitAPI.dll及RevitAPIUI.dll,之后創(chuàng)建新的類(lèi)從IExternalCommand類(lèi)派生,重載父類(lèi)的Execute方法,重新編寫(xiě)代碼,代碼編譯完畢后,將生成的dll文件用Addin-Manager加載,最后運(yùn)行程序,測(cè)試是否符合地鐵站安全信息管理需求,不符合則需要修改代碼重新調(diào)試。
圖7 設(shè)備插件開(kāi)發(fā)流程圖Fig. 7 Workflow diagram for device plugin developing
使用 External Command 和 External Application兩種方式進(jìn)行編譯與測(cè)試時(shí),Revit.exe啟動(dòng)后,addin文件中的命令會(huì)被加載。本文構(gòu)建的安全設(shè)備族庫(kù)面板的addin 文件如下:
首先對(duì)地鐵站所有設(shè)備族進(jìn)行遍歷,根據(jù)交互界面族實(shí)例名稱(chēng)獲取攝像頭ID,進(jìn)而獲取攝像頭的X、Y、Z坐標(biāo),從而進(jìn)行坐標(biāo)轉(zhuǎn)換,輸出WGS-84坐標(biāo)得到攝像頭的具體位置; 同時(shí)根據(jù)ID和連接的數(shù)據(jù)庫(kù)獲得攝像頭的相關(guān)信息,以及數(shù)據(jù)庫(kù)中實(shí)時(shí)存儲(chǔ)的攝像頭監(jiān)控畫(huà)面,具體情況如圖8所示。
圖8 安全設(shè)備信息管理平臺(tái)程序流程圖Fig. 8 Flow chart of security equipment information management program
首先通過(guò)創(chuàng)建一個(gè)過(guò)濾器,將所有的監(jiān)控設(shè)備族實(shí)例收納,通過(guò)過(guò)濾,通過(guò)交互界面族實(shí)例名稱(chēng)的過(guò)濾,獲得設(shè)備的坐標(biāo)位置等參數(shù),并將該設(shè)備在模型中標(biāo)記顯示。通過(guò)獲取族實(shí)例的ID值,從而與存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器中ID值對(duì)應(yīng)。之后借助DataGridView 控件并綁定數(shù)據(jù)源為對(duì)應(yīng)的數(shù)據(jù)庫(kù),通過(guò)對(duì)數(shù)據(jù)庫(kù)中儲(chǔ)存的信息獲取安全設(shè)備族的運(yùn)行狀態(tài)及位置等信息。
由于API接口原因,只能從本地讀取族文件加載到項(xiàng)目,這就需要將數(shù)據(jù)庫(kù)傳遞過(guò)來(lái)的族文件保存到本地后再加載,這就需要獲取使用程序電腦的臨時(shí)文件夾string tempPath=System.IO.Path.GetTempPath(); //獲取用戶臨時(shí)文件夾路徑將族文件保存到本地后使用LoadFamily(); 方法載入當(dāng)前項(xiàng)目中。
在窗體信息展示設(shè)置中,通過(guò)Name或者ID參數(shù)是否等于ComboBox的選項(xiàng)篩選出目標(biāo)信息,用foreach()函數(shù)遍歷指定設(shè)備的全部信息,攝像頭設(shè)備信息管理窗口如圖9所示,可以實(shí)現(xiàn)安全設(shè)備的信息提取和管理。
圖9 設(shè)備信息管理窗口Fig. 9 The management window of device information
通過(guò)Revit的ribbon界面開(kāi)發(fā),實(shí)現(xiàn)ribbon按鈕和安全設(shè)備族庫(kù)的關(guān)聯(lián)連接,從而形成安全設(shè)備族庫(kù)面板,創(chuàng)建面板如圖10所示。
圖10 安全設(shè)備族面板Fig. 10 Security device family panel
安徽大學(xué)磬苑校區(qū)站是合肥市地鐵3號(hào)線車(chē)站之一,車(chē)站為三層標(biāo)準(zhǔn)島式車(chē)站,地下一層為站廳層,地下二層為設(shè)備層,地下三層為站臺(tái)層。整個(gè)三層地下空間共囊括高清固定槍型網(wǎng)絡(luò)攝像機(jī)5臺(tái),人臉識(shí)別攝像機(jī)16臺(tái),室內(nèi)室外球型網(wǎng)絡(luò)攝像機(jī)共9套等,根據(jù)主要工程數(shù)量清單,并結(jié)合現(xiàn)場(chǎng)采集高清圖像,構(gòu)造地鐵站安全設(shè)備族庫(kù)管理。
如圖11展示了基于Revit二次開(kāi)發(fā)地鐵站的BIM模型,包括出口渲染效果、車(chē)站整體建筑三維展示、含有自動(dòng)檢票機(jī)、手扶電梯的站廳層局部三維展示、含有安全隔離門(mén)和監(jiān)控設(shè)備的站臺(tái)層局部三維展示。
(a)站廳層局部
(b)站臺(tái)層局部圖11 地鐵車(chē)站BIM三維展示Fig. 11 BIM 3D display in subway station
圖12展示了該地鐵站安全設(shè)備—攝像頭的定位分布平臺(tái)管理界面,有助于整個(gè)地鐵站攝像頭管理和維護(hù),為地鐵站的精細(xì)化管理提供全新的技術(shù)支撐。
圖12 攝像頭的定位分布平臺(tái)管理界面Fig. 12 Camera positioning distribution platform management interface
本文基于Revit進(jìn)行地鐵站安全設(shè)備信息族庫(kù)創(chuàng)建開(kāi)發(fā)與應(yīng)用,具體得到以下結(jié)論:
(1)族是實(shí)現(xiàn)地鐵站安全設(shè)備三維可視化的基礎(chǔ),較為復(fù)雜的族可以借助Revit API進(jìn)行開(kāi)發(fā),充分利用API以編程的方式完成一些工作量較大、規(guī)律性較強(qiáng)的工作,而比較常規(guī)的族可以通過(guò)Revit自身攜帶的族庫(kù)或者互聯(lián)網(wǎng)獲取后編輯參數(shù)在投入使用。
(2)安全設(shè)備信息族庫(kù)的構(gòu)建和實(shí)施,可以提供設(shè)備信息提取和管理,有助于地鐵站安全設(shè)備的實(shí)時(shí)高效管理。
(3)通過(guò)BIM三維可視化視角,能夠?qū)⒉煌囊晥D平面相互關(guān)聯(lián),項(xiàng)目中的每個(gè)構(gòu)件(族實(shí)例)都攜帶獨(dú)有的參數(shù),為后期工程量的統(tǒng)計(jì)以及數(shù)據(jù)庫(kù)的搭建奠定了基礎(chǔ),與傳統(tǒng)手段相比,工程質(zhì)量和效率得到有效提高,且具有較強(qiáng)的應(yīng)用價(jià)值。