You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

APS Viewer中BoxSelection扩展无法选中被遮挡/内部节点的咨询

APS Viewer框选包含被遮挡/内部节点的解决方案

默认的BoxSelection扩展仅会选中视觉可见的节点,被遮挡或嵌套在其他组件内部的节点会被自动过滤。要实现选框范围内所有节点(含被遮挡项)的多选,可通过以下两种方案实现:

1. 重写BoxSelection扩展的选择逻辑

你可以直接修改BoxSelection扩展的核心判断逻辑,跳过可见性检查:

  • 获取扩展实例后,重载其_getIntersectingDbIds方法
  • 移除原有逻辑中对节点可见性的校验,直接返回所有与选框边界相交的节点ID

代码示例:

const boxSelExt = viewer.getExtension('Autodesk.BoxSelection');
const originalGetIds = boxSelExt._getIntersectingDbIds;

boxSelExt._getIntersectingDbIds = function(bounds) {
    const allIntersectingIds = originalGetIds.call(this, bounds);
    // 移除可见性过滤,返回所有相交节点
    return allIntersectingIds.filter(dbId => true);
};

2. 自定义独立的框选工具

若不想改动原有扩展,可自行实现一套框选逻辑:

  • 监听鼠标事件(按下、拖动、释放)绘制选框
  • 遍历模型所有节点,通过viewer.model.getBoundingBox(dbId)获取节点包围盒,判断是否与选框区域相交
  • 收集所有符合条件的DBID,调用viewer.select(dbIds)完成批量选中

这种方式完全由你控制选择规则,不受默认扩展的可见性限制。

官方文档未提及相关配置项,因为默认BoxSelection是基于视觉交互设计的(仅选可见元素),特殊场景需要自定义扩展或修改现有逻辑。

内容的提问来源于stack exchange,提问作者arkkuba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:02:08