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

如何使Autodesk Viewer中的隐藏节点可选中?

解决Autodesk Viewer隐藏节点可选中的问题

默认情况下,Viewer调用隐藏节点的方法后,会把节点从拾取检测队列中排除,你用lockSelection无效是因为这个方法仅用于锁定已选中状态,不影响拾取逻辑。给你两个可行方案:

方案1:替换默认隐藏逻辑,手动设置透明度

不用Viewer自带的hide方法,直接给节点设置透明度,既能实现视觉上的“隐藏”效果,又保留拾取能力:

// 替代viewer.hide(nodeIds)的自定义函数
function makeNodesTransparentAndSelectable(nodeIds) {
    nodeIds.forEach(id => {
        viewer.setNodeMaterialOpacity(id, 0.3); // 0为完全透明,1为不透明,可自行调整数值
    });
}

// 恢复节点透明度的函数
function restoreNodesOpacity(nodeIds) {
    nodeIds.forEach(id => {
        viewer.setNodeMaterialOpacity(id, 1);
    });
}

方案2:修改拾取过滤规则,允许拾取隐藏节点

如果必须使用默认hide方法,可重写Viewer的拾取过滤函数,让隐藏节点也能被检测到:

// 覆盖默认拾取过滤逻辑
viewer.impl.visibilityManager.addOverride((dbId) => {
    const isHidden = viewer.isNodeHidden(dbId);
    // 默认逻辑是返回true则排除节点,这里隐藏节点返回false,不排除其被拾取
    return !isHidden;
});

// 可选:监听选中事件处理隐藏节点的选中逻辑
viewer.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, (evt) => {
    // 这里添加选中后的自定义处理逻辑
});

如果只需要特定隐藏节点可被拾取,可在override函数中增加额外判断条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:56:07