杜 政,王海俊,談 震,黃華東
(1.南瑞集團(國網電力科學研究院)有限公司,南京 211106;2.江蘇省水利勘測設計研究院有限公司,江蘇 揚州 225009)
水利工程建筑物選型獨特,技術復雜,設計效率低,且參建各方信息共享水平低,通過引入BIM技術建立水利工程信息模型可以有效解決這些問題[1],目前BIM技術主要應用于水利工程的設計階段[2],國內水利水電行業設計單位采用不同廠家的協同設計基礎平臺,主要有歐特克(Autodesk)、奔特力(Bentley)、達索(Dassault)等平臺[3],導致數據格式眾多,很難以一種統一的格式進行管理,從而導致BIM應用過程中普遍存在數據交互效率低的問題[4]。而由buildingSMART組織所推進的工業基礎類(industry foundation class,IFC)已成為BIM數據描述和交換的國際標準[5],基于IFC能夠以標準化的方式構建、存儲和交換BIM數據,橫跨建筑生命期的各個階段,在不同參與方、不同專業和應用軟件之間傳遞數據[6]。同時上述平臺是桌面端的建模軟件,無法滿足用戶隨時隨地查看模型及其屬性的需求,也無法滿足用戶在移動端查看的需求[7]。隨著HTML5和WebGL等技術的發展,為B/S 架構的BIM輕量化帶來了新的技術力量,通過BIM輕量化讓BIM可視化脫離專業應用軟件,實現BIM模型的WEB端瀏覽和交互操作[8]。本文將基于IFC標準與WebGL技術開展水利工程BIM輕量化應用研究。
本文的研究核心是基于IFC標準與WebGL技術開展水利工程BIM輕量化應用的技術研究與應用開發,實現水利工程BIM數據的標準化、輕量化與可視化。BIM數據標準化通過引入IFC標準實現水利工程多源異構BIM數據的集成,并結合水利工程模型分類與編碼相關標準對IFC標準進行擴展,從而實現水利工程BIM數據的標準化。BIM數據輕量化基于XBIM實現IFC 文件的解析與輕量化,利用數模分離原理將IFC文件拆分為三維幾何數據與屬性數據,實現模型的信息提取與格式轉換,通過微觀層面的參數化幾何描述與宏觀層面的相似性圖元合并兩種優化方法實現三維幾何數據的輕量化處理。BIM數據可視化基于WebGL技術與WeXplorer框架開發Web-3D可視化應用功能模塊,通過多重LOD、遮擋剔除與批量繪制多種技術融合提升模型的三維渲染效果,同時開發縮放、旋轉、透明、剖切、漫游、標簽、測量等功能,實現水利工程各類用戶與BIM模型的交互。通過BIM數據標準化、輕量化與可視化方面的研究,最終完成水利工程BIM模型輕量化應用系統研發。原理框架圖如圖1。

圖1 原理框架圖Fig.1 The schematic frame diagram
IFC標準是BIM 數據描述和交換的國際標準,基于IFC能夠以標準化的方式構建、存儲和交換BIM數據,橫跨建筑全生命周期的各個階段,在不同參與方、不同專業和應用軟件之間傳遞數據,所有專業軟件創建的BIM 模型都可以轉換為IFC格式文件輸出[9]。IFC 模型結構由資源層、核心層、共享層與領域層 4 個層次組成(如圖2)。

圖2 IFC4標準體系結構Fig.2 IFC4 schema structure
最底層的資源層定義 21 類可重復利用的實體與類型,包括幾何資源、屬性資源、材料資源等,資源層的實體不能獨立存在,僅供高層次調用。核心層定義 IFC 模型的基本結構、基礎關系和公用概念,組織下層分散的基礎信息,形成 IFC 模型的基本結構。共享層提供通用性的對象與關系,包括建筑服務元素、組件元素、建筑元素、管理元素、設備元素等,可供領域層多個領域使用。領域層定義特定專業領域所需的實體對象,如電氣領域的電纜、變壓器、電氣設備等。[10]。
IFC標準是一個逐步更新發展的過程,歷經6次更新,每次升級都擴充了大量IFC模型實體滿足工程需要。目前,IFC 標準主要應用于建筑工程領域,缺少水利工程領域特有構件和屬性描述[11]。IFC標準擴展方法是解決這個問題的有效手段,IFC具有IFC實體擴展、IFC屬性集擴展與基于IFCProxy實體擴展3種擴展方式,其中IFC實體擴展通過新增實體或實體屬性擴展 IFC 的描述范圍,IFC屬性集擴展通過新增或修改IFC 標準中的屬性集提升實體描述的精細度、基于IFCProxy實體擴展通過實例化通用實體 IFCProxy的方式描述 IFC 中未定義的對象,實現自定義信息模型[12]。上述3種擴展方法各有優缺點,表1從易用性、兼容性、效率性與安全性四個方面對3種擴展方法進行了對比,說明了3種擴展方式各自的適用性。對于需要進行大量擴展的水利行業應用來說,可采用IFC實體擴展方式,運行效率較高,若得到行業認可將會應用于新的IFC版本中。
由于IFC文件本身不支持WebGL的讀取與加載,在實際應用中我們需要將 IFC 格式的文件解析成WebGL支持的文件格式,同時IFC文件信息全面而詳實,導致模型數據量較大,對瀏覽器端的數據處理性能要求較高[13]。因此本文需要對IFC文件進行模型的解析與輕量化,然后基于WebGL實現模型的快速讀取與加載。IFC文件可以通過文本編輯器查看和編輯,文本內容包括文件頭部分和數據部分。文件頭部分包括文件本身信息,例如文件描述、文件名稱、IFC 標準版本等,數據部分是文件的核心,包括了項目的所有建筑模型信息[14]。IFC文件解析主要對IFC 文件數據段內容進行訪問與處理,IFC 標準發布時均發布對應擴展名為.exp 的模式文件,基于該文件可進行 IFC 數據解析程序的設計,實現IFC 文件的內容遍歷、查詢以及信息提取。數據處理以構件對象的實體為主,通過遍歷所有對象的實體信息獲得組成建筑信息模型的全部對象,通過實體對象的引用關系獲得與對象關聯的全部信息數據,幾何信息經過幾何布爾運算、參數化轉片面和三角化等幾何數據處理過程,才能夠轉化為 WebGL 圖形引擎可以繪制的三維可視化數據,最后通過數據整理完成IFC文件解析[15]。

表1 3種擴展方式的對比Tab.1 Comparison of the three extensions
BIM模型輕量化是指通過相關算法對模型中的屬性信息、幾何信息等內容進行壓縮、簡化等操作,目的是降低BIM源文件的數據量,保證BIM數據的精確性,實現BIM數據的無損壓縮[16]。BIM模型輕量化的關鍵環節是幾何信息的簡化,可以從微觀層面與宏觀層面兩個方面進行,微觀層面是從單個構件著手,通過參數化幾何描述、三角化幾何描述等方式實現幾何信息的簡化表達,宏觀層面則是通過各類數學算法對整個模型的幾何信息進行簡化處理[17]。比如利用構件幾何復用算法將具有相同形狀的同類型構件的幾何信息進行唯一性表達,然后由各自的不同位置信息確定每個構件的空間坐標位置,同一類型的構件只需存儲一份幾何數據,從而實現BIM數據的無損壓縮[18]。模型輕量化示意圖見圖3。

圖3 模型輕量化示意圖Fig.3 Diagram of model lightweighted
WebGL技術是由Khronos提出的新的Web3D圖形規范,它是一項在瀏覽器中繪制、顯示3D圖形并支持交互的技術,其允許開發者在瀏覽器中直接調用圖形硬件進行3D可視化的加速[19]。WebGL基于Open GLES2.0標準和OpenGL著色語言GLSL,是一個免費的、跨平臺的Web端3D圖形渲染的API,結合HTML5的
為了讓WebGL 具有充分的靈活性,原生的WebGL API里面包括很多復雜的底層內容,因此利用原生的WebGL API進行開發時,需要具備扎實的計算機圖形學知識,同時由于開發者對WebGL技術有著不同的需求,不同的WebGL應用又存在許多重復功能,直接利用WebGL底層程序進行開發既費時又費力。WebGL應用開發框架應運而生,目前常用的框架有o3djs、Scene.js、Three.js、GLGE、Spider.js、Copperlicht、CubicVR 等,他們對WebGL底層部分功能進行封裝,避免每次開發都做很多重復性的復雜底層操作,減小了WebGL應用的開發難度和開發成本,縮短了開發周期,其中Three.js 框架使用最為廣泛,它的復雜度較低,簡單、直觀,屬于輕量級的 3D 框架,提供了豐富的 3D 圖形渲染功能,可以方便快捷的創建包括攝影機、光源、材質等各種對象的交互式三維場景。Three.js 框架在進行 WebGL 圖形渲染前,需要完成場景的構建,圖4完整展示了 Three.js 的渲染流程,首先定義一個場景,然后在場景中定義燈光效果和相機效果,之后需要創建模型對象的網格,同時選擇相應的材質信息,最后 Three.js 的渲染器根據場景中的相關數據以及選取的著色器程序,在屏幕上繪制出最終的圖形。

圖4 Three.js 的繪制流程Fig.4 The drawing process of Three.js
水利工程項目規模龐大,涉及到的專業復雜多樣,生命周期長,參與方眾多,且建筑物眾多且形狀各異,數據信息繁雜,統一水利工程信息模型數據標準是實現水利工程信息模型共享的關鍵[21]。IFC 標準主要應用于建筑工程領域,缺少水利工程領域特有構件和屬性描述。因此,基于IFC 構建水電工程信息模型必須對 IFC 標準進行相應擴展。本文參考《水利水電工程設計信息模型分類和編碼標準》,借助Revit API開發了 IFC 定義設置功能,用戶可進行任意構件的 IFC 定義,同時可以建立構件之間的關聯關系,以長距離引供水工程為例,針對工程運維管理應用需要,實現了引供水工程IFC模型的分類與信息編碼。長距離引供水工程樣表見表2。

表2 長距離引供水工程樣表Tab.2 Long-distance water supply project sample form
IFC文件結構復雜、信息豐富,從底層對 IFC文件進行解析需要深入研究Express 標準語言,耗時費力。為了實現IFC文件的靈活解析,本文選用了Xbim工具包作為解析工具,讀取 IFC 格式文件的模型信息,以實現到自定義文件格式的保存。Xbim 工具包是一個開源的軟件開發BIM工具,支持 BuildingSmart 數據模型。Xbim 允許開發人員以 IFC格式讀取,創建和查看BIM數據,完全支持幾何,拓撲操作和可視化。
Xbim主要有Xbim.Essentials、Xbim.Exchange、Xbim.Geometry、Xbim.WindowsUI、Xbim.WeXplorer等組件庫,我們借助Xbim.Essentials來進行IFC文件的讀寫,將 IFC格式文件信息解析到model對象當中,然后借助Xbim.Geometry將model當中的幾何數據讀取出來并保存在mesh對象當中,完成IFC文件屬性數據和幾何數據的解析,實現IFC文件的數模分離。IFC文件輕量化主要是從微觀層面和宏觀層面對幾何數據進行簡化與壓縮,在微觀層面通過參數化幾何描述、三角化幾何描述等方式實現幾何信息的簡化表達,在宏觀層面利用構件幾何復用算法實現相似性圖元的合并。在Xbim中我們利用Xbim.Essential與Xbim. Geometry來對IFC文件進行優化和壓縮,創建支持WebGL能加載的wexBIM文件。以某個泵站樞紐工程的IFC文件為例,初始IFC文件大小為95 M,輕量化后的文件只有15 M左右,文件大小減少了85%左右,有助于提高瀏覽器端的加載效率和展示速度。數據流程圖見圖5。

圖5 數據流程圖Fig.5 Data flow chart
Web-3D可視化應用開發主要分為三維可視化框架搭建與模型文件的解析讀取兩步,首先運行JavaScript程序,調用WebGL的相關方法; 然后調用頂點著色器和片元著色器在顏色緩沖區內進行繪制; 最后在瀏覽器上自動顯示。Xbim工具包提供基于WebGL技術的三維可視化框架WeXplorer,使用預處理的wexBIM文件處理Web上的IFC數據的可視化。WeXplorer框架主要通過xViewer類來加載和呈現wexBIM格式的IFC模型,xViewer使用WebGL技術進行硬件加速的3D渲染,同時提供Xbrowser類實現JSON COBieLite數據的可視化。
本文基于WebGL技術開發BIM三維可視化應用功能模塊,借助WeXplorer框架實現輕量化模型的展示,并通過多重LOD、遮擋剔除與批量繪制多種技術融合提升模型的三維渲染效果,同時開發縮放、旋轉、透明、剖切、漫游、標簽、測量等功能,實現用戶與模型的交互。基于WebGL技術跨平臺的特性,Web-3D可視化應用可運行于Firefox、Chrome等現代瀏覽器,同時iOS、Android移動設備上也可以運行,圖6、7為Chrome瀏覽器運行界面。圖8為IPad移動設備運行界面。

圖6 模型可視化界面Fig.6 Model visualization interface

圖7 模型放大與構件屬性查看界面Fig.7 Model amplification and widget properties view interface

圖8 IPad運行界面Fig.8 IPad run interface
本文從水利工程BIM數據的標準化、輕量化與可視化3個方面開展BIM輕量化應用研究。基于IFC標準實現了BIM數據格式的統一,針對IFC標準缺少水利工程領域特有構件和屬性描述的問題,以引供水工程為例,通過Revit API二次開發實現了水利工程IFC標準擴展。同時采用開源的Xbim工具包實現了IFC文件的解析與輕量化,并基于WebGL技術完成Web-3D可視化應用的開發,為水利工程BIM輕量化應用提供了一種實用有效的方法,下一步工作重點是基于水利工程BIM輕量化應用構建水利工程全生命周期系統,推進BIM技術在水利工程的應用。