我正在使用 JavaScript 中的 AutoDesk Forge Viewer (2D) 和离线 svf 文件。 我已将 .dwg 文件转换为 svf 文件。
如何在 Javascript 中获取模型对象元数据属性,就像使用 api“https://developer.api.autodesk.com/modelderivative/v2/designdata/ {urn}/metadata/{guid}/properties”一样?
我尝试使用viewer.model.getProperties(dbId,function,funtion),但这只提供了该dbId的特定详细信息,但我想要属性列表。
请帮我解决这个问题。
最佳答案
首先,另一篇博客讲了模型导数如何提取属性。理论上,如果您得到“aka 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
关于javascript - 如何在 Javascript AutoDesk 中获取模型对象元数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50735701/