鍍金池/ 問(wèn)答/云計(jì)算  HTML5  網(wǎng)絡(luò)安全  HTML/ 請(qǐng)問(wèn)要如何通過(guò) dbId 獲取父層信息?

請(qǐng)問(wèn)要如何通過(guò) dbId 獲取父層信息?

你好,在 Forge Viewer 里頭有辦法通過(guò) dbId 查詢他的父層信息嗎?例如我有一個(gè) Basic Wall [49805] 的墻構(gòu)件,我想知道他的獲取族名稱和類別有辦法嗎?

回答
編輯回答
眼雜

可以的,你可以通過(guò) InstanceTree.getNodeParentId( dbId ) 這個(gè)函數(shù)獲取該構(gòu)件父節(jié)點(diǎn)的 dbId。如果你想遞歸(resursively)的獲取該構(gòu)件父層的父層的信息,可以這么做:

/**
 * @param {InstanceTree} it - Forge Viewer instance tree.
 * @param {number} dbId - 想要查詢的構(gòu)件 dbId.
 * @param {number[]} parentIds - 結(jié)果容器.
 */
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 ) ); // 打印父節(jié)點(diǎn)的名稱
  }
}
2018年1月8日 23:53