javascript - 如何在 Javascript AutoDesk 中获取模型对象元数据属性
问题描述
我正在使用带有离线 svf 文件的 Javascript 中的 AutoDesk Forge Viewer (2D)。我已将 .dwg 文件转换为 svf 文件。
如何像我们使用 api“ https://developer.api.autodesk.com/modelderivative/v2/designdata/{urn}/metadata/{guid}/properties ”一样在 Javascript 中获取模型对象元数据属性?
我尝试使用 viewer.model.getProperties(dbId,function,funtion),但这只会给我特定于该 dbId 的详细信息,但我想要属性列表。
请帮我解决一下这个。
解决方案
首先,另一个博客讨论了模型导数如何提取属性。理论上,如果你得到 'aka json (json.gz)' 或 'sqlLite (sdb/db)',你就可以通过其他工具提取自己。 在 Forge Viewer 中如何使用 properties.db?.
我相信你已经知道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
推荐阅读
- webgl - 纹理映射问题以及如何在 WebGL 中更改纹理映射位置
- jquery - Datatables_scrollBody 上的覆盖滚动条出错
- css - 如何在不破坏文本动画的情况下更改句子中间一个单词的字体颜色?
- node.js - 在 docker-compose 上的 Sonarqube 实例中安装 Node.Js
- android - 为什么单击网页内容中的选择标签会导致崩溃?
- android - 如何创建一个可以确定用户何时离开家的 Android 应用程序?
- python - DEAP:使交叉概率成为个体之间距离的函数
- python - 具有多个元素的数组的真值不明确?
- animation - 动画 SVG 线过渡
- php - 两个表ID-Name之间的交互