陳建華 黃利民 許 劍 安曉亞 郭建忠
隨著現代建筑行業的蓬勃發展,建筑信息模型(BIM)技術作為一項革命性的工具已經逐漸為各行業所了解。BIM 不僅具有可視化、模擬性、可出圖性和信息豐富等多重優點[1],而且還為項目參與者提供了協作和數據交流的便利。然而,隨著BIM 的廣泛應用,BIM 文件越來越精細化、越來越龐大,但是這些文件需要特定的專業軟件才能進行瀏覽和管理,這對BIM 技術在不同領域的應用造成了巨大障礙。
為了應對這一挑戰,BIM 輕量化技術應運而生[2],這一技術的應用使得BIM 文件不再龐大且笨重,而是變得緊湊且高效。更為重要的是,經過輕量化處理的BIM 可以直接在Web端進行瀏覽,這為各行業提供了更為便捷和快速的數據共享方式。然而,盡管BIM 輕量化技術已經取得了長足的發展,隨著建筑和工程項目的不斷增多和復雜化,BIM 技術的應用依然面臨著一系列挑戰,如模型文件龐大、數據交換復雜及協作瓶頸[3]等,因此,迫切需要一種切實可行的BIM 輕量化方法。
回顧BIM 輕量化的研究歷程,發現前人的研究主要集中在幾何模型簡化和優化數據結構方面。他們提出了各種算法和方法,不僅降低了模型的復雜性,而且提高了模型的可視化性能。然而,較少有研究者從用戶角度出發,考慮多元化用戶需求問題。
針對上述問題,本文在BIM 輕量化技術中引入多元用戶需求,提出了一種面向多元化需求的BIM 輕量化方法。在該過程中,選擇3D Tiles 格式[4]作為規范格式,選擇Cesium 作為可視化平臺[5]。3D Tiles 格式支持靈活的空間數據結構,提供了更大的自定義和可移植性。Cesium 平臺作為強大的可視化工具,為BIM 在Web 上的呈現提供了高效且出色的解決方案。
該方法的獨特之處在于,它可以根據不同用戶的需求展示特定的幾何信息和屬性信息,同時,對于不需要的信息,仍然儲存在數據庫中,不會進行加載。此外,該方法不僅能滿足不同用戶的需求,而且能在保證BIM數據完整性的同時,顯著提升BIM 的加載速度和渲染效率。本研究的目標是實現大體量建筑信息模型的高效可視化,使得BIM 技術能有效滿足實際應用需求。
BIM 輕量化是指在保證BIM 數據豐富的同時精簡模型數據構建邏輯,以減小模型體量,使其更加適合在Web 端使用[6]。隨著BIM 建模趨于精細化,模型的數據量不斷增加,龐大的數據體量成為BIM 技術在實際工程中應用的一個制約因素。
目前,BIM 輕量化技術正處于蓬勃發展階段,國內許多學者和研究團隊提出各種算法和方法,以降低BIM的復雜性,提高處理效率,并解決實際工程項目中的問題。
提出的算法和方法主要分為兩種:第一種主要從幾何模型簡化出發,例如,張業星等[7]基于地理信息系統(Geographic Information System,GIS)軟件分析技術提出了一種BIM抽殼輕量化方法,通過提取建筑物外部數據實現BIM 簡化;王云龍[8]、劉曉利等[9]通過研究邊折疊算法對BIM幾何模型輕量化;陳科等[10]通過研究現有幾何簡化方法,設計了一種考慮幾何特征的輕量化化簡方法。第二種主要從提高模型加載渲染效率出發,例如,李珂等[11]提出基于興趣度的多粒度傳輸調度算法,顯著提升了與邊頁協同的WebBIM 場景的初始加載速度;孫源等[12]將PagedLOD 技術與批次繪制渲染優化技術結合;史瑞昌等[13]提出面向需求的BIM 動態加載方法,為BIM 大場景在Web 端的快速加載提供了技術支持;劉小軍等[14]從構件實例冗余、構件及空間混合索引、多粒度數據動態、裝卸載策略3 方面出發,對BIM 進行了優化。
總之,現有研究主要側重于從整體角度對BIM 進行輕量化,這些方法在處理體積較小的建筑信息模型時表現出較好的效率和可視化效果。然而,隨著BIM 體積的增加,這些方法在實際應用中面臨新的挑戰。
在設計面向多元化需求的BIM 輕量化方法時,首要任務是深入了解和分析不同用戶群體的需求。不同用戶在使用BIM 時,關注的信息、交互操作和可視化需求可能存在顯著差異。因此,為了滿足多元化的需求,應根據用戶的具體需求來定制和設計相應的BIM 應用。
在應急救援領域,救援人員需要迅速獲取關鍵信息,以有效規劃救援路徑和行動。因此,BIM 需要提供相關重要信息,如墻體、樓梯、門窗、消防管道和消火栓的位置和狀態。這些信息對于救援行動至關重要,可以幫助救援人員快速識別逃生通道和應急出口,確保救援工作的高效性。對于救援人員而言,機電管線、梁、裝修等構件的詳細信息屬于冗余信息,不需要在緊急情況下浪費時間查看。
在社區管理方面,社區管理人員需要維護和管理建筑物及其相關設施。在這種情況下,BIM 應該提供更廣泛的信息,包括電梯、消火栓、路燈等的維護信息,每層樓的住戶信息,樓層的整體布局信息等。這些信息對于社區管理和維護工作的開展十分重要,可以幫助管理人員有效計劃和執行維護任務,管理住戶信息及優化社區內的資源分配。此外,對于社區地下管網維護工作,BIM 還應提供社區內部地下管網的詳細信息,以支持管網的維護和修復。這些信息應包括管道位置、管道類型、維護歷史等關鍵數據。
設計BIM 時也要考慮不同領域的需求。對建筑設計師而言,BIM 應用需要重點展現建筑元素的細節,如結構、材料和裝飾,以支持其在外觀、布局和材料選擇方面的決策。對于建筑施工團隊,模型應強調施工可行性和進度,包括施工順序和物料需求。運維階段,設施管理人員需要關注設備性能和維護,因此BIM 需要集成設備相關數據。城市規劃者需要關注土地利用、交通和綠化,所以模型應提供相應的規劃支持。輕量化BIM 的關鍵在于平衡信息詳細度與性能,通過數據壓縮和優化,確保其在不同環境下高效運行。同時,BIM 的協同性不可忽視,需要采用開放標準和協議,促進不同用戶間的共享和協作。綜合而言,面向多元化需求的BIM 輕量化方法要深入了解不同用戶群體的特定需求,并根據這些需求進行個性化設計。從應急救援到社區管理,再到建筑設計和運維,BIM 的應用領域廣泛,因此輕量化方法應適用于不同的使用場景。通過平衡詳細信息和性能優化,以及促進協同工作和數據共享,可以實現BIM 在各個領域都發揮出最大效益的目標。同時,這種個性化和綜合性的方法將有助于推動BIM 技術在建筑和城市管理領域的廣泛應用。
分頁細節層次(PagedLOD )技術是一種用于管理3D 模型數據的技術,旨在提高渲染效率和內存利用效率[15]。它基于LOD 概念,根據用戶視點和距離來選擇不同細節層次的模型,以提高渲染效率。然而,傳統的LOD 方法可能導致內存負擔過重,因為所有模型層次的數據都要加載,而PagedLOD通過采用分頁存儲方法解決了這一問題,如圖1 所示。PagedLOD節點不直接加載數據,而是根據用戶需求和視點,通過后臺線程進行動態加載。當某個PagedLOD 的子節點長時間未被使用時,系統會自動卸載相關資源,以釋放內存。

圖1 分頁細節層次技術(來源:作者自繪)
PagedLOD 技術最開始是用于解決海量OSG(Open Scene Graph)數據加載和渲染的問題,不能直接應用于其他格式文件,但可以將該思想推廣到3D Tiles 格式文件中去。根據上述思想,分別將經過輕量化處理的建筑、結構、暖通、電氣、給排水、消防、噴淋、市政和園林等各專業數據分別存放在不同的PagedLOD 節點中。
對原始的BIM 進行輕量化處理,首先要將BIM 轉換為IFC 標準格式,然后將IFC 標準文件作為數據源,對IFC 文件格式進行詳細分析,以建立IFC 文件與3D Tiles 文件之間的映射關系。該映射關系的建立是為了確保在數據轉換過程中,不僅能保留建筑構件的幾何信息,還能夠傳遞語義信息。而后將IFC 模型中的各種建筑構件與其幾何信息和語義信息相關聯,并將它們表示為JSON 文件。該步驟確保了建筑構件信息能在接下來的數據轉換過程中被保留下來。將IFC 文件轉換為OBJ 格式,通過坐標轉換[16]、空間索引[17]的構建及LOD的層次劃分,將其轉化為glTF 格式,將glTF 文件用Draco 編碼器壓縮,以進一步降低文件大小。最后將glTF 和JSON 文件進行封裝,生成3D Tiles(b3dm)格式的切片數據文件,從而在Cesium 平臺上實現數據的高效顯示。BIM 轉3D Tiles 格式流程如圖2 所示。

圖2 BIM 轉3D Tiles 格式流程圖(來源:網絡)
Cesium 采用分層細節級別(Hierarchical Level of Detail,HLOD)機制來有效控制三維瓦片數據的加載。Cesium 具有多個調度參數,這些參數會直接影響3D Tiles 的渲染效果。根據3D Tiles 標準,每個三維瓦片集和其中的三維瓦片都必須附加幾何誤差(Geometric Error,GE),以表示其尺寸。
在運行時, 結合幾何誤差(geometric Error)、相機的視場角(Field of View)計算出屏幕空間誤差(Screen Space Error,SSE),如式(1)所示:
式中:ESSE為屏幕空間誤差;Ggeo-err為幾何誤差;Cdra-buff-hei 為WebGL 底層的參數drawingBuffererHeight;Ddis為相機的距離;Ffov為相機的視場角。
Cesium 借用了最大屏幕空間誤差(Maximum Screen Space Error,MSSE)的概念來控制模型的展示精度。在加載3D Tiles 三維場景時,Cesium通過設置最大屏幕空間誤差參數值來直接改變模型的展示精度。根據相機距離和視場角的變化,Cesium 會根據瓦片的幾何誤差、相機距離、視場角等因素計算出屏幕空間誤差,然后將其與最大屏幕空間誤差的設置值進行比較。如果屏幕空間誤差小于設置值,模型以適當的精度渲染;如果屏幕空間誤差大于設置值,Cesium 將繼續加載更高分辨率的瓦片,直到滿足精度要求為止。
這種基于最大屏幕空間誤差的控制方式允許根據不同計算機性能和觀察場景的需求來動態調整模型的展示精度,以實現更流暢的瀏覽和減少性能消耗。因此,合理設置最大屏幕空間誤差參數對于優化前端加載和渲染三維場景具有重要作用。
為了測試本算法的性能,在64位Windows10 操作系統上進行測試,具體計算機配置如表1 所示。

表1 計算機配置表
本試驗分為兩個部分:第1,測試本算法(設置為Method A)的計算性能和渲染性能,試驗源數據是三棟由Autodesk Revit 軟件建模的實際項目,即住宅樓、辦公樓和大型商業綜合體,這些模型均包含建筑、結構、暖通、給排水、消防、噴淋、強電和弱電等全專業建筑信息模型,模型如表2 所示。第2,與優化數據結構或數據組織(設置為Method B)的方法做比較。

表2 試驗數據
從計算性能和渲染性能兩方面出發,對面向多元化需求的BIM 輕量化方法的性能進行測試。計算性能為從軟件打開到初始BIM 完成加載所需的時間;渲染性能為BIM 完成初始加載后在Cesium平臺上的顯示幀數(FPS)。
三棟項目模型的計算性能如圖3所示。由圖3 可知,隨著模型文件大小的增加,兩種方法的初始加載時間也都在增加。其中,采用Method A 處理后,住宅樓初始加載時間從8 s 縮短為5 s,商業綜合體初始加載時間也從48 s 縮短到7 s。結果表明,Method A在計算性能上優于Method B,而且模型體量越大優化效果越明顯。

圖3 計算性能(來源:作者自繪)
兩種方法處理后的模型在Cesium平臺上的渲染性能如圖4 所示。從中看出,Method A 的渲染性能明顯優于Method B。經過Method A 處理后,模型的顯示幀率均在60 FPS,相較于Method B 有很大提升,且體量越大的模型優化效果越明顯。

圖4 渲染性能(來源:作者自繪)
本文針對建筑信息模型(BIM)技術的多元化需求提出一種BIM 輕量化方法。該方法在保證原始模型數據完整的前提下,通過分析不同用戶的多元需求,采用PagedLOD 思想將各專業模型分塊存儲,實現根據多元用戶需求動態加載所需專業模型的目的。
結果表明,本方法在提高復雜BIM 可視化性能和用戶體驗方面具有較好表現,經過本方法優化的BIM 在計算性能和渲染性能方面都有大幅提高,而且體量越大的模型優化效果越明顯。綜上所述,該方法能在Cesium平臺上實現大數據量的BIM 的高效可視化。這種以用戶為中心的方法有望改變BIM 的傳統處理方式,使其更靈活和高效。