劉 聰,逯躍鋒,2*,聞 俏,付仲良,翁寶鳳,張慶瑞
(1.山東理工大學(xué)建筑工程學(xué)院,淄博 255049;2.中國科學(xué)院地理科學(xué)與資源研究所資源與環(huán)境信息系統(tǒng)國家重點(diǎn)實(shí)驗(yàn)室,北京 100101;3.武漢大學(xué)遙感信息工程學(xué)院,武漢 430079;4.浙江省自然資源監(jiān)測(cè)中心,杭州 311100;5.華中師范大學(xué)國家文化產(chǎn)業(yè)研究中心,武漢 430079)
三維地理信息系統(tǒng)(GIS)作為行業(yè)發(fā)展的重要方向,利用三維空間坐標(biāo)對(duì)現(xiàn)實(shí)世界進(jìn)行仿真可視化,突破了二維GIS數(shù)據(jù)表達(dá)能力的局限,三維GIS在空間位置、拓?fù)潢P(guān)系描述及空間分析進(jìn)行擴(kuò)展[1-3]。三維模型數(shù)據(jù)是構(gòu)成三維GIS的基礎(chǔ),傳統(tǒng)的三維GIS建模成本高、效率低且模型精度低[4-5],而以三維激光掃描技術(shù)、三維激光掃描和傾斜攝影測(cè)量技術(shù)難以迅速得到結(jié)構(gòu)龐雜、細(xì)節(jié)層次較多的幾何體[6]。建筑信息模型(BIM)為GIS提供了細(xì)節(jié)豐富、精細(xì)化程度高的建筑模型數(shù)據(jù),三維GIS技術(shù)可滿足對(duì)城市三維立體空間的可視化、分析與應(yīng)用[7-8]。GIS與BIM科學(xué)集成,將建筑工程各個(gè)階段信息統(tǒng)一管理,保證三維測(cè)量結(jié)果的準(zhǔn)確性,提高通視質(zhì)量,提高城市建筑結(jié)構(gòu)的完整性[9],同時(shí)也為古建筑三維信息的表達(dá)及有效保護(hù)提供了可靠的技術(shù)手段[10-11]。當(dāng)前BIM和GIS集成的研究主要集中在融合基礎(chǔ)模型數(shù)據(jù),集成現(xiàn)有模型數(shù)據(jù)格式[12-13],現(xiàn)階段大部分研究集中在后者。國內(nèi)外學(xué)者研究集中在IFC(industry foundation classes)格式文件及CityGML(city geography markup language)文件之間的融合。通過IFC為建筑專業(yè)與設(shè)備專業(yè)信息共享建立一個(gè)普遍意義的基準(zhǔn)[14]。CityGML是用于虛擬三維城市模型數(shù)據(jù)交換與存儲(chǔ)的格式,是表達(dá)三維城市模板的通用數(shù)據(jù)模型[15]。BIM Server只能實(shí)現(xiàn)BIM數(shù)據(jù)的管理與轉(zhuǎn)換,無法實(shí)現(xiàn)應(yīng)用分析,BIM和GIS模型之間的轉(zhuǎn)換存在轉(zhuǎn)換后模型質(zhì)量差,部分細(xì)節(jié)丟失等問題[16]。目前有很多融合軟件,如IFC Explorer、BIM Server等,都未實(shí)現(xiàn)IFC與CityGML的完整映射。IFC Explorer缺點(diǎn)是難以實(shí)現(xiàn)兩類標(biāo)準(zhǔn)模型之間的無差別轉(zhuǎn)換,目前仍停留在研究模型較低細(xì)節(jié)層次的轉(zhuǎn)換[17]。IFC與CityGML整合的研究關(guān)注點(diǎn)集中在轉(zhuǎn)換框架的設(shè)計(jì)、基于標(biāo)準(zhǔn)擴(kuò)展機(jī)制的整合、基于數(shù)據(jù)格式的轉(zhuǎn)換[18-19]。
綜上所述,BIM與GIS之間的數(shù)據(jù)融合有著較大難度,存在著諸如數(shù)據(jù)標(biāo)準(zhǔn)不同、跨平臺(tái)間數(shù)據(jù)不兼容、模型數(shù)據(jù)量大等一系列問題,亟須探索新的方法和技術(shù)來解決這些問題。本文提供了一種基于數(shù)據(jù)互操作的BIM模型轉(zhuǎn)換與GIS融合方法,來幫助解決這些問題。
方法主要分為兩類轉(zhuǎn)換方式,首先借助三方軟件實(shí)現(xiàn)對(duì)Revit模型的轉(zhuǎn)換,使用三種方式實(shí)現(xiàn)將IFC、FBX和skp格式模型轉(zhuǎn)換為GIS能夠識(shí)別的3ds格式模型,實(shí)現(xiàn)GIS平臺(tái)上融合可視化。然后將BIM模型導(dǎo)出為dwg格式,通過ArcGIS和編程,利用ArcScene的數(shù)據(jù)互操作功能模塊來實(shí)現(xiàn)模型的解析及轉(zhuǎn)換,將最終轉(zhuǎn)換后的模型加載到ArcScene中進(jìn)行顯示,實(shí)現(xiàn)對(duì)模型的解析、過濾、轉(zhuǎn)換以及屬性信息的修改,完成模型在GIS平臺(tái)上的融合及可視化。GIS與BIM數(shù)據(jù)融合技術(shù)路線,如圖1所示。
圖1 GIS與BIM融合技術(shù)路線Fig.1 The technical route of fusion of GIS and BIM
借助ArcGIS的Data Interoperability功能來對(duì)模型進(jìn)行解析,通過Revit將模型導(dǎo)出為dwg格式,然后用ArcGIS的數(shù)據(jù)互操作模塊將模型轉(zhuǎn)為shp格式,且各部分獨(dú)立存在,不再是一個(gè)建筑整體,達(dá)到預(yù)期目標(biāo),最終將模型輸出到數(shù)據(jù)庫中,模型轉(zhuǎn)換技術(shù)路線如圖2所示。
圖2 數(shù)據(jù)互操作模塊模型轉(zhuǎn)換技術(shù)路線Fig.2 The technical route of data interoperability module model transformation
1.1.1 轉(zhuǎn)換步驟
(1)利用Revit將模型導(dǎo)出為DWG格式。
(2)使用ArcGIS的Data Interoperability進(jìn)行模型轉(zhuǎn)換。
(3)將轉(zhuǎn)換后的結(jié)果加載到ArcScene中進(jìn)行顯示,如圖3所示。
圖3 加載過程及結(jié)果Fig.3 Loading progress and result
雖然現(xiàn)有的軟件(如IFC Explorer),針對(duì)BIM與GIS之間的轉(zhuǎn)換,從IFC和CityGML的融合出發(fā),但是轉(zhuǎn)換后的CityGML不能很好地加載到ArcGIS、ArcScene中顯示并進(jìn)行分析。針對(duì)這個(gè)問題,現(xiàn)借助三方軟件來支持?jǐn)?shù)據(jù)格式的轉(zhuǎn)換,將模型格式轉(zhuǎn)換為3ds格式,加載到ArcScene中。
使用第三方軟件對(duì)Revit模型導(dǎo)出的模型進(jìn)行格式轉(zhuǎn)換。用到的三方軟件主要有FME、3ds Max、Sketch Up等,具體轉(zhuǎn)換流程如圖4所示。
圖4 利用三方軟件對(duì)BIM模型轉(zhuǎn)換流程Fig.4 Transformation process of BIM model using third-party software
(1)Revit-FBX-3ds:使用Revit模型導(dǎo)出為FBX格式文件,利用3ds Max將導(dǎo)出的FBX文件轉(zhuǎn)換為3ds格式。
(2) 使用Revit插件。實(shí)現(xiàn)將Revit模型導(dǎo)出為skp格式,被Sketch Up識(shí)別并加載,然后利用Sketch Up將其轉(zhuǎn)換為3ds格式。
(3)導(dǎo)出為IFC格式文件:使用Revit將模型導(dǎo)出為IFC格式,借助Feature Manipulate Engine(FME)快速轉(zhuǎn)換功能,將IFC格式文件轉(zhuǎn)換為GIS識(shí)別的shp格式或者3ds格式。
(4)利用以上幾種轉(zhuǎn)換方法轉(zhuǎn)換后的模型數(shù)據(jù)。
(5)將轉(zhuǎn)換后3ds格式的模型加載到ArcScene中瀏覽顯示,如圖5所示。
圖5 模型加載顯示Fig.5 Model loading display
(1)借助三方軟件對(duì)模型格式的支持,實(shí)現(xiàn)了使用三方軟件對(duì)模型格式的轉(zhuǎn)換,最終將模型格式轉(zhuǎn)換為GIS能夠識(shí)別的3ds格式。此方法雖然避免了編程,操作簡(jiǎn)單,但有很大的缺陷,即經(jīng)過格式轉(zhuǎn)換后的模型變?yōu)橐粋€(gè)整體,模型再以部件的形式出現(xiàn),丟失了BIM模型特有優(yōu)勢(shì),違背了模型轉(zhuǎn)換的初衷,失去了BIM模型應(yīng)有的意義。
(2)借助IImport3DFile接口,實(shí)現(xiàn)將3ds格式模型加載到展示平臺(tái)上進(jìn)行顯示。
(3)借助Data Interoperability來對(duì)dwg格式實(shí)現(xiàn)了模型轉(zhuǎn)換算法,且轉(zhuǎn)換過后各部件單獨(dú)存在,不再是一個(gè)整體,達(dá)到預(yù)期目標(biāo),實(shí)現(xiàn)了對(duì)各部件信息的編輯。
本系統(tǒng)主要是對(duì)前期模型轉(zhuǎn)換方法的整合。利用ArcGIS Engine以及DevExpress插件實(shí)現(xiàn)系統(tǒng)開發(fā)。首先實(shí)現(xiàn)模型加載、展示,加載模型主要包括使用三方轉(zhuǎn)換后的模型以及后期通過編程實(shí)現(xiàn)轉(zhuǎn)換模型。然后實(shí)現(xiàn)模型的瀏覽、屬性查詢等功能。最后通過二次開發(fā),實(shí)現(xiàn)模型解析,過濾,轉(zhuǎn)換功能。
圖6 系統(tǒng)結(jié)構(gòu)Fig.6 System structure
根據(jù)結(jié)構(gòu)層次劃分,BIM與GIS模型融合系統(tǒng)結(jié)構(gòu)自上而下,主要由三部分構(gòu)成:數(shù)據(jù)層、三維GIS展示平臺(tái)層、核心功能層,如圖6所示。數(shù)據(jù)層,包括整個(gè)三維GIS系統(tǒng)所需要顯示的模型數(shù)據(jù),以及在進(jìn)行模型轉(zhuǎn)換過程中對(duì)模型屬性更改所需要的數(shù)據(jù)庫等。三維GIS展示平臺(tái)是采用ArcGIS Engine二次開發(fā),為三維模型的可視化提供支持,實(shí)現(xiàn)了模型的加載、轉(zhuǎn)換、瀏覽等功能。該平臺(tái)采用DevExpress插件,設(shè)計(jì)出當(dāng)前比較流行的Ribbon風(fēng)格界面。功能層涵蓋了系統(tǒng)所能實(shí)現(xiàn)的大部分功能。
模型導(dǎo)入功能使用IImport 3DFile接口實(shí)現(xiàn),將BIM模型通過三方軟件轉(zhuǎn)換后的3ds格式的模型,借助編程方式實(shí)現(xiàn)模型的導(dǎo)入顯示。模型是以符號(hào)的形式導(dǎo)入,通過在ArcScene控件上添加一個(gè)點(diǎn)數(shù)據(jù),然后將導(dǎo)入的模型作為點(diǎn)的符號(hào)添加到主界面上進(jìn)行顯示,技術(shù)路線如圖7所示。利用IImport 3DFile接口將模型導(dǎo)入三維GIS系統(tǒng)后的顯示效果如圖8所示。
圖7 模型導(dǎo)入技術(shù)路線Fig.7 The technical route of model import
圖8 導(dǎo)入后模型Fig.8 Imported model
通過調(diào)用Data Interoperability功能模塊,對(duì)dwg格式模型進(jìn)行讀取、過濾、轉(zhuǎn)換,將模型輸入數(shù)據(jù)庫。借助ADO.NET,讀取轉(zhuǎn)換后的模型,對(duì)比模型名稱數(shù)據(jù)庫,將模型構(gòu)件的顯示名稱改為中文,并將查詢出來的屬性添加到對(duì)應(yīng)的要素中,實(shí)現(xiàn)模型轉(zhuǎn)換。模型轉(zhuǎn)換功能技術(shù)路線如圖9所示。
圖9 模型轉(zhuǎn)換功能技術(shù)路線Fig.9 The technical route of model transformation function
2.3.1 數(shù)據(jù)模型編碼
模型經(jīng)過數(shù)據(jù)互操作模塊轉(zhuǎn)換后,輸出的各部件名稱編碼不易識(shí)別。且模型轉(zhuǎn)換后各部件屬性信息較少,僅包含編碼及英文編碼,所以將轉(zhuǎn)換后的英文代碼與《房屋建筑CAD制圖統(tǒng)一規(guī)則》進(jìn)行對(duì)比,將英文編碼轉(zhuǎn)換為對(duì)應(yīng)的中文編碼,并將制圖規(guī)則里包含的各部件的屬性信息寫入到要素中。
Dwg格式模型在經(jīng)過Data Interoperability解析、過濾、輸出后各部件名稱為均為英文編碼,例如:A-WALL-FULL,該英文編碼表明為建筑-墻體-全高(全高墻),具有較低的辨識(shí)度,通過查找《房屋建筑CAD制圖統(tǒng)一規(guī)則》(國標(biāo)),將中英文編碼進(jìn)行了整理。
(1)編碼說明
①中文圖層名格式采用以下四種,如圖10所示。
圖10 中文編碼說明Fig.10 Chinese coding description
專業(yè)碼:由兩個(gè)漢字組成,用于說明專業(yè)類別(如建筑、結(jié)構(gòu)等)。
主組碼:由兩個(gè)漢字組成,用于詳細(xì)說明專業(yè)特征,可以和任意專業(yè)碼組合(如墻體)。
次組碼:由兩個(gè)漢字組成,用于進(jìn)一步區(qū)分主組碼類型,是可選項(xiàng),用戶可以自定義次組碼(如全高)。次組碼可以和不同主組碼組合。
狀態(tài)碼:由兩個(gè)漢字組成,用于區(qū)分改建、加固房屋中該層實(shí)體的狀態(tài)(如新建、拆遷、保留和臨時(shí)等),是可選項(xiàng)。
②英文編碼與中文編碼表示方式相同,各類編碼的含義也是一樣,如圖11所示。
圖11 英文編碼說明Fig.11 English coding description
③對(duì)各類編碼進(jìn)行補(bǔ)充。
專業(yè)碼,即轉(zhuǎn)換后各部件名稱的開頭一個(gè)字母,表示該部件屬于的大類別;狀態(tài)碼,是指在英文編碼中,用來顯示建筑部件的當(dāng)前狀態(tài);示例如表1所示。
表1 專業(yè)碼Table 1 Professional codes
(2)建立編碼庫
對(duì)《房屋建筑CAD制圖統(tǒng)一規(guī)則》(國標(biāo))里的內(nèi)容進(jìn)行整理,抽取里面的關(guān)于墻、門、窗等部件的圖層名,將其整理為適合于系統(tǒng)調(diào)用的Excel表格,示例如表2所示。
表2 編碼庫Table 2 Encoding library
2.3.2 數(shù)據(jù)入庫
將整理后的Excel導(dǎo)入到數(shù)據(jù)庫,建立編碼數(shù)據(jù)庫,便于后期系統(tǒng)對(duì)數(shù)據(jù)的訪問。字段和字段類型示例如表3所示。
表3 字段名稱、類型Table 3 Field names and types
字段創(chuàng)建好后,利用數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入功能,將Excel中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中對(duì)應(yīng)表格的對(duì)應(yīng)字段中。在導(dǎo)入前,須將Excel轉(zhuǎn)存為.xls格式,否則會(huì)導(dǎo)入失敗,導(dǎo)入后的結(jié)果如圖12所示。
圖12 導(dǎo)入結(jié)果Fig.12 Import result
2.3.3 模型轉(zhuǎn)換
模型轉(zhuǎn)換功能根據(jù)OpenFileDialog和SaveFileDialog來分別選擇待轉(zhuǎn)換模型(dwg)以及轉(zhuǎn)換后的存儲(chǔ)路徑。轉(zhuǎn)換后的輸出結(jié)果是存放在數(shù)據(jù)庫中,所以SaveFileDialog的輸出結(jié)果默認(rèn)為*.gdb。
點(diǎn)擊轉(zhuǎn)換后,首先對(duì)Geoprocessor進(jìn)行實(shí)例化,定義QuickImport,然后通過調(diào)用QuickImport的Input方法,設(shè)置要輸入的模型格式和路徑,調(diào)用QuickImport的output方法,設(shè)置輸出路徑。參數(shù)設(shè)置完畢后,調(diào)用Geoprocessor的Execute方法來對(duì)QuickImport進(jìn)行執(zhí)行,模型的轉(zhuǎn)換工作完成,模型將會(huì)被存在相應(yīng)的數(shù)據(jù)庫中。最后使用Add-in將轉(zhuǎn)換功能嵌入到ArcScene中。
2.3.4 特殊情況處理
(1)模型的加載
模型轉(zhuǎn)換后需要進(jìn)行加載顯示,通過調(diào)用工作空間和工作空間工廠來對(duì)數(shù)據(jù)進(jìn)行讀取,并顯示在Scene控件上。在轉(zhuǎn)換過程中,轉(zhuǎn)換出的數(shù)據(jù)不僅有模型體,還包括一些在轉(zhuǎn)換過程中產(chǎn)生的點(diǎn)、線等數(shù)據(jù),這些數(shù)據(jù)在加載模型時(shí)對(duì)模型的完整性沒有幫助,而且會(huì)影響模型的美觀性,所以在進(jìn)行模型加載時(shí),需要把這部分shp數(shù)據(jù)過濾掉。在對(duì)要素進(jìn)行遍歷時(shí),需要注意對(duì)要素的類型進(jìn)行判斷。
(2)屬性修改及添加
模型轉(zhuǎn)換后,各部件的英文編碼與前期整理過的代碼庫還有一些差別,即各部件的英文編碼多了“_surface”字樣,針對(duì)這種情況還需要對(duì)各部件英文編碼進(jìn)行修改,將多余的“_surface”字樣過濾掉,這樣才能與編碼庫進(jìn)行比對(duì),從而提取出編碼庫中對(duì)應(yīng)的中文名稱。又因轉(zhuǎn)換后的模型屬性信息較少,只包含ID和英文編碼,為了人工辨讀,為相應(yīng)的要素添加中文名稱及中文解釋兩個(gè)字段,完善各部件的屬性信息。模型轉(zhuǎn)換成功效果如圖13所示。
圖13 模型轉(zhuǎn)換并顯示Fig.13 Model transformation and display
根據(jù)目前模型融合研究現(xiàn)狀,通過分析GIS與BIM模型之間的異同,總結(jié)目前的模型轉(zhuǎn)換方法,然后以ArcGIS Engine為平臺(tái),把dwg格式的模型作為出發(fā)點(diǎn),借助數(shù)據(jù)互操作模塊,研究并開發(fā)了針對(duì)Revit導(dǎo)出的dwg格式模型的解析與轉(zhuǎn)換算法,實(shí)現(xiàn)了Revit模型到GIS模型轉(zhuǎn)換。借助數(shù)據(jù)互操作來對(duì)dwg格式實(shí)現(xiàn)了模型轉(zhuǎn)換算法,根據(jù)國家對(duì)于CAD的標(biāo)準(zhǔn),對(duì)轉(zhuǎn)換后的模型屬性信息進(jìn)行修改及完善。同時(shí)設(shè)計(jì)并開發(fā)了3D模型轉(zhuǎn)換及基于ArcGIS Engine平臺(tái)開發(fā)的展示系統(tǒng)。實(shí)現(xiàn)了對(duì)sxd文檔、柵格數(shù)據(jù)、TIN數(shù)據(jù)、三維模型數(shù)據(jù)加載、屬性查詢,核心功能為三維模型轉(zhuǎn)換。
關(guān)于GIS與BIM的融合仍然處于探索階段,不過隨著GIS與BIM融合技術(shù)的不斷發(fā)展與成熟,二者之間的融合將會(huì)變得更加完善和簡(jiǎn)便。由于時(shí)間、人員等方面的限制,研究存在欠缺,對(duì)于在Revit中添加有紋理的三維模型,再經(jīng)過模型的導(dǎo)出及轉(zhuǎn)換后,會(huì)造成該模型紋理的丟失,使模型失去了原有的表面信息,雖然不影響模型的部件構(gòu)造,但影響模型的整體美觀,有待進(jìn)一步完善。