0

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

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

但是,它仅适用于 3D 模型。2D 模型不跳入回调事件。如何获取 2D 布局/绘图的所有对象 ID?

4

1 回答 1

0

我找到了原因。2D 布局/绘图没有其模型对象树(只有图层)。它使用与 3D 模型不同的数据结构。3D 使用实例树来获取所有节点,但 2D 使用一串 DbId。

要在 3D 模型中导航对象,请使用viewer.getObjectTreeviewer.model.getData().instanceTree

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

于 2017-01-10T15:57:59.673 回答