Javascript 如何在Autodesk Forge中获取所有数据库ID

Javascript 如何在Autodesk Forge中获取所有数据库ID,javascript,autodesk-forge,Javascript,Autodesk Forge,我需要从Autodesk forge模型获取所有DB ID。我已从中引用了代码 我也在自己的扩展中尝试过,代码如下 AutodeskNamespace(“Autodesk.ADN.Viewing.Extension”); Autodesk.ADN.Viewing.Extension.Color=函数(查看器,选项){ Autodesk.Viewing.Extension.call(此、查看器、选项); var _self=这个; var _viewer=查看器; var instanceTre

我需要从Autodesk forge模型获取所有DB ID。我已从中引用了代码

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

AutodeskNamespace(“Autodesk.ADN.Viewing.Extension”);
Autodesk.ADN.Viewing.Extension.Color=函数(查看器,选项){
Autodesk.Viewing.Extension.call(此、查看器、选项);
var _self=这个;
var _viewer=查看器;
var instanceTree=viewer.model.getData().instanceTree;
var rootId=this.rootId=instanceTree.getRootId();
_self.load=函数(){
getAllDBID(rootId);
};
函数getAlldbIds(rootId){
var alldbId=[];
如果(!rootId){
返回alldbId;
}
变量队列=[];
push(rootId);
while(queue.length>0){
var node=queue.shift();
alldbId.push(节点);
instanceTree.enumNodeChildren(节点、函数(ChildrenId)){
queue.push(childrenIds);
});
}
log(alldbId);
}

};问题一定是模型未完全加载,因此应等待该事件(Autodesk.Viewing.GEOMETRY\u loaded\u事件)。最好也等待“对象树创建”事件(Autodesk.Viewing.object\u tree\u created\u事件)-请参见此处的讨论:

顺便说一下,现在有一种更简单的方法来获取所有DBID: