彭 濤
(中國(guó)鐵路設(shè)計(jì)集團(tuán)有限公司 電化電信工程設(shè)計(jì)研究院,天津 300308)
建筑信息模型(BIM,Building Information Modeling)技術(shù)為建設(shè)項(xiàng)目全生命周期信息化管理提供了先進(jìn)的數(shù)字化工具和信息共享平臺(tái)[1]。在國(guó)家《“十四五”鐵路發(fā)展規(guī)劃》中,明確提出深化基于BIM技術(shù)的鐵路建設(shè)運(yùn)維研究。BIM技術(shù)以其承載的高精度三維可視化模型和海量信息屬性,為鐵路項(xiàng)目全生命周期管理打下了堅(jiān)實(shí)的數(shù)字化基礎(chǔ)[2]。然而,大體量BIM交互操作需要依賴專業(yè)的應(yīng)用軟件及高配置計(jì)算機(jī)硬件資源,導(dǎo)致BIM應(yīng)用技術(shù)的普及存在較高門檻。
近年來,隨著WebGL技術(shù)的迭代發(fā)展,基于B/S架構(gòu)的BIM交互應(yīng)用方案為BIM應(yīng)用提供解決思路。文獻(xiàn)[3—6]均提出了基于B/S架構(gòu)的BIM+地理信息系統(tǒng)(GIS,Geographic Information System)融合方案,實(shí)現(xiàn)對(duì)鐵路、軌道交通等項(xiàng)目中大范圍、大場(chǎng)景BIM的可視化操作。其基本原理是通過對(duì)BIM成果文件進(jìn)行輕量化及切片處理,將BIM設(shè)計(jì)成果文件轉(zhuǎn)換成支持WebGL渲染的瓦片數(shù)據(jù)集;隨后利用前端Cesium、Three.js等渲染引擎,實(shí)現(xiàn)在瀏覽器端加載渲染BIM,并進(jìn)行交互應(yīng)用[7-8]。但這些應(yīng)用方案仍存在以下不足之處:
(1)BIM切片處理技術(shù)難度較高,目前國(guó)內(nèi)大部分研究方案[9-10]是通過SuperMap商業(yè)軟件進(jìn)行處理;
(2)BIM在客戶端的呈現(xiàn)原理是根據(jù)用戶可視范圍需求,實(shí)時(shí)從服務(wù)端獲取相應(yīng)切片數(shù)據(jù)集渲染,對(duì)網(wǎng)絡(luò)帶寬及穩(wěn)定性要求較高,而部分工程現(xiàn)場(chǎng)遠(yuǎn)離城市,較難滿足要求。因此,在某些僅在部分專業(yè)、場(chǎng)段而未全線開展BIM建模的情況下,BIM+GIS融合方案部署技術(shù)難度較大、成本較高,其超大場(chǎng)景渲染優(yōu)勢(shì)也無法體現(xiàn)。
鑒于此,本文研發(fā)并設(shè)計(jì)了基于.NET6的鐵路BIM可視化綜合應(yīng)用系統(tǒng),著重實(shí)現(xiàn)對(duì)鐵路單工點(diǎn)、單場(chǎng)段范圍內(nèi)BIM成果的可視化應(yīng)用。并實(shí)現(xiàn)了模型動(dòng)態(tài)場(chǎng)景演示、物資管理系統(tǒng)數(shù)據(jù)融合等功能,進(jìn)一步豐富BIM數(shù)據(jù)交互應(yīng)用場(chǎng)景。
基于.NET6的鐵路BIM可視化綜合應(yīng)用系統(tǒng)主要使用對(duì)象是鐵路工程設(shè)計(jì)、建設(shè)、運(yùn)營(yíng)等過程中的各類專業(yè)人員。為滿足用戶便捷應(yīng)用需求,系統(tǒng)采用B/S架構(gòu),用戶可通過電腦、手機(jī)等設(shè)備瀏覽器實(shí)現(xiàn)BIM交互應(yīng)用。為方便非專業(yè)開發(fā)人員快捷部署及發(fā)布BIM,系統(tǒng)待用戶上傳模型數(shù)據(jù)后,服務(wù)器端可自動(dòng)完成模型轉(zhuǎn)換、數(shù)模拆分發(fā)布等工作,同時(shí)發(fā)布標(biāo)準(zhǔn)數(shù)據(jù)接口以便與其他系統(tǒng)進(jìn)行數(shù)據(jù)融合應(yīng)用。鐵路BIM可視化綜合應(yīng)用系統(tǒng)主要分為輸入層、數(shù)據(jù)處理層和應(yīng)用層,總體架構(gòu)如圖1所示。
圖1 BIM可視化綜合應(yīng)用系統(tǒng)總體架構(gòu)
利用各BIM設(shè)計(jì)平臺(tái)軟件生產(chǎn)BIM成果,并統(tǒng)一生成工業(yè)基礎(chǔ)類(IFC,Industry Foundation Class)文件,上傳到數(shù)據(jù)處理層的服務(wù)器中。
通過對(duì)IFC文件進(jìn)行解析,對(duì)其進(jìn)行數(shù)模分離。其中,幾何模型文件轉(zhuǎn)換為支持WebGL渲染的格式;非幾何數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗后得到有效數(shù)據(jù),并通過數(shù)據(jù)庫進(jìn)行存儲(chǔ)。同步建立各類數(shù)據(jù)分發(fā)接口,供應(yīng)用層通過應(yīng)用程序接口(API,Application Program Interface)訪問各類應(yīng)用數(shù)據(jù)。
用戶通過電腦、手機(jī)等設(shè)備瀏覽器與數(shù)據(jù)處理層數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互,實(shí)現(xiàn)BIM在瀏覽器端的各類基本操作、屬性數(shù)據(jù)查詢等功能,同時(shí)支持與物資管理系統(tǒng)等外部系統(tǒng)進(jìn)行數(shù)據(jù)關(guān)聯(lián)操作,實(shí)現(xiàn)BIM與實(shí)體設(shè)備的狀態(tài)查詢與異常告警。
現(xiàn)階段鐵路項(xiàng)目BIM設(shè)計(jì)成果主要以IFC格式輸出交付。由于IFC文件包含許多語義屬性,在交付后的實(shí)際應(yīng)用過程中,未簡(jiǎn)化的模型會(huì)導(dǎo)致每次調(diào)用必須加載大量信息,渲染大規(guī)模的模型,使得加載時(shí)間延長(zhǎng)甚至加載崩潰。而WebGL技術(shù)將Java Script和OpenGL ES 2.0結(jié)合在一起,實(shí)現(xiàn)在HTML5 Canvas DOM中繪制三維圖。但是在基于WebGL技術(shù)的B/S架構(gòu)應(yīng)用方案中,IFC格式本身無法支持WebGL技術(shù)的讀取和加載,因此需要對(duì)IFC文件進(jìn)行解析轉(zhuǎn)換。
為了實(shí)現(xiàn)IFC文件的靈活解析,本文利用xBIM Essentials和xBIM Geometry 開源組件,在服務(wù)端部署文件自動(dòng)轉(zhuǎn)換服務(wù),對(duì)用戶上傳的IFC文件進(jìn)行解析,通過遮擋剔除、相似合并、參數(shù)化轉(zhuǎn)片面和三角面等幾何數(shù)據(jù)處理過程后, 創(chuàng)建支持WebGL渲染的WexBIM文件[11-12];在前端通過部署Layui框架[13]及xBIM WebUI框架,實(shí)現(xiàn)網(wǎng)頁端對(duì)模型的加載渲染呈現(xiàn),并提供基礎(chǔ)縮放、旋轉(zhuǎn)、漫游、隱藏、剖切等交互功能。
IFC文件可附加屬性信息,若每次交互訪問直接讀取IFC文件獲取屬性數(shù)據(jù),需要較長(zhǎng)的解析時(shí)間,影響用戶體驗(yàn)。本文通過將IFC文件里的屬性數(shù)據(jù)與幾何模型數(shù)據(jù)進(jìn)行拆分,將拆分后的數(shù)據(jù)直接存入數(shù)據(jù)庫中,后續(xù)利用數(shù)據(jù)庫高I/O性能直接訪問模型附加屬性數(shù)據(jù),顯著提高訪問速度。IFC文件數(shù)模拆分原理如圖2所示。
圖2 IFC文件數(shù)模拆分原理
用戶上傳IFC文件后,由系統(tǒng)服務(wù)端對(duì)其進(jìn)行數(shù)模拆分轉(zhuǎn)換,將幾何數(shù)據(jù)與非幾何數(shù)據(jù)進(jìn)行分離。其中,幾何數(shù)據(jù)作為文件直接存儲(chǔ),文件格式支持Web端直接渲染展示;非幾何數(shù)據(jù)中的模型附件屬性數(shù)據(jù)通過篩選得到有效設(shè)計(jì)數(shù)據(jù)后,轉(zhuǎn)換為JSON數(shù)據(jù)格式進(jìn)行存儲(chǔ),一個(gè)模型構(gòu)件對(duì)應(yīng)一條JSON屬性數(shù)據(jù),有效減少數(shù)據(jù)存儲(chǔ)量,同步支持?jǐn)U展施工數(shù)據(jù)、廠家數(shù)據(jù)及運(yùn)營(yíng)數(shù)據(jù)。
為了在數(shù)模拆分過程中保持?jǐn)?shù)據(jù)與模型構(gòu)件的關(guān)聯(lián),可以利用每一個(gè)IFC構(gòu)件的全球唯一標(biāo)識(shí)(GUID,Global Unique Identifier)特性,將幾何構(gòu)件ID與JSON屬性數(shù)據(jù)通過GUID綁定,實(shí)現(xiàn)數(shù)模分離后模型與附加屬性的關(guān)聯(lián)。用戶在瀏覽器端進(jìn)行操作時(shí),可通過幾何數(shù)據(jù)文件直接在網(wǎng)頁端渲染加載模型,并在點(diǎn)擊具體構(gòu)件模型時(shí),根據(jù)獲取的GUID在數(shù)據(jù)庫查詢模型對(duì)應(yīng)的各類屬性信息。
將IFC文件轉(zhuǎn)換為支持WebGL渲染的WebBIM格式文件過程中,雖然通過模型輕量化處理后,文件體量得到顯著縮減,但是如果每次瀏覽器加載顯示都需要從服務(wù)器端訪問獲取WebBIM文件,文件在網(wǎng)絡(luò)傳輸過程中仍會(huì)延遲,在施工現(xiàn)場(chǎng)等網(wǎng)絡(luò)環(huán)境惡劣的條件下可能導(dǎo)致無法訪問使用。為了解決該問題,本文研究利用瀏覽器緩存技術(shù),BIM文件首次下載渲染后,同步將模型緩存在用戶瀏覽器內(nèi),后續(xù)訪問相同BIM,則直接從本地瀏覽器端加載緩存數(shù)據(jù),提高訪問速度。
由于瀏覽器緩存常用的cookie、localStorage 2種方法存儲(chǔ)空間有限,均不符合本次研究緩存要求。本文通過研究IndexedDB瀏覽器數(shù)據(jù)庫存儲(chǔ)技術(shù),實(shí)現(xiàn)大容量緩存[14]。利用IndexedDB建立緩存模型數(shù)據(jù)表,每個(gè)BIM作為一條緩存數(shù)據(jù),其中的Key和服務(wù)器端IFC文件的GUID編號(hào)保持一致,value設(shè)為三維模型文件的二進(jìn)制Blob數(shù)據(jù)。此外,還需要對(duì)xBIM WebUI前端組件進(jìn)行二次開發(fā),修改其模型加載技術(shù)方案。
模型文件通過“項(xiàng)目–工點(diǎn)–模型文件”的3層級(jí)模式管理,使得一個(gè)項(xiàng)目可以承載多個(gè)工點(diǎn),一個(gè)工點(diǎn)也可以承載多個(gè)模型文件。用戶在查看某一工點(diǎn)模型時(shí),可先預(yù)覽該工點(diǎn)主模型,再在模型瀏覽界面對(duì)多個(gè)模型進(jìn)行任意疊加、卸載。
客戶端通過瀏覽器加載模型后,用戶可在三維模型呈現(xiàn)頁面實(shí)現(xiàn)模型交互操作,包括模型縮放、旋轉(zhuǎn)、透視、剖切、漫游、標(biāo)簽、測(cè)量等功能。通過對(duì)剖切數(shù)據(jù)進(jìn)行云端存儲(chǔ),可實(shí)現(xiàn)針對(duì)單體建筑的樓層剖切預(yù)設(shè),用戶在后續(xù)使用過程中可通過剖切預(yù)設(shè)快速切換樓層視角。
服務(wù)器端對(duì)IFC文件進(jìn)行數(shù)模分離后,IFC文件附加屬性數(shù)據(jù)以JSON格式存儲(chǔ)至服務(wù)器數(shù)據(jù)庫。在模型交互過程中,雙擊模型構(gòu)件,系統(tǒng)可根據(jù)模型ID在服務(wù)器端快速獲取JSON格式屬性數(shù)據(jù)并在前端呈現(xiàn)。實(shí)現(xiàn)BIM在WebGL渲染交互模式下屬性數(shù)據(jù)的實(shí)時(shí)查詢。
在BIM交互應(yīng)用過程中,尤其是利用BIM進(jìn)行設(shè)計(jì)交底、運(yùn)行維護(hù)培訓(xùn)時(shí),需要通過剖切、顏色調(diào)整、部分類型設(shè)備設(shè)施隱藏等方式,切換符合成需求的某個(gè)模型視角場(chǎng)景,并對(duì)這一場(chǎng)景預(yù)設(shè)保存。系統(tǒng)的動(dòng)態(tài)場(chǎng)景演示功能模塊可供用戶提前創(chuàng)建BIM不同視角的快照記錄,并附以文字圖片說明進(jìn)行預(yù)設(shè)保存,演示效果如圖3所示。
圖3 動(dòng)態(tài)場(chǎng)景演示效果
通過動(dòng)態(tài)場(chǎng)景演示功能,用戶點(diǎn)擊不同場(chǎng)景記錄縮略圖時(shí),隨即自動(dòng)渲染至創(chuàng)建該場(chǎng)景時(shí)的視角狀態(tài),并自動(dòng)打開備注說明頁面。該功能充分利用了BIM可視化、精細(xì)化的特點(diǎn),提升了用戶體驗(yàn)感。
結(jié)合主要設(shè)備BIM清單功能,通過公開的API接口規(guī)范,可將BIM可視化綜合應(yīng)用系統(tǒng)與四電物資管理系統(tǒng)進(jìn)行數(shù)據(jù)融合交互。由BIM可視化綜合應(yīng)用系統(tǒng)將BIM設(shè)備清單直接推送至物資管理系統(tǒng)。物資管理系統(tǒng)根據(jù)主要設(shè)備清單進(jìn)入采購(gòu)流程,利用射頻識(shí)別(RFID,Radio Frequency Identification)、二維碼等方式綁定實(shí)際設(shè)備,并用現(xiàn)場(chǎng)手持終端在采購(gòu)、出入庫、安裝等各個(gè)環(huán)節(jié)錄入物資狀態(tài)。BIM可視化綜合應(yīng)用系統(tǒng)根據(jù)模型ID獲取實(shí)際設(shè)備物資狀態(tài)信息,同時(shí),根據(jù)不同狀態(tài)對(duì)設(shè)備標(biāo)記不同顏色,直觀展示整體工程進(jìn)度,如圖4所示。
圖4 物資管理與BIM可視化綜合應(yīng)用系統(tǒng)數(shù)據(jù)融合交互
通過對(duì)IFC文件解析轉(zhuǎn)換、數(shù)模分離發(fā)布、三維模型離線緩存等關(guān)鍵技術(shù)的研究,本文設(shè)計(jì)了一套基于.NET6的鐵路BIM可視化綜合應(yīng)用系統(tǒng)。系統(tǒng)集模型解析、部署、應(yīng)用于一體,針對(duì)鐵路單工點(diǎn)或單場(chǎng)段BIM進(jìn)行部署應(yīng)用時(shí),有明顯的優(yōu)勢(shì),是對(duì)現(xiàn)有BIM+GIS大體量模型部署方案的有效補(bǔ)充。其動(dòng)態(tài)場(chǎng)景演示功能,在設(shè)計(jì)施工交底、教學(xué)培訓(xùn)中可任意切換預(yù)設(shè)場(chǎng)景展示,充分發(fā)揮BIM三維模型高精度可視化的優(yōu)勢(shì)。此外,系統(tǒng)的數(shù)據(jù)融合功能可為BIM+RFID全生命周期鐵路物資管控提供更大的發(fā)展空間。