文/王永強
BIM數據庫是目前工程建設的重要基礎,為了保證BIM數據庫的性能,需要基于云計算來進行數據庫的構建。為此,必須要了解BIM數據庫的特點,使用合理的方式來構建半結構化的BIM數據庫。
BIM技術的全稱是建筑信息模型,利用三維數字技術作為基礎,集成建筑工程的數據信息,可以進行可視化演示,并且對工程進行檢查。BIM技術目前正在變得普遍和完整,通過對工程對象的描述,提高了對建筑工程項目建設的管理效果,受到了很多不同工程項目信賴。隨著技術水平的提升,BIM技術正在形成完整的理論、技術、標準和系統,但是BIM數據的儲存和傳遞都以文件的方式是進行,例如Autodesk會使用開發商特定的.rvt格式,使用Revit、Structure建立的BIM模型都是使用.rvt或者IFC格式來進行儲存和傳遞的。應用時,通過特定的軟件來獲得模型文件,然后提取相關數據,從而實現信息的共享。
雖然這種文件能夠有專業的信息應用,并且在設計更改時也可以獲得全新的數據文件,并且能夠根據工程項目的不同周期來對文件進行靈活的管理,但是使用的文件依然是存在固有缺陷的。例如不同的商業企業會使用到不同的文件格式,導致模型數據缺少一致性和唯一性,在工程各個階段的使用中比較繁瑣。因此,通過使用數據庫來儲存BIM數據就成為了一個重要的方式。
通過建立BIM數據庫,可以對BIM數據進行儲存和管理。BIM服務中可以利用子模型技術,這種技術是針對某一個流程對BIM數據提取所獲得的子集,其中包含所需要的所有信息。建筑的模型形成子信息模型能夠加成到BIM服務器,從而實現完整的BIM創建,之后通過子模型來進行服務器的信息交換,滿足對信息提取在技術和參數上的需要。BIM服務器投入使用,能夠解決信息集成和數據維護方面的問題,可以去除服務器內不相關信息,給工程項目提供全周期的BIM技術平臺。
基于數據庫的儲存管理模式仍然需要面臨一定的問題,比如建筑項目都是涉及多個單位的,所以數據庫的網絡傳輸負擔很大,數據庫的穩定性和性能都會受制于網絡環境,甚至會難以在現場應用。其次,由于BIM數據集中在中央服務器,也會由于施工各方產權和安全等方面的原因導致法律糾紛。
云計算是分布式處理、并行處理和網絡計算的發展,云計算使用互聯網技術實現資源的共享,并且方便資源的訪問。云計算中的關鍵技術包括分布式文件系統、數據維護技術、虛擬化硬件資源等等。基于云計算的數據庫,都是分布在不同云平臺上的關系數據庫,能夠進行大型數據的儲存,并且可以減少數據的傳輸量,這樣就能通過縮小單個節點的數據規模,來提高查詢的效率。為此,通過使用云計算來支持BIM數據庫,可以彌補數據庫的不足,依靠云平臺的虛擬集成,就能夠形成統一的BIM模型,以便給用戶提供完整的服務,并且支持在工程不同生命階段的信息交互。
BIM數據可以存儲結構化的數據,按照需求來進行數據的過濾和提取,BIM數據庫都是根據IFC標準進行設計,包括面向對象型的BIM數據庫,關系型BIM數據庫,關系-對象型數據庫和NoSql數據庫。
面對對象的程序設計是個常用的程序設計方法,根據IFC模型的面向對象設計,有學者也提出了面向對象儲存的BIM數據庫。比如目前實現了基于Versant Object Database的IFC型數據庫,這種數據庫比關系型數據庫的效率更高。但是面向對象型的數據庫還存在理論不完善等問題,并且數據庫的造價也十分昂貴,實際應用當中的擴展性也很低。
關系型BIM數據庫利用數據之間的關系來實現對數據的儲存,目前主要根據IFC模型進行設計。其中的模式在于,針對每個IFC實體,專門制作一個表,表中的一列是實體數據的屬性,另一列是屬性的值。目前的關系型BIM數據庫,有基于Sql開發的IFC數據庫;國內開發了BIM信息集成平臺。實際應用中,IFC實體具有很多屬性,但是很多屬性的值為空,這就導致關系數據庫為了能夠進行儲存工作,必須要留有大量的空間,會導致明顯的資源浪費。和面向對象的BIM數據庫一樣,關系型BIM數據庫也有擴展性比較差的問題,導致在BIM數據量很多時,儲存效果非常差。
由于無論是關系型數據庫還是面向對象的數據庫都有擴展性不足的問題,目前通過將二者結合,有效解決了他們在應用上的不足,形成了一種擴展關系的數據庫,讓他們能夠具備面向對象的數據庫特征。但是目前對象數據庫也并不成熟,所以這種方式的數據庫應用仍然比較少。
鍵值型BIM數據庫就是利用鍵值對來對BIM數據進行儲存,目前的鍵值型數據庫能夠儲存IFC數據,查詢速度很快,并且擴展性很強。但由于只是基于鍵值對來進行查詢,所以在查詢時局限性很大。
由于BIM信息需要進行跨周期、跨學科的傳遞和共享,為此在云計算方面也需要做好不同項目的協同,并且有足夠的效率,而且具備智能化的水平,滿足工程建設的實際需要。
協同是面向多用戶、多終端云端系統,能夠實現異地同步的信息共享和傳遞。為了滿足多學科共同協作的需要,BIM數據庫的云端需要能夠滿足不同時間、不同地點的工作方案。為此,云端的建筑項目在向數據庫傳輸的時候,必須要解決IFC格式所存在的數據冗余問題,并且能夠支持多種軟件的協同管理工作。其次在信息交換安全上,也需要避免知識產權被盜用或者被套用的問題,所以數據庫需要具備私有數據和公有數據混合的特性,而且能夠滿足建筑物建設不同階段中參與方角色的轉換,避免出現信息風險。為了保證擴展性,還需要允許第三方數據傳輸,有效降低信息傳輸的風險,并且明確各方的責任。
為了能夠對BIM數據進行高效的管理,并且擁有復雜數據的處理能力,降低BIM數據的復雜程度,可以建立鍵值樹作為索引,實現對數據的快速定位,保證數據的查詢效率。同時,還可以對于頻繁使用的數據使用觸控模式的圖形界面來提升高效性。例如可以將BIM模型和集成開發式的云技術結合,保證BIM數據庫可以高效交付。目前,BIM360能夠利用強大的計算和儲存來實現BIM數據模型的仿真和渲染。對于現場進度監測耗時耗力的問題,可以用實際施工進度和計劃施工狀態進行對比,根據兩者的偏差來表達施工狀態,通過匹配記錄可以將施工的情況準確表現出來。
隨著人們對BIM技術的要求,云端除了能夠對BIM數據進行查詢,必要時也能夠對BIM技術進行深度分析,通過提取原始數據中的有效信息,基于數據庫來進行輔助決策、信息變動支持、自動建模等方面的工作。
在輔助信息決策上,可以根據建筑物的目標狀態和攝影測量的點云數據,形成信息決策的輔助方案,幫助進行建筑構件和互動的工作。將數據進行對比,就能夠形成比較合理的決策方式。自動建模上,可以根據BIM數據來形成生動的3D模型,滿足使用者的需求,提升數據的交互性。如果信息發生了變動,比如工程參與各方根據需求增加了自定義屬性,需要進行同步的修改和更新。
解決網絡傳輸的需求是BIM數據庫的重要需求,通過云計算來構建的分布式數據庫中,企業可以將數據儲存在本地的服務器中,然后根據協議要求來公開服務器中的公共數據,對私有數據做好保護避免其被隨意訪問。這樣,就可以根據數據的共享協議,各個參與方只是在服務器上將自己可以公開的數據公開,自己只能訪問其他參與方的公開數據。各個參與方的服務器通過云計算進行分布式的虛擬管理,能夠形成完整的BIM模型,這樣就能夠對建筑工程的各個階段來建立信息模型。同時,還可以建立所有用戶統一的數據接口,讓工程參與各方都可以在任何時間、任何地點來獲取權限內的數據。在數據發生改變時,也能夠自動在其他節點把數據儲存,保證了數據的透明和共享。
基于云計算的BIM數據庫需要支持數據的查詢,并且由于BIM數據的數據量很大,所以數據庫需要具備一定的擴展性。目前,NoSql數據庫具有讀寫速度快、可以進行海量數據處理、擴展性好的特點,被充分應用在云計算和互聯網當中。數據庫可以分為鍵值型數據庫、面向文檔的數據庫和面向列儲存的數據庫,使用特定的文檔進行儲存,工作時并不定義表結構,并且能夠滿足很多復雜的查詢需要。NoSql的儲存方式以行為儲存標準,和傳統關系數據庫以列為標準有很大的區別。這就能夠讓數據庫能夠以列為單位進行數據的讀取,能夠儲存稀疏表,并且具有很高的擴展性。根據IFC具有的機構化和稀疏性的特征,實際應用中用戶可能會使用到很多不同的方式來進行數據的查詢,所以面向列的NoSql數據庫的實用性更強。
NoSql數據庫中,HBase是分布式的面向列的開源數據庫,這種數據庫已經被很多大型的互聯網公司所采用,并且在長時間使用之后已經比較成熟和穩定,故使用HBase來作為BIM數據庫有比較好的效果。該數據庫使用了分布式數據管理模式,能夠讓用戶進行統一的數據儲存和訪問工作,并且通過不同的RegionServer實現了分布式的儲存。儲存中,使用行鍵來作為一行的鍵值,利用時間來標識版本,并使用列族的方式來進行不同列的定義。同一個列族會在同一個儲存區域進行儲存,不同列的數據會得到分開的儲存。在查詢時,可以根據行鍵、列族和實踐來進行快速的查詢。
IFC數據本身就具備一定的面向數據的特性,并且能夠針對一個表來進行結構化的儲存工作。應用當中,數據的訪問效率比較低,必須要進行大量的Join操作,實際應用的效率相對低下。為此,可以使用半結構化的儲存方法,充分發揮IFC的結構特性。
IFC只有存在可獨立交換實體時,才能夠進行提取和修改,而且資源實體是不會被單獨訪問的,工作中只會根據可交換實體建立表,并且資源實體受到的訪問也會被記錄。可獨立交換實體具有所有的屬性信息,無論是簡單類型的數據信息還是復雜類型的數據信息,都囊括在可交換實體中,并且所有的信息都被序列化成了二進制的數據儲存在相應的單元中。為了避免出現數據冗余的問題,在應用中關系實體和類型實體中,類型實體能夠儲存交換實體的屬性。為了避免由于同一個資源被多個可獨立交換實體采用導致的重復問題,可以根據其GlobalID或者名稱直接從IfcPrduct上進行提取,這樣就能夠避免過多Join操作導致的工作效率下降,有效提升了工作的效率。
BIM數據庫有著十分重要的作用,為了保證BIM數據庫的性能,需要充分利用云計算技術。為此,數據庫需要滿足協同、高效和智能化的需求。通過使用HBase來進行數據庫的構建,能夠滿足實際的需求,提高工程建設的協同水平。