我试图通过访问我的模型的三个来列出我的建筑的一些元素。
它在我的电脑上工作得很好,但在我的 Ipad 或平板电脑上却不能。
我正在使用此代码:
getInstanceTree() {
return new Promise(async (resolve, reject) => {
try {
let viewer = LevelsExtension.viewer;
viewer.getObjectTree(function (instanceTree) {
return resolve(instanceTree);
},
function (errorCode) {
return reject(errorCode);
});
} catch (ex) {
return reject(ex)
}
})
};
在移动设备和Ipad上,return reject(errorCode);
在errorCode
中使用undefined
值进行呼叫。
我该怎么做?
没有错误代码的错误回调可能表示模型数据库(存储对象树的位置(尚不可用。您何时调用getInstanceTree()
方法?
查看器在模型数据库准备就绪时触发事件 - 您可以使用viewer.addEventListener(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT, function(ev) { ... })
订阅它。
希望对:)有所帮助
编辑:跟进我们对要点的讨论,以及遇到类似问题的任何人:
当您无法在移动设备上访问模型的对象树时,您可能会达到 Forge 查看器的内存限制,您可以尝试通过将限制显式设置为零来绕过这些限制:
viewer = new Autodesk.Viewing.Private.GuiViewer3D(
document.getElementById('viewer'),
{ memory: { limit: 0 } }
);