Forge Viewer多模型场景下同时获取所有选中元素dbId的方法问询
Forge Viewer 多模型场景批量获取全量选中元素dbId的方法
核心解决方法
Forge Viewer 提供了专门面向多模型场景的选中元素获取API:NOP_VIEWER.getAggregateSelection(),可以一次性返回所有已加载模型中选中元素的关联信息。
使用示例
// 获取所有模型的选中元素聚合结果 const aggregateSelection = NOP_VIEWER.getAggregateSelection(); // 场景1:仅需要收集所有选中元素的dbId const allSelectedDbIds = []; aggregateSelection.forEach(selectionItem => { allSelectedDbIds.push(...selectionItem.selection); }); // 场景2:需要保留dbId与所属模型的对应关系(更推荐,方便后续针对不同模型操作元素) // aggregateSelection 每一项结构为 { model: 模型实例, selection: [该模型下选中的dbId数组] } // 可直接遍历aggregateSelection做对应业务逻辑
说明
- 原写法
单个模型实例.getSelection()只能获取对应单个模型的选中结果,不适用于多模型全量获取场景 - 无任何元素选中时,
getAggregateSelection()会返回空数组,无需额外处理异常边界
内容的提问来源于stack exchange,提问作者Abed Aarabi
相关产品推荐
相关产品推荐

