首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法获取instanceTree autodesk

无法获取instanceTree autodesk
EN

Stack Overflow用户
提问于 2017-08-28 08:32:21
回答 2查看 269关注 0票数 0

我得到这个错误:未捕获的TypeError:>无法读取未定义的属性'getRootId‘,即使我使用Autodesk.Viewing.GEOMETRY_LOADED_EVENT..still也没有效果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-31 14:38:40

当您想访问instanceTree时,您只需等待Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT被触发

代码语言:javascript
复制
viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, function () {

  var instanceTree = model.getData().instanceTree //cool
})
票数 2
EN

Stack Overflow用户

发布于 2017-08-28 19:41:40

你不应该使用instanceTree数据结构,但函数/操作,这是受支持的方式。如果您需要枚举叶节点,请尝试类似于described here的方法

代码语言:javascript
复制
function getAllLeafComponents(viewer, callback) {
    var cbCount = 0; // count pending callbacks
    var components = []; // store the results
    var tree; // the instance tree

    function getLeafComponentsRec(parent) {
        cbCount++;
        if (tree.getChildCount(parent) != 0) {
            tree.enumNodeChildren(parent, function (children) {
                getLeafComponentsRec(children);
            }, false);
        } else {
            components.push(parent);
        }
        if (--cbCount == 0) callback(components);
    }
    viewer.getObjectTree(function (objectTree) {
        tree = objectTree;
        var allLeafComponents = getLeafComponentsRec(tree.getRootId());
    });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45910495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档