陳 遠(yuǎn) 胡 航 岳石花
(鄭州大學(xué)土木工程學(xué)院 河南 鄭州 450001)
近年來,隨著信息技術(shù)與計算機(jī)網(wǎng)絡(luò)的發(fā)展,各個行業(yè)與領(lǐng)域的信息呈現(xiàn)出爆炸式的增長,人類社會已快速進(jìn)入大數(shù)據(jù)的時代,而建筑業(yè)由于自身碎片化的特點,同樣面臨著海量數(shù)據(jù)的管理問題。建筑工程項目全生命周期中每天都會產(chǎn)生、傳輸、處理和保存大量的數(shù)據(jù)和信息。傳統(tǒng)的建筑工程項目基于分工理論,項目各參與方缺乏有效溝通,數(shù)據(jù)收集比較困難、數(shù)據(jù)保存相互孤立,導(dǎo)致項目管理過程中信息交互效率低下、信息丟失嚴(yán)重。BIM技術(shù)的出現(xiàn)打破了傳統(tǒng)的建筑業(yè)信息管理的困局,整合了工程項目全生命周期各階段的信息,為項目各方提供了統(tǒng)一的信息傳遞和管理平臺。
雖然基于BIM的建筑信息管理具有很大的潛力,但是隨著BIM模型的規(guī)模和復(fù)雜性的增加,利用單臺計算機(jī)處理多專業(yè)BIM模型的存儲和分析變得越來越困難。同時,不同BIM軟件供應(yīng)商提供的BIM軟件產(chǎn)品都是基于自身特定的數(shù)據(jù)格式,軟件之間的互操作性較差,由此產(chǎn)生了新的信息孤島。而用來解決BIM信息交換問題的IFC標(biāo)準(zhǔn),作為BIM技術(shù)的開放性標(biāo)準(zhǔn),主要是基于文件的存儲和交互,這種交互方式依舊存在很大的缺陷。因此,基于IFC標(biāo)準(zhǔn)的建筑信息模型需要利用數(shù)據(jù)庫系統(tǒng)平臺,實現(xiàn)對建筑工程項目全生命周期內(nèi)各種數(shù)據(jù)和信息進(jìn)行存儲、交互和管理。然而,傳統(tǒng)的基于關(guān)系數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫已經(jīng)無法滿足當(dāng)下建筑業(yè)全生命周期內(nèi)海量和多樣化數(shù)據(jù)存儲和管理的需求。因此,運(yùn)用分布式大數(shù)據(jù)技術(shù)平臺,存儲基于IFC標(biāo)準(zhǔn)的BIM結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),是提高建筑業(yè)海量數(shù)據(jù)存儲與交換管理效率的關(guān)鍵,也是提高基于大數(shù)據(jù)技術(shù)的建筑數(shù)據(jù)分析能力的基礎(chǔ)。
基于BIM的理念,建筑項目全生命周期各個階段產(chǎn)生的信息,是由不同的管理人員和工程技術(shù)人員通過多種BIM相關(guān)應(yīng)用軟件所產(chǎn)生,為了更好地解決不同軟件間信息共享與交互問題,有必要制定開放性的BIM數(shù)據(jù)交換標(biāo)準(zhǔn)。IFC標(biāo)準(zhǔn)能夠很好地描述建筑實體信息,是BIM數(shù)據(jù)共享與建筑信息傳遞的重要標(biāo)準(zhǔn),可以使BIM軟件具有更好的數(shù)據(jù)交換性和互操作性。但是基于文件的IFC數(shù)據(jù)交換和管理仍存在很多不足之處,包括無法形成完整的BIM模型,數(shù)據(jù)傳輸與變更實施困難,無法實現(xiàn)對象級的數(shù)據(jù)控制,不能完全支持同步修改與協(xié)同工作等[1]。
為解決基于文件進(jìn)行數(shù)據(jù)管理所帶來的上述問題,許多學(xué)者利用傳統(tǒng)的關(guān)系數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫等技術(shù)來存儲基于IFC標(biāo)準(zhǔn)的BIM模型信息。例如通過研究IFC數(shù)據(jù)向關(guān)系數(shù)據(jù)模式轉(zhuǎn)換的算法,為IFC數(shù)據(jù)在關(guān)系數(shù)據(jù)庫中的存儲提供了理論探討[2];通過建立IFC數(shù)據(jù)與關(guān)系型數(shù)據(jù)模式之間的映射關(guān)系,實現(xiàn)面向?qū)ο髷?shù)據(jù)模型到關(guān)系數(shù)據(jù)表之間的轉(zhuǎn)換,構(gòu)建符合IFC標(biāo)準(zhǔn)的BIM數(shù)據(jù)庫[3]?;跀?shù)據(jù)庫管理IFC信息的系統(tǒng)包括:利用關(guān)系數(shù)據(jù)庫Oracle存儲IFC構(gòu)件信息的ACTIVe3D系統(tǒng)[4];利用關(guān)系數(shù)據(jù)庫Access存儲IFC數(shù)據(jù)的IFC Model Server[5];利用面向?qū)ο髷?shù)據(jù)庫Object Store存儲IFC數(shù)據(jù)的 WISPER系統(tǒng)[6]。
研究表明,利用關(guān)系數(shù)據(jù)庫存儲IFC 數(shù)據(jù)可以克服基于文件存儲IFC數(shù)據(jù)的一些不足,并且已經(jīng)取得一些成果。但是由于IFC數(shù)據(jù)是使用面向?qū)ο蟮腅xpress語言進(jìn)行描述,而關(guān)系型數(shù)據(jù)庫使用預(yù)定義的表和表之間的關(guān)系,不支持對象類型數(shù)據(jù)的存儲,并且關(guān)系型數(shù)據(jù)庫與面向?qū)ο筇匦灾g的沖突在IFC標(biāo)準(zhǔn)中還未解決,因此并不適用IFC數(shù)據(jù)的存儲。另外,面向?qū)ο髷?shù)據(jù)庫,其數(shù)據(jù)的擴(kuò)展能力比較差,無法完成大規(guī)模的動態(tài)擴(kuò)展。在工程項目全生命周期不僅產(chǎn)生基于BIM的結(jié)構(gòu)化數(shù)據(jù),還會產(chǎn)生大量的非結(jié)構(gòu)化數(shù)據(jù)。傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)擅長記錄結(jié)構(gòu)化的建筑信息,在處理非結(jié)構(gòu)化建筑信息方面具有一定的局限性。隨著大數(shù)據(jù)技術(shù)的發(fā)展和成熟,利用大數(shù)據(jù)存儲技術(shù)不僅可以解決上述的數(shù)據(jù)存儲問題,還可以通過大數(shù)據(jù)分析技術(shù)來提升工程項目海量數(shù)據(jù)的分析能力。
在土木工程領(lǐng)域已有許多基于大數(shù)據(jù)存儲與分析的研究,其中MongoDB作為主要的大數(shù)據(jù)數(shù)據(jù)庫,許多研究人員將MongoDB作為建筑數(shù)據(jù)的基礎(chǔ)存儲平臺。例如,利用MongoDB存儲基于IFC標(biāo)準(zhǔn)的BIM數(shù)據(jù)信息,并以此為基礎(chǔ)開發(fā)的BIM 信息協(xié)作平臺[7]。以及Jeong等[8]開發(fā)的混合數(shù)據(jù)管理基礎(chǔ)設(shè)施,前端使用MongoDB臨時存儲結(jié)構(gòu)化的的數(shù)據(jù),核心數(shù)據(jù)層使用Apache Cassadra永久存儲帶有時間標(biāo)記的傳感器數(shù)據(jù)流。利用公有云或私有云服務(wù)器,文獻(xiàn)[9]提出了基于云的BIMCloud框架,用來支持項目各參與方的協(xié)作和信息共享。另外利用圖數(shù)據(jù)庫和Graph DB和圖理論,文獻(xiàn)[10]通過對IFC模型進(jìn)行分析,將IFC 模式自動轉(zhuǎn)換為屬性圖數(shù)據(jù)庫的工作流。
大數(shù)據(jù)技術(shù)不僅包括數(shù)據(jù)的存儲,更重要的是對存儲數(shù)據(jù)的分析。例如,文獻(xiàn)[11]采用數(shù)據(jù)挖掘技術(shù),利用KDD(Knowledge Discovery in Database)框架分析海量的工程項目數(shù)據(jù)集,并通過統(tǒng)計學(xué)方法來克服傳統(tǒng)機(jī)器學(xué)習(xí)算法的局限性;文獻(xiàn)[12]通過數(shù)據(jù)挖掘技術(shù),對已完工項目海量數(shù)據(jù)使用文本分析、鏈接分析和維度矩陣分析等方法進(jìn)行學(xué)習(xí),并將結(jié)果用于未來項目的交付;為了解決建筑設(shè)計中暖通、電氣和管道之間的碰撞沖突問題,文獻(xiàn)[13]利用數(shù)據(jù)挖掘技術(shù)分析BIM模型中有關(guān)碰撞問題的歷史數(shù)據(jù),從而針對具體問題提出了合理建議。
綜上所述,利用大數(shù)據(jù)存儲平臺可以實現(xiàn)基于BIM的工程項目協(xié)同,項目參與方將模型數(shù)據(jù)存儲到分布式數(shù)據(jù)庫,利用網(wǎng)絡(luò)技術(shù)實現(xiàn)對所需業(yè)務(wù)數(shù)據(jù)的訪問,方便工程參與方的信息共享,實現(xiàn)多人協(xié)同。另外可以將工程建設(shè)過程中復(fù)雜的分析計算從本地終端移到云端進(jìn)行,基于大數(shù)據(jù)的分析將大大提高工程計算分析的準(zhǔn)確性和效率,進(jìn)而提升工程整體質(zhì)量。然而,由于IFC標(biāo)準(zhǔn)的復(fù)雜性,建筑信息結(jié)構(gòu)化和非結(jié)構(gòu)化的多樣性,大數(shù)據(jù)存儲平臺種類繁多、技術(shù)框架各不相同,目前對于“BIM+大數(shù)據(jù)”的研究仍處于探索階段,對于基于大數(shù)據(jù)平臺的建筑信息的存儲和管理的研究有待進(jìn)一步加強(qiáng)。
目前大數(shù)據(jù)平臺系統(tǒng)有很多,如流式數(shù)據(jù)處理的平臺Twitter的Storm和Facebook的Scribe等;交互式數(shù)據(jù)處理平臺Berkeley的Spark和Google的Dremel等;批量處理數(shù)據(jù)的Hadoop平臺等。其中Hadoop憑借其優(yōu)越的性能,已成為當(dāng)前大數(shù)據(jù)處理的主流平臺。非關(guān)系型數(shù)據(jù)庫HBase作為Hadoop文件系統(tǒng)HDFS(Hadoop Distributed File System)的分布式開源數(shù)據(jù)庫,在大數(shù)據(jù)存儲中得到廣泛應(yīng)用。本研究提出的面向Hadoop大數(shù)據(jù)平臺基于HBase數(shù)據(jù)庫的IFC模型存儲系統(tǒng)架構(gòu)可以分為服務(wù)層、數(shù)據(jù)交互層和客戶端三個層次,如圖1所示。
圖1 面向Hadoop大數(shù)據(jù)平臺基于HBase數(shù)據(jù)庫的IFC模型存儲系統(tǒng)架構(gòu)
服務(wù)層以Hadoop平臺的分布式文件系統(tǒng)(HDFS)作為物理層數(shù)據(jù)存儲基礎(chǔ),利用HBase數(shù)據(jù)庫來管理IFC模型數(shù)據(jù),該層存儲空間可以水平擴(kuò)展,使用分布式計算機(jī)提供數(shù)據(jù)支持服務(wù)。服務(wù)層需要解決的技術(shù)問題包括IFC實體數(shù)據(jù)的存儲策略,面向IFC的HBase數(shù)據(jù)庫表格設(shè)計,以及BIM的非結(jié)構(gòu)化數(shù)據(jù)存儲等。
3.1.1 IFC實體數(shù)據(jù)存儲策略
IFC標(biāo)準(zhǔn)的實體包括可獨立交換實體和資源層實體(不可獨立交換實體)。資源層實體一般作為可獨立交換實體的屬性,不獨立參與數(shù)據(jù)交換。因此數(shù)據(jù)庫建表時只考慮對可獨立交換實體建表,資源層實體可直接序列化存儲在對應(yīng)的屬性值中。IFC的實體可以劃分成以下的邏輯類別存儲到數(shù)據(jù)庫:
H=∪{O,RL,R,P}
其中O為繼承自IfcObjectDefinition實體的集合,O實體在數(shù)據(jù)庫中以“IFC實體名_GUID”作為行鍵,并建立對應(yīng)的列族保存其所有的屬性。如果實體的屬性為O,數(shù)據(jù)庫保存這個屬性的行鍵“IFC實體名_GUID”而不是具體的數(shù)據(jù)。
RL是繼承IfcRelationship的實體,RL實體主要作為O實體之間的連接或連接O實體與資源層實體。RL實體采用與O實體相同存儲策略,如果一個實體的屬性為RL實體,數(shù)據(jù)庫僅保存這個屬性的行鍵“IFC實體名_GUID”。
R代表資源層定義的數(shù)據(jù)類型和實體。在HBase中直接將對象實例序列化,并存儲在對應(yīng)的主體實體的屬性列中。
P指繼承IfcPropertyDefinition的實體,這種類型實體的屬性集包括靜態(tài)屬性集和動態(tài)屬性集。靜態(tài)屬性集中的屬性是以IFC實體屬性的方式來定義,因此可以按照O實體的存儲策略來存儲。動態(tài)屬性集用IfcPropertySet來表示,由于IfcPropertySet實體只是裝載屬性的容器,具體的屬性是由資源層的IfcProperty實體及其子類來描述。因此動態(tài)屬性集中的實體存儲策略與資源層R實體存儲策略相同,將對象實例序列化并存儲在主體實體的屬性列中。
3.1.2 HBase數(shù)據(jù)庫表格設(shè)計
HBase數(shù)據(jù)庫以行健(RowKey)、列族(ColumnFamily)、列(Column)和時間戳(TimeStamp)來確定數(shù)據(jù)單元(Cell)。行健是HBase數(shù)據(jù)庫檢索查詢的關(guān)鍵,在創(chuàng)建表時定義列族,列可以在存儲數(shù)據(jù)時動態(tài)擴(kuò)展添加到列族中,因此行鍵和列族的設(shè)計是HBase數(shù)據(jù)庫表格設(shè)計的關(guān)鍵。
HBase中每行數(shù)據(jù)都有自己的唯一標(biāo)識行健(RowKey),雖然IFC中每個實體實例都有計算機(jī)自動生成的唯一標(biāo)識符(GUID),但是這些字符串對于用戶進(jìn)行查詢時作用不大,因此可以在GUID前加上IFC實體名“IFC實體名_GUID”作為行鍵,方便根據(jù)IFC實體來進(jìn)行快速查詢。另外,HBase中的行是按照行鍵的字典順序進(jìn)行排序,在一定程度上方便按照行健進(jìn)行數(shù)據(jù)的聚集和整合,因此可以在行鍵前部加上IFC項目文件名,這樣同一個項目中的每個行鍵前都有相同的前綴,可以將同一個項目之間的信息存儲在一起,方便用戶在較小的鍵值范圍內(nèi)快速查詢信息。所以最終行鍵確定為:“IFC項目名_IFC實體名_GUID”。
根據(jù)IFC標(biāo)準(zhǔn)中實體屬性的類別,在HBase數(shù)據(jù)庫中,按照直接屬性(Driect)、導(dǎo)出屬性(Derive)、逆屬性(Inverse)這三種屬性分別對應(yīng)三個列族:Driect列族、Derive列族和Inverse列族。其中Driect列族的直接屬性可以將屬性值以字符串的形式保存在對應(yīng)的列內(nèi)。對于Derive列族中的導(dǎo)出屬性,當(dāng)屬性值對應(yīng)的是資源層的實體時,將這些實體對象進(jìn)行二進(jìn)制序列化處理。對象序列化不僅可以保存一個對象的數(shù)據(jù),而且可以遞歸保存對象引用的每個對象的數(shù)據(jù),序列化一個對象可以得到整個對象序列。所以利用序列化方法可以很好地解決導(dǎo)出屬性對應(yīng)的IFC實體的多層引用關(guān)系。對于Inverse列族中的逆屬性,是通過關(guān)系實體來表達(dá)該實體與另一個實體的一對一或一對多的關(guān)聯(lián)關(guān)系。因此需要先關(guān)聯(lián)相應(yīng)的關(guān)系實體實例,此關(guān)系實體實例在HBase表格中的某行存儲。為了保持該實體實例與關(guān)系實體實例之間的關(guān)聯(lián),將對應(yīng)的關(guān)系實體實例的行鍵存儲在該實體逆屬性對應(yīng)的列中。圖2以IfcProject實體實例和其某個屬性中對應(yīng)的關(guān)系實體實例IfcRelAggregates來說明IFC數(shù)據(jù)結(jié)構(gòu)在HBase數(shù)據(jù)庫中表的設(shè)計。
圖2 IFC數(shù)據(jù)結(jié)構(gòu)在HBase數(shù)據(jù)庫中表的設(shè)計
數(shù)據(jù)交互層的主要作用包括:將BIM模型的非結(jié)構(gòu)化數(shù)據(jù)和解析后IFC數(shù)據(jù)通過調(diào)用HBase Java API上傳到HBase數(shù)據(jù)庫中;調(diào)用HBase Java API從HBase中讀取數(shù)據(jù),利用AJAX(Asynchronous JavaScript And XML)數(shù)據(jù)交互技術(shù)將數(shù)據(jù)傳遞到WEB前端。
3.2.1 基于IFC標(biāo)準(zhǔn)的BIM模型解析
IFC標(biāo)準(zhǔn)使用的EXPRESS是一種面向?qū)ο蟮男畔⒚枋稣Z言,不是編程語言,不能直接編程開發(fā),因此首先需要對底層的IFC標(biāo)準(zhǔn)的數(shù)據(jù)進(jìn)行解析,才能運(yùn)用計算機(jī)語言如C#、C++、JAVA等來編程實現(xiàn)具體功能。目前針對IFC數(shù)據(jù)進(jìn)行解析的軟件工具主要包括Jotne EPM Technology 公司的EDM,基于C++的IfcPlusPlus,基于.NET平臺的xBIMToolKit,基于JAVA的IFC JAVA Toolbox等。本研究采用IFC JAVA Toolbox[14]作為解析工具,創(chuàng)建IfcModel類作為BIM模型類,該類包含了模型中所有的實體。IFC模型數(shù)據(jù)中的根實體IfcProject是解析對象的起點,是整個模型的最高級別實體類型,因此解析模型中每一個零部件、一根桿件,還是整個工程項目,都從IfcProject開始,自上而下地逐層定義對象,直到完整解析所有的模型實體及其屬性。具體的解析方法可見參考文獻(xiàn)[15-16]。
3.2.2 基于HBase Java API的數(shù)據(jù)交互
HBase數(shù)據(jù)庫接口為上層進(jìn)行數(shù)據(jù)存取提供了多個類包,實現(xiàn)了兩個主要功能,一可以對數(shù)據(jù)庫表一級進(jìn)行操作,二是可以對表進(jìn)行數(shù)據(jù)存儲操作。如圖3所示,該系統(tǒng)主要包括7個類,其中HBaseConfigurationToIfc是系統(tǒng)的配置類,AdminHTable類和HBaseDataCURD類都繼承自HBaseConfigurationToIfc類,進(jìn)而繼承該類配置文件對象conf,由conf對象實現(xiàn)自動載入所需配置文件,該對象也提供相應(yīng)的方法用來設(shè)置配置文件里的變量信息。通過AdminHTable類可以對數(shù)據(jù)庫表格進(jìn)行操作,通過HBaseDataCURD類可以對表格中的數(shù)據(jù)進(jìn)行操作,這兩個類都是通用的操作類,其他Ifc、Picture、Document、User類是通過通用操作類封裝的操作接口,對HBase數(shù)據(jù)庫表和表對應(yīng)的數(shù)據(jù)進(jìn)行操作。
圖3 基于HBase Java API的系統(tǒng)類表
系統(tǒng)采用基于Web的客戶端,將BIM的IFC數(shù)據(jù)存儲在HBase數(shù)據(jù)庫中,通過AJAX實時發(fā)送回Web前端,從而實現(xiàn)前端界面和后臺之間的時時交互。JavaScript用于啟動鍵盤和鼠標(biāo)觸發(fā)事件。系統(tǒng)客戶端網(wǎng)頁框架分為3組:菜單組、項目組、賬戶組。其中:菜單組提供網(wǎng)頁的頁面布局與索引;項目組管理用戶上傳基于IFC標(biāo)準(zhǔn)的BIM模型數(shù)據(jù)和查看模型數(shù)據(jù)列表,并且可以動態(tài)地添加工程中產(chǎn)生的其他非結(jié)構(gòu)化數(shù)據(jù);賬戶組提供賬戶的注冊和登錄信息。
系統(tǒng)技術(shù)驗證采用的是由Revit建立的教學(xué)樓BIM模型,如圖4所示。該模型分為三層結(jié)構(gòu)的教學(xué)區(qū)和一層結(jié)構(gòu)的食堂兩部分。本案例中的BIM模型不僅包括建筑物模型,還包括場地地形模型,以及場地平整與場地構(gòu)件模型(如場地上籃球場、灌木叢、路燈等的布置),這些模型豐富了模型導(dǎo)出的IFC實體類,驗證了HBase存儲IFC實體數(shù)據(jù)的多樣性。
圖4 案例驗證的教學(xué)樓BIM模型
分布式大數(shù)據(jù)環(huán)境和傳統(tǒng)的單機(jī)或服務(wù)器環(huán)境有所不同,它使用基于集群的分布式存儲與并行計算體系結(jié)構(gòu)和硬件平臺,能夠處理結(jié)構(gòu)化與非結(jié)構(gòu)化/半結(jié)構(gòu)化數(shù)據(jù)。由于大數(shù)據(jù)環(huán)境的復(fù)雜性,Hadoop與HBase環(huán)境的搭建是IFC模型存儲的第一步,表1為本文所用軟件及版本號。
表1 本文所用軟件及版本號
Linux是一款開源的操作系統(tǒng),許多公司在其原有基礎(chǔ)上開發(fā)出性能更加優(yōu)越的操作系統(tǒng),Ubuntu以Linux為內(nèi)核,人機(jī)界面采用窗口式,其使用和升級全都是免費(fèi)和開源的。Hadoop系統(tǒng)運(yùn)行于由普通商用服務(wù)器組成的計算集群上,該集群在提供大規(guī)模分布式數(shù)據(jù)存儲資源的同時,也提供大規(guī)模的并行化計算資源。圖5為安裝和配置完成以后,Hadoop啟動進(jìn)程的網(wǎng)頁瀏覽。另外,在HBase安裝和配置成功后,可以通過訪問Web界面,查看 NameNode和Datanode信息,還可以在線查看 HDFS 中的文件,如圖6所示。
圖5 Hadoop啟動進(jìn)程的網(wǎng)頁瀏覽
圖6 HBase啟動進(jìn)程的網(wǎng)頁瀏覽
如圖7所示,基于分布式大數(shù)據(jù)環(huán)境的IFC數(shù)據(jù)存儲包括以下幾個步驟:首先將BIM模型導(dǎo)出IFC格式的文本文件;其次對IFC格式的文本文件進(jìn)行解析;然后調(diào)用封裝的HBase Java API類對解析后的數(shù)據(jù)進(jìn)行處理并存儲到HBase數(shù)據(jù)庫,同時該系統(tǒng)支持其他各種非結(jié)構(gòu)化數(shù)據(jù)的導(dǎo)入;最后根據(jù)用戶的需要可以通過Web前端將Hbase數(shù)據(jù)庫中的數(shù)據(jù)反饋給前端用戶,使用戶可以在前端界面實現(xiàn)相應(yīng)的功能。
圖7 基于大數(shù)據(jù)環(huán)境的IFC數(shù)據(jù)存儲流程
用戶管理模塊主要用于管理用戶的信息以及對用戶操作該系統(tǒng)的合法性進(jìn)行驗證。圖8所示為用戶注冊和登錄界面。該系統(tǒng)的存儲模塊包括對IFC結(jié)構(gòu)化數(shù)據(jù)的存儲和管理,以及對項目非結(jié)構(gòu)化數(shù)據(jù)的存儲和管理。圖9所示為系統(tǒng)加載IFC文件的界面,圖10為后臺HBase加載IFC數(shù)據(jù)的過程,圖11為解析和加載完成后,HBase數(shù)據(jù)庫表中保存的IFC數(shù)據(jù)。
圖8 用戶注冊和登錄界面
圖9 系統(tǒng)加載IFC文件
圖10 后端HBase加載IFC數(shù)據(jù)的過程
圖11 后端HBase數(shù)據(jù)庫表中保存的IFC數(shù)據(jù)
對于保持在HBase數(shù)據(jù)庫中的IFC數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),可以利用關(guān)鍵字進(jìn)行檢索和查詢,并且可以在Web終端顯示,圖12為Web終端顯示的IFC數(shù)據(jù),圖13為現(xiàn)實的非結(jié)構(gòu)化數(shù)據(jù)。
圖12 Web終端顯示的IFC數(shù)據(jù)
圖13 Web終端顯示的非結(jié)構(gòu)化數(shù)據(jù)
大數(shù)據(jù)技術(shù)的出現(xiàn)為建筑信息模型海量數(shù)據(jù)的存儲、交互、管理和分析帶來了極大的潛力。本研究分析了大數(shù)據(jù)技術(shù)與BIM技術(shù)相結(jié)合的優(yōu)勢,深入探討了分布式大數(shù)據(jù)平臺Hadoop和HBase整體架構(gòu)和存儲模型;創(chuàng)建了基于HBase數(shù)據(jù)庫存儲IFC結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的策略及數(shù)據(jù)表格的設(shè)計;建立了基于HBase數(shù)據(jù)庫的建筑信息模型存儲系統(tǒng),實現(xiàn)了對BIM數(shù)據(jù)的基本管理操作,并通過實例驗證了該系統(tǒng)的可行性。本研究為下一步基于分布式大數(shù)據(jù)環(huán)境的BIM模型可視化和工程項目的大數(shù)據(jù)分析,提供了堅實的數(shù)據(jù)平臺。