Получение неопределенного дерева экземпляров для файла DWFX - PullRequest
0 голосов
/ 02 мая 2018

Мы пытаемся получить все элементы узла файла DWFX, но мы получаем неопределенное дерево экземпляров для файла DWFX. Мы использовали код ниже, чтобы получить идентификатор каждого элемента.

// Try to get instance tree for DWFX file
    var model = this.viewer.model;
    var modelData = model.getData();
    var it = modelData.instanceTree;  // get instance tree


    We have used another way to get element node id for DWFX file. (In that case, we are getting only panel label id for DWFX file) But that logic is not working for all DWFX files.

// Try to get all ids for DWFX file
    var model = this.viewer.model;
    var modelData = model.getData();
    var allIds = modelData.stringDbIds;  // get all ids 


    Please us know If I am using wrong approach to get all elements for DWFX file.

1 Ответ

0 голосов
/ 02 мая 2018

Вам нужно дождаться события Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT , чтобы убедиться, что instanceTree доступно в загруженной модели:

viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, function () {
    var model = this.viewer.model;
    var modelData = model.getData();
    var it = modelData.instanceTree;  
    console.log(it)
})

В некоторых случаях вам, возможно, придется подождать также Autodesk.Viewing.GEOMETRY_LOADED_EVENT события, если вы собираетесь получить доступ к геометрии компонентов. Вот статья, которая может быть актуальной: Уведомление о событиях асинхронного просмотра

...