如何在Javascript AutoDesk中获取Model对象元数据属性

时间:2018-06-07 07:50:24

标签: javascript autodesk-forge autodesk-viewer autodesk-model-derivative

我正在使用离线svf文件在Javascript中使用AutoDesk Forge Viewer(2D)。 我已将.dwg文件转换为svf文件。

如何在Javascript中获取模型对象元数据属性,就像我们使用api“https://developer.api.autodesk.com/modelderivative/v2/designdata/ {urn} / metadata / {guid} / properties”一样?

我尝试使用viewer.model.getProperties(dbId,function,funtion),但这只给了我特定于dbId的详细信息,但我想要属性列表。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

首先,另一篇博客讨论了Model Derivative如何提取属性。从理论上讲,如果你得到了json(json.gz)'或者' sqlLite(sdb / db)',您可以通过其他工具提取自己。 How properties.db is used in Forge Viewer?

我相信您已经知道http://extract.autodesk.io/,因为您说已经下载了SVF。 http://extract.autodesk.io/为您提供下载翻译数据的逻辑,包括json.gz和sqlLite db。

如果您希望通过Forge Viewer转储浏览器中的所有属性,我能想到的唯一方法如下:

 function getAllDbIds(viewer) {
   var instanceTree = viewer.model.getData().instanceTree;

   var allDbIdsStr = Object.keys(instanceTree.nodeAccess.dbIdToIndex);

  return allDbIdsStr.map(function(id) { return parseInt(id)});
}

var AllDbIds = getAllDbIds(myViewer);
myViewer.model.getBulkProperties(AllDbIds, null,
   function(elements){
    console.log(elements);//this includes all properties of a node.
 })

实际上,我合并了两个博客: https://forge.autodesk.com/cloud_and_mobile/2016/10/get-all-database-ids-in-the-model.html

https://forge.autodesk.com/blog/getbulkproperties-method