Message 1 of 2

Not applicable
03-05-2018
10:50 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi All,
I made the following method to check if an element is already tagged. I just want to do the check in the active view, is it possible:
public bool ElementIsTagged( Document doc, Element ele, BuiltInCategory bicTag, BuiltInCategory bicElements) { // Coleccion de los tags List<Element> tagColl = new FilteredElementCollector(doc) .OfCategory(bicTag) .Where(x => x is IndependentTag) .ToList(); // Coleccion de los elementos List<Element> eleColl = new FilteredElementCollector(doc) .OfCategory(bicElements) .ToList(); // Extrae las ID de los elementos que estan taggeados en el modelo. List<ElementId> ids = new List<ElementId>(); foreach(Element e in tagColl) { IndependentTag tag = e as IndependentTag; ElementId id = tag.TaggedLocalElementId; int aux1 = tag.TaggedLocalElementId.IntegerValue; bool aux2 = ids.Contains(tag.TaggedLocalElementId); if ((tag.TaggedLocalElementId.IntegerValue != -1) && (ids.Contains(tag.TaggedLocalElementId) == false)) { ids.Add(tag.TaggedLocalElementId); } } // Transforma a una lista de Unique Items List<ElementId> uniqueIds = ids.Distinct().ToList(); // Se extraen los ids de los elementos List<ElementId> eleIds = new List<ElementId>(); foreach (Element e in eleColl) { eleIds.Add(e.Id); } // Se compara si los elementos estan taggeados List<ElementId> idEleTag = new List<ElementId>(); foreach(ElementId id in eleIds) { if (uniqueIds.Contains(id)) { idEleTag.Add(id); } } // COMPARACION - Si el elemento esta en la lista de elementos taggeados, entrega "true" // de lo contrario, entrega "false". if (idEleTag.Contains(ele.Id)) { return true; } else { return false; } }
Thanks in advance!
CHeers
Solved! Go to Solution.