请问要如何通过 dbId 获取父层信息?

你好,在 Forge Viewer 里头有办法通过 dbId 查询他的父层信息吗?例如我有一个 Basic Wall [49805] 的墙构件,我想知道他的获取族名称和类别有办法吗?

哆啦的时光机
浏览 410回答 1
1回答

喵喵时光机

可以的,你可以通过 InstanceTree.getNodeParentId( dbId ) 这个函数获取该构件父节点的 dbId。如果你想遞歸(resursively)的获取该构件父层的父层的信息,可以这么做:/**&nbsp;* @param {InstanceTree} it - Forge Viewer instance tree.&nbsp;* @param {number} dbId - 想要查询的构件 dbId.&nbsp;* @param {number[]} parentIds - 结果容器.&nbsp;*/function getParnetIds( it, dbId, parentIds ) {&nbsp;const pid = it.getNodeParentId( dbId );&nbsp;if( pid == it.getRootId() ) return;&nbsp;parentIds.push( pid );&nbsp;getParnetIds( pid, parentIds );}const it = viewer.model.getData().instanceTree;const parentIds = [];getParnetIds( it, 915, parentIds );if( parentIds.length > 0 ) {&nbsp; const n = parentIds.length;&nbsp; for( let i = 0; i < n ; i++ ) {&nbsp; &nbsp; &nbsp;cosnt dbId = parentIds[i];&nbsp; &nbsp; &nbsp;console.log( it.getNodeName( dbId ) ); // 打印父节点的名称&nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript