我们正在尝试创建一个系统,该系统可以使用Model导数和Viewer显示BIM模型,并提供使用更新的BIM模型的功能,同时保留元素之间的映射(目前我们使用的是dbId)和一些元数据。
问题是,当我们用更新的BIM模型发布模型派生翻译过程(更新意味着我们使用Autodesk或等效工具包修改了dbId文件)时,原始的BIM就丢失了。
在查看查看器API时,我们发现通过带有model.getProperty的dbId,我们可以获得一个名为“外部id”的值,即使在更新之后,这个值似乎也会被保存下来。但是,这似乎只能在客户端访问;没有提供外部id属性的MD (如果我错了请纠正我)。
最后,我们试图将dbId=>metadata映射从原始的BIM模型映射到更新的BIM模型中的dbId=>metadata映射,方法是创建一个以名称为公共特性的dbId=>dbId映射,但我们担心在更新时添加/删除BIM模型的元素会导致名称映射无效。
TL DR;问题是:在使用更新的BIM的模型派生翻译过程中,是否有一种方法可以获得每个ObjectId / dbId的唯一和保存id?
发布于 2017-06-20 06:28:55
是的,完全正确。
在Revit中,UniqueId
是持久标识元素的最安全的方法。
这个UniqueId
在查看器中可用,不幸的是,目前还没有在模型派生API中使用。
对于即时解决方案,我建议您在Revit中为您感兴趣的所有元素创建自己的共享参数,并将其填充到UniqueId
值中。然后,这些信息也将在模型派生API中提供给您。
https://stackoverflow.com/questions/44639823
复制相似问题