任晨宇,臧永立,劉珍珍
(1.中國鐵道科學(xué)研究院研究生部,北京 100081; 2.中國鐵道科學(xué)研究院集團有限公司,北京 100081;3.中國鐵道科學(xué)研究院集團有限公司通信信號研究所,北京 100081)
隨著鐵路信息化進程的不斷推進,原本用于建筑行業(yè)的BIM技術(shù)也為鐵路行業(yè)開啟了新紀(jì)元[1]。BIM模型具有的精細(xì)幾何結(jié)構(gòu)和豐富語義信息,可實現(xiàn)對各類建筑和設(shè)備的數(shù)字虛擬化,其特點是能完整展示設(shè)備模型并支持對設(shè)備全生命周期信息的儲存和管理。由于鐵路信號工程涉及專業(yè)多、使用范圍廣并且檢修技術(shù)復(fù)雜,管理系統(tǒng)融合BIM技術(shù)后,能迅速提高信息共享程度、優(yōu)化設(shè)備管理控制,進一步提升系統(tǒng)的數(shù)字化,可視化和智能化水平[2-3]。但是在信號設(shè)備的管理中,設(shè)備的地點比較分散且安裝區(qū)域較廣、維修人員不足和“天窗”時間緊張,導(dǎo)致即便看到設(shè)備的具體信息也難以滿足工作人員對于設(shè)備實際地理位置和安裝運行情況的實時掌握,無法瀏覽大尺度模型,從而不能對信號設(shè)備系統(tǒng)進行一致分析。
GIS(三維可視化地理信息系統(tǒng))更擅長大范圍內(nèi)的可視化場景和地理空間分析,相較于BIM它更偏向于展示宏觀環(huán)境信息和設(shè)備外部區(qū)域的空間模型[4]。相較BIM,GIS模型像一個“殼”,不關(guān)注模型內(nèi)部結(jié)構(gòu)與信息,BIM模型則更像一個“瓤”,主要描述和展示內(nèi)部結(jié)構(gòu)和信息??梢詫IM模型鑲嵌在GIS中,使之成為一個完整全面的組合[5]。將BIM與GIS結(jié)合,能實現(xiàn)設(shè)備運維的全方位管理,同時滿足信號設(shè)備“精細(xì)”、工作區(qū)域“廣泛”的管理要求,可以解決GIS三維模型信息內(nèi)容簡單、BIM模型獨立分散的問題,完成設(shè)備全生命周期與地理環(huán)境數(shù)據(jù)、施工信息與運維工程信息的集成,進而實現(xiàn)空間和時間信息的全面融合,形成有機統(tǒng)一的可視化模型??蔀殡妱?wù)設(shè)備維護檢修、報警預(yù)報、應(yīng)急搶險等業(yè)務(wù)提供設(shè)備定位、空間分析以及信息查詢等多項功能,從而提高系統(tǒng)的科學(xué)決策水平。
由于鐵路信號設(shè)備的種類多達數(shù)千種,所構(gòu)建的BIM模型體量過大,直接使用會導(dǎo)致渲染時間過長,讀取交互時系統(tǒng)過載,工作效率受到嚴(yán)重影響。要呈現(xiàn)的數(shù)據(jù)量大和模型體量大、BIM與GIS技術(shù)的異構(gòu)三維模型轉(zhuǎn)換是系統(tǒng)可視化亟待解決的技術(shù)問題。針對以上問題,對BIM模型進行輕量化處理,并將其融合至基于WebGIS的Cesium引擎,完成兩種技術(shù)的深度集成,將成果應(yīng)用于鐵路信號運維系統(tǒng),實現(xiàn)設(shè)備信息與地理空間的有機統(tǒng)一。
Cesium是一種基于WebGL的地圖引擎[6],其支持多種格式的動態(tài)地理空間數(shù)據(jù),并提供各種形式的模型數(shù)據(jù)集成接口,在三維可視化領(lǐng)域應(yīng)用廣泛。信號運維管理平臺采用Cesium引擎將地圖數(shù)據(jù)與信號站場BIM模型數(shù)據(jù)融合,形成可視化方案,并在其基礎(chǔ)上開發(fā)應(yīng)用,可視化架構(gòu)如圖1所示。
圖1 系統(tǒng)可視化架構(gòu)
模型方面,使用BIM建模工具對鐵路信號設(shè)備建立三維模型族庫,包含信號機、道岔、軌道電路、聯(lián)鎖設(shè)備、繼電器、閉塞設(shè)備等數(shù)千種設(shè)備器材模型。 此外,由于Revit和Bentley建模軟件的材質(zhì)庫不夠全面,對于模型紋理、材質(zhì)和光照等細(xì)節(jié)無法統(tǒng)一渲染,故試用 Autodesk Maya軟件對BIM三維模型進行組合渲染,完善模型細(xì)節(jié),組成總裝模型。使用細(xì)節(jié)面片抑制法將組裝后的模型文件進行輕量化,再將其模型格式轉(zhuǎn)換為適用于Cesium引擎的glTF(B3DM)格式,載入三維平臺實現(xiàn)系統(tǒng)的三維可視化需求。地圖方面,系統(tǒng)使用接口調(diào)用鐵路地理信息服務(wù)平臺數(shù)據(jù),并將海量地圖數(shù)據(jù)自動瓦片化處理,并完成GIS平臺三維地圖搭建。
繪制完成信號設(shè)備數(shù)量為8023個、種類1223種。烏魯木齊站地域遼闊,鐵路信號設(shè)備分布不集中[7],導(dǎo)致BIM模型規(guī)模龐大,體量達到1.2TByte;直接加載時,服務(wù)器負(fù)載過重,畫面加載時間極長。故系統(tǒng)采用細(xì)節(jié)面片抑制法進行BIM模型輕量化處理[8-9],提高信息模型的適用性和流暢性,保證終端的運行速度。
輕量化思路為:確保模型局部特征工程語義不變的前提下,將草圖元素個數(shù)降到最低,減小模型體量。圖2為轉(zhuǎn)轍機模型,其特征依賴圖如圖3所示。
圖2 轉(zhuǎn)轍機模型
圖3 轉(zhuǎn)轍機特征依賴圖
細(xì)節(jié)面片抑制法:首先要正確使用草圖中所包含的細(xì)節(jié)特征來識別模型,將草圖各項參數(shù)對應(yīng)元素的體積和平均值計算出來。再由建模人員給出一個經(jīng)驗閾值α,將草圖元素的體積vi及其平均值v之比作比較得到比值αi,若αi小于閾值α,則可證明此元素確為草圖的細(xì)節(jié)元素。該細(xì)節(jié)元素的存在與否不影響三維模型拓?fù)浣Y(jié)構(gòu)的完整性,通過對此類細(xì)節(jié)特征的刪減達到更新模型的目的。細(xì)節(jié)面片抑制法的創(chuàng)新之處在于使用閾值選擇出元素中可刪減的部分,創(chuàng)新了算法思路,用數(shù)學(xué)方法在保證模型輕量化的同時又保證了模型特征的穩(wěn)定。
將BE(K)BES(K)-1000 ZPW型扼流變壓器進行細(xì)節(jié)面片抑制輕量化,建模人員設(shè)置體積閾值α分別為6%和15%,系統(tǒng)經(jīng)過邏輯處理將比例αi小于體積閾值α的所有細(xì)節(jié)部件消除,得到不同程度的輕量化模型。如表1所示,二次處理后的模型面片數(shù)明顯減少,但柜體外觀特征依然保留,細(xì)節(jié)特征刪減的同時兼顧了模型的特征項保留,實現(xiàn)了模型的輕量化。
表1 不同經(jīng)驗閾值輕量化模型比較
GIS技術(shù)的三維可視化渲染技術(shù)基于WebGL[10],WebGL是一種三維繪圖協(xié)議,通過增加OpenGL ES 2.0的一個JavaScript綁定來實現(xiàn)使用JavaScript調(diào)用底層OpenGL ES 2.0進行3D顯示[11]。目前大多數(shù)瀏覽器和移動終端設(shè)備都支持WebGL技術(shù)。本文選用基于webGL的三維引擎——Cesium,其對WebGL提供的許多接口進行了封裝,簡化細(xì)節(jié),幾乎沒有損失WebGL的靈活性。開發(fā)時可大大減少底層數(shù)據(jù)的編寫,提高工作效率。
Cesium引擎是使用JavaScript編寫的開源三維引擎,它沿用了WebGL的硬件加速渲染以及跨平臺展示功能[12]。其使用AMD方案進行代碼組織,實現(xiàn)代碼的按需加載,盡可能地減少了加載的延遲以及對帶寬的占用。Cesium通過遠程服務(wù)方式加載服務(wù)器端的地圖數(shù)據(jù),可同時支持OGC制定的WMS,WFS等網(wǎng)絡(luò)服務(wù)規(guī)范,可自由選擇高亮區(qū)域,并且具有良好的觸摸支持,圖4為Cesium引擎交互式可視化示例。
圖4 地圖瓦片結(jié)構(gòu)
目前常見的三維引擎有Three.js、Babylon.js、Cesium等,表2為3個引擎支持格式、應(yīng)用學(xué)習(xí)現(xiàn)狀、優(yōu)缺點以及適用范圍的對比。相較于其他三維引擎,Cesium的開源型、易用性和GIS專業(yè)性使它成為系統(tǒng)開發(fā)三維引擎的最佳選擇。
(1)開源性:其使用APache2.0協(xié)議,開放源代碼,開發(fā)人員可以在此基礎(chǔ)上進行代碼研究以及按照需求處理GIS服務(wù)中遇到的問題。
(2)易用性:Cesium官網(wǎng)提供了許多學(xué)習(xí)文檔、開發(fā)方法以及三維demo供開發(fā)者進行學(xué)習(xí),有許多論壇中有Cesium引擎的開發(fā)問題的探討和交流。
(3)GIS專業(yè)性:Cesium側(cè)重行星級渲染和GIS功能,可加載各類GIS常用數(shù)據(jù),具有強大的GIS要素展示能力,支持2D.3D.2.5D(哥倫布視圖)的地圖展示,并且可將三維模型數(shù)據(jù)結(jié)合三維地形數(shù)據(jù)同時展示。
Cesium引擎可以全方位地展示地球三維地圖,它由以下4個關(guān)鍵類組成。Cesium高程地形:仿真地圖的核心,它支持全球高程地形瓦片的可視化,并且可以顯示海洋的水紋效果,高程地形能夠仿真山川海洋等真實地理場景,為三維虛擬地球在鐵路行業(yè)中的應(yīng)用提供了良好的可視化特征;Cesium影像圖層:可繪制或堆疊高分辨率的影像圖層,使用接口調(diào)用不同服務(wù)器的影像數(shù)據(jù);Cesium視口照相機:可以看做用戶的眼睛,它的可見范圍即為用戶視點可見范圍,視口照相機擁有多角度視點區(qū)域,可通過旋轉(zhuǎn)、縮放、平移等方式操作其活動;Cesium幾何要素:常見的如盒狀、橢圓、多邊形等。
表2 3種三維引擎的對比
Cesium虛擬地球加載大量的高程地形和影像圖層數(shù)據(jù),實現(xiàn)三維地圖的可視化。若用單個文件儲存高分辨率的影像圖層或高程地形這類海量數(shù)據(jù),則由于文件過大無法直接加載到內(nèi)存進行讀取。故使用“瓦片”這種數(shù)據(jù)組織,它是將影像圖層或高程地形文件分割成小的數(shù)據(jù),實現(xiàn)多層次細(xì)節(jié)繪制。系統(tǒng)使用13級瓦片數(shù)據(jù)結(jié)構(gòu),每個瓦片的像素寬度和高度固定不變。隨著層級的變高,覆蓋的區(qū)域愈大,每一層的瓦片數(shù)量呈指數(shù)增長,單個瓦片覆蓋的地理范圍變小。因瓦片像素數(shù)固定不變,用戶視角看到的層級越高,畫面的像素塊越多(如金字塔狀)[13],地圖畫面也就越清晰,如圖4所示。瓦片結(jié)合OOC(Out Of Core)算法,將海量的地圖數(shù)據(jù)清晰直觀地加載至Cesium虛擬地球。
系統(tǒng)按照瓦片分級,圖5、圖6為三維模型實例。瓦片級數(shù)低時,畫面像素較低,僅大型建筑模型被加載。隨著地圖放大,瓦片級數(shù)的變高,畫面像素越來越高,突出設(shè)備細(xì)節(jié),畫質(zhì)清晰。
圖5 低級瓦片級數(shù)下的視圖
圖6 高級瓦片級數(shù)下的視圖
Cesium 引擎作為一個可定制模型、結(jié)構(gòu)和紋理的開源三維模型渲染平臺,通用格式是glTF[14]。glTF(Graphics Language Transmission Format)是Khronos于2015年推出的一種基于圖形語言的三維模型傳輸格式,具有易擴展、高效、可協(xié)作的優(yōu)點。glTF格式本質(zhì)上是JSON文件,可描述整個3D場景的內(nèi)容,最大程度地展現(xiàn)真實三維模型元素,例如:紋理、顏色、多層次,材質(zhì)等。
glTF格式的文件僅能展示三維可視元素,如需體現(xiàn)設(shè)備屬性等虛擬表達,則需要使用額外的數(shù)據(jù)庫訪問或表單查詢等方式。而“3DTiles”數(shù)據(jù)規(guī)范有效解決了這一難題。
3D Tiles是一種開放的規(guī)范,用于傳輸異構(gòu)三維地理空間數(shù)據(jù)。一個3D Tiles文件包括兩部分文件,即Tiles文件和Tileset JSON文件。Tiles文件儲存模型數(shù)據(jù),如B3DM、I3DM、PNT、CMPT;TilesetJSON是3D Tiles的說明文件[15],是JSON格式,用來存儲切片文件的版本信息和坐標(biāo)系統(tǒng)、定義各個元素的共享屬性信息以及指定加載和渲染起始時間的正數(shù)值等。
在此規(guī)范下,定義B3DM(一種WebGL渲染的數(shù)據(jù)格式)作為glTF的切片格式[16],是一種二進制文件,圖7是其文件組織形式,包括版本、自定義的屬性信息、bgl TF等信息。它融合了glTF的模型數(shù)據(jù)與屬性數(shù)據(jù),可以將三維模型分層表達,適用于BIM三維模型[17]與Cesium引擎的融合。
圖7 B3DM數(shù)據(jù)格式(包含glTF數(shù)據(jù)格式)
將輕量化后的BIM總裝模型轉(zhuǎn)換為GIS數(shù)據(jù)源。BIM與GIS技術(shù)偏重點不同,故兩種模型數(shù)據(jù)具有一些差異[18-19]。BIM+GIS結(jié)合應(yīng)用時,需要將BIM模型進行轉(zhuǎn)換[20-21]。
首先是提取BIM模型中的幾何信息,IFC(BIM標(biāo)準(zhǔn)數(shù)據(jù)模型)對象中存儲了例如關(guān)聯(lián)行為、多元屬性、幾何表達等多類信息。確認(rèn)轉(zhuǎn)換CityGML(GIS標(biāo)準(zhǔn)數(shù)據(jù)模型)對象需要被保留的數(shù)據(jù)類型后,對IFC對象以約束條件進行遍歷判斷,過濾多余信息,輸出幾何信息和其相關(guān)屬性信息。
CityGML具有LOD多細(xì)節(jié)層次表達,每個層次需要不同的層級的幾何信息。按照選擇對應(yīng)的映射關(guān)系實現(xiàn)兩個模型語義信息的轉(zhuǎn)換[22],得到與CityGML模型分級對應(yīng)的IFC數(shù)據(jù)后,對丟失的信息進行增強補充。接下來使用CityGML的三維構(gòu)造B-rep算法,將這個IFC模型的幾何和語義信息進行重構(gòu),得到最終的CityGML多細(xì)節(jié)層次模型。
系統(tǒng)使用Cesium引擎作為GIS平臺,故BIM與GIS的技術(shù)融合并沒有停留在語義轉(zhuǎn)換、格式重構(gòu)等理論研究方面,更是重點研究了實際項目中軟件平臺對模型的轉(zhuǎn)換處理以及應(yīng)用[23]。本文以既有BIM模型作為基礎(chǔ),為了提高其在Cesium平臺上的可用性和交互性,提出了適用于本系統(tǒng)的數(shù)據(jù)模型轉(zhuǎn)換方案。步驟如下。
(1)FBX是適用于以上軟件的一種三維創(chuàng)作與交換的文件格式,可以對BIM模型進行跨平臺、模型式轉(zhuǎn)換,擅用于3D軟件模型之間的互導(dǎo)。將不同分工的模型設(shè)計軟件中的各種信號和建筑物的三維模型都導(dǎo)出為.fbx文件,實現(xiàn)全體BIM模型的格式統(tǒng)一。
(2)Revit和Bentley的材質(zhì)庫有限,不能滿足全部要求,將模型的FBX文件導(dǎo)入試用版Autodesk Maya(一個三維動畫建模軟件)對設(shè)備、建筑物細(xì)節(jié)紋理,材質(zhì)等進行豐富處理,而后導(dǎo)出.obj格式全模型文件。
(3)Cesium官方提供了開源工具obj2glTF,使用此工具需要配置Node.js環(huán)境,并且遵守Apache-2.0開源協(xié)議。把.obj文件放在obj2glTF根目錄下,執(zhí)行命令語句即可成功將.obj文件轉(zhuǎn)換為.glTF文件。
(4)使用開源工具3d-tiles-tools將.glTF轉(zhuǎn)換為.b3dm文件。
(5)轉(zhuǎn)換完成的模型.b3dm數(shù)據(jù)采用八叉樹方法進行三維數(shù)據(jù)切片組織,再整理JSON元數(shù)據(jù)文件,組合而成的3D Tiles文件作為三維Cesium引擎的標(biāo)準(zhǔn)格式搭建模型,如圖8所示。
圖8 系統(tǒng)數(shù)據(jù)模型轉(zhuǎn)換方案
將進站信號機BIM模型按照系統(tǒng)數(shù)據(jù)模型轉(zhuǎn)換方案進行處理,最終將模型的B3DM文件放入Cesium引擎進行加載,如圖9、圖10所示。
圖9 進站信號機BIM模型
圖10 進站信號機模型載入Cesium引擎
將轉(zhuǎn)換完成的三維模型基于Cesium進行三維展示,經(jīng)終端測試,在 PC 端可快速流暢加載系統(tǒng)三維模型,圖11為系統(tǒng)室外設(shè)備可視化頁面,可以看到畫面中車站的模型以及地圖模型完美融合。圖12展示了站場樓的設(shè)備及其細(xì)節(jié),可對模型進行交互操作。滿足使用者從宏觀至微觀的多層次深入了解模型及整個工程項目,滿足了大文件、大圖紙、大模型的整體展示需求。
圖11 室外設(shè)備展示
圖12 室內(nèi)設(shè)備展示
該平臺實現(xiàn)了直接以三維方式瀏覽車站和設(shè)備具體情況,以及通過關(guān)鍵字段搜索直接定位到設(shè)備,通過點擊具體設(shè)備的方式直接顯示該設(shè)備的全部基本信息、相關(guān)圖紙和維修記錄。此外,設(shè)備狀態(tài)信息可實時動態(tài)顯示,以圖形化方式顯示軌道、道岔、信號機等的報警狀態(tài)和其他室內(nèi)信號系統(tǒng)設(shè)備的工作狀態(tài)(如電源模塊、板卡狀態(tài)、系統(tǒng)連接狀態(tài)等),為工作人員在日常維護和故障處理方面提供了更加直觀、高效的手段。
系統(tǒng)通過BIM+GIS三維視圖遠程查看烏魯木齊局整條線路的聯(lián)鎖設(shè)備狀態(tài)。為了降低維護成本,可將部分位置偏遠、人員稀少的聯(lián)鎖車站逐漸轉(zhuǎn)換為無人值守站。當(dāng)計算機聯(lián)鎖出現(xiàn)故障時,系統(tǒng)可通過對計算機聯(lián)鎖遠程重啟或主備切換服務(wù)等操作遠程維護。如圖13所示。
圖13 遠程維護模塊三維可視化頁面
Cesium的開源三維地圖引擎具有支持多源數(shù)據(jù)、開發(fā)靈活和使用操作便捷等特點,是適用于鐵路行業(yè)可視化的良好開發(fā)工具。本文使用Cesium三維引擎實現(xiàn)了BIM+GIS異構(gòu)數(shù)據(jù)模型集成。將BIM模型集成至WebGIS平臺,拓寬了BIM技術(shù)在鐵路領(lǐng)域應(yīng)用的深度和廣度,大大提高了運維平臺的設(shè)計水平。
系統(tǒng)通過BIM技術(shù)進行參數(shù)化建模,使用細(xì)節(jié)面片抑制法將三維模型輕量化,基于B/S架構(gòu),以JavaScript為開發(fā)語言,開發(fā)了烏魯木齊局信號設(shè)備運維管理系統(tǒng),實現(xiàn)信號設(shè)備室內(nèi)外的三維可視化,從宏觀到微觀加強管理方對信號系統(tǒng)的全面把控,其應(yīng)用研究成果為鐵路信號行業(yè)信息化建設(shè)提供了新理念、新方法。