【发布时间】:2017-05-24 07:56:35
【问题描述】:
我使用viewer.getObjectTree = function(onSuccessCallback, onErrorCallback)获取模型对象树,然后从根节点向下遍历到所有叶节点。代码如下:
viewer.getObjectTree(function (objTree) {
objTree.enumNodeChildren(
objTree.getRootId(),
function (dbId) {
// Work with dbId
},
true
);
};
但是,它仅适用于 3D 模型。 2D 模型不跳入回调事件。如何获取 2D 布局/绘图的所有对象 ID?
【问题讨论】:
-
我刚刚使用我们的示例 Revit 文件进行了验证,并在 Viewer 2.11 中使用了 2D 模型,它工作正常。对于您的问题,通常原因是您尝试获取实例树时未初始化它。因此,您需要确保已设置实例树。您是否检查了此帖子stackoverflow.com/questions/38904993/… 以防出现同样的问题?
-
我将
viewer.getObjectTree放在Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT中,但它不适用于2D 绘图,只能用于3D 模型。您能否分享您的完整代码。 -
您是否尝试在 Autodesk.Viewing.GEOMETRY_LOADED_EVENT 中执行此操作?我实际上是在这个活动中做到的。
-
我尝试在
Autodesk.Viewing.GEOMETRY_LOADED_EVENT和Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT中加载viewer.getObjectTree,但没有任何效果。您可以尝试加载主 3D 模型的特定 2D 布局的瓮。
标签: autodesk-forge autodesk-viewer