【发布时间】:2018-10-28 14:40:50
【问题描述】:
假设我正在处理一个 3D 文件,该文件是一个建筑模型和一个结构模型的组合。 实例树或模型浏览器如下所示
root/
Arch/
Level 01/
Level 02/
...
Str/
Level 01/
Level 02/
...
我只想显示级别 01。
所以我:
- 按照查看器教程中的步骤进行操作
- 为
Autodesk.Viewing.GEOMETRY_LOADED_EVENT和Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT添加一个事件监听器 - 当 2 被触发时,我使用 article 中的代码仅显示没有重影的 Level 01。
我对这种方法有 2 个问题
- 我必须等到整个模型加载完毕才能过滤关卡
-
过滤关卡后,如果我点击模型浏览器,我仍然可以看到整个模型结构(但除了关卡 01 之外的所有内容都隐藏了)。如何将实例树设置为仅包含以下内容?
root/ Arch/ Level 01/ Str/ Level 01/
编辑
我应该在什么时候覆盖 shouldInclude() 函数?
我已经尝试过这个并设置了一个断点,但它似乎永远不会被调用......我也尝试过移动它但徒劳无功。
const start = Date.now();
Autodesk.Viewing.UI.ModelStructurePanel.shouldInclude = (node) => {
Logger.log(node);
return true;
};
Autodesk.Viewing.Initializer(options, () => {
Logger.log(`Viewer initialized in ${Date.now() - start}ms`);
const config = {};
// prettier-ignore
Autodesk.Viewing.theExtensionManager.registerExtension('MyAwesomeExtension', MyAwesomeExtension);
viewerApp = new Autodesk.Viewing.ViewingApplication('MyViewerDiv');
viewerApp.registerViewer(viewerApp.k3D, Autodesk.Viewing.Private.GuiViewer3D, config);
loadDocumentStart = Date.now();
// prettier-ignore
viewerApp.loadDocument(documentId, onDocumentLoadSuccess, onDocumentLoadFailure);
});
【问题讨论】:
标签: autodesk-forge autodesk-viewer