我正在使用离线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的详细信息,但我想要属性列表。
请帮我解决这个问题。
答案 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