修复:亮显本层节点错误

pull/2891/MERGE
ChenX 3 months ago
parent 0637a94bc5
commit 784925533a

@ -9,7 +9,16 @@ export class Command_HighlightNode implements Command
{
async exec()
{
let ss = await app.Editor.GetSelection({ Msg: "选择需要亮显节点的实体:", UseSelect: true });
let ss = await app.Editor.GetSelection({
Msg: "选择需要亮显节点的实体:",
UseSelect: true,
Filter: {
filterFunction: (obj, ent) =>
{
return ent.Template?.Object !== undefined;
}
}
});
if (ss.Status !== PromptStatus.OK) return;
let ents = ss.SelectSet.SelectEntityList;
@ -19,7 +28,12 @@ export class Command_HighlightNode implements Command
for (const en of ents)
{
if (entSet.has(en)) continue;
let temp = en.Template.Object as TemplateRecord;
let temp = en.Template?.Object as TemplateRecord;
if (!temp)
{
entSet.add(en);
continue;
}
for (let t of temp.Objects)
{
if (t && !t.IsErase)
@ -39,7 +53,16 @@ export class Command_HighlightNodeAndChilds implements Command
{
async exec()
{
let ss = await app.Editor.GetSelection({ Msg: "选择需要亮显节点和子层的实体:", UseSelect: true });
let ss = await app.Editor.GetSelection({
Msg: "选择需要亮显节点和子层的实体:",
UseSelect: true,
Filter: {
filterFunction: (obj, ent) =>
{
return ent.Template?.Object !== undefined;
}
}
});
if (ss.Status !== PromptStatus.OK) return;
let ents = ss.SelectSet.SelectEntityList;
@ -49,12 +72,14 @@ export class Command_HighlightNodeAndChilds implements Command
for (const en of ents)
{
if (entSet.has(en)) continue;
let temp = en.Template.Object as TemplateRecord;
let treeNodes: TemplateRecord[] = [];
temp.Traverse((node) => { treeNodes.push(node); });
let temp = en.Template?.Object as TemplateRecord;
if (!temp)
{
entSet.add(en);
continue;
}
for (let tn of treeNodes)
temp.Traverse((tn) =>
{
for (let t of tn.Objects)
{
@ -64,7 +89,7 @@ export class Command_HighlightNodeAndChilds implements Command
entSet.add(en);
}
}
}
});
}
app.Editor.SetSelection([...entSet]);
}

Loading…
Cancel
Save