任晨宇,臧永立,劉珍珍
(1.中國鐵道科學研究院研究生部,北京 100081; 2.中國鐵道科學研究院集團有限公司,北京 100081;3.中國鐵道科學研究院集團有限公司通信信號研究所,北京 100081)
隨著鐵路信息化進程的不斷推進,原本用于建筑行業的BIM技術也為鐵路行業開啟了新紀元[1]。BIM模型具有的精細幾何結構和豐富語義信息,可實現對各類建筑和設備的數字虛擬化,其特點是能完整展示設備模型并支持對設備全生命周期信息的儲存和管理。由于鐵路信號工程涉及專業多、使用范圍廣并且檢修技術復雜,管理系統融合BIM技術后,能迅速提高信息共享程度、優化設備管理控制,進一步提升系統的數字化,可視化和智能化水平[2-3]。但是在信號設備的管理中,設備的地點比較分散且安裝區域較廣、維修人員不足和“天窗”時間緊張,導致即便看到設備的具體信息也難以滿足工作人員對于設備實際地理位置和安裝運行情況的實時掌握,無法瀏覽大尺度模型,從而不能對信號設備系統進行一致分析。
GIS(三維可視化地理信息系統)更擅長大范圍內的可視化場景和地理空間分析,相較于BIM它更偏向于展示宏觀環境信息和設備外部區域的空間模型[4]。相較BIM,GIS模型像一個“殼”,不關注模型內部結構與信息,BIM模型則更像一個“瓤”,主要描述和展示內部結構和信息。可以將BIM模型鑲嵌在GIS中,使之成為一個完整全面的組合[5]。將BIM與GIS結合,能實現設備運維的全方位管理,同時滿足信號設備“精細”、工作區域“廣泛”的管理要求,可以解決GIS三維模型信息內容簡單、BIM模型獨立分散的問題,完成設備全生命周期與地理環境數據、施工信息與運維工程信息的集成,進而實現空間和時間信息的全面融合,形成有機統一的可視化模型。可為電務設備維護檢修、報警預報、應急搶險等業務提供設備定位、空間分析以及信息查詢等多項功能,從而提高系統的科學決策水平。
由于鐵路信號設備的種類多達數千種,所構建的BIM模型體量過大,直接使用會導致渲染時間過長,讀取交互時系統過載,工作效率受到嚴重影響。要呈現的數據量大和模型體量大、BIM與GIS技術的異構三維模型轉換是系統可視化亟待解決的技術問題。針對以上問題,對BIM模型進行輕量化處理,并將其融合至基于WebGIS的Cesium引擎,完成兩種技術的深度集成,將成果應用于鐵路信號運維系統,實現設備信息與地理空間的有機統一。
Cesium是一種基于WebGL的地圖引擎[6],其支持多種格式的動態地理空間數據,并提供各種形式的模型數據集成接口,在三維可視化領域應用廣泛。信號運維管理平臺采用Cesium引擎將地圖數據與信號站場BIM模型數據融合,形成可視化方案,并在其基礎上開發應用,可視化架構如圖1所示。

圖1 系統可視化架構
模型方面,使用BIM建模工具對鐵路信號設備建立三維模型族庫,包含信號機、道岔、軌道電路、聯鎖設備、繼電器、閉塞設備等數千種設備器材模型。 此外,由于Revit和Bentley建模軟件的材質庫不夠全面,對于模型紋理、材質和光照等細節無法統一渲染,故試用 Autodesk Maya軟件對BIM三維模型進行組合渲染,完善模型細節,組成總裝模型。使用細節面片抑制法將組裝后的模型文件進行輕量化,再將其模型格式轉換為適用于Cesium引擎的glTF(B3DM)格式,載入三維平臺實現系統的三維可視化需求。地圖方面,系統使用接口調用鐵路地理信息服務平臺數據,并將海量地圖數據自動瓦片化處理,并完成GIS平臺三維地圖搭建。
繪制完成信號設備數量為8023個、種類1223種。烏魯木齊站地域遼闊,鐵路信號設備分布不集中[7],導致BIM模型規模龐大,體量達到1.2TByte;直接加載時,服務器負載過重,畫面加載時間極長。故系統采用細節面片抑制法進行BIM模型輕量化處理[8-9],提高信息模型的適用性和流暢性,保證終端的運行速度。
輕量化思路為:確保模型局部特征工程語義不變的前提下,將草圖元素個數降到最低,減小模型體量。圖2為轉轍機模型,其特征依賴圖如圖3所示。

圖2 轉轍機模型

圖3 轉轍機特征依賴圖
細節面片抑制法:首先要正確使用草圖中所包含的細節特征來識別模型,將草圖各項參數對應元素的體積和平均值計算出來。再由建模人員給出一個經驗閾值α,將草圖元素的體積vi及其平均值v之比作比較得到比值αi,若αi小于閾值α,則可證明此元素確為草圖的細節元素。該細節元素的存在與否不影響三維模型拓撲結構的完整性,通過對此類細節特征的刪減達到更新模型的目的。細節面片抑制法的創新之處在于使用閾值選擇出元素中可刪減的部分,創新了算法思路,用數學方法在保證模型輕量化的同時又保證了模型特征的穩定。
將BE(K)BES(K)-1000 ZPW型扼流變壓器進行細節面片抑制輕量化,建模人員設置體積閾值α分別為6%和15%,系統經過邏輯處理將比例αi小于體積閾值α的所有細節部件消除,得到不同程度的輕量化模型。如表1所示,二次處理后的模型面片數明顯減少,但柜體外觀特征依然保留,細節特征刪減的同時兼顧了模型的特征項保留,實現了模型的輕量化。

表1 不同經驗閾值輕量化模型比較
GIS技術的三維可視化渲染技術基于WebGL[10],WebGL是一種三維繪圖協議,通過增加OpenGL ES 2.0的一個JavaScript綁定來實現使用JavaScript調用底層OpenGL ES 2.0進行3D顯示[11]。目前大多數瀏覽器和移動終端設備都支持WebGL技術。本文選用基于webGL的三維引擎——Cesium,其對WebGL提供的許多接口進行了封裝,簡化細節,幾乎沒有損失WebGL的靈活性。開發時可大大減少底層數據的編寫,提高工作效率。
Cesium引擎是使用JavaScript編寫的開源三維引擎,它沿用了WebGL的硬件加速渲染以及跨平臺展示功能[12]。其使用AMD方案進行代碼組織,實現代碼的按需加載,盡可能地減少了加載的延遲以及對帶寬的占用。Cesium通過遠程服務方式加載服務器端的地圖數據,可同時支持OGC制定的WMS,WFS等網絡服務規范,可自由選擇高亮區域,并且具有良好的觸摸支持,圖4為Cesium引擎交互式可視化示例。

圖4 地圖瓦片結構
目前常見的三維引擎有Three.js、Babylon.js、Cesium等,表2為3個引擎支持格式、應用學習現狀、優缺點以及適用范圍的對比。相較于其他三維引擎,Cesium的開源型、易用性和GIS專業性使它成為系統開發三維引擎的最佳選擇。
(1)開源性:其使用APache2.0協議,開放源代碼,開發人員可以在此基礎上進行代碼研究以及按照需求處理GIS服務中遇到的問題。
(2)易用性:Cesium官網提供了許多學習文檔、開發方法以及三維demo供開發者進行學習,有許多論壇中有Cesium引擎的開發問題的探討和交流。
(3)GIS專業性:Cesium側重行星級渲染和GIS功能,可加載各類GIS常用數據,具有強大的GIS要素展示能力,支持2D.3D.2.5D(哥倫布視圖)的地圖展示,并且可將三維模型數據結合三維地形數據同時展示。
Cesium引擎可以全方位地展示地球三維地圖,它由以下4個關鍵類組成。Cesium高程地形:仿真地圖的核心,它支持全球高程地形瓦片的可視化,并且可以顯示海洋的水紋效果,高程地形能夠仿真山川海洋等真實地理場景,為三維虛擬地球在鐵路行業中的應用提供了良好的可視化特征;Cesium影像圖層:可繪制或堆疊高分辨率的影像圖層,使用接口調用不同服務器的影像數據;Cesium視口照相機:可以看做用戶的眼睛,它的可見范圍即為用戶視點可見范圍,視口照相機擁有多角度視點區域,可通過旋轉、縮放、平移等方式操作其活動;Cesium幾何要素:常見的如盒狀、橢圓、多邊形等。

表2 3種三維引擎的對比
Cesium虛擬地球加載大量的高程地形和影像圖層數據,實現三維地圖的可視化。若用單個文件儲存高分辨率的影像圖層或高程地形這類海量數據,則由于文件過大無法直接加載到內存進行讀取。故使用“瓦片”這種數據組織,它是將影像圖層或高程地形文件分割成小的數據,實現多層次細節繪制。系統使用13級瓦片數據結構,每個瓦片的像素寬度和高度固定不變。隨著層級的變高,覆蓋的區域愈大,每一層的瓦片數量呈指數增長,單個瓦片覆蓋的地理范圍變小。因瓦片像素數固定不變,用戶視角看到的層級越高,畫面的像素塊越多(如金字塔狀)[13],地圖畫面也就越清晰,如圖4所示。瓦片結合OOC(Out Of Core)算法,將海量的地圖數據清晰直觀地加載至Cesium虛擬地球。
系統按照瓦片分級,圖5、圖6為三維模型實例。瓦片級數低時,畫面像素較低,僅大型建筑模型被加載。隨著地圖放大,瓦片級數的變高,畫面像素越來越高,突出設備細節,畫質清晰。

圖5 低級瓦片級數下的視圖

圖6 高級瓦片級數下的視圖
Cesium 引擎作為一個可定制模型、結構和紋理的開源三維模型渲染平臺,通用格式是glTF[14]。glTF(Graphics Language Transmission Format)是Khronos于2015年推出的一種基于圖形語言的三維模型傳輸格式,具有易擴展、高效、可協作的優點。glTF格式本質上是JSON文件,可描述整個3D場景的內容,最大程度地展現真實三維模型元素,例如:紋理、顏色、多層次,材質等。
glTF格式的文件僅能展示三維可視元素,如需體現設備屬性等虛擬表達,則需要使用額外的數據庫訪問或表單查詢等方式。而“3DTiles”數據規范有效解決了這一難題。
3D Tiles是一種開放的規范,用于傳輸異構三維地理空間數據。一個3D Tiles文件包括兩部分文件,即Tiles文件和Tileset JSON文件。Tiles文件儲存模型數據,如B3DM、I3DM、PNT、CMPT;TilesetJSON是3D Tiles的說明文件[15],是JSON格式,用來存儲切片文件的版本信息和坐標系統、定義各個元素的共享屬性信息以及指定加載和渲染起始時間的正數值等。
在此規范下,定義B3DM(一種WebGL渲染的數據格式)作為glTF的切片格式[16],是一種二進制文件,圖7是其文件組織形式,包括版本、自定義的屬性信息、bgl TF等信息。它融合了glTF的模型數據與屬性數據,可以將三維模型分層表達,適用于BIM三維模型[17]與Cesium引擎的融合。

圖7 B3DM數據格式(包含glTF數據格式)
將輕量化后的BIM總裝模型轉換為GIS數據源。BIM與GIS技術偏重點不同,故兩種模型數據具有一些差異[18-19]。BIM+GIS結合應用時,需要將BIM模型進行轉換[20-21]。
首先是提取BIM模型中的幾何信息,IFC(BIM標準數據模型)對象中存儲了例如關聯行為、多元屬性、幾何表達等多類信息。確認轉換CityGML(GIS標準數據模型)對象需要被保留的數據類型后,對IFC對象以約束條件進行遍歷判斷,過濾多余信息,輸出幾何信息和其相關屬性信息。
CityGML具有LOD多細節層次表達,每個層次需要不同的層級的幾何信息。按照選擇對應的映射關系實現兩個模型語義信息的轉換[22],得到與CityGML模型分級對應的IFC數據后,對丟失的信息進行增強補充。接下來使用CityGML的三維構造B-rep算法,將這個IFC模型的幾何和語義信息進行重構,得到最終的CityGML多細節層次模型。
系統使用Cesium引擎作為GIS平臺,故BIM與GIS的技術融合并沒有停留在語義轉換、格式重構等理論研究方面,更是重點研究了實際項目中軟件平臺對模型的轉換處理以及應用[23]。本文以既有BIM模型作為基礎,為了提高其在Cesium平臺上的可用性和交互性,提出了適用于本系統的數據模型轉換方案。步驟如下。
(1)FBX是適用于以上軟件的一種三維創作與交換的文件格式,可以對BIM模型進行跨平臺、模型式轉換,擅用于3D軟件模型之間的互導。將不同分工的模型設計軟件中的各種信號和建筑物的三維模型都導出為.fbx文件,實現全體BIM模型的格式統一。
(2)Revit和Bentley的材質庫有限,不能滿足全部要求,將模型的FBX文件導入試用版Autodesk Maya(一個三維動畫建模軟件)對設備、建筑物細節紋理,材質等進行豐富處理,而后導出.obj格式全模型文件。
(3)Cesium官方提供了開源工具obj2glTF,使用此工具需要配置Node.js環境,并且遵守Apache-2.0開源協議。把.obj文件放在obj2glTF根目錄下,執行命令語句即可成功將.obj文件轉換為.glTF文件。
(4)使用開源工具3d-tiles-tools將.glTF轉換為.b3dm文件。
(5)轉換完成的模型.b3dm數據采用八叉樹方法進行三維數據切片組織,再整理JSON元數據文件,組合而成的3D Tiles文件作為三維Cesium引擎的標準格式搭建模型,如圖8所示。

圖8 系統數據模型轉換方案
將進站信號機BIM模型按照系統數據模型轉換方案進行處理,最終將模型的B3DM文件放入Cesium引擎進行加載,如圖9、圖10所示。

圖9 進站信號機BIM模型

圖10 進站信號機模型載入Cesium引擎
將轉換完成的三維模型基于Cesium進行三維展示,經終端測試,在 PC 端可快速流暢加載系統三維模型,圖11為系統室外設備可視化頁面,可以看到畫面中車站的模型以及地圖模型完美融合。圖12展示了站場樓的設備及其細節,可對模型進行交互操作。滿足使用者從宏觀至微觀的多層次深入了解模型及整個工程項目,滿足了大文件、大圖紙、大模型的整體展示需求。

圖11 室外設備展示

圖12 室內設備展示
該平臺實現了直接以三維方式瀏覽車站和設備具體情況,以及通過關鍵字段搜索直接定位到設備,通過點擊具體設備的方式直接顯示該設備的全部基本信息、相關圖紙和維修記錄。此外,設備狀態信息可實時動態顯示,以圖形化方式顯示軌道、道岔、信號機等的報警狀態和其他室內信號系統設備的工作狀態(如電源模塊、板卡狀態、系統連接狀態等),為工作人員在日常維護和故障處理方面提供了更加直觀、高效的手段。
系統通過BIM+GIS三維視圖遠程查看烏魯木齊局整條線路的聯鎖設備狀態。為了降低維護成本,可將部分位置偏遠、人員稀少的聯鎖車站逐漸轉換為無人值守站。當計算機聯鎖出現故障時,系統可通過對計算機聯鎖遠程重啟或主備切換服務等操作遠程維護。如圖13所示。

圖13 遠程維護模塊三維可視化頁面
Cesium的開源三維地圖引擎具有支持多源數據、開發靈活和使用操作便捷等特點,是適用于鐵路行業可視化的良好開發工具。本文使用Cesium三維引擎實現了BIM+GIS異構數據模型集成。將BIM模型集成至WebGIS平臺,拓寬了BIM技術在鐵路領域應用的深度和廣度,大大提高了運維平臺的設計水平。
系統通過BIM技術進行參數化建模,使用細節面片抑制法將三維模型輕量化,基于B/S架構,以JavaScript為開發語言,開發了烏魯木齊局信號設備運維管理系統,實現信號設備室內外的三維可視化,從宏觀到微觀加強管理方對信號系統的全面把控,其應用研究成果為鐵路信號行業信息化建設提供了新理念、新方法。