0

我们正在尝试创建一个可以使用 Model Derivative 和 Viewer API 显示 BIM 模型的系统,并提供使用更新的 BIM 模型的功能,同时保留元素之间的映射(目前我们使用的是 dbId)和一些元数据。

问题是当我们使用更新的 BIM 模型发布模型衍生翻译过程时(更新意味着我们使用 Autodesk Revit 或等效工具包修改了 Revit 文件),原始 dbId 丢失了。

在查看查看器 API 时,我们发现通过带有 dbId 的 model.getProperty,我们可以获得一个名为 'external-id' 的值,即使更新后似乎也保留了该值。但是,这似乎只能在客户端访问;没有提供 external-id 属性的 MD api(如果我错了,请纠正我)。

作为最后的手段,我们试图通过使用名称作为通用特征创建 dbId=>dbId 映射,将原始 BIM 模型的 dbId=>元数据映射映射到更新的 BIM 模型中的 dbId=>元数据映射,但我们担心添加 /更新时删除 BIM 模型的元素会导致名称映射无效。

TL博士;问题是:有没有办法在使用更新的 BIM 的模型衍生翻译过程中为每个 ObjectId / dbId 获取唯一且保留的 id?

4

1 回答 1

0

对,就是这样。

在 Revit 中,这UniqueId是持续标识图元的最安全方法。

UniqueId在查看器中可用,不幸的是目前不在模型衍生 API 中。

对于一个直接的解决方案,我建议您在 Revit 中为您感兴趣的所有元素创建自己的共享参数,并使用该UniqueId值填充它。然后,您也可以在模型衍生 API 中使用该信息。

于 2017-06-20T06:28:55.760 回答