我有兴趣获取所有dbId元素的属性。为此,我只是循环遍历我的dbIds数组并使用Forge Viewer提供的getProperties
函数。
someFunction() {
const instanceTree = this.viewer.model.getData().instanceTree;
const allDbIds = Object.keys(instanceTree.nodeAccess.dbIdToIndex);
console.log('all DbIds');
console.log(allDbIds);
// This will give the correct Properties
// this.viewer.getProperties(5, (result) => {
// console.log(result)
// })
allDbIds.forEach((dbId) => {
this.viewer.getProperties(dbId, (result) => {
console.log('result:');
console.log(result);
}, (err) => {
console.log('err');
console.log(err);
});
});
}
当我直接访问特定的dbId时,我得到了正确的属性数组。但是,当循环遍历所有dbId并调用getProperties
函数时,前两个dbId只返回属性,而其他所有dbId只返回空数组。另外,前两个数组是大的,似乎包含其他属性。 - > Link to console output
有人知道我在这里做错了什么吗?谢谢!
答案 0 :(得分:0)
不是在客户端页面上迭代属性,更好的方法可能是通过Model Derivative API一次查询所有属性。请参阅以下参考资料:
https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-metadata-GET/