我正在构建 BIM 验证工具,需要确认 Autodesk Forge 上存储的 BIM 模型中是否存在特定的外部 ID (GUID)。通过检查 SVF 结构中的objects_ids.json.gz 文件,我已经成功地对本地存储的模型完成了此操作。
但是,对于存储在 Autodesk Forge 服务器上的模型,我正在寻找一种高效且不太复杂的方法来完成相同的任务。我知道元数据 API,但它对于我的需要来说似乎太复杂了,因为它包含模型中的所有文本属性。
我的问题是:是否有一种简化的方法可以仅检查 Autodesk Forge 上存储的 BIM 模型中是否存在特定外部 ID?
谢谢您的指导!
对于Revit模型,它实际上是Revit API中的Element.UniqueId。
您可以使用Model Derivative API的POST {urn}/metadata/{modelGuid}/properties:query通过外部id进行查询,以检查该外部id的对象是否在模型中。
curl -X 'POST' \
-H 'Authorization: Bearer PtnrvrtSRpWwUi3407QhgvqdUVKL...' \
-H 'Content-Type: application/json' \
-V 'https://developer-dev.api.autodesk.com/modelderivative/v2/designdata/dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6bW9kZWxfZGVyaXZhdGl2ZV9wcm9wX2VuaGFuY2VtZW50X3Rlc3RpbmcvcmFjX2Jhc2ljX3NhbXBsZV9wcm9qZWN0LnJ2dA/metadata/6bfb4886-f2ee-9ccb-8db0-c5c170220c40/properties:query' \
-D '{
"query": {
"$in": [
"externalId",
"e3e052f9-0156-11d5-9301-0000863f27ad-00000153",
"5e8712a2-e372-44b6-9e73-0aaa430558ee-0008656f"
]
},
"fields": [
"name",
"externalId"
],
"pagination": {
"offset": 0,
"limit": 20
},
"payload": "text"
}'