autodesk-forge - Viewer3D 中的属性 dbId:getProperties 与模型衍生端点中的 objectid 不匹配
问题描述
Viewer3d::getProperties
不再使用 SVF2 的当前测试环境时返回所有可用属性。例如,该属性Element ID->Value
在查看器中不可用,但在返回的数据中可用https://developer.api.autodesk.com/modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties
。我的问题是我们通过 IfcGuid 通过 IfcBuildingStorey 节点访问了一个楼层节点,在该节点下<No Level>
不再工作(可能是因为新的图层管理器?)。图层管理器是否支持 IfcGuid 或如何在查看器中获取属性?
编辑:
我发现objectid
属性端点中的一些 s 与查看器中的 s 不匹配dbId
。据我所知,它们应该是相同的,请参阅这个SO answer。有人知道为什么吗?SVF2 的 dbId 与 SFV1 的 dbId 不匹配。建议改用 externalId。看这里
例子:
查看器选项:
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"
}
}
}
返回的属性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
}
]
解决方案
Autodesk 提供了一种新的临时解决方法来映射 SVF1 和 SVF2 dbIds: https ://forge.autodesk.com/blog/temporary-workaround-mapping-between-svf1-and-svf2-ids
推荐阅读
- python - 对 if__name__ == '__main__' 的工作方式感到困惑
- r - 在R中按组有条件地计算两个日期时间列之间的行
- python - 将十六进制字符串转换并打印为字节
- selenium-webdriver - 到达链接文本后,我的代码在第二个窗口中退出
- powershell - Powershell 在单个管道中更新多个 CSV 列值
- android - WorkManager 上的一次性作业未在某些设备上运行
- jestjs - 既然顶级等待工作,Jest 的 beforeAll 什么时候仍然需要?
- git - 有没有一种简单的方法可以从 R 推送提交
- sql - 如何在列表中选择名称?
- sql - 如何克服 SQL Server 2008 中 256 个字符的最大字符串长度