Message 1 of 2
help: get layerIds collection for LayerFilter and LayerGroup
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi.
I´m trying to get layers Id Collection for LayerFilter( properties filter in LayerManager) and LayerGroup (group filter in LayerManager too).
LayerGroup has method "LayerIds()" to get collection but I can´t use because debugger say me that it is a LayerFilter when it is really a LayerGroup.
public static List<Filtros_Capas> Get_FiltrosCapas() { Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; Editor ed = doc.Editor; // List the nested(anidadas) layer filters. NeestedFilters siginifca que hay filtros dentro de otros filtros. List<toolsC3D.Filtros_Capas> listaFiltros = new List<toolsC3D.Filtros_Capas>(); // instancia de la nueva lista Filtros_Capas aBobj = default(Filtros_Capas); LayerFilterTree lft = db.LayerFilters; //esquema en arbol de la lista de filtros. Autodesk.AutoCAD.LayerManager.LayerFilterCollection lfc = db.LayerFilters.Root.NestedFilters; for (int i = 0; i <= lfc.Count - 1; i++) { if (lfc[i].FilterExpression == "") { if (lfc[i].IsIdFilter == true) { aBobj.Name = lfc[i].Name; aBobj.Count = lfc[i].LayerIds.Count; listaFiltros.Add(aBobj); } } else { } } return listaFiltros; }
Also, I don´t know how to differentiate when filter is LayerFilter or LayerGroup. I use:
FilterExpression == ""
and I take for granted that filter is LayerGroup, but it isn´t quite right.
I have tried to do this, but it doesn´t work.
foreach(LayerGroup filter in lfc) { aBobj.Name = filter.Name; aBobj.Count=filter.LayerIds.Count; listaFiltros.Add(aBobj); }
I would like to get id layers collection for LayerFilter and LayerGroup.
Thank you in advance.
Autocad C3D 2019 SP3, 2020 & 2021
Intel I9 9900K with frontal watercooler alphacool eisbaer 360 (original fans mounted in pull)- 3 fans Corsair 120 ML PRO in push.
MOBO Gygabyte Z390 Aorus Master- Corsair RGB Vengeance 64GB RAM (4x16) CL16
Nvidia Quadro RTX 4000
Samsung 970 EVO PLUS 1TB (unit C). Samsung 970 PRO 512GB (for data)
Power Supply: Corsair TX850M PLUS
Descubre mi programa VisorNET para Civil 3D:
https://apps.autodesk.com/CIV3D/es/Detail/Index?id=appstore.exchange.autodesk.com%3avisornet_windows32and64%3aes
Intel I9 9900K with frontal watercooler alphacool eisbaer 360 (original fans mounted in pull)- 3 fans Corsair 120 ML PRO in push.
MOBO Gygabyte Z390 Aorus Master- Corsair RGB Vengeance 64GB RAM (4x16) CL16
Nvidia Quadro RTX 4000
Samsung 970 EVO PLUS 1TB (unit C). Samsung 970 PRO 512GB (for data)
Power Supply: Corsair TX850M PLUS
Descubre mi programa VisorNET para Civil 3D:
https://apps.autodesk.com/CIV3D/es/Detail/Index?id=appstore.exchange.autodesk.com%3avisornet_windows32and64%3aes