Autodesk forge 突出显示子对象

Posted

技术标签:

【中文标题】Autodesk forge 突出显示子对象【英文标题】:Autodesk forge highlight child object 【发布时间】:2021-11-11 12:47:06 【问题描述】:

最近我一直在开发此存储库 https://github.com/xiaodongliang/forgeviewer_embed_in_powerbi_report,以在 Power BI 中构建自定义视觉对象,以可视化从 Bim track 的 API 中提取的问题。

这个想法是将它们与模型的房间关联起来进行可视化。 为了做到这一点,我使用了 NWC 文件,因此我将房间导出为几何图形。

如果从表格中选择了连接的问题,我现在想做的是突出显示房间。 问题是当我从表中选择一个问题时,在选择树中我可以看到突出显示的父对象名称(ROOM)而不是子对象(实心),我认为这就是为什么我无法实现我的目的(如果不请指正)。

what i have

what i wold like to do

有人知道怎么做吗?

【问题讨论】:

【参考方案1】:

如果我很好理解,您想突出显示子项(包含网格)而不是父项。

对象突出显示(隔离)在/forgePowerbiView/src/visual.ts 中使用以下代码完成:

const dbIds = options.dataViews[0].table.rows.map(r => 
                <number>r[0].valueOf());
console.log('dbIds: '  +dbIds)
        
this.forge_viewer.showAll();
this.forge_viewer.impl.setGhostingBrightness(true); //for isolate effect 
this.forge_viewer.isolate(dbIds);

看看这个链接Enumerating leaf nodes on Viewer。这将帮助您获得要隔离的dbIds

【讨论】:

【参考方案2】:

如果您想在(FIRST_OBJECT, LAST_OBJECT, LEAF_OBJECT) 之间更改您的选择,您可以更改查看器选择设置以进行测试:

如果您想以编程方式实现此目的:

Viewer.setSelectionMode();

也可以帮助你。

【讨论】:

以上是关于Autodesk forge 突出显示子对象的主要内容,如果未能解决你的问题,请参考以下文章

在 Autodesk Forge 中突出显示多个元素,例如悬停效果

如何在聚合模型 Autodesk Forge 上选择多个元素

Forge 查看器:Autodesk.BoxSelection 扩展错误

隐藏除选定 Autodesk-Forge 查看器之外的所有查看器

我们可以在 Autodesk forge 中选择和剖切点云吗?

是否可以通过从外部网页接收特定 ID 来实现 Forge Viewer 中的突出显示功能?