1

我有兴趣获取所有 dbId 元素的属性。为此,我只是循环遍历我的 dbIds 数组并使用Forge ViewergetProperties提供的函数。

  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 仅返回空数组。此外,前两个数组很大,似乎包含其他属性。-->链接到控制台输出

有人知道我在这里做错了什么吗?已经谢谢了!

4

1 回答 1

0

除了在客户端页面上迭代属性,更好的方法可能是通过 Model Derivative API 一次查询所有属性。请参阅这些参考资料:

https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-metadata-GET/

https://developer.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-metadata-guid-properties-GET/

于 2016-12-14T19:22:04.103 回答