在 Forge 查看器中保留对项目的引用的最佳方法是什么?

What is the best way to persist a reference to an item in forge viewer?

目前,我们正在将一些 revit 模型导入到 forge viewer 中。 在查看器中,我们希望能够将一些附加到我们在查看器中看到的模型元素(例如门)的信息存储到外部数据库中。

我们有 3 种方法来识别一个项目:

我需要能够在外部数据库中引用模型上的项目,即使 Revit 模型在中间得到更新和重新转换。

1-是 Guid,我们应该用来引用 revit 文件中的项目(甚至在更新之间)?

2-如果这是 Guid,我们如何直接拥有从 guid 到 dbid 的映射(因为查看器中的所有内容都由 dbid 处理)?

谢谢

首先总结一下:

  • Revit ID是Revit桌面上使用的顺序编号,可以重复使用,不是唯一的
  • Revit GUID 是唯一的(与任何 GUID 一样)并在版本之间维护并在查看器(JavaScript 库)和模型衍生 GET 属性端点上公开为 外部 ID
  • dbId 只是模型上用于访问几何的索引,不能保证模型的 versions/translations 之间是相同的。

现在,您可以用来在不同版本之间跟踪相同元素的唯一真实标识符是 外部 ID(来自 Revit GUID)。

如果您想要服务器端映射,请使用 Model Derivative GET Properties on all model views. On the client-side, I would suggest first enumerateLeafNodes,然后在这些节点上调用 getBulkProperties 以获取 外部 ID