Autodesk Forge Viewer单张2D图纸双图选择异常问题咨询
检查双Viewer的事件冲突
两个Viewer在同一窗口时,鼠标事件可能被其中一个容器独占。确保两个Viewer分别绑定独立的DOM容器,通过viewer.setContainer(containerElement)明确指定各自的挂载元素,同时给容器添加pointer-events: auto样式,避免事件冒泡导致的冲突。核实选择过滤规则
排查是否存在限制选择范围的代码,比如调用了viewer.setSelectionFilter()或加载图纸时设置了特定选择条件。移除不必要的过滤规则,或调整过滤逻辑以包含所有需要选中的2D图形类型。检查图层的可选中状态
部分图形无法选中可能是所在图层被设置为不可选或锁定。通过以下代码遍历并调整图层属性:viewer2D.getLayers().forEach(layer => { if (!layer.isSelectable) layer.setSelectable(true); if (layer.isLocked) layer.setLocked(false); });也可以在Viewer的图层管理面板中手动开启目标图层的“可选择”开关。
调整选择工具的多选配置
默认选择工具可能被设置为单选模式,通过以下代码修改为允许多选:const selectionTool = viewer2D.toolManager.getTool('Selection'); if (selectionTool) selectionTool.setMultiSelect(true);排查DOM容器的堆叠遮挡
用浏览器开发者工具检查2D Viewer容器的z-index属性,确保没有被其他DOM元素遮挡。如果存在遮挡,调整容器的z-index值,保证鼠标事件能正常传递到Viewer画布。测试单Viewer环境下的多选功能
暂时移除3D Viewer,单独加载2D Viewer测试多选是否正常。如果单独环境下功能正常,说明是双Viewer共存时的事件隔离问题,可以尝试给每个Viewer的容器添加事件拦截,阻止事件跨容器传播。验证Viewer版本兼容性
旧版本Viewer可能存在2D多选的已知bug,尝试升级到官方最新稳定版,或查阅官方文档确认是否有相关问题的修复记录。
内容的提问来源于stack exchange,提问作者Jose V Michael

