Autodesk forge 如何获取二维图形的模型对象树

Autodesk forge 如何获取二维图形的模型对象树,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,我使用viewer.getObjectTree=function(onSuccessCallback,onErrorCallback)获取模型对象树,然后从根节点向下遍历到所有叶节点。代码如下: viewer.getObjectTree(function (objTree) { objTree.enumNodeChildren( objTree.getRootId(), function (dbId) { // Work with

我使用
viewer.getObjectTree=function(onSuccessCallback,onErrorCallback)
获取模型对象树,然后从根节点向下遍历到所有叶节点。代码如下:

viewer.getObjectTree(function (objTree) {
    objTree.enumNodeChildren(
        objTree.getRootId(),
        function (dbId) {
            // Work with dbId
        },
        true
    );
};

但是,它仅适用于三维模型。2D模型不会跳转到回调事件中。如何获取二维布局/图形的所有对象ID?

我找到了原因。二维布局/图形没有其模型对象树(只有图层)。它使用不同的数据结构和三维模型。3D使用实例树获取所有节点,但2D使用DBID字符串

要在三维模型中导航对象,请使用
viewer.getObjectTree
viewer.model.getData().instanceTree


要在二维布局中导航对象,请使用
viewer.model.getData()
。我可以从
viewer.model.getData().stringDbIds

中获取DBID列表,我刚刚用我们的示例Revit文件进行了验证,并在viewer 2.11中使用了一个二维模型,效果很好。对于您的问题,通常情况下,原因是在尝试获取实例树时没有初始化它。因此,您需要确保已经设置了实例树。如果是同一个问题,您是否检查了此帖子?我将
查看器.getObjectTree
放在
Autodesk.Viewing.OBJECT\u TREE\u创建的\u事件中,但它不适用于二维图形,仅适用于三维模型。请共享完整代码。是否尝试在Autodesk.Viewing.GEOMETRY\u LOADED\u事件中执行此操作?实际上,我是在这个事件中创建的。我尝试在
Autodesk.Viewing.GEOMETRY\u LOADED\u event
Autodesk.Viewing.OBJECT\u TREE\u创建了\u event
中加载
viewer.getObjectTree
,但没有任何效果。您可以尝试加载主三维模型的特定二维布局的urn。
viewer.model.getData().stringDbIds
不会返回二维图形中使用的正确DBID。种子文件的格式是什么?那是DWG文件吗?我的种子文件是2D DWF。DWG将是相同的。