蔡文文,王少華,鐘耳順,3,4,馮振華,4,李 濛,王 博
(1. 北京超圖軟件股份有限公司,北京 100015;2. 加州大學(xué)圣巴巴拉分校,加利福尼亞 93106;3. 中國科學(xué)院地理科學(xué)與資源研究所,北京100101;4. 北京市地理信息核心軟件與應(yīng)用工程技術(shù)研究中心,北京 100015)
GIS應(yīng)用目前多局限于室外空間,室內(nèi)空間表達的局限性成為其從室外走向室內(nèi)的瓶頸之一[1]?,F(xiàn)有室內(nèi)數(shù)據(jù)基本都是簡單的二維地圖,只能提供平面的室內(nèi)布局信息,不能表達建筑物內(nèi)部的復(fù)雜環(huán)境,不能描述由于建筑構(gòu)件(如門窗、走廊等)的約束造成的室內(nèi)空間的非連續(xù)性[2],也不能區(qū)分三維空間上的重疊特征[3](如各類管道等)。這類數(shù)據(jù),無法支撐室內(nèi)三維導(dǎo)航、設(shè)施管理、應(yīng)急救援等應(yīng)用。急需建立反映客觀實際的室內(nèi)三維空間數(shù)據(jù)模型。
室內(nèi)空間模型可分為設(shè)計模型(Design Models)和真實世界模型(Real World Models)[4]。建筑信息模型(Building Information Models,BIM)屬于前者,它詳細描述了幾何、物理、規(guī)則等豐富的建筑空間和語義信息[5],用于單個建筑全生命周期的管理。地理空間數(shù)據(jù)模型屬于后者,它是典型的GIS數(shù)據(jù)模型,可借助三維GIS技術(shù)實現(xiàn)大規(guī)模數(shù)據(jù)的管理、分析與可視化。如果將大量高精度的BIM數(shù)據(jù)轉(zhuǎn)換為室內(nèi)GIS系統(tǒng)的數(shù)據(jù)源,并與傾斜攝影數(shù)據(jù)、地形、三維管線等多源數(shù)據(jù)融合,可實現(xiàn)宏觀與微觀的相輔相成、室外到室內(nèi)的一體化應(yīng)用。
但BIM是將一個建筑表達為一個模型,采用局部坐標系和多種幾何對象表示方法(邊界描述BRep、掃描體Sweeping、構(gòu)造幾何體CSG等)。地理空間數(shù)據(jù)模型是在一個模型中表達多個建筑及其他客觀實體,采用絕對坐標系(如經(jīng)緯度坐標),并多采用BRep表達幾何對象[4,6]。數(shù)據(jù)模型的差異增加了BIM數(shù)據(jù)與GIS系統(tǒng)集成的難度。
工業(yè)基礎(chǔ)類(Industry Foundation Classes,IFC)和城市地理標記語言(City Geography Markup Language,CityCML)作為BIM和GIS領(lǐng)域通用的數(shù)據(jù)模型標準,為兩者數(shù)據(jù)集成提供了基礎(chǔ)[7-8]。國內(nèi)外關(guān)于兩者互操作的研究主要集中在基礎(chǔ)數(shù)據(jù)模型的融合和現(xiàn)有數(shù)據(jù)格式的集成兩方面[9]。由于不同領(lǐng)域?qū)臻g對象的表達和理解存在差異,使得數(shù)據(jù)模型融合缺乏統(tǒng)一的標準,也得不到各領(lǐng)域的認同,因此大部分工作還是集中在兩者模型數(shù)據(jù)格式的集成[5]。如Hijazi等提出一種轉(zhuǎn)換框架,用于實現(xiàn)IFC幾何、語義信息到CityGML的轉(zhuǎn)換,從而借助GIS技術(shù),實現(xiàn)水電設(shè)施的管理與維護[10]。Amirebrahimi等實現(xiàn)了一種綜合框架,用于集成BIM高密度模型和GIS可視化能力,評估洪水對建筑物造成的損失[11]。湯圣君、趙霞等研究了基于幾何過濾和語義約束的IFC到CityGML的轉(zhuǎn)化方法,并經(jīng)過了實例驗證了方法的有效性[5,12]。
本文在前人工作的基礎(chǔ)上,提出了一個基于語義映射和多層次細節(jié)模型(Level of Details,LOD)的轉(zhuǎn)換方法,用于實現(xiàn)BIM幾何和語義信息轉(zhuǎn)換到SuperMap GIS 8C軟件平臺。在此基礎(chǔ)上,本文還采用三級緩存策略以及一系列渲染與繪制的技術(shù)手段,實現(xiàn)大規(guī)模BIM數(shù)據(jù)在該平臺中的高性能可視化,并為BIM添加空間分析能力,支撐室內(nèi)外一體化的安全應(yīng)急、設(shè)施管理和位置服務(wù)等應(yīng)用。
BIM專業(yè)軟件多樣化,覆蓋建筑、結(jié)構(gòu)、基礎(chǔ)設(shè)施、方案設(shè)計、結(jié)構(gòu)分析類、模型檢查、運營管理等建筑工程行業(yè)的各個方面。這些軟件在各自的發(fā)展歷程中,因應(yīng)用目的和專業(yè)不同,形成了獨有的數(shù)據(jù)格式,如DWG、DXF、DGN、NWD、RVT、PLN等。這些模型格式采用了不同的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)標準。如DXF模型[13]主要由圖形對象和非圖形對象組成,也包含有限的屬性信息,主要由6部分(section)組成:HEADER、CLASSSE、TABLES、BLOCK、ENTITIES和OBJECTS。其中,ENTITIES和OBJECTS分別包含圖形和非圖形對象,其余部分是關(guān)于符號表定義、應(yīng)用類定義、繪圖實體定義等信息。DGN 模型[14]是由基于ISFF標準(Intergraph Standard File Format)的兩種二進制文件組成,分別為Design file和Cell libraries。其中,Design file包括圖形元素(如線、線弦、橢圓弧、椎體等及其組成的邏輯實體)、非圖形元素以及可能的用戶自定義數(shù)據(jù),Cell libraries記錄了Design file中位置的元胞定義(包含如經(jīng)緯度等信息)??梢姡煌P透袷诫m然都可以完整地表達建筑物三維空間信息,但并不開放,相互之間無法集成與共享,可能無法采用相同的方法實現(xiàn)不同格式數(shù)據(jù)與GIS的集成。
對室內(nèi)GIS而言,高精度三維空間數(shù)據(jù)的生產(chǎn)、收集耗時耗力,應(yīng)該可能多的支持不同的BIM數(shù)據(jù)格式,實現(xiàn)獨立的、不同來源的數(shù)據(jù)集成與共享。因此我們的做法是首先將不同軟件的數(shù)據(jù)格式轉(zhuǎn)換為IFC標準格式,再與SuperMap GIS集成。IFC作為BIM領(lǐng)域通用的數(shù)據(jù)模型標準(ISO 16739),是對建筑物信息描述最全面最詳細的規(guī)范,使得不同模型格式之間的數(shù)據(jù)實現(xiàn)了共享和互操作[7],也為BIM與GIS集成奠定了基礎(chǔ)。常用的BIM軟件(Revit、Bentley、CATIA、MagiCAD、BIM 5D、魯班等)都支持將各自的數(shù)據(jù)格式轉(zhuǎn)換為IFC標準模型。轉(zhuǎn)換的方式即通過軟件自帶的導(dǎo)出功能或者第三方轉(zhuǎn)換插件進行。但由此可能帶來的幾何失真和信息損失,對不同室內(nèi)GIS應(yīng)用的影響程度有待在實際應(yīng)用中加以驗證。
為實現(xiàn)IFC與CityGML之間的數(shù)據(jù)集成,我們需要了解兩者在幾何、語義方面的區(qū)別和聯(lián)系。在幾何表達上,IFC通常有3種表達方式:邊界描述(BRep)、掃描體(String)和構(gòu)造實體幾何(CSG)[4,7]。在邊界描述中,一個實體由多個邊界面片的組合來呈現(xiàn)。掃描體可通過將平面對象沿路徑拉伸或繞軸旋轉(zhuǎn)拉伸而得到。CSG一般是由多個基礎(chǔ)幾何體,如立方體、球、圓柱、圓錐等,通過幾何變換、布爾運算以及剖割、局部修改等操作構(gòu)成的復(fù)雜幾何實體。而GIS中的三維幾何主要采用邊界描述來表達[4,8]。
在語義信息表達上,IFC包含豐富的建筑細節(jié)描述,有600多個對建筑實體的定義和300多個對建筑類型的定義,也包含建筑構(gòu)件之間的語義連接關(guān)系,如IfcSite、IFCBuilding、IfcBuildingStorery3個類型間的層次關(guān)系被IfcRelAggregates連接表示[5,7]。CityGML的語義信息表達為了客觀實體的特征,如建筑物、墻壁、窗戶、房間等,也包括特征之間的屬性、關(guān)系和聚集層次等。CityGML的語義信息相對比較少,通過語義映射,CityGML的大部分語義信息都可以從IFC模型中獲取。
在尺度表達上,CityGML采用多尺度建模方式,即5個層次細節(jié)(LoDs)描述了從城市宏觀場景到建筑物內(nèi)部的不同尺度、不同細節(jié)的信息[8]。LOD0本質(zhì)上是將2.5維的DTM疊加在影像或地圖上的粗糙表達,包含了建筑物的屋頂平面和底面平面。LOD1是塊模型,建筑物表達為具備平頂結(jié)構(gòu)的柱形體。LO2為不同建筑加入了不同的屋頂結(jié)構(gòu)和邊界表面。LOD3為建筑提供了更加詳細的墻、屋頂結(jié)構(gòu),甚至門、窗信息。LOD4是對LOD3的進一步完善,增加了詳細的室內(nèi)結(jié)構(gòu),如家具、樓梯等,具有最詳細的幾何、語義信息。IFC只局限于對建筑及其內(nèi)部構(gòu)件的描述,不具備多尺度表達的特點,但基于LOD層次細節(jié)模型,IFC可以轉(zhuǎn)換到CityGML的任一層次上。
BIM模型數(shù)據(jù)包含建筑工程全生命周期的所有信息,它將規(guī)劃、設(shè)計、建造、運營等各個階段的數(shù)據(jù)資料全部整合到同一個3D數(shù)字模型中,數(shù)據(jù)量大,僅一棟大樓一年的數(shù)據(jù)量在TB級,城市級別的數(shù)據(jù)量不可想象,給計算機GPU、內(nèi)存帶來很大壓力。精細的BIM模型還包含許多形狀相同的幾何實體,如圖1中顯示的建筑模型,圖元類別6 600多個,含有超百萬級的重復(fù)特征,一次性渲染壓力大。這對互聯(lián)網(wǎng)、移動互聯(lián)下的BIM-GIS應(yīng)用而言,受網(wǎng)絡(luò)帶寬、移動設(shè)備內(nèi)存容量的限制,實時分析與可視化難度大。
圖1 具有6600個圖元類別的一棟大樓的BIM模型數(shù)據(jù)Fig.1 Sample of BIM data with 60 million geometries and 37 million vertexes
為實現(xiàn)大規(guī)模BIM數(shù)據(jù)的多分辨率表達,及其管理調(diào)度等問題,我們構(gòu)建了從本地緩存、內(nèi)存、顯存的三級緩存結(jié)構(gòu),通過模型輕量化、實體化、GPU、LOD等技術(shù),實現(xiàn)大規(guī)模BIM數(shù)據(jù)的高效加載與實時繪制。
CityGML包含幾何模型和主題模型,主題模型即將幾何模型用于不同的主題,如建筑,所有模型都采用LODs進行多尺度表達,不同LOD層級的幾何數(shù)據(jù)精細程度不同。IFC雖然包含900多種實體類型,但不是所有類型都需要轉(zhuǎn)換到CityGML,可根據(jù)不同的GIS應(yīng)用需求和不同LOD層級所須的IFC組件類型,進行數(shù)據(jù)過濾和信息簡化,也有助于實現(xiàn)模型輕量化,如圖2所示。
在LOD0中,建筑被表達為水平和三維的表面,只突顯建筑的輪廓,一般通過集成其他數(shù)據(jù)獲得,與IFC無語義對應(yīng)。LOD1通過AbstractBuilding將建筑表達為具有為外殼的實體三維模型,可由IFC的墻面IfcWall、天花板IfcSlab、樓層IfcBuildingStorey獲得建筑外輪廓與高度等信息,并與AbstractBuilding映射。LOD2通過BoundarySurface,包括WallSurface、RoofSurface、OuterCeilingSurface描述了建筑的墻體、屋頂?shù)雀釉敿毜耐廨喞畔ⅲ琁FC的墻IfcWall、屋頂IfcRoof、遮蓋物IfcCovering等可與之映射。LOD3通過BuildingInstallation表達了強烈影響建筑外觀的元素,如陽臺、煙囪等,通過BoundarySurface的openings增加了連接建筑內(nèi)外部的門、窗等信息,可通過IFC的門IfcDoor、窗IfcWindow等獲取并與之映射。LOD4在LOD3的基礎(chǔ)上,增加了建筑內(nèi)部細節(jié),如通過IntBuildingInstallation描述建筑內(nèi)部無法移動的對象(如管道等),用BuildingFurniture表達建筑內(nèi)部可移動的對象(如家具等),與IFC的IfcFurnishingElement等映射,通過BoundarySurface的CeilingSurface、InteriorWallSurface、FloorSurface表達了天花板、內(nèi)墻和地板等信息,見表1。
圖2 IFC轉(zhuǎn)化到CityGML的語義映射Fig.2 Semantics Mapping of IFC to CityGML
表1 IFC與CityGML語義映射(部分)Tab.1 Semantic Mapping between IFC and CityGML
根據(jù)語義信息,篩選IFC需要輸出的構(gòu)件類別,并存儲到標準的GIS數(shù)據(jù)庫。在這一過程中,可為輸出的幾何信息添加精確的地理空間位置信息。該位置信息是根據(jù)模型本身包含的局部坐標系轉(zhuǎn)換到絕對坐標系而得到。模型信息的輸出可借助我們開發(fā)的插件實現(xiàn),同時為每個構(gòu)件輸出唯一的ID標識,作為關(guān)鍵字將幾何信息與其屬性信息相關(guān)聯(lián)。通過IFC與CityGML的數(shù)據(jù)集成,可實現(xiàn)從室外城市級空間,到層次細節(jié)模型,到室內(nèi)空間的多尺度表達,如圖3所示。
圖3 BIM與SuperMap GIS 8C數(shù)據(jù)集成:從城市宏觀到建筑微觀的展示過程Fig.3 BIM and SuperMap GIS 8C data integration: from macro urban space to the micro indoor space
我們采用一系列的技術(shù)手段,實現(xiàn)大體量BIM數(shù)據(jù)在GIS中的高效加載與可視化,具體流程如圖4所示。
圖4 BIM與SuperMap GIS集成技術(shù)流程圖Fig.4 Technical fl ow chart for integration of BIM and SuperMap GIS
第一,BIM本地緩存。通過BIM與SuperMap GIS數(shù)據(jù)轉(zhuǎn)換插件根據(jù)2.1節(jié)的原理對模型進行實例化處理和LOD分層處理之后,再根據(jù)數(shù)據(jù)的投影坐標范圍將其進行八叉樹剖分,八叉樹是以空間內(nèi)的一個點為基準將空間劃分為8個區(qū)域而形成8個子樹,適用于高度上值較大但平面范圍較小的三維空間物體,如BIM建筑模型。對剖分的每一個區(qū)域內(nèi)的數(shù)據(jù)按照一定的瓦片邊長,存儲為不同分辨率(如2048×2048,1024×1024,512×512,256×256,128×128,64×64)的三維切片緩存文件。緩存有助于提升大體量數(shù)據(jù)的瀏覽性能與顯示效果。
第二,模型輕量化技術(shù)。模型輕量化是根據(jù)BIM模型的語義信息,對模型的某些骨架進行刪除或者簡化,達到通過減少數(shù)據(jù)量提高渲染效率的目的。如圖1中單獨的一個門對象,含有頂點個數(shù)980個,三角面片920,其中門把手、鎖芯占據(jù)80%~90%的數(shù)據(jù)量(由此推斷整棟大樓、整個園區(qū)甚至整個城市的數(shù)據(jù)量會更加龐大),這些構(gòu)件對GIS來說缺乏實用價值或者重復(fù)性太高,因為我們采取刪除或者簡化這些骨架來達到模型輕量化的目的,如圖5所示。
圖5 BIM模型輕量化功能界面圖Fig.5 Light weighing interface of BIM data
第三,實例化技術(shù)。實體化是針對形狀相同的幾何模型,抽象其示例存儲在內(nèi)存中,減少內(nèi)存空間占用,重復(fù)構(gòu)件的渲染繪制通過在GPU中對實例進行矩陣變換實現(xiàn)。即GPU首先通過批量化指定繪制函數(shù),對各個實例進行批次渲染,然后將相關(guān)實例化對象的特征數(shù)據(jù)內(nèi)容傳遞給GPU,通過平移、縮放、旋轉(zhuǎn)等得到與實例幾何形象相同但位置、大小、角度存在差異的構(gòu)件,避免超百萬級構(gòu)件同時加載,降低GPU等硬件設(shè)備的壓力。
第四,基于視點的LOD調(diào)度。在現(xiàn)有硬件性能條件下, 結(jié)合場景內(nèi)繪制數(shù)據(jù)量隨視野遠近而變化的LOD調(diào)度技術(shù)則更能提升數(shù)據(jù)瀏覽速度?;谝朁c的LOD調(diào)度,指根據(jù)與觀察點的距離評價模型的重要程度,距離觀察點越遠,模型顯示的精細程度越粗糙,是一種簡化視野中三維場景復(fù)雜度的技術(shù)。它包括視點區(qū)域的確定和LOD的數(shù)據(jù)獲取兩方面。視點區(qū)域可由3個參數(shù)定義,分別是視點在屏幕上的位置、視區(qū)域大小和視區(qū)域內(nèi)的分辨率衰減函數(shù)。衰減函數(shù)的作用是控制視區(qū)域內(nèi)BIM數(shù)據(jù)的分辨率沿視點向區(qū)域邊緣逐漸降低,并在邊界處與區(qū)域外分辨率保持一致,保證數(shù)據(jù)在多分辨率繪制時的視覺平穩(wěn)性。LOD的數(shù)據(jù)獲取基于二維屏幕空間與三維場景空間的映射關(guān)系表實現(xiàn),即對于視點區(qū)域內(nèi)的任一像素,通過關(guān)系表定位三維體像元映射后的最鄰近點,進而確定對應(yīng)的三維信息。
以圖1中的數(shù)據(jù)渲染為例,采用上述一系列內(nèi)外存優(yōu)化繪制技術(shù)后,顯卡實時顯示和渲染的平均幀率達到65幀/秒(視覺感受流暢的標準是幀率>24幀/秒),具有較強的交互感和逼真感;與SuperMap GIS 7C的渲染速度相比,幀率提升300%。
未來,我們還研究滿足GPU泛用性的幾何和紋理數(shù)據(jù)壓縮與解壓縮方法,研究采用可編程渲染管線技術(shù)優(yōu)化繪制流水線的技術(shù),研究通過范圍裁剪、視錐體裁剪、遮擋裁剪等算法,實現(xiàn)渲染目標的剔除,研究使用多線程技術(shù),對數(shù)據(jù)的調(diào)度、讀取、渲染進行優(yōu)化等,實現(xiàn)大規(guī)模BIM數(shù)據(jù)實時高效繪制。
BIM經(jīng)語義映射和幾何轉(zhuǎn)化導(dǎo)入GIS之后,GIS可為BIM數(shù)據(jù)及其表達的建筑物的每一層、每一個室內(nèi)構(gòu)件提供高亮選中、定位、查詢、統(tǒng)計等GIS功能。SuperMap三維空間分析可分為四大類,可適用于BIM模型的有三類,分別是:三維量算,如距離量算、面積量算和高度量算;三維GPU分析,如日照分析、通視分析、可視域分析;三維網(wǎng)絡(luò)分析,特指對三維設(shè)施數(shù)據(jù)的(如BIM管線)網(wǎng)絡(luò)分析和對三維交通數(shù)據(jù)(如由BIM提取的室內(nèi)交通路網(wǎng))的網(wǎng)絡(luò)分析。此外,還可在GIS中動態(tài)展示工程的建造過程。
BIM與GIS的集成,一方面可以通過自定義投影的方式與地形等數(shù)據(jù)匹配,有效展現(xiàn)BIM與周邊環(huán)境的關(guān)系,如建筑物周邊的自然生態(tài)環(huán)境、地形地貌環(huán)境和人文景觀環(huán)境,有利于大規(guī)模工程的協(xié)同管理。另一方面可將GIS的空間管理、查詢和分析能力加諸于BIM,有利于實現(xiàn)數(shù)字化的設(shè)施管理,通過與移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)以及樓宇內(nèi)各類系統(tǒng)(如門禁、監(jiān)控等)集成,實現(xiàn)室內(nèi)外一體化的應(yīng)急演練和位置服務(wù)等。
BIM與GIS模型數(shù)據(jù)的集成目前缺乏統(tǒng)一的信息交換標準。本文通過IFC與CityGML的語義映射和幾何過濾,實現(xiàn)了BIM與SuperMap GIS的數(shù)據(jù)集成,通過實例化技術(shù)、LOD調(diào)度,實現(xiàn)了大規(guī)模BIM數(shù)據(jù)在SuperMap GIS中的高性能渲染與可視化。GIS作為收集、存儲、管理和分析空間信息的技術(shù),可以充分利用BIM包含的建筑及其內(nèi)部豐富的幾何、語義信息,兩者的數(shù)據(jù)集成不僅為建設(shè)過程提供查詢、空間分析的工具,支持大型工程的建設(shè)與維護,也為GIS應(yīng)用從室外走向室內(nèi),從城市宏觀走向建筑微觀的重要數(shù)據(jù)源,支撐室內(nèi)外一體化的安全應(yīng)急、導(dǎo)航和位置服務(wù)應(yīng)用,支持智慧城市建設(shè)。
我們的工作仍有很多需要完善的地方。第一,BIM建模軟件繁多,相互間的獨有模型格式不支持互操作。我們采用全部轉(zhuǎn)為IFC格式的方法,對由此造成的信息損失需要進行評估。目前我們已經(jīng)開始將各軟件獨有模型格式直接與SuperMap GIS軟件平臺進行數(shù)據(jù)集成,但需要比較這兩種方法的優(yōu)劣。第二,探索SuperMap GIS軟件平臺對具備超百萬級室內(nèi)構(gòu)件的BIM數(shù)據(jù)的云端協(xié)同繪制技術(shù),即數(shù)據(jù)和繪制都在云上實現(xiàn),終端只是作為命令的入口。第三,探索基于BIM的GIS應(yīng)用,在實踐中創(chuàng)新和改進BIM-GIS集成技術(shù)。目前,已有研究將原始鐵路設(shè)計的中線數(shù)據(jù)導(dǎo)入三維可視化平臺,自動生成鐵路路基、橋梁、隧道、接觸網(wǎng)、護坡等橫斷面模型,進行土方量分析與量測、縱斷面信息采集等;將地下管廊BIM數(shù)據(jù)用于解決城市內(nèi)澇、反復(fù)開挖路面、架空線網(wǎng)密集等問題。