如何在 Javascript AutoDesk 中获取模型对象元数据属性
How to get Model object metadata properties in Javascript AutoDesk
我正在 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,function),但这只提供了特定于该 dbId 的详细信息,但我想要属性列表。
请帮我解决这个问题。
首先,另一篇博文讲了Model Derivative是如何提取属性的。理论上,如果你得到'aka json (json.gz)'或'sqlLite (sdb/db)',你就可以通过其他工具将自己提取出来。
.
相信你已经知道了http://extract.autodesk.io/ as you said you have downloaded 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 中使用 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,function),但这只提供了特定于该 dbId 的详细信息,但我想要属性列表。
请帮我解决这个问题。
首先,另一篇博文讲了Model Derivative是如何提取属性的。理论上,如果你得到'aka json (json.gz)'或'sqlLite (sdb/db)',你就可以通过其他工具将自己提取出来。
相信你已经知道了http://extract.autodesk.io/ as you said you have downloaded 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