Autodesk 模型派生从翻译文件中提取外部 ID (guid)

Autodesk Model derivative extracting external id (guid) from translated file

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

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

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

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

TL DR; 问题是: 有没有一种方法可以在具有更新的 BIM 的模型衍生转换过程中为每个 ObjectId / dbId 获取唯一且保留的 ID?

是的,没错。

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

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

为了立即解决,我建议您在 Revit 中为您感兴趣的所有元素创建自己的共享参数,并使用 UniqueId 值填充它。然后,该信息也将在模型导数 API 中提供给您。