【发布时间】:2021-06-25 06:39:06
【问题描述】:
【问题讨论】:
-
您可以搜索与 Level 的 displayName 匹配的所有类别,并从那里使用这些元素的 viewer.hide(ids)。你试过吗?
标签: autodesk-forge autodesk-viewer
【问题讨论】:
标签: autodesk-forge autodesk-viewer
首先,您必须从模型中收集所有元素:
const instanceTree = model.getData().instanceTree;
const rootId = instanceTree.getRootId();
function getAllDbIds(rootId, instanceTree) {
var alldbId = [];
if (!rootId) {
return alldbId;
}
var queue = [];
queue.push(rootId);
while (queue.length > 0) {
var node = queue.shift();
alldbId.push(node);
instanceTree.enumNodeChildren(
node,
function (childrenIds) {
queue.push(childrenIds);
}
);
}
return alldbId;
};
第二个——获取所有名为“Level”的元素
const levelId = allIds.filter((x) => instanceTree.getNodeName(x).includes("Level"))
第三步 - 在查看器中按 Id 删除元素:
viewer.impl.visibilityManager.setNodeOff(levelId, true)
【讨论】: