为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哆啦的时光机 2019-02-26 21:58:00
你好,在 Forge Viewer 里头有办法通过 dbId 查询他的父层信息吗?例如我有一个 Basic Wall [49805] 的墙构件,我想知道他的获取族名称和类别有办法吗?
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

可以的,你可以通过 InstanceTree.getNodeParentId( dbId ) 这个函数获取该构件父节点的 dbId。如果你想遞歸(resursively)的获取该构件父层的父层的信息,可以这么做:


/**

 * @param {InstanceTree} it - Forge Viewer instance tree.

 * @param {number} dbId - 想要查询的构件 dbId.

 * @param {number[]} parentIds - 结果容器.

 */

function getParnetIds( it, dbId, parentIds ) {

 const pid = it.getNodeParentId( dbId );

 if( pid == it.getRootId() ) return;


 parentIds.push( pid );

 getParnetIds( pid, parentIds );

}


const it = viewer.model.getData().instanceTree;

const parentIds = [];


getParnetIds( it, 915, parentIds );


if( parentIds.length > 0 ) {

  const n = parentIds.length;

  for( let i = 0; i < n ; i++ ) {

     cosnt dbId = parentIds[i];

     console.log( it.getNodeName( dbId ) ); // 打印父节点的名称

  }

}


查看完整回答
反对 回复 2019-03-07
  • 1 回答
  • 0 关注
  • 409 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号