Я получаю эту ошибку: Uncaught TypeError:> Невозможно прочитать свойство getRootId неопределенного значения, даже если я использую Autodesk.Viewing.GEOMETRY_LOADED_EVENT.
Не удается получить instanceTree autodesk
28.08.2017
- Какую версию вьювера используете? Рекомендуется использовать v2.16 выше, срок действия ViewService (View and Data API) истек. Подробнее см. здесь: forge.autodesk.com/blog/viewer- предоставление-ошибка-403-несанкционированный 28.08.2017
Ответы:
1
Вам просто нужно дождаться запуска Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT
, когда вы хотите получить доступ к instanceTree
:
viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, function () {
var instanceTree = model.getData().instanceTree //cool
})
31.08.2017
2
Вы не должны использовать структуру данных instanceTree
, но все же функции/операции, которые поддерживаются. Если вам нужно перечислить конечные узлы, попробуйте что-то похожее на описанное здесь а>:
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());
});
}
28.08.2017
Новые материалы
API следующего поколения: gRPC n Javascript
gRPC - быстро развивающаяся технология, которая потенциально может заменить протокол HTTP. Это быстрее, чем традиционные HTTP-вызовы, потому что он отправляет данные в двоичном формате, а не в..
Ускоренный курс по жадным алгоритмам
Дай мне, дай мне, дай мне
Аудитория
Эта статья предназначена для инженеров, достаточно хорошо разбирающихся в программировании, структурах данных и алгоритмах. Он в основном основан на..
Изучайте Java (Урок 2: Комментарии)
Как и зачем использовать комментарии в java с примерами
Введение:
Комментарии — это строки текста в программе Java, которые игнорируются компилятором и используются для добавления..
Async Await в Swift: легкое управление параллелизмом
Введение в запуск асинхронного кода
Асинхронный код выполняет несколько операций одновременно. Параллелизм необходим при выполнении тяжелых вычислений или сетевых запросов. Однако это может..
Очистить файлы Program .cache в Ubuntu 20.10
Очистите кеш за несколько простых шагов!
GNU / Linux реализовал эффективное управление хранилищем для своих пользователей. Но заметили ли вы, что в вашей системе Linux заканчивается место,..
Использование Node.js для чтения действительно больших файлов (часть 1)
В этом сообщении в блоге есть интересный источник вдохновения. На прошлой неделе кто-то на одном из моих каналов в Slack опубликовал тестовое задание, которое он получил на должность..
Введение в градиентный спуск и обратное распространение
Введение в градиентный спуск и обратное распространение
Как машинное обучение?
Машинное обучение ( ML ) - это исследование компьютерных алгоритмов, которые автоматически улучшаются по..