楊 文,向明明,謝邱平
(1. 中國電建集團昆明勘測設(shè)計研究院有限公司,云南 昆明 650033;2. 中國電建集團市政規(guī)劃設(shè)計研究院有限公司,廣東 珠海 519000)
隨著信息技術(shù)的深入發(fā)展,通過數(shù)字化、信息化技術(shù)提升工程項目管理水平,促進建設(shè)行業(yè)數(shù)字化轉(zhuǎn)型,已逐漸成為行業(yè)創(chuàng)新發(fā)展的前沿。BIM 與GIS 技術(shù)是實現(xiàn)工程數(shù)字化的數(shù)據(jù)基礎(chǔ),以BIM、GIS 模型為載體,融合項目設(shè)計階段的幾何參數(shù)、屬性參數(shù),施工階段的造價、進度、質(zhì)量、安全、驗收等信息,運維階段的設(shè)備性能等屬性,為工程項目信息化提供全生命周期的信息模型,打通項目各環(huán)節(jié)數(shù)據(jù)流通渠道,形成項目數(shù)字化資產(chǎn),促進工程建設(shè)行業(yè)數(shù)字化轉(zhuǎn)型,并為數(shù)字孿生城市、智慧城市等建設(shè)奠定基礎(chǔ)[1]。CityMaker 是成熟且應(yīng)用廣泛的國產(chǎn)三維GIS 平臺,對二三維GIS 數(shù)據(jù)、各平臺BIM 數(shù)據(jù)都具備良好的支持,在BIM 與GIS 的多源數(shù)據(jù)整合、大范圍三維場景渲染等方面的性能尤其突出[2]?;贑ityMaker 開展BIM 與GIS 的應(yīng)用,實現(xiàn)工程項目數(shù)字化平臺建設(shè),是國內(nèi)眾多工程數(shù)字化研究的首要選擇[3]。其中,基于CityMaker 的平臺軟件Builder,對BIM 數(shù)據(jù)進行格式轉(zhuǎn)換、坐標配準、拆分合并、屬性字段添加、重命名等操作,是實現(xiàn)BIM 與GIS 集成的首要環(huán)節(jié)[4]。然而,CityMaker 現(xiàn)有的BIM 模型處理工具較少,且局限性較強,難以滿足實際項目需求。為有效提升BIM模型處理效率,本文結(jié)合項目實際需求,基于CityMaker開發(fā)接口,設(shè)計了開發(fā)BIM模型處理工具的技術(shù)路線,研究了常用工具開發(fā)的關(guān)鍵技術(shù),形成了通用的BIM模型處理工具集。
不同BIM平臺的數(shù)據(jù)轉(zhuǎn)換為CityMaker數(shù)據(jù)后,其格式統(tǒng)一為FDB。這是CityMaker特有的三維空間數(shù)據(jù)結(jié)構(gòu),是關(guān)系型數(shù)據(jù)庫FirebirdDataBase的縮寫,同時表明CityMaker 的FDB 數(shù)據(jù)本質(zhì)上是通過關(guān)系型數(shù)據(jù)庫進行管理的。FDB數(shù)據(jù)結(jié)構(gòu)分為數(shù)據(jù)源、數(shù)據(jù)集和要素類3層樹形結(jié)構(gòu)(圖1),其中數(shù)據(jù)源與數(shù)據(jù)集都是邏輯結(jié)構(gòu)上的概念,不存儲具體數(shù)據(jù),相當于文件夾的作用,一個數(shù)據(jù)源可包含多個數(shù)據(jù)集[5]。FDB 數(shù)據(jù)中的數(shù)據(jù)實體存儲在最下層,即要素類中,一個數(shù)據(jù)集可包含多個要素類。要素類和數(shù)據(jù)庫中表的概念一致,其本質(zhì)上就是關(guān)系型數(shù)據(jù)庫的一張表,包含字符串、數(shù)字、布爾等類型的字段。較為特殊的是,要素類中存在名為Geometry的二進制類型字段,用于存儲模型的幾何信息,這也是GIS 數(shù)據(jù)存儲的通用方法,如Orable、SQLServer 數(shù)據(jù)庫中均通過擴展的Ge?ometry字段實現(xiàn)對空間幾何數(shù)據(jù)的存儲[6]。
圖1 FDB數(shù)據(jù)的3層數(shù)據(jù)結(jié)構(gòu)
1)要素類整合與拆分需求。CityMaker 通過BIM插件的方式將BIM模型轉(zhuǎn)換為自身平臺支持的FDB格式,從而實現(xiàn)對不同BIM格式的統(tǒng)一。然而,插件轉(zhuǎn)換而來的FDB格式的數(shù)據(jù)內(nèi)部分類較詳細,以BIM 平臺Revit 為例,轉(zhuǎn)換后的數(shù)據(jù)以族類別劃分,如將建筑物的墻、門、窗分為不同的要素類,結(jié)構(gòu)過于詳細,不利于模型的整合應(yīng)用,需將轉(zhuǎn)換后的要素類批量合并。此外,對于已整合的FDB 格式的BIM 數(shù)據(jù),在工程數(shù)字化平臺開發(fā)過程中,基于不同的業(yè)務(wù)開發(fā)需求,需要對要素類進行拆分,如為實現(xiàn)基于BIM模型的進度可視化模擬,需要BIM模型與工程分部分項WBS 對應(yīng),此時就需要將BIM 模型按照WBS 進行拆分。
2)屬性字段批量添加與刪除需求。BIM 模型的某項重要角色是項目全過程全范圍信息的載體,因此需對FDB格式BIM模型的字段進行定制化的新增與刪除,如添加時間類型的計劃施工時間、實際施工時間,便于在模型中存儲各構(gòu)件的施工進度信息,從而進行BIM4D模擬分析。
3)字段值批量設(shè)置需求。BIM 模型的構(gòu)件數(shù)量龐大,如一幢普通別墅的全專業(yè)構(gòu)件可能上萬,構(gòu)件中某些字段值可能相同或可按條件批量賦值,如在BIM4D 進度模擬中需對已施工完成的構(gòu)件進行標記,就需要對相關(guān)字段值進行批量設(shè)置。
4)坐標系批量設(shè)置需求。坐標系是GIS平臺整合BIM模型的標志性特征,只有在統(tǒng)一、真實的地理坐標系下,BIM模型才能具備模擬真實世界的空間參考基礎(chǔ)。在實際項目中,BIM 模型個數(shù)眾多,而其GIS坐標系往往相同,因此就產(chǎn)生了對眾多模型批量設(shè)置坐標系的需求。
5)數(shù)據(jù)集與要素類重命名需求。在現(xiàn)有的City?Maker 數(shù)據(jù)處理軟件Builder 中,用戶只能對第一層結(jié)構(gòu)(數(shù)據(jù)源)進行重命名,而數(shù)據(jù)集與要素類是FDB中檢索數(shù)據(jù)的重要依據(jù),在不同的平臺開發(fā)業(yè)務(wù)需求中,經(jīng)常需對二者進行重命名,如需要根據(jù)項目編碼對各要素類進行命名,便于對數(shù)據(jù)進行統(tǒng)一的編碼管理。
CityMaker 是基于Windows 開發(fā)的桌面端GIS 平臺,對其進行二次開發(fā)時,首選Windows 平臺下的.NET 開發(fā)環(huán)境。目前,CityMaker 開發(fā)的SDK 對于WinForm的支持優(yōu)于WPF,因此本文采用基于.NET的WinForm進行BIM模型處理工具的開發(fā)[7]。技術(shù)路線如圖2 所示。需要注意的是,與一般GIS 桌面程序二次開發(fā)不同,CityMaker二次開發(fā)時需將工程的輸出目錄設(shè)置為CityMakerConnect的安裝目錄或?qū)onnect安裝路徑下的文件拷貝至工程的bin/Debug 路徑下,才能確保程序順利運行。此外,若需使用AxRenderControl控件顯示FDB模型,則需在WinFrom初始化后,通過代碼創(chuàng)建AxRenderControl 實例,并將其加入WinFrom的Panel等容器控件中。
圖2 基于CityMaker的BIM數(shù)據(jù)處理工具開發(fā)技術(shù)路線
1)要素類整合與拆分。要素類整合工具開發(fā)的基本思路為將源要素類的每一行數(shù)據(jù)(即每個BIM構(gòu)件)復制為新的IRowBuffer 實例,再將該實例通過目標要素類的遍歷游標新增到目標要素類中,其核心API 除打開數(shù)據(jù)源、數(shù)據(jù)集、要素類的常用接口外,主要為ITable.Search、IFdeCursor.InsertRow 等。要素類拆分工具開發(fā)的基本思路為依據(jù)要素類某字段的唯一值,將要素類中的數(shù)據(jù)行分離為不同的FDB 數(shù)據(jù)。在新建的FDB中,需要將源數(shù)據(jù)集中的模型、材質(zhì)進行拷貝,其核心API 主要為IQueryFilter、IResourceM?anager、IModel、IImage等。
2)屬性字段批量添加與刪除。屬性字段批量添加工具的開發(fā)思路為首先定義需添加字段的類型、名稱、別名等信息為配置文件,再通過接口按配置文件批量添加新字段,其核心API 為ITable.AddField。屬性字段刪除工具則是通過設(shè)定需刪除字段的名稱,利用接口ITable.DeleteField實現(xiàn)。
3)字段值批量設(shè)置。該工具可通過要素類逐行遍歷和UpdateSQL 語句兩種方式實現(xiàn)。通過實驗對比發(fā)現(xiàn),后者效率遠高于前者。UpdateSQL 語句的實現(xiàn)思路為獲取要素類對應(yīng)的關(guān)系數(shù)據(jù)庫表名,定義Up?dateSQL 語句,其核心API 為IDataSource.ExecuteUp?date。
4)坐標系批量設(shè)置。FDB 數(shù)據(jù)集中的要素類具備同一坐標系,因此數(shù)據(jù)的GIS 坐標系定義在數(shù)據(jù)集中。該工具的開發(fā)思路為定義坐標系WKT,遍歷FDB 中所有數(shù)據(jù)集進行坐標系批量設(shè)定,其核心API 為ICRSFactory.CreateFromWKT、IFeatureDataSet.SpatialReference。
5)數(shù)據(jù)集與要素類重命名。該工具是BIM 數(shù)據(jù)處理過程中較常用、開發(fā)方式較簡單的工具,其核心API為IFeatureDataSet.Name、IObjectClass.Name。實現(xiàn)界面如圖3所示。
圖3 數(shù)據(jù)集與要素類重命名工具實現(xiàn)界面
作為國產(chǎn)三維GIS 領(lǐng)域中為數(shù)不多的成熟平臺,CityMaker 對多源BIM 的支持使其在工程數(shù)字化、CIM、智慧城市等領(lǐng)域的應(yīng)用前景廣闊;但其現(xiàn)有BIM數(shù)據(jù)處理軟件所具備的工具難以滿足實際應(yīng)用需要;因此,基于其豐富的二次開發(fā)接口進行定制開發(fā),是解決數(shù)據(jù)處理瓶頸的必然選擇。本文結(jié)合工程項目實際需求,研究了常用工具的開發(fā)需求、技術(shù)路線和實施過程,在此基礎(chǔ)上,可進一步開展模型批量更新、二進制設(shè)計參數(shù)解析、模型偏移、坐標轉(zhuǎn)換、多格式導出、空間關(guān)系計算等高級BIM模型處理工具的定制開發(fā),進一步深化BIM 與GIS 的集成融合,為基于BIM 與GIS 的工程數(shù)字化應(yīng)用奠定良好的數(shù)據(jù)基礎(chǔ)。