header_0.jpg

近两年内,常遇到一些 Forge Viewer的Revit客户向我咨询一些问题,例如要怎么在3D视图里看到 Revit房间或空间?或是模型里有房间/空间,但在转换后却看不到,怎么解?通常情况下,我给予的答复大多是下面两种:

看到这里,你可能会询问:有没有更直接的方法,直接在 Revit 模型里直接支持?在2个月以前,我必须很抱歉地说没有,但在我们开发部同仁的努力下,终于在今年9月初的时候,Forge Model Derivative API原生支持 (Native Support) 这个功能 – Revit房间和空间的转换,且此转换须通过 Master View 才能支持,这里是他的更新公告:https://forge.autodesk.com/en...

本次的更新重点在于,POST Jobs端点在request payload的 advanced参数里增加了一个名为generateMasterViews 的子参数,此子参数只在Revit 的 RVT 模型转换为SVF时被支持,那么我们来看看要怎么使用这个参数吧!

使用generateMasterViews的样例 Request Payload如下:

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: true

到这里你可能有点蒙了,这个generateMasterViews究竟有什么用途?为什么加上后就可以看到房间/空间?如此神秘!

好的,不卖关子,且听我娓娓道来~

根据API文檔,generateMasterViews这个新的转换选项会根据RVT文文件里的每个阶段 (Phases) 转换额外生成3D的主视图 (Master views),主视图包含该阶段主模型中存在的所有组件(包括房间组件)。主视图的显示名称为其生成阶段的名称。然而,如果已经存在具有该名称的视图,系统会在默认显示名称后面增加字尾”。现在,我们用Revit官方样例模型 rac_basic_sample_project.rvt来看,这模型分别在建物的一层及二层的楼层平面图里有放置房间,在9月以前或是不将generateMasterViews参数设置为 true的话,SVF转换后在Viewer里头是看不到房间或空间的,因为他们不存在于 Revit的3D视图里。

注意: generateMasterViews选项默认值是 false

在来,我们仔细看一下这个样例模型,这里面包含了两个阶段 (Phases):“Working Drawings” 和 “Learning Content”。在Forge转换完成后,可以在GET :urn/manifest的响应里看到多了两个新的 viewable,其name及phaseNames是上面提到的阶段名称,且name及phaseNames的值是一样的。

{
    "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


康益昇
748 声望103 粉丝

引用和评论

0 条评论