调用 L_GetAllChildIdList 会获取到所有子构件的dbid(默认不包含所有父物体) 祝你顺利 let _treeData=viewer.impl.model.getData().instanceTree.nodeAccess; function _RecursionGetChild (id, list) { let length = _treeData.getNumChildren(id); if (length < 1) { if (list.indexOf(id) == -1) { list.push(id); // console.log(" >LJason< 日志:进来啦--",id,list); } return; } // 版本不同可能导致api不同 // enumNodeChildren和findNodeChild 效果相同 _treeData.findNodeChild(id, function (id) { // 开启后可添加父物体 // if(list.indexOf(id)!=-1){ // list.push(id); // } _RecursionGetChild(id, list); }); }, function L_GetAllChildIdList () { let targets = viewer.getSelection(); let list = []; if (targets) { for (let i = 0; i < targets.length; i++) { _RecursionGetChild(targets[i], list); } } else { console.error(" >LJason< 错误:未选中任何物体"); return; } console.log(" >LJason< 日志:", list); return list; }
调用 L_GetAllChildIdList 会获取到所有子构件的dbid(默认不包含所有父物体) 祝你顺利