繁体   English   中英

如何在Autodesk Forge中获取所有DB-ID

[英]How to get all the DB-IDs in Autodesk Forge

我需要从Autodesk forge模型中获取所有DB-Id。 我已经从https://forge.autodesk.com/cloud_and_mobile/2015/12/select-all-elements-in-the-viewer-with-view-and-data-api-with-javascript.html引用了代码

我也在自己的扩展程序中尝试过,代码如下。

 AutodeskNamespace("Autodesk.ADN.Viewing.Extension"); Autodesk.ADN.Viewing.Extension.Color = function(viewer, options) { Autodesk.Viewing.Extension.call(this, viewer, options); var _self = this; var _viewer = viewer; var instanceTree = viewer.model.getData().instanceTree; var rootId = this.rootId = instanceTree.getRootId(); _self.load = function() { getgetAlldbIds(rootId); }; function getAlldbIds(rootId) { var alldbId = []; if (!rootId) { return alldbId; } var queue = []; queue.push(rootId); while (queue.length > 0) { var node = queue.shift(); alldbId.push(node); instanceTree.enumNodeChildren(node, function(childrenIds) { queue.push(childrenIds); }); } console.log(alldbId); } }; 

但是我在开发人员工具中遇到错误,因为cannot read property 'getData' of null您认为我在哪里出错。 提前致谢。

问题必须是模型未完全加载,因此您应该等待该事件(Autodesk.Viewing.GEOMETRY_LOADED_EVENT)。 也最好等待对象树创建事件(Autodesk.Viewing.OBJECT_TREE_CREATED_EVENT)-请参见此处的讨论: 如何检索Forge Viewer objectTree?

顺便说一下,现在有一种更简单的方法来获取所有dbId: 在模型中获取所有数据库ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM