程可, 戴成元,2*, 梁邦勛, 鄒敏, 劉其舟
(1.桂林理工大學土木與建筑工程學院, 桂林 541004; 2.廣西建筑新能源與節能重點實驗室, 桂林 541004)
智能建造的研究和應用是當前建筑領域發展的重要戰略之一,是提高工程建設質量、項目管理效率的迫切需求[1]。數字化是智能建造的必要條件和重要基礎,數字承載著工程建設產生的信息,即說明信息化是其發展的實質[1-2]。而建筑信息模型(building information modeling,BIM)是建筑業信息化的基礎,BIM以三維模型為載體,實現建筑全生命周期的工程信息集成、共享和交互[3]。然而在整個工程建設過程中,因建造階段不同、參與方不同、設計劃分專業不同等,所采用的BIM軟件也不盡相同,如Revit、SketchUp、Tekla Structures等。因此,需要建立數據標準來支持信息有效傳遞。
為此,buildingSMART提出工業基礎類(industry foundation classes,IFC)作為BIM信息交換的數據標準[4]。IFC是一個開放和標準化的數據模型,旨在實現AEC/FM行業中建筑信息建模軟件應用程序之間的互操作性[5]。但由于IFC標準文件儲存BIM信息存在自身局限性,如:數據交互導致信息丟失、文件過大占用空間及安全性差等。而數據庫是按照數據結構來系統地組織、存儲、管理數據信息,在保證信息傳輸完整的基礎上能夠提高訪問效率、維護信息安全,故通常進一步將IFC數據儲存至數據庫中。關系型數據庫的優勢在于成本較低、相關技術更成熟、應用范圍更廣泛[6],顯然,將IFC標準文件通過解析再映射到關系型數據庫中更有益于實現BIM信息的傳遞、共享。
目前,國內外針對IFC標準文件的解析均有一定的研究,并開發了相關的應用。Xu等[7]通過設計IFC-OBJ數據接口,將IFC格式轉換為OBJ文件,實現BIM模型的幾何信息和OBJ文件信息的交互;Xu等[8]利用IFCEngine將模型拆分為包含幾何信息的IFC文件和包含語義屬性的JSON文件,采用IfcOpenShell提供的IfcConvert將IFC文件轉換為OBJ文件,再使用工具obj2gltf將OBJ文件轉換為GLTF文件,用于在Web端大規模集成數據;劉聰等[9]以Revit模型的dwg格式為出發點,通過多種格式解析與轉換,利用數據互操作性實現Revit模型與GIS模型的融合;陳蔚韜[10]構造IFC-GLTF轉換框架,將重構的IFC文件轉換為GLTF文件,并在轉換過程中實現IFC幾何空間信息和JSON語義屬性到GLTF的雙重映射;劉驚灝等[11]針對GLTF、OBJ、FBX、DRACO 4種文件格式分別在轉換大小、加載效果及文件加載過程信息完整性方面進行了對比,認為GLTF格式更適用于將BIM模型在Web端重構。可見,BIM模型數據之間的互操作性一直是建筑領域的關注點,大多數學者通常采用商業軟件或插件進行各種格式轉換的方法來實現數據交互。但模型經過格式轉換,在解析、映射到數據庫或開發平臺將模型可視化過程中會造成很多信息丟失,且有些格式文件兼容的BIM軟件較為單一,操作步驟煩瑣,利用效率低。
此外,關于IFC標準文件的開發及應用, Ruiz-Zafra等[12]使用IFC+作為IFC的擴展架構,用于在BIM流程設計早期階段將物聯網集成到設備和相關元素中;Kouhestani等[13]開發一種基于設計階段IFC格式文件的創建日志的算法,使用流程挖掘分析事件日志,以識別發生流程并從中得出措施;張曉菲等[14]總結IFC標準引入BIM中的應用前景,認為其可實現建筑業各設計專業之間的協同以及不同應用系統之間的數據交換;郭紅領等[15]提出一種IFC數據模型自動映射到關系型數據庫的方法,并開發自動生成構件級進度計劃、自動吊裝對象智能識別兩種應用。但關于IFC標準的研究應用主要集中在設計階段,較少有學者探索施工階段的應用,且大多局限在學術用途,未落實到實際建設中。
綜上所述,雖然現有研究對于IFC標準文件的開發及應用已經取得一定的進展,但仍存在以下問題。一是IFC標準文件解析步驟繁雜,需轉換為其他格式,導致信息丟失;二是利用多種軟件工具解析IFC文件,占用空間大;三是IFC的開發應用局限于工程項目設計階段。因此,現基于JavaScript語言、Web框架和數據庫技術提出一種IFC標準文件快速解析、BIM模型在Web端加載渲染和信息在線可視化分析的通用實施方法,無須轉換文件格式、安裝各種軟件、搭建各種環境,在保證IFC標準文件解析完整性和高效性的基礎上,進一步開發該方法針對建筑全生命周期的應用。
建筑信息模型(BIM)為建筑業數字化轉型、智能化升級提供重要支撐,而工業類基礎(IFC)作為國際上接受度最廣的數據交換標準與共享標準為BIM的研究與應用提供有效支持。基于Web框架和數據庫技術探討一種IFC標準文件高效解析、儲存及信息可視化分析的實施方法,旨在實現IFC標準文件完整解析、數據安全有效存取、信息高效檢索與可視化分析。

圖1 研究方法與流程圖Fig.1 Research methods and processes
IFC標準采用面向對象、規范化的EXPRESS語言定義建筑產品數據,EXPRESS是一種表達產品數據的標準化數據建模語言,它提供了對建筑信息模型和建筑工程數據的詳細描述,同時也提供了與這些產品數據有關的信息和約束的描述。這表明IFC標準既可通過信息描述來表達物理對象的真實信息,如構件屬性等,也可體現各實體之間的組織關系和信息流動的方式,如施工工序等。
IFC數據架構采用分層和模塊化的形式定義了4個概念層,如圖2所示。該層級自下而上分為資源層、核心層、共享層和領域層,該架構遵循“重力原則”,即每層只能引用同層或者下層的信息資源,而無法引用上層資源,這種方式保證了數據結構的穩定性和擴展性。每個概念層都包含若干信息描述模塊,每個模塊集中表達相關的工程信息,模塊分別由實體(Entities)、類型(Types)、函數(Functions)、規則(Rules)、屬性集(Property Sets)和數量集(Quantities Sets)集成描述。實體是IFC標準的核心部分,由公共屬性和約束定義的信息集,僅描述數據結構;類型包括定義類型、枚舉類型和選擇類型3種數據類型,是IFC標準的主要組成部分;函數通過遍歷實體屬性等方式,檢驗模型的正確性;規則定義用于約束實體的屬性;屬性集是屬性的集合,由名稱、值、單位三元組定義;數量集是一個容器類,用于保存數量樹中的各個數量。

圖2 IFC數據架構圖Fig.2 IFC data architecture
2.2.1 IFC標準文件的讀取與解析
采用Browser/Server架構模式,在JavaScript開發環境下,利用JavaScript語言對IFC標準文件深度解析,結合WebGL和數據庫對BIM數據可視化集成管理,為實現BIM數據動態交互與協同共享創造環境。
B/S架構通常以Web瀏覽器為客戶端,在服務器端集中進行數據運算,對前端軟硬件要求較低,同時具有較強的開發性和兼容性。此架構下,JavaScript作為一種輕量級的解釋型腳本語言,其運行環境主要依賴于主流瀏覽器,無需安裝各種軟件、搭建各種環境,有利于Web程序開發應用,同時可保證IFC標準文件解析的完整性和高效性。
IFC標準文件解析流程如圖3所示,以IFC標準文件中的實體解析過程為核心,通過遞歸方式訪問IFC結構樹中的節點,獲取所有實體屬性信息,獲取的屬性信息從上至下仍以結構樹形式分布,依次嵌套GlobalId、ObjectPlacement、ObjectType等全部屬性信息,與原始IFC結構一一對應。為了精確獲取IFC標準文件中的詳細信息,通過遍歷實體類別和條件篩選解析對象,進一步獲取所需的屬性信息,并將其轉換為Object對象。

圖3 IFC標準文件解析流程圖Fig.3 IFC standard file parsing process
例如,IFC標準文件中實體的唯一標識符GlobalId,數據類型為IfcGloballyUniqueId,解析得到對應屬性名稱GlobalId,數據類型為Object;實體的定位信息由ObjectPlacement描述,數據類型為IfcObjectPlacement,解析得到對應屬性ObjectPlacement,數據類型為Object;其他屬性同理。解析得到的屬性信息可分別封裝成獨立的JSON格式文件,將所需的屬性信息傳送后臺,應用于下一步到數據庫的映射。
2.2.2 IFC數據至關系型數據庫的映射
為實現IFC數據安全儲存以及相關應用的二次開發,在前端利用JavaScript將IFC標準文件解析為JSON文件,并在后端建立JSON文件到關系型數據庫的映射規則,采用Python和開源的對象關系映射(Object Relational Mapping,ORM)框架,將IFC數據儲存到關系型數據庫,利用關系模型中的二維表及其之間的關系實現系統管理IFC數據。
鄉鎮電視臺是我國廣播傳播媒體體系中的重要組成元素,是廣播電視節目中不可或缺的關鍵要素,同時也是推動地區市場經濟發展、提高人民生活水平的一股巨大力量。
IFC數據到關系型數據庫的映射規則如表1所示,與IFC數據架構相對應,分別從實體、類型、函數、規則、屬性集和數量集建立到關系型數據庫的映射規則。對于實體的映射,IFC數據中的實體指擁有特定屬性和行為的對象,Python的類可用來定義實體對象的結構和行為,并且可實現繼承和多態;關系型數據庫的表可用來表示實體對象的屬性及組織關系,即IFC數據中的實體利用JavaScript語言解析為Object對象,再映射到Python類和關系型數據庫的表中。IFC數據中的定義類型轉換為JavaScript中的基本數據類型或引用數據類型,再映射到Python類和關系型數據庫表中對應的數據類型;枚舉類型是一種特殊的數據類型,可用于限制變量的取值范圍,對應JavaScript中的Symbol類型、Python類中的string類型,在關系型數據庫中儲存為varchar類型;選擇類型表示具有多種可能形態的實體,并且可以對變量的取值進行檢查,同樣對應Python類中的string類型及關系型數據庫中的varchar類型。在IFC數據中,函數用于計算實體屬性值、檢驗模型正確性,對應Python類中的函數名;規則是用于約束數據模型的規范、條件或約定,對應Python類中的邏輯過程,通常是字符串類型,但函數和規則并不在關系型數據庫中儲存。屬性集和數量集表示實體的多組屬性和數量信息,映射到Python類中的string類型,因此在關系型數據庫中以varchar類型儲存。

表1 IFC數據到關系型數據庫的映射規則表Table 1 Mapping rules of IFC data to MySQL
2.2.3 數據庫與Web服務器的交互
關系型數據庫作為存儲數據表的載體,一方面可用于存儲IFC數據,另一方面可用于存儲工程建設全生命周期產生的有效數據。例如,IFC數據在關系型數據庫中可分為IfcColumn表、IfcBeam表、IfcSlab表等各個構件類別的信息表;實際建造產生的數據可分為構件設計表、生產表、施工進度表等各個階段的信息表。通過建立索引提升關系型數據庫中數據檢索的效率,實現表與表之間一對一、一對多或多對多的聯系,從而建立IFC數據與實際建造的關聯。
數據庫作為信息交互的載體儲存著所有業務數據,后端根據具體的業務需求調取數據庫中的數據,通過對業務數據的篩選、切片、轉換等邏輯處理,進一步將數據反序列化為JSON對象傳遞至前端。在Web端,IFC標準文件可作為支持WebGL直接進行三維模型可視化的格式文件,無須轉換為其他格式,運用Three.js(基于WebGL封裝的JavaScript包)可將IFC模型重構渲染,并實現全景漫游、縮放等功能。與此同時完成IFC模型和關系型數據庫中數據的交互關聯,如圖4所示。在此基礎上二次開發專業應用,如利用JavaScript語言完成在客戶端通過點擊IFC模型中的任一構件,顯示該構件的相關信息,或通過給構件添加不同的顏色展示項目的施工進度等,支持開發更多應用,實現在Web端信息集成管理和可視化分析。

圖4 數據庫與Web服務器交互流程圖Fig.4 Process of interaction between the database and the Web server
提出基于Web框架的IFC模型數據儲存至數據庫和信息在線可視化分析的方法,一方面保證了IFC數據到數據庫映射的完整性,另一方面實現了數據的智能分析、處理與展示。以開發IFC標準文件在某實際項目中的應用為例,使用Revit軟件,并導出IFC模型,如圖5所示,開發該框架的實際應用。

圖5 結構模型圖(Revit)Fig.5 Structural model(Revit)
IFC標準作為國際上接受范圍最廣的數據交換格式,有利于建造信息化的發展,使建筑工程在不同階段,讓不同參與方、不同設計專業跨地域快速實現協同交流;且其作為文檔層面格式支持WebGL進行模型可視化,無須轉換為其他格式。實例運用3D引擎Three.js將IFC模型在Web端重構,基于開源解析引擎IFC.js直接讀取、解析IFC標準文件。結合數據庫技術,將IFC模型數據和建筑全生命周期有效信息儲存在關系型數據庫中,并建立IFC模型數據與實際建設中產生的信息之間的索引。通過點擊事件,實現鼠標點擊某梁構件,如圖6所示,在Web端右上方顯示該構件的屬性信息與建造信息。該方法提升了針對建筑全生命周期二次開發的能力,打通了各個階段的數據流動。

在地上二層結構的施工計劃內,綠色代表按計劃進度完成施工區域,黃色代表正在施工但未完成區域,紅色代表施工延誤區域,透明代表未施工區域圖6 施工進度可視化分析圖Fig.6 Visual analysis of construction progress
IFC標準具有面向對象的特質,可實現構件級實時更新施工進度,通過施工進度可視化分析案例,驗證研究提出的數據交互和可視化分析的有效性。在IFC數據映射到關系型數據庫的基礎上,利用傳感器等智能采集裝備,全面感知現場施工狀態,將現場數據傳輸至關系型數據庫。通過Web端服務器與關系型數據庫的交互,服務器后端對事務進行邏輯處理,分析、處理并及時反饋當前施工進度狀態,根據顏色變化可反映構件的施工進度,輔助決策者做出判斷。
此外,可根據IFC建筑施工管理信息模型創建相應的數據庫,建立施工現場進度、成本、質量的相關數據與該數據庫的連接,在此基礎上,搭建施工管理業務數據處理框架,實現施工現場全流程動態管理。
針對BIM模型在建筑工程管理中存在文件格式轉換繁雜、信息流通不暢及有效利用率低問題,研究基于IFC標準和Web框架的BIM模型數據交互的方法及應用,得到以下結論。
(1)在JavaScript開發環境下,提出無須轉換文件格式、安裝商業軟件、搭建各種環境即可直接解析IFC標準文件的實現方法。該方法在保證IFC數據解析完整性的同時,節省了服務器后端算力,支持開發更多相關的應用。
(2)基于Three.js引擎搭建BIM模型數據輕量化交互平臺,將模型實體與數據庫信息關聯,實現在Web端數據集成展示與分析。
(3)結合Web框架,搭建了IFC模型數據與建筑全生命周期信息儲存至數據庫的應用框架,研究了工程建設中數據存儲、信息集成管理及可視化分析的全流程。
面對建筑業日益增長的BIM模型及數據體量,后續工作將進一步研究其輕量化集成、信息高效可視化管理的方法,為建筑業全生命周期的智能建造提供更有價值的拓展應用。