轉換 Revit 房間和空間 – Revit Master View Translation

header_0.jpg

近兩年內,常遇到一些 Forge Viewer的Revit客戶向我諮詢一些問題,例如要怎麼在3D視圖裏看到 Revit房間或空間?或是模型裏有房間/空間,但在轉換後卻看不到,怎麼解?一般狀況下,我給予的答覆大可能是下面兩種:html

看到這裏,你可能會詢問:有沒有更直接的方法,直接在 Revit 模型裏直接支持?在2個月之前,我必須很抱歉地說沒有,但在咱們開發部同仁的努力下,終於在今年9月初的時候,Forge Model Derivative API原生支持 (Native Support) 這個功能 – Revit房間和空間的轉換,且此轉換須經過 Master View 才能支持,這裏是他的更新公告:https://forge.autodesk.com/en...json

本次的更新重點在於,POST Jobs端點在request payload的 advanced參數裏增長了一個名爲generateMasterViews 的子參數,此子參數只在Revit 的 RVT 模型轉換爲SVF時被支持,那麼咱們來看看要怎麼使用這個參數吧!api

使用generateMasterViews的樣例 Request Payload以下:app

curl -X 'POST' \
     -H 'Content-Type: application/json; charset=utf-8' \
     -H 'Authorization: Bearer PtnrvrtSRpWwUi3407QhgvqdUVKL' \
     -H 'x-ads-force: true' -v 'https://developer.api.autodesk.com/modelderivative/v2/designdata/job' \
     -d
      '{
         "input": {
           "urn": "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6bW9kZWxkZXJpdmF0aXZlL21vZGVsLmlmYw",
         },
         "output": {
           "formats": [
             {
               "type": "svf",
               "views": [
                 "2d",
                 "3d"
               ],
               "advanced": {
                 "generateMasterViews": true
               }
             }
           ]
         }
       }'

注意: 若是你想在之前轉換好的模型上看到房間或空間的話,記得在 Request Header裏添加 x-ads-force: truecurl

到這裏你可能有點蒙了,這個generateMasterViews究竟有什麼用途?爲何加上後就能夠看到房間/空間?如此神祕!ui

好的,不賣關子,且聽我娓娓道來~ url

根據API文檔,generateMasterViews這個新的轉換選項會根據RVT文文件裏的每一個階段 (Phases) 轉換額外生成3D的主視圖 (Master views),主視圖包含該階段主模型中存在的全部組件(包括房間組件)。主視圖的顯示名稱爲其生成階段的名稱。然而,若是已經存在具備該名稱的視圖,系統會在默認顯示名稱後面增長字尾」。如今,咱們用Revit官方樣例模型 rac_basic_sample_project.rvt來看,這模型分別在建物的一層及二層的樓層平面圖裏有放置房間,在9月之前或是不將generateMasterViews參數設置爲 true的話,SVF轉換後在Viewer裏頭是看不到房間或空間的,由於他們不存在於 Revit的3D視圖裏。spa

注意: generateMasterViews選項默認值是 false3d

在來,咱們仔細看一下這個樣例模型,這裏麪包含了兩個階段 (Phases):「Working Drawings」 和 「Learning Content」。在Forge轉換完成後,能夠在GET :urn/manifest的響應裏看到多了兩個新的 viewable,其name及phaseNames是上面提到的階段名稱,且name及phaseNames的值是同樣的。code

{
    "guid": "75ddc022-2fc2-cfc5-2fe8-8ccf72d25ea7",
    "type": "geometry",
    "role": "3d",
    "name": "Working Drawings",
    "viewableID": "c884ae1b-61e7-4f9d-0001-719e20b22d0b-0010d056",
    "phaseNames": "Working Drawings",
    ...
},
{
    "guid": "303a794c-a168-c792-c7e3-c7b1d93ad01a",
    "type": "geometry",
    "role": "3d",
    "name": "Learning Content",
    "viewableID": "c884ae1b-61e7-4f9d-0002-719e20b22d0b-0010d062",
    "phaseNames": "Learning Content",
    ...
},

注意: 除了用name及phaseNames來辨別Master View外,還能夠經過檢查 viewable的urn有無包含08f99ae5-b8be-4f8d-881b-128675723c10

使用 Petr Broz’s awesome VS Code tool,咱們也能夠看到這兩個新的viewable:
download.png

當你在 Viewer 里加載Master View後,你會發現裏頭包含了一些之前一般轉換看不到的內容,但這些內容默認是不可見的,例如房間。
download.png

注意: 能夠經過加載 Autodesk.DocumentBrowser來切換視圖。

除了建築的房間外,咱們能夠看到MEP模型的區域(Zone)或空間(Sapce),下圖以rme_advanced_sample_project.rvt爲例:
download.png

注意: BIM360 Docs 的模型轉換默認設置generateMasterViews選項爲 true。

此外,上面這些房間、空間或區域的構件屬性信息都是能夠被查找、檢視的。例如,空間的尺寸屬性:
download.png

注意: 設置generateMasterViews選項爲 true後,Model Derivative API 會從Revit模型裏面提取更多額外內容細節,故轉換時間會再拉長,所以請儘可能在須要的時候才使用此參數。

參考:https://forge.autodesk.com/blog/new-rvt-svf-model-derivative-parameter-generates-additional-content-including-rooms-and-spaces

相關文章
相關標籤/搜索