【发布时间】:2019-08-27 15:56:47
【问题描述】:
我需要从查看器的模型树面板中隐藏(使其完全消失)。
我已经尝试过覆盖查看器中的方法(其他一些事情就是这样做的),但是与树相关的方法和对象无法访问以进行扩展。弄乱 instanceTree 数据似乎也太危险了,比如从节点列表中删除 dbId。
我在最新的 Viewer 代码 (6.5.3) 上运行,并编写纯 javascript 扩展。
例如,我尝试重写此函数,该函数在内部用于确定是否应显示节点。它不起作用,在 ModelStructureTreeDelegate 上覆盖相同的函数也不起作用:
Autodesk.Viewing.UI.TreeDelegate.prototype.shouldCreateTreeNode = function (dbId)
{
// original code on the viewer.js is:
// return true;
let itGo = true;
// _objectsHiddenInTree is populated with dbIds of objects to be hidden right after initializing the viewer
_objectsHiddenInTree.forEach(x => {
if (x == dbId){
itGo = false;
}
});
// return false; doesn't work either
return itGo;
};
有没有办法从查看器端做到这一点?我的意思是,从模型树中删除一个项目?
如果它更可行,从场景中完全移除对象也是一个有效的选择。但是我不能在发送到模型派生之前从模型中删除它,它必须在打开查看器时完成,或者在打开树模型面板之前完成。
【问题讨论】:
标签: autodesk-forge autodesk-viewer