杜 政,王???,談 震,黃華東
(1.南瑞集團(國網(wǎng)電力科學(xué)研究院)有限公司,南京 211106;2.江蘇省水利勘測設(shè)計研究院有限公司,江蘇 揚州 225009)
水利工程建筑物選型獨特,技術(shù)復(fù)雜,設(shè)計效率低,且參建各方信息共享水平低,通過引入BIM技術(shù)建立水利工程信息模型可以有效解決這些問題[1],目前BIM技術(shù)主要應(yīng)用于水利工程的設(shè)計階段[2],國內(nèi)水利水電行業(yè)設(shè)計單位采用不同廠家的協(xié)同設(shè)計基礎(chǔ)平臺,主要有歐特克(Autodesk)、奔特力(Bentley)、達索(Dassault)等平臺[3],導(dǎo)致數(shù)據(jù)格式眾多,很難以一種統(tǒng)一的格式進行管理,從而導(dǎo)致BIM應(yīng)用過程中普遍存在數(shù)據(jù)交互效率低的問題[4]。而由buildingSMART組織所推進的工業(yè)基礎(chǔ)類(industry foundation class,IFC)已成為BIM數(shù)據(jù)描述和交換的國際標準[5],基于IFC能夠以標準化的方式構(gòu)建、存儲和交換BIM數(shù)據(jù),橫跨建筑生命期的各個階段,在不同參與方、不同專業(yè)和應(yīng)用軟件之間傳遞數(shù)據(jù)[6]。同時上述平臺是桌面端的建模軟件,無法滿足用戶隨時隨地查看模型及其屬性的需求,也無法滿足用戶在移動端查看的需求[7]。隨著HTML5和WebGL等技術(shù)的發(fā)展,為B/S 架構(gòu)的BIM輕量化帶來了新的技術(shù)力量,通過BIM輕量化讓BIM可視化脫離專業(yè)應(yīng)用軟件,實現(xiàn)BIM模型的WEB端瀏覽和交互操作[8]。本文將基于IFC標準與WebGL技術(shù)開展水利工程BIM輕量化應(yīng)用研究。
本文的研究核心是基于IFC標準與WebGL技術(shù)開展水利工程BIM輕量化應(yīng)用的技術(shù)研究與應(yīng)用開發(fā),實現(xiàn)水利工程BIM數(shù)據(jù)的標準化、輕量化與可視化。BIM數(shù)據(jù)標準化通過引入IFC標準實現(xiàn)水利工程多源異構(gòu)BIM數(shù)據(jù)的集成,并結(jié)合水利工程模型分類與編碼相關(guān)標準對IFC標準進行擴展,從而實現(xiàn)水利工程BIM數(shù)據(jù)的標準化。BIM數(shù)據(jù)輕量化基于XBIM實現(xiàn)IFC 文件的解析與輕量化,利用數(shù)模分離原理將IFC文件拆分為三維幾何數(shù)據(jù)與屬性數(shù)據(jù),實現(xiàn)模型的信息提取與格式轉(zhuǎn)換,通過微觀層面的參數(shù)化幾何描述與宏觀層面的相似性圖元合并兩種優(yōu)化方法實現(xiàn)三維幾何數(shù)據(jù)的輕量化處理。BIM數(shù)據(jù)可視化基于WebGL技術(shù)與WeXplorer框架開發(fā)Web-3D可視化應(yīng)用功能模塊,通過多重LOD、遮擋剔除與批量繪制多種技術(shù)融合提升模型的三維渲染效果,同時開發(fā)縮放、旋轉(zhuǎn)、透明、剖切、漫游、標簽、測量等功能,實現(xiàn)水利工程各類用戶與BIM模型的交互。通過BIM數(shù)據(jù)標準化、輕量化與可視化方面的研究,最終完成水利工程BIM模型輕量化應(yīng)用系統(tǒng)研發(fā)。原理框架圖如圖1。
圖1 原理框架圖Fig.1 The schematic frame diagram
IFC標準是BIM 數(shù)據(jù)描述和交換的國際標準,基于IFC能夠以標準化的方式構(gòu)建、存儲和交換BIM數(shù)據(jù),橫跨建筑全生命周期的各個階段,在不同參與方、不同專業(yè)和應(yīng)用軟件之間傳遞數(shù)據(jù),所有專業(yè)軟件創(chuàng)建的BIM 模型都可以轉(zhuǎn)換為IFC格式文件輸出[9]。IFC 模型結(jié)構(gòu)由資源層、核心層、共享層與領(lǐng)域?qū)?4 個層次組成(如圖2)。
圖2 IFC4標準體系結(jié)構(gòu)Fig.2 IFC4 schema structure
最底層的資源層定義 21 類可重復(fù)利用的實體與類型,包括幾何資源、屬性資源、材料資源等,資源層的實體不能獨立存在,僅供高層次調(diào)用。核心層定義 IFC 模型的基本結(jié)構(gòu)、基礎(chǔ)關(guān)系和公用概念,組織下層分散的基礎(chǔ)信息,形成 IFC 模型的基本結(jié)構(gòu)。共享層提供通用性的對象與關(guān)系,包括建筑服務(wù)元素、組件元素、建筑元素、管理元素、設(shè)備元素等,可供領(lǐng)域?qū)佣鄠€領(lǐng)域使用。領(lǐng)域?qū)佣x特定專業(yè)領(lǐng)域所需的實體對象,如電氣領(lǐng)域的電纜、變壓器、電氣設(shè)備等。[10]。
IFC標準是一個逐步更新發(fā)展的過程,歷經(jīng)6次更新,每次升級都擴充了大量IFC模型實體滿足工程需要。目前,IFC 標準主要應(yīng)用于建筑工程領(lǐng)域,缺少水利工程領(lǐng)域特有構(gòu)件和屬性描述[11]。IFC標準擴展方法是解決這個問題的有效手段,IFC具有IFC實體擴展、IFC屬性集擴展與基于IFCProxy實體擴展3種擴展方式,其中IFC實體擴展通過新增實體或?qū)嶓w屬性擴展 IFC 的描述范圍,IFC屬性集擴展通過新增或修改IFC 標準中的屬性集提升實體描述的精細度、基于IFCProxy實體擴展通過實例化通用實體 IFCProxy的方式描述 IFC 中未定義的對象,實現(xiàn)自定義信息模型[12]。上述3種擴展方法各有優(yōu)缺點,表1從易用性、兼容性、效率性與安全性四個方面對3種擴展方法進行了對比,說明了3種擴展方式各自的適用性。對于需要進行大量擴展的水利行業(yè)應(yīng)用來說,可采用IFC實體擴展方式,運行效率較高,若得到行業(yè)認可將會應(yīng)用于新的IFC版本中。
由于IFC文件本身不支持WebGL的讀取與加載,在實際應(yīng)用中我們需要將 IFC 格式的文件解析成WebGL支持的文件格式,同時IFC文件信息全面而詳實,導(dǎo)致模型數(shù)據(jù)量較大,對瀏覽器端的數(shù)據(jù)處理性能要求較高[13]。因此本文需要對IFC文件進行模型的解析與輕量化,然后基于WebGL實現(xiàn)模型的快速讀取與加載。IFC文件可以通過文本編輯器查看和編輯,文本內(nèi)容包括文件頭部分和數(shù)據(jù)部分。文件頭部分包括文件本身信息,例如文件描述、文件名稱、IFC 標準版本等,數(shù)據(jù)部分是文件的核心,包括了項目的所有建筑模型信息[14]。IFC文件解析主要對IFC 文件數(shù)據(jù)段內(nèi)容進行訪問與處理,IFC 標準發(fā)布時均發(fā)布對應(yīng)擴展名為.exp 的模式文件,基于該文件可進行 IFC 數(shù)據(jù)解析程序的設(shè)計,實現(xiàn)IFC 文件的內(nèi)容遍歷、查詢以及信息提取。數(shù)據(jù)處理以構(gòu)件對象的實體為主,通過遍歷所有對象的實體信息獲得組成建筑信息模型的全部對象,通過實體對象的引用關(guān)系獲得與對象關(guān)聯(lián)的全部信息數(shù)據(jù),幾何信息經(jīng)過幾何布爾運算、參數(shù)化轉(zhuǎn)片面和三角化等幾何數(shù)據(jù)處理過程,才能夠轉(zhuǎn)化為 WebGL 圖形引擎可以繪制的三維可視化數(shù)據(jù),最后通過數(shù)據(jù)整理完成IFC文件解析[15]。
表1 3種擴展方式的對比Tab.1 Comparison of the three extensions
BIM模型輕量化是指通過相關(guān)算法對模型中的屬性信息、幾何信息等內(nèi)容進行壓縮、簡化等操作,目的是降低BIM源文件的數(shù)據(jù)量,保證BIM數(shù)據(jù)的精確性,實現(xiàn)BIM數(shù)據(jù)的無損壓縮[16]。BIM模型輕量化的關(guān)鍵環(huán)節(jié)是幾何信息的簡化,可以從微觀層面與宏觀層面兩個方面進行,微觀層面是從單個構(gòu)件著手,通過參數(shù)化幾何描述、三角化幾何描述等方式實現(xiàn)幾何信息的簡化表達,宏觀層面則是通過各類數(shù)學(xué)算法對整個模型的幾何信息進行簡化處理[17]。比如利用構(gòu)件幾何復(fù)用算法將具有相同形狀的同類型構(gòu)件的幾何信息進行唯一性表達,然后由各自的不同位置信息確定每個構(gòu)件的空間坐標位置,同一類型的構(gòu)件只需存儲一份幾何數(shù)據(jù),從而實現(xiàn)BIM數(shù)據(jù)的無損壓縮[18]。模型輕量化示意圖見圖3。
圖3 模型輕量化示意圖Fig.3 Diagram of model lightweighted
WebGL技術(shù)是由Khronos提出的新的Web3D圖形規(guī)范,它是一項在瀏覽器中繪制、顯示3D圖形并支持交互的技術(shù),其允許開發(fā)者在瀏覽器中直接調(diào)用圖形硬件進行3D可視化的加速[19]。WebGL基于Open GLES2.0標準和OpenGL著色語言GLSL,是一個免費的、跨平臺的Web端3D圖形渲染的API,結(jié)合HTML5的
為了讓W(xué)ebGL 具有充分的靈活性,原生的WebGL API里面包括很多復(fù)雜的底層內(nèi)容,因此利用原生的WebGL API進行開發(fā)時,需要具備扎實的計算機圖形學(xué)知識,同時由于開發(fā)者對WebGL技術(shù)有著不同的需求,不同的WebGL應(yīng)用又存在許多重復(fù)功能,直接利用WebGL底層程序進行開發(fā)既費時又費力。WebGL應(yīng)用開發(fā)框架應(yīng)運而生,目前常用的框架有o3djs、Scene.js、Three.js、GLGE、Spider.js、Copperlicht、CubicVR 等,他們對WebGL底層部分功能進行封裝,避免每次開發(fā)都做很多重復(fù)性的復(fù)雜底層操作,減小了WebGL應(yīng)用的開發(fā)難度和開發(fā)成本,縮短了開發(fā)周期,其中Three.js 框架使用最為廣泛,它的復(fù)雜度較低,簡單、直觀,屬于輕量級的 3D 框架,提供了豐富的 3D 圖形渲染功能,可以方便快捷的創(chuàng)建包括攝影機、光源、材質(zhì)等各種對象的交互式三維場景。Three.js 框架在進行 WebGL 圖形渲染前,需要完成場景的構(gòu)建,圖4完整展示了 Three.js 的渲染流程,首先定義一個場景,然后在場景中定義燈光效果和相機效果,之后需要創(chuàng)建模型對象的網(wǎng)格,同時選擇相應(yīng)的材質(zhì)信息,最后 Three.js 的渲染器根據(jù)場景中的相關(guān)數(shù)據(jù)以及選取的著色器程序,在屏幕上繪制出最終的圖形。
圖4 Three.js 的繪制流程Fig.4 The drawing process of Three.js
水利工程項目規(guī)模龐大,涉及到的專業(yè)復(fù)雜多樣,生命周期長,參與方眾多,且建筑物眾多且形狀各異,數(shù)據(jù)信息繁雜,統(tǒng)一水利工程信息模型數(shù)據(jù)標準是實現(xiàn)水利工程信息模型共享的關(guān)鍵[21]。IFC 標準主要應(yīng)用于建筑工程領(lǐng)域,缺少水利工程領(lǐng)域特有構(gòu)件和屬性描述。因此,基于IFC 構(gòu)建水電工程信息模型必須對 IFC 標準進行相應(yīng)擴展。本文參考《水利水電工程設(shè)計信息模型分類和編碼標準》,借助Revit API開發(fā)了 IFC 定義設(shè)置功能,用戶可進行任意構(gòu)件的 IFC 定義,同時可以建立構(gòu)件之間的關(guān)聯(lián)關(guān)系,以長距離引供水工程為例,針對工程運維管理應(yīng)用需要,實現(xiàn)了引供水工程IFC模型的分類與信息編碼。長距離引供水工程樣表見表2。
表2 長距離引供水工程樣表Tab.2 Long-distance water supply project sample form
IFC文件結(jié)構(gòu)復(fù)雜、信息豐富,從底層對 IFC文件進行解析需要深入研究Express 標準語言,耗時費力。為了實現(xiàn)IFC文件的靈活解析,本文選用了Xbim工具包作為解析工具,讀取 IFC 格式文件的模型信息,以實現(xiàn)到自定義文件格式的保存。Xbim 工具包是一個開源的軟件開發(fā)BIM工具,支持 BuildingSmart 數(shù)據(jù)模型。Xbim 允許開發(fā)人員以 IFC格式讀取,創(chuàng)建和查看BIM數(shù)據(jù),完全支持幾何,拓撲操作和可視化。
Xbim主要有Xbim.Essentials、Xbim.Exchange、Xbim.Geometry、Xbim.WindowsUI、Xbim.WeXplorer等組件庫,我們借助Xbim.Essentials來進行IFC文件的讀寫,將 IFC格式文件信息解析到model對象當中,然后借助Xbim.Geometry將model當中的幾何數(shù)據(jù)讀取出來并保存在mesh對象當中,完成IFC文件屬性數(shù)據(jù)和幾何數(shù)據(jù)的解析,實現(xiàn)IFC文件的數(shù)模分離。IFC文件輕量化主要是從微觀層面和宏觀層面對幾何數(shù)據(jù)進行簡化與壓縮,在微觀層面通過參數(shù)化幾何描述、三角化幾何描述等方式實現(xiàn)幾何信息的簡化表達,在宏觀層面利用構(gòu)件幾何復(fù)用算法實現(xiàn)相似性圖元的合并。在Xbim中我們利用Xbim.Essential與Xbim. Geometry來對IFC文件進行優(yōu)化和壓縮,創(chuàng)建支持WebGL能加載的wexBIM文件。以某個泵站樞紐工程的IFC文件為例,初始IFC文件大小為95 M,輕量化后的文件只有15 M左右,文件大小減少了85%左右,有助于提高瀏覽器端的加載效率和展示速度。數(shù)據(jù)流程圖見圖5。
圖5 數(shù)據(jù)流程圖Fig.5 Data flow chart
Web-3D可視化應(yīng)用開發(fā)主要分為三維可視化框架搭建與模型文件的解析讀取兩步,首先運行JavaScript程序,調(diào)用WebGL的相關(guān)方法; 然后調(diào)用頂點著色器和片元著色器在顏色緩沖區(qū)內(nèi)進行繪制; 最后在瀏覽器上自動顯示。Xbim工具包提供基于WebGL技術(shù)的三維可視化框架WeXplorer,使用預(yù)處理的wexBIM文件處理Web上的IFC數(shù)據(jù)的可視化。WeXplorer框架主要通過xViewer類來加載和呈現(xiàn)wexBIM格式的IFC模型,xViewer使用WebGL技術(shù)進行硬件加速的3D渲染,同時提供Xbrowser類實現(xiàn)JSON COBieLite數(shù)據(jù)的可視化。
本文基于WebGL技術(shù)開發(fā)BIM三維可視化應(yīng)用功能模塊,借助WeXplorer框架實現(xiàn)輕量化模型的展示,并通過多重LOD、遮擋剔除與批量繪制多種技術(shù)融合提升模型的三維渲染效果,同時開發(fā)縮放、旋轉(zhuǎn)、透明、剖切、漫游、標簽、測量等功能,實現(xiàn)用戶與模型的交互?;赪ebGL技術(shù)跨平臺的特性,Web-3D可視化應(yīng)用可運行于Firefox、Chrome等現(xiàn)代瀏覽器,同時iOS、Android移動設(shè)備上也可以運行,圖6、7為Chrome瀏覽器運行界面。圖8為IPad移動設(shè)備運行界面。
圖6 模型可視化界面Fig.6 Model visualization interface
圖7 模型放大與構(gòu)件屬性查看界面Fig.7 Model amplification and widget properties view interface
圖8 IPad運行界面Fig.8 IPad run interface
本文從水利工程BIM數(shù)據(jù)的標準化、輕量化與可視化3個方面開展BIM輕量化應(yīng)用研究?;贗FC標準實現(xiàn)了BIM數(shù)據(jù)格式的統(tǒng)一,針對IFC標準缺少水利工程領(lǐng)域特有構(gòu)件和屬性描述的問題,以引供水工程為例,通過Revit API二次開發(fā)實現(xiàn)了水利工程IFC標準擴展。同時采用開源的Xbim工具包實現(xiàn)了IFC文件的解析與輕量化,并基于WebGL技術(shù)完成Web-3D可視化應(yīng)用的開發(fā),為水利工程BIM輕量化應(yīng)用提供了一種實用有效的方法,下一步工作重點是基于水利工程BIM輕量化應(yīng)用構(gòu)建水利工程全生命周期系統(tǒng),推進BIM技術(shù)在水利工程的應(yīng)用。