C3D-0476 · Layer filter NO C on 260904 [C3D-0477] done
Add layer filter NO C matching all layers except C-*.
C# payload
var fc=Db.LayerFilters; var root=fc.Root;
var rm=new System.Collections.Generic.List<Autodesk.AutoCAD.LayerManager.LayerFilter>();
foreach(Autodesk.AutoCAD.LayerManager.LayerFilter f in root.NestedFilters) if(f.Name=="NO C") rm.Add(f);
foreach(var f in rm) root.NestedFilters.Remove(f);
var lf=new Autodesk.AutoCAD.LayerManager.LayerFilter();
lf.Name="NO C"; lf.FilterExpression="NAME==\"~C-*\"";
root.NestedFilters.Add(lf); Db.LayerFilters=fc;
var lt=(LayerTable)Tx.GetObject(Db.LayerTableId,OpenMode.ForRead);
int shown=0,cIn=0;
foreach(ObjectId id in lt){ var lr=(LayerTableRecord)Tx.GetObject(id,OpenMode.ForRead); if(lf.Filter(lr)){ shown++; if(lr.Name.StartsWith("C-")) cIn++; } }
Log("NO C set shown="+shown+" C-inFilter="+cIn);
Ed.Regen();
Result
Log
NO C set shown=141 C-inFilter=0
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.