作者:徐蕾
一、 應(yīng)用需求基于Autodesk Revit制作的BIM模型數(shù)據(jù),如何在GIS項(xiàng)目中使用。本文將以RVT模型數(shù)據(jù)為例,通過(guò)SuperMap iDesktop桌面軟件、SuperMap iServer服務(wù)管理平臺(tái)以及SuperMap iClient3D for WebGL二次開(kāi)發(fā)平臺(tái),梳理BIM+GIS項(xiàng)目建設(shè)的全流程,詳細(xì)介紹Revit模型從接入到Web端應(yīng)用的技術(shù)要點(diǎn),同時(shí)匯總分享大家在此過(guò)程中常見(jiàn)的問(wèn)題。 二、 主要流程將Revit模型轉(zhuǎn)入SuperMap; 根據(jù)項(xiàng)目需要或數(shù)據(jù)特點(diǎn)深入處理模型數(shù)據(jù); 通過(guò)SuperMap iServer 發(fā)布三維服務(wù); 通過(guò)SuperMap iClient3D for WebGL開(kāi)發(fā)WebGIS項(xiàng)目。
三、 涉及軟件Autodesk Revit軟件; SuperMap iDesktop、SuperMap iServer和SuperMap iClient 3D for WebGL; 超圖Revit插件:通過(guò)百度網(wǎng)盤(pán)(鏈接:https://eyun.baidu.com/s/3dzbgVO,密碼:8SsM)下載。
注意事項(xiàng): a)目前超圖Revit插件支持的Revit版本為Revit2016~2020; b)插件經(jīng)常更新,建議大家下載使用網(wǎng)盤(pán)上的最新版本; c)網(wǎng)盤(pán)中提供了Revit插件配置的說(shuō)明文檔,請(qǐng)參考該文檔進(jìn)行配置。 四、 實(shí)現(xiàn)步驟第一步 將Revit模型轉(zhuǎn)入SuperMap如果使用的是低于10i版本的iDesktop,請(qǐng)安裝導(dǎo)出插件到Revit,然后借助該插件導(dǎo)出模型到SuperMap數(shù)據(jù)源文件中。 具體操作是:?jiǎn)?dòng)Revit軟件,打開(kāi)RVT模型數(shù)據(jù),在“項(xiàng)目瀏覽器”中選擇三維視圖模式,RVT模型數(shù)據(jù)需要在該模式下導(dǎo)出數(shù)據(jù)。 在Revit軟件的“附加模塊”中,點(diǎn)擊Revit插件,如下圖。
 設(shè)置導(dǎo)出參數(shù)后,點(diǎn)擊“確定”按鈕,將Revit的模型的幾何信息和屬性信息,一次性批量導(dǎo)出到SuperMap的數(shù)據(jù)源文件中。
提示: 如果使用的是10i及以上版本的iDesktop,可以直接使用“導(dǎo)入BIM數(shù)據(jù)-Revit”功能,將模型導(dǎo)入到SuperMap數(shù)據(jù)源文件中,需要設(shè)置的參數(shù)與使用插件導(dǎo)出類(lèi)似。 這種方式不要求安裝插件到Revit,但計(jì)算機(jī)上要安裝與iDesktop位數(shù)一致的Revit軟件。
 常見(jiàn)問(wèn)題: a)設(shè)置導(dǎo)出參數(shù)時(shí)需要注意什么?選擇輸入“模型定位點(diǎn)”還是“導(dǎo)入投影文件”? 場(chǎng)景投影信息:通過(guò)插入點(diǎn)或者投影信息文件來(lái)確定RVT模型在超圖三維場(chǎng)景中的位置。若已知測(cè)量點(diǎn)在球面/投影坐標(biāo)系的坐標(biāo)值,輸入該坐標(biāo)值作為模型定位點(diǎn);若Revit建模是基于坐標(biāo)系的值進(jìn)行的,則選擇“導(dǎo)入投影文件”(*.xml)。 導(dǎo)出網(wǎng)絡(luò)數(shù)據(jù)集:若RVT模型中存在管線(xiàn)、風(fēng)管、電纜架橋等數(shù)據(jù),在GIS應(yīng)用中需要使用三維網(wǎng)絡(luò)分析功能,建議勾選“導(dǎo)出網(wǎng)絡(luò)數(shù)據(jù)集”,該參數(shù)會(huì)將數(shù)據(jù)導(dǎo)出為相應(yīng)的三維點(diǎn)、線(xiàn)數(shù)據(jù)集。后續(xù)可以通過(guò)桌面軟件基于該三維點(diǎn)、線(xiàn)構(gòu)成三維網(wǎng)絡(luò)數(shù)據(jù)集。 新建數(shù)據(jù)源:插件會(huì)將RVT模型數(shù)據(jù)存儲(chǔ)在SuperMap數(shù)據(jù)源文件中,因此該參數(shù)用于設(shè)置數(shù)據(jù)源存放路徑。 b)如果原始RVT模型是基于地方坐標(biāo)系制作的,具體操作方法如下: 首先,Revit軟件中,利用插件導(dǎo)出模型數(shù)據(jù),選擇輸入“平面坐標(biāo)”,并以測(cè)量點(diǎn)在地方坐標(biāo)系中的值作為插入點(diǎn)。
 其次,使用SuperMap iDesktop打開(kāi)上一步導(dǎo)出的數(shù)據(jù)源,打開(kāi)模型數(shù)據(jù)集的“屬性”視窗,在“坐標(biāo)系”選項(xiàng)卡中,重新設(shè)定其坐標(biāo)系為地方坐標(biāo)系。
 提示:如果RVT模型需要用于WebGL開(kāi)發(fā),可以使用SuperMap iDesktop的投影轉(zhuǎn)換功能(開(kāi)始菜單-投影轉(zhuǎn)換-數(shù)據(jù)集投影轉(zhuǎn)換),將地方坐標(biāo)系轉(zhuǎn)換成China2000或WGS1984坐標(biāo)系。 c)如果RVT模型使用了過(guò)濾器添加顏色,導(dǎo)出時(shí)顏色缺失,可能是因?yàn)槟P蛯?dǎo)出時(shí)未勾選“著色顏色”而使用了“真實(shí)顏色”,建議使用“著色顏色”導(dǎo)出并查看效果;此外,目前僅支持貼圖和過(guò)濾器顏色,其他材質(zhì)效果暫時(shí)導(dǎo)不出來(lái)。 第二步 據(jù)項(xiàng)目需要或數(shù)據(jù)特點(diǎn)深入處理模型數(shù)據(jù)RVT的模型是否需要單體化處理? 將RVT模型導(dǎo)出之后,不需要對(duì)其進(jìn)行單體化操作,模型數(shù)據(jù)集中的構(gòu)件對(duì)象與Revit軟件中是一樣的,構(gòu)件已經(jīng)是單體了。 RVT模型在SuperMap中是否可以編輯? RVT模型導(dǎo)出之后,如果需要手動(dòng)修改幾何信息(例如位置、貼圖等)和屬性信息,都可以直接在SuperMap iDesktop中進(jìn)行操作,不需要重新導(dǎo)出。 操作方法:編輯模型的位置和貼圖時(shí),先選中模型,在右鍵菜單選擇“編輯模型”。其中,只有帶uv坐標(biāo)的貼圖文件,才能用于對(duì)RVT模型進(jìn)行貼圖。


 制作和導(dǎo)出模型的時(shí)候隨意設(shè)置的模型插入點(diǎn)坐標(biāo),如何校正模型的坐標(biāo)? 模型導(dǎo)入到SuperMap數(shù)據(jù)源中,如果坐標(biāo)不正確,可以通過(guò)配準(zhǔn)的功能(開(kāi)始菜單-新建三維配準(zhǔn))來(lái)糾正模型數(shù)據(jù)的坐標(biāo)。在三維配準(zhǔn)時(shí)可以使用二三維線(xiàn)面,柵格或者影像數(shù)據(jù)作為參考數(shù)據(jù)集。


RVT模型與傾斜攝影模型數(shù)據(jù)、地形數(shù)據(jù)如何精確匹配? 如果RVT模型與傾斜攝影模型數(shù)據(jù)相互遮蓋,一般是通過(guò)“三維地理設(shè)計(jì)-截面與投影-提取邊界”獲得RVT模型的范圍面,再使用“三維地理設(shè)計(jì)-傾斜攝影操作-鑲嵌/挖洞”功能,把傾斜攝影模型進(jìn)行平整處理;如果RVT模型與地形數(shù)據(jù)相互遮蓋,可以基于RVT模型的范圍面,使用“三維地理設(shè)計(jì)-TIN地形操作-鑲嵌/挖洞”功能修改地形表面,使之與模型精確匹配起來(lái)。
 提示: 如果是高速路及隧道模型,存在地形完全覆蓋路面和邊溝的情況,需要與TIN地形進(jìn)行精確匹配,首先準(zhǔn)備隧道路段三維線(xiàn)數(shù)據(jù),使用“三維地理設(shè)計(jì)-放樣”功能生成隧道實(shí)體模型,再通過(guò)“三維地理設(shè)計(jì)-TIN地形操作-布爾運(yùn)算”功能從TIN地形中挖出一條隧道。整個(gè)過(guò)程都是手動(dòng)操作完成,如果會(huì).NET組件,可以自行開(kāi)發(fā)批處理工具。
 RVT模型構(gòu)件多且精細(xì),數(shù)據(jù)量大,加載速度慢,如何優(yōu)化? 對(duì)RVT模型進(jìn)行優(yōu)化的主要方式包括實(shí)例化、BIM輕量化處理和生成三維切片緩存等,下面列舉3個(gè)最常用的功能進(jìn)行說(shuō)明。 a)實(shí)例化 添加RVT模型到球面三維場(chǎng)景,使用“實(shí)例化處理”工具(三維數(shù)據(jù)-模型工具-實(shí)例化處理)能夠?qū)崿F(xiàn)相同的幾何模型只保存繪制一個(gè),降低顯卡和內(nèi)存的壓力,適用于重復(fù)模型較多的情況。
 b)三角網(wǎng)簡(jiǎn)化 很多RVT模型存在大量冗余的三角面,通過(guò)三角網(wǎng)簡(jiǎn)化(三維地理設(shè)計(jì)-模型編輯-三角網(wǎng)簡(jiǎn)化)功能,可以實(shí)現(xiàn)對(duì)這些模型進(jìn)行批量簡(jiǎn)化,降低內(nèi)存的占用。

 c)操作子對(duì)象 添加數(shù)據(jù)后,找到“三維地理設(shè)計(jì)-模型編輯-操作子對(duì)象”功能,可以對(duì)單個(gè)的模型進(jìn)行簡(jiǎn)化、或者直接刪除在GIS中無(wú)用的子對(duì)象,如建筑物里面的門(mén)把手、鎖芯等。 模型數(shù)據(jù)如何生成三維切片緩存? 將模型數(shù)據(jù)生成緩存可分為兩種方式,一種是多個(gè)模型數(shù)據(jù)集批量生成到一個(gè)緩存圖層中,另一種是每個(gè)數(shù)據(jù)集分別生成一個(gè)緩存圖層。對(duì)于RVT模型來(lái)說(shuō),一般采用批量生成緩存的方式,它的主要優(yōu)勢(shì)在于能夠減少圖層數(shù)量,加強(qiáng)系統(tǒng)調(diào)度。 操作方法:打開(kāi)數(shù)據(jù)源文件,使用“批量生成緩存”功能(三維數(shù)據(jù)-生成緩存-批量生成緩存-模型),添加多個(gè)模型數(shù)據(jù)集,批量生成S3M緩存,以提升模型瀏覽性能。
 a)設(shè)置緩存參數(shù) 設(shè)置“緩存用途”參數(shù),主要包括普通PC設(shè)備和iOS系列設(shè)備、Android系列設(shè)備和不壓縮,對(duì)于不同用途的緩存,應(yīng)用程序?qū)⒉捎貌煌募y理壓縮方式,以減少紋理圖像所使用的顯存數(shù)量。 若需要將模型添加到平面場(chǎng)景中,可以將“場(chǎng)景類(lèi)型”改為“平面”。 設(shè)置“LOD層數(shù)”以及每層數(shù)據(jù)的簡(jiǎn)化率,當(dāng)三維場(chǎng)景拉近看的時(shí)候,模型呈現(xiàn)最精細(xì)的一層,當(dāng)瀏覽整個(gè)場(chǎng)景的時(shí)候,模型只需要以較粗糙的方式顯示即可,這樣最大程度的優(yōu)化資源的占用,提高整個(gè)三維場(chǎng)景的性能。
 b)緩存加載到場(chǎng)景中,保存場(chǎng)景和工作空間 新建一個(gè)球面場(chǎng)景,通過(guò)“添加三維切片緩存”功能,將生成的緩存添加到場(chǎng)景中,保存場(chǎng)景命名為“BIMScene”,并保存工作空間命名為“BIM”。

第三步 通過(guò)SuperMap iServer發(fā)布三維服務(wù)啟動(dòng)iServer服務(wù),打開(kāi)iServer服務(wù)管理頁(yè)面,使用“快速發(fā)布一個(gè)或一組服務(wù)”功能,選擇發(fā)布“工作空間”,遠(yuǎn)程瀏覽添加“BIM.smwu”工作空間文件。
  提示:發(fā)布服務(wù)時(shí),也可以選擇“數(shù)據(jù)來(lái)源”為“三維切片緩存”,直接發(fā)布三維切片緩存,然后在Web端訪(fǎng)問(wèn)時(shí)使用scene.addS3MTilesLayerByScp方法添加三維切片緩存圖層到三維場(chǎng)景中。

選擇發(fā)布的服務(wù)類(lèi)型為“REST-三維服務(wù)”。 提示:iServer會(huì)對(duì)選擇發(fā)布的工作空間進(jìn)行分析判斷,如果“REST-三維服務(wù)”的復(fù)選框?yàn)榛疑?,?qǐng)檢查工作空間中是否沒(méi)有成功保存三維場(chǎng)景;如果需要在Web客戶(hù)端實(shí)現(xiàn)SQL查詢(xún),還需要勾選“REST-數(shù)據(jù)服務(wù)”。
 完成服務(wù)配置后,將獲得訪(fǎng)問(wèn)該服務(wù)的超鏈接: http://localhost:8090/iserver/services/3D-BIM/rest
 常見(jiàn)問(wèn)題: 服務(wù)發(fā)布完成后,如果對(duì)發(fā)布的工作空間進(jìn)行了修改,例如使用SuperMap iDesktop在三維場(chǎng)景中增加了一個(gè)圖層,或者修改了圖層風(fēng)格,不需要重新發(fā)布服務(wù)。SuperMap iServer會(huì)對(duì)發(fā)布的工作空間進(jìn)行實(shí)時(shí)的檢查,一旦發(fā)現(xiàn)有變化,會(huì)自動(dòng)更新服務(wù)。
第四步 通過(guò)SuperMap iClient3D for WebGL開(kāi)發(fā)WebGIS項(xiàng)目SurerMap iServer三維服務(wù)支持客戶(hù)端進(jìn)行一系列的操作,例如加載圖層、自定義 Action等。本文以打開(kāi)加載了S3M緩存圖層的三維場(chǎng)景為例,演示RVT模型在Web客戶(hù)端上的訪(fǎng)問(wèn)與瀏覽。 獲取三維服務(wù)地址 在三維服務(wù)根目錄下,點(diǎn)擊“Realspace”進(jìn)入3D資源,即三維服務(wù)根節(jié)點(diǎn)地址: (http://localhost:8090/iserver/services/3D-BIM/rest/realspace),用于在Web端訪(fǎng)問(wèn)發(fā)布的三維場(chǎng)景。
 創(chuàng)建WebGIS工程 本文直接使用SuperMap iServer自帶的Tomcat進(jìn)行工程發(fā)布。在SuperMap iServer安裝目錄下的webapps文件夾中,創(chuàng)建工程目錄“HelloWorld”,將SuperMap iClient 3D for WebGL中的Build文件夾復(fù)制到工程目錄中。其中最重要的是Build\Cesium文件夾,它包含了Cesium.js及所有需要的依賴(lài)文件。
 實(shí)現(xiàn)場(chǎng)景加載 在工程目錄中創(chuàng)建HTML文件—HelloWorld.html,添加對(duì)Cesium.js文件的引用,添加對(duì)widgets.css樣式文件的引用,然后在窗體加載響應(yīng)函數(shù)中,實(shí)例化Viewer,并通過(guò)viewer對(duì)象獲取到場(chǎng)景對(duì)象scene,再獲取到在線(xiàn)三維場(chǎng)景服務(wù)地址,最后通過(guò)scene對(duì)象提供的open方法,打開(kāi)在線(xiàn)三維場(chǎng)景。具體代碼如下:
 常見(jiàn)問(wèn)題: a)三維場(chǎng)景中,除了加載S3M緩存,還可以同時(shí)加載在線(xiàn)地圖疊加顯示,如果看不到在線(xiàn)地圖,檢查模型的坐標(biāo)系或坐標(biāo)值是否正確。 b)如果把多種數(shù)據(jù)都放在了同一個(gè)場(chǎng)景中,那么在WebGL開(kāi)發(fā)中直接用 scene.open方法打開(kāi)就可以了;如果數(shù)據(jù)是在不同的場(chǎng)景或者不同的工作空間中,那么可以使用scene.addS3MTilesLayerByScp方法依次添加圖層到同一個(gè)場(chǎng)景中。 c)在Web端瀏覽時(shí),如果需要控制各圖層的顯隱狀態(tài),可以通過(guò)layer.setOnlyObjsVisible(ids,true)來(lái)實(shí)現(xiàn),具體代碼可以參考范例。 http://support.:8090/webgl/examples/editor.html#S3MTiles 通過(guò)瀏覽器瀏覽三維場(chǎng)景 使用Chrome瀏覽器,訪(fǎng)問(wèn)http://localhost:8090/HelloWorld/HelloWorld.html,即可瀏覽三維場(chǎng)景中的RVT模型數(shù)據(jù)。

|