基于HTML5/WebGL技術(shù)的BIM模型輕量化Web瀏覽解決方案
原創(chuàng)互聯(lián)網(wǎng)技術(shù)的興起極大地改變了我們的娛樂(lè)、生活和生產(chǎn)方式。尤其是HTML5/WebGL技術(shù)的發(fā)展更是在各個(gè)行業(yè)內(nèi)引起顛覆性的變化,大家感受最深刻的可能是游戲、電商、O2O等和我們生活息息相關(guān)的行業(yè),但這次我想講一下不受普通人關(guān)注但又人人都離不開(kāi)的建筑業(yè)在互聯(lián)網(wǎng)大潮沖擊下的變革。
作者簡(jiǎn)介:
杜長(zhǎng)宇·Autodesk資深開(kāi)發(fā)顧問(wèn)
杜長(zhǎng)宇,Autodesk資深開(kāi)發(fā)顧問(wèn)。目前負(fù)責(zé)其公司云技術(shù)的支持和推廣,關(guān)注HTML5、WebGL、NodeJs及Web上的三維模型顯示技術(shù)。
提到建筑業(yè),就必然要提到BIM(Building Information Modeling)即建筑信息模型。BIM技術(shù)經(jīng)過(guò)近十年的發(fā)展,已經(jīng)被越來(lái)越多的業(yè)主、開(kāi)發(fā)商、設(shè)計(jì)者和運(yùn)維人員所接受,建筑業(yè)必將迎來(lái)繼“甩圖板”以來(lái)的又一次技術(shù)革命。上海中心、鳥(niǎo)巢等標(biāo)志性建筑的BIM技術(shù)應(yīng)用,進(jìn)一步證明了BIM技術(shù)的生命力。BIM技術(shù)將在設(shè)計(jì)、施工到運(yùn)維整個(gè)生命周期中發(fā)揮巨大威力。同時(shí)我們也注意到,設(shè)計(jì)、施工、運(yùn)營(yíng)維護(hù)人員和業(yè)主開(kāi)發(fā)商等在同一個(gè)BIM模型上工作以達(dá)到自始至終的數(shù)據(jù)工作的“單一模型”模式在實(shí)踐中是不切實(shí)際的,BIM模型在項(xiàng)目建造的不同階段、基于不同目的、不同的參與者等因素,BIM模型的要包含和表達(dá)的信息以及詳細(xì)程度也是不同的,有必要根據(jù)具體運(yùn)用情況對(duì)BIM模型進(jìn)行細(xì)化或概括,根據(jù)使用情況還可能需要對(duì)BIM模型進(jìn)行輕量化處理,以便達(dá)到去粗取精、更易使用的目的。
我們以運(yùn)維階段為例,在建筑已經(jīng)建造完成進(jìn)入運(yùn)維階段時(shí),我們的運(yùn)維系統(tǒng)往往希望輕量化的BIM模型。首先是在原始BIM模型基礎(chǔ)上的概括與簡(jiǎn)化,比如在設(shè)計(jì)階段或施工階段的某些具體信息在運(yùn)維階段并不一定有用,如果這些冗余信息在BIM運(yùn)維階段不做概括和簡(jiǎn)化,不但會(huì)造成BIM模型過(guò)于復(fù)雜導(dǎo)致性能問(wèn)題,還可能由于信息冗雜、干擾,導(dǎo)致運(yùn)維系統(tǒng)使用不便。所以有必要根據(jù)BIM模型的應(yīng)用場(chǎng)景做必要的簡(jiǎn)化。與此同時(shí),運(yùn)維階段所需要的一些必要信息,在設(shè)計(jì)和施工階段也是沒(méi)辦法包含在BIM模型之內(nèi)的,也需要根據(jù)具體使用情況,對(duì)BIM模型信息做必要的補(bǔ)充。這個(gè)過(guò)程必然造成BIM模型的版本分化,有必要做好版本管理工作。
根據(jù)運(yùn)維系統(tǒng)的特點(diǎn),運(yùn)維人員可能并不熟悉建筑建模軟件的使用,同時(shí)讓運(yùn)維人員使用建模軟件來(lái)做運(yùn)維管理也是不實(shí)際的,所以還需要對(duì)BIM模型的格式做必要的轉(zhuǎn)換達(dá)到輕量化,以便在運(yùn)維系統(tǒng)中使用。常見(jiàn)的BIM模型輕量化解決方案有下面幾種,大家一起探討:
- 使用Autodesk Navisworks 軟件。 Autodesk Navisworks可以接受包括Revit在內(nèi)的多種業(yè)界常見(jiàn)的BIM模型格式,同時(shí)具有很高的壓縮比。Navisworks同時(shí)提供豐富的API,有不少?gòu)S商使用Navisworks做運(yùn)維平臺(tái)。其優(yōu)點(diǎn)是支持?jǐn)?shù)據(jù)格式眾多,壓縮比高,輕量化效果好同時(shí)提供豐富API,易于開(kāi)發(fā)與集成。但是 Navisworks 是桌面軟件,客戶端需要安裝Navisworks軟件,需要License授權(quán),成本較高。 使用Navisworks雖然可以開(kāi)發(fā)基于Web的應(yīng)用,但Navisworks只能支持IE瀏覽器,并且每個(gè)客戶也還是需要安裝Navisworks軟件。同時(shí)由于IE瀏覽器版本的升級(jí),新版本IE瀏覽器對(duì)Navisworks的支持還有問(wèn)題。而且該方案也不支持移動(dòng)設(shè)備瀏覽。
- 使用DWFx格式。DWF格式是更通用的數(shù)據(jù)格式,幾乎所有Autodesk軟件都支持導(dǎo)出為DWF格式。其優(yōu)點(diǎn)是支持的格式眾多,Autodesk Design Review還提供的免費(fèi)的Web插件,可以在Web端運(yùn)行,有簡(jiǎn)單API可以做定制和集成。不過(guò)Design Review或DWG viewer也是基于COM技術(shù)的,只能在IE瀏覽器上運(yùn)行,這在互聯(lián)網(wǎng)時(shí)代的大背景下,這簡(jiǎn)直是非??量痰囊蟆M瑫r(shí)DWF viewer對(duì)超大模型的支持能力一般,打開(kāi)超大模型時(shí)加載時(shí)間較長(zhǎng)、對(duì)計(jì)算機(jī)性能要求高,運(yùn)行性能也會(huì)有影響。不支持移動(dòng)設(shè)備。
- WebGL解決方案。隨著***Web技術(shù)的發(fā)展,尤其是HTML5/WebGL技術(shù)的發(fā)展與成熟,為我們?cè)赪eb和移動(dòng)端顯示BIM模型提供了新的選擇,這必將是將來(lái)的發(fā)展方向。HTML5/WebGL技術(shù)使用原生瀏覽器本身的功能,不需要下載安裝任何插件即可在Web端瀏覽和顯示復(fù)雜的三維BIM模型或二維DWG圖紙。同時(shí)支持包括Firefox、Google Chrome等現(xiàn)代瀏覽器,iOS、Android設(shè)備上也可以運(yùn)行。所以幾乎所有瀏覽器、所有設(shè)備上都可以使用。使用WebGL技術(shù)做BIM模型的輕量化,需要把原始BIM模型進(jìn)行解析,用WebGL技術(shù)在瀏覽器端或移動(dòng)端對(duì)BIM模型進(jìn)行重新繪制渲染,對(duì)技術(shù)水平要求較高。不過(guò)目前已有成熟解決方案,使這個(gè)過(guò)程得到的簡(jiǎn)化。
使用基于HTML/WebGL技術(shù)的BIM模型輕量化Web瀏覽技術(shù)更契合技術(shù)發(fā)展方向,Autodesk的View and Data API技術(shù)的推出,進(jìn)一步降低了對(duì)BIM模型預(yù)處理難度,使得基于HTML/WebGL技術(shù)對(duì)BIM模型的Web瀏覽、分享以及協(xié)作更簡(jiǎn)單。Autodesk View and Data API技術(shù)支持包括Revit、Inventor、Navisworks、Catia、AutoCAD等軟件的超過(guò)60多種數(shù)據(jù)格式,幾乎涵蓋業(yè)界所有三維數(shù)據(jù)格式。
Autodesk View and Data API由兩部分組成,對(duì)于BIM模型的預(yù)處理等技術(shù)復(fù)雜度高的工作以云服務(wù)的形式提供,用戶可以以REST的方式調(diào)用;同時(shí)瀏覽器端提供基于JavaScript的API,方便對(duì)模型做更精細(xì)的控制以及和其他業(yè)務(wù)系統(tǒng)做深度集成。
如上圖所示,服務(wù)器端API部分以業(yè)界流行的REST方式提供,可以由任意語(yǔ)言或平臺(tái)調(diào)用。通過(guò)REST API,我們實(shí)現(xiàn)基于OAuth 2.0的身份認(rèn)證、模型文件的上傳以及云端的格式轉(zhuǎn)換。通過(guò)View and Data API提供的云服務(wù),我們不用花費(fèi)大量的時(shí)間和精力對(duì)不同格式的模型進(jìn)行解析,只需利用云端服務(wù)的強(qiáng)大威力,從而降低我們系統(tǒng)開(kāi)發(fā)過(guò)程中的技術(shù)難度。
模型經(jīng)云端進(jìn)行格式轉(zhuǎn)換后即可使用View and Data瀏覽器端API,使用JavaScript把模型嵌入到瀏覽器中并和其他系統(tǒng)做集成。該模型瀏覽器以及提供了內(nèi)置的三維模型瀏覽查看功能,比如模型的縮放、旋轉(zhuǎn)、視點(diǎn)跳轉(zhuǎn)等,同時(shí)還提供模型目錄結(jié)構(gòu)樹(shù)瀏覽、模型組件的隱藏與顯示、模型組件的信息顯示與搜索,而且內(nèi)置的模型測(cè)量工具,可以對(duì)模型組件長(zhǎng)度、角度、面積等多種參數(shù)進(jìn)行量測(cè),內(nèi)置的剖面工具可以在任意平面上對(duì)模型進(jìn)行剖切從而查看模型的內(nèi)部結(jié)構(gòu)。
通過(guò)View and Data 客戶端的JavaScript API,我們可以以編程的方式對(duì)模型瀏覽器進(jìn)行控制、比如通過(guò)相機(jī)參數(shù)的控制來(lái)實(shí)現(xiàn)視點(diǎn)跳轉(zhuǎn)和模型自動(dòng)旋轉(zhuǎn),獲取屬性信息以便和其他系統(tǒng)集成,捕捉用戶事件以及創(chuàng)建風(fēng)格一致的用戶界面等等。由于View and Data API基于Three.js構(gòu)建,除了Autodesk View and Data API 客戶端本身提供的API之外,結(jié)合HTML5技術(shù)、Three.js技術(shù),我們可以做出更多酷炫的應(yīng)用效果。
下面的例子展示了使用Autodesk View and Data API同時(shí)顯示三維模型和二維圖紙,并實(shí)現(xiàn)三維模型、二維圖紙以及統(tǒng)計(jì)圖表的聯(lián)動(dòng)。
下面是View and Data API在某大廈運(yùn)維系統(tǒng)中應(yīng)用的實(shí)例,運(yùn)維人員隨時(shí)在基于Web的運(yùn)維系統(tǒng)中查看設(shè)備的運(yùn)行狀態(tài)、維護(hù)工單等信息,并實(shí)現(xiàn)和三維模型的聯(lián)動(dòng),一目了然。使用View and Data API技術(shù)在瀏覽器中查看復(fù)雜的三維模型,不需要安裝任何客戶端,只需要瀏覽器即可。
此外還有某建筑的全生命周期管理系統(tǒng),實(shí)現(xiàn)基于Web中三維BIM模型的建筑全生命周期管理,使用View and Data API, 在Web系統(tǒng)中顯示復(fù)雜的三維BIM模型更簡(jiǎn)單方便。
同時(shí)注意到,Autodesk View and Data API不但可用于建筑模型的web瀏覽,對(duì)于機(jī)械模型同樣試用。以下示例展示了根據(jù)模型屬性信息的動(dòng)態(tài)標(biāo)注:
下面示例展示了使用View and Data API結(jié)合Three.js技術(shù)實(shí)現(xiàn)對(duì)模型組件的移動(dòng)拆解:
看到這里,您應(yīng)該對(duì)Autodesk View and Data API有了直觀的認(rèn)識(shí),要了解更多信息,這里(http://duchangyu.github.io/51CTO/#/ )有一個(gè)簡(jiǎn)單的介紹,還可以登錄到Autodesk view and data API的githhub主頁(yè) – http://developer-autodesk.github.io , 你可以找到n多示例代碼以及開(kāi)發(fā)文檔和資源。