在 Forge 查看器中从 Revit 模型重建对象组

Posted

技术标签:

【中文标题】在 Forge 查看器中从 Revit 模型重建对象组【英文标题】:Reconstruct object groups from Revit model in Forge viewer 【发布时间】:2018-03-09 08:39:05 【问题描述】:

在我的 Revit 模型中,我有一组对象,我在 Revit 中工作时可以选择它们。现在,在 Forge 查看器中使用此模型时,我只能选择单个元素(或其在浏览器结构中的父元素),但无法从 Revit 重建我的组。 有没有可能,或者一些建议的解决方法?

【问题讨论】:

有没有办法获取给定 AssemblyID 的 ExternalID 列表? getExternalIdMapping - 函数给出了 id 和 DBid 列表,我可以使用该 dbid 为给定元素应用颜色,但它不适用于 AssemblyDBIds 【参考方案1】:

您在查看器模型浏览器中看到这些组吗?例如,您获得按墙壁、地板等分组的组件。如果组件以另一种方式分组,则可能没有直接的方法可以在查看器中选择它们。

您需要自己建立映射,例如,您可以使用 viewer.getProperties(dbid, function(res)) 访问给定组件 dbId 的 Revit elementId > res.externalId 是 revit Id。如果您存储 - 例如。在自定义数据库中 - 您的 Revit 组以及每个组中的 Revit Id 列表,然后您可以在加载模型时将其映射到 Viewer 组件 dbIds。使用选择事件,当您选择一个组件时,检查它属于哪个组并以编程方式选择该组的其他组件。您还可以创建自定义 UI 来可视化它或派生模型浏览器来显示这些组。它显然需要编程工作。

【讨论】:

【参考方案2】:

我同意菲利普的观点。 Forge 翻译过程没有与 Revit 相同的组概念。请记住,Forge 必须实现对各种不同类型的 CAD 种子文件有效的机制。您可以通过使用 Revit API 和 FilteredElementCollector 检索 Revit 中的所有组来实施 Philippe 的建议,确定其成员元素和实例 ID,并使用该信息创建所需的映射。

【讨论】:

以上是关于在 Forge 查看器中从 Revit 模型重建对象组的主要内容,如果未能解决你的问题,请参考以下文章

在 forge 查看器中编辑 revit 文件

在 Forge 查看器中显示长度

根据 Revit 坐标(最小和最大 X、Y、Z)从锻造查看器中裁剪特定房间/区域

在 Forge Viewer 中无法选择 Revit“零件”

在 Autodesk Forge 查看器中显示链接文件

如何从 Forge Viewer 中检索文件名?