来自 Viewer3D:getProperties 的属性的 dbId 与来自模型派生端点的 objectid 不匹配

Properties' dbId from Viewer3D:getProperties not matching objectid from the model derivative endpoint

当使用 SVF2 的当前测试环境时,

Viewer3d::getProperties 不再 return 所有可用属性。例如,属性 Element ID->Value 在查看器中不可用,但在 return 由 https://developer.api.autodesk.com/modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties 编辑的数据中可用。我的问题是我们通过 <No Level> 下的 IfcBuildingStorey 节点通过 IfcGuid 访问了一个楼层节点,该节点不再工作(可能是因为新的层管理器?)。层管理器是否支持 IfcGuid 或如何在查看器中获取属性?

编辑:

我发现属性端点中的某些 objectid 与查看器中的 dbId 不匹配。据我所知,它们应该是相同的,请参见 . Does someone know why? SVF2's dbId do not match SFV1's dbId. It was advised to use externalId instead. See

示例:

查看器选项:

Autodesk.Viewing.Initializer({
            'env': 'MD20ProdEU', //svf2
            'api': 'D3S', //svf2
},...

调用属性端点的原始属性:

{
   "objectid":81443,
   "name":"11. OG",
   "externalId":"0/0/0/15",
   "properties":{
      "Element ID":{
         "Value":"47823"
      },
      "Item":{
         "Hidden":"No",
         "Icon":"Layer",
         "Layer":"11. OG",
         "Material":"",
         "Name":"11. OG",
         "Required":"No",
         "Source File":"190719_Cule_Revit_Structure.ifc",
         "Type":"Levels: Level: Level 1"
      }
   }
}

属性 return编辑者 Viewer3d::getProperties

[
   {
      "displayName":"child",
      "displayValue":81444,
      "displayCategory":"__child__",
      "attributeName":"child",
      "type":11,
      "units":null,
      "hidden":1,
      "precision":0
   },
   {
      "displayName":"parent",
      "displayValue":4,
      "displayCategory":"__parent__",
      "attributeName":"parent",
      "type":11,
      "units":null,
      "hidden":1,
      "precision":0
   },
   {
      "displayName":"viewable_in",
      "displayValue":"190719_Cule_Revit_Structure.ifc",
      "displayCategory":"__viewable_in__",
      "attributeName":"viewable_in",
      "type":20,
      "units":null,
      "hidden":1,
      "precision":0
   },
   {
      "displayName":"node_flags",
      "displayValue":2,
      "displayCategory":"__node_flags__",
      "attributeName":"node_flags",
      "type":2,
      "units":null,
      "hidden":1,
      "precision":0
   },
   {
      "displayName":"Name",
      "displayValue":"11. OG",
      "displayCategory":"Item",
      "attributeName":"Name",
      "type":20,
      "units":null,
      "hidden":false,
      "precision":0
   },
   {
      "displayName":"Type",
      "displayValue":"Levels: Level: Level 1",
      "displayCategory":"Item",
      "attributeName":"Type",
      "type":20,
      "units":null,
      "hidden":false,
      "precision":0
   },
   {
      "displayName":"Icon",
      "displayValue":"Layer",
      "displayCategory":"Item",
      "attributeName":"Icon",
      "type":21,
      "units":null,
      "hidden":false,
      "precision":0
   },
   {
      "displayName":"Hidden",
      "displayValue":0,
      "displayCategory":"Item",
      "attributeName":"Hidden",
      "type":1,
      "units":null,
      "hidden":false,
      "precision":0
   },
   {
      "displayName":"Required",
      "displayValue":0,
      "displayCategory":"Item",
      "attributeName":"Required",
      "type":1,
      "units":null,
      "hidden":false,
      "precision":0
   },
   {
      "displayName":"Material",
      "displayValue":"",
      "displayCategory":"Item",
      "attributeName":"Material",
      "type":20,
      "units":null,
      "hidden":false,
      "precision":0
   },
   {
      "displayName":"Source File",
      "displayValue":"dummy.ifc",
      "displayCategory":"Item",
      "attributeName":"Source File",
      "type":20,
      "units":null,
      "hidden":false,
      "precision":0
   },
   {
      "displayName":"Layer",
      "displayValue":"11. OG",
      "displayCategory":"Item",
      "attributeName":"Layer",
      "type":20,
      "units":null,
      "hidden":false,
      "precision":0
   }
]

SVF2 在 SVF2 和 SVF1 之间使用自己的 DbId 映射,而 GET properties 端点使用 SVF1 DbId 作为 objectId,所以这就是 dbId 不匹配的原因。我上周向我们的工程部门记录了一个愿望清单项目 (LMV-5782),以分配时间来评估在 SVF2 模型上获得 SVF1 DbId 的可能性。

如果你可以通过传递SVF1 DbId从GET properties端点获取IfcGUID,那么就是我上面提到的情况。对于由此造成的任何不便,我们深表歉意。

Autodesk 提供了一个新的临时解决方法来映射 SVF1 和 SVF2 dbId: https://forge.autodesk.com/blog/temporary-workaround-mapping-between-svf1-and-svf2-ids