/// <summary> /// Returns all the used filters in a project /// </summary> /// <param name="doc"></param> /// <returns></returns> private void GetUsedFilters() { FilteredElementCollector collector = new FilteredElementCollector(doc); IList <Element> views = collector.OfClass(typeof(Autodesk.Revit.DB.View)).ToElements(); foreach (Element el in views) { Autodesk.Revit.DB.View v = el as Autodesk.Revit.DB.View; ICollection <ElementId> filterIds; try { filterIds = v.GetFilters(); } catch (AmbiguousMatchException) { continue; } catch (Autodesk.Revit.Exceptions.InvalidOperationException) { continue; } foreach (ElementId id in filterIds) { OverrideGraphicSettings filterOverrides = v.GetFilterOverrides(id); bool filterVisible = v.GetFilterVisibility(id); if (CompareOverrides(filterOverrides, _defaultOverrides) && filterVisible) { if (removeFromView) { using (Transaction t = new Transaction(doc, "Remove filter")) { t.Start(); v.RemoveFilter(id); t.Commit(); } removed++; continue; } else { unused.Add(id); } } used.Add(id); } } if (removeFromView) { TaskDialog.Show("Unused on Views Filters", "Unused filters on views" + Environment.NewLine + removed.ToString() + " filters removed."); } }
/// <summary> /// Returns all the used filters in a project /// </summary> /// <param name="doc"></param> /// <returns></returns> private void GetUsedFilters() { //FilteredElementCollector collector = new FilteredElementCollector(doc); //IList<Element> views = collector.OfClass(typeof(Autodesk.Revit.DB.View)).WhereElementIsNotElementType().ToElements(); //Filted Out the Sheets FilteredElementCollector collViewPlan = new FilteredElementCollector(doc).OfClass(typeof(ViewPlan)).WhereElementIsNotElementType(); FilteredElementCollector collViewSection = new FilteredElementCollector(doc).OfClass(typeof(ViewSection)).WhereElementIsNotElementType(); FilteredElementCollector collView3D = new FilteredElementCollector(doc).OfClass(typeof(View3D)).WhereElementIsNotElementType(); IList <Element> filteredViews = new List <Element>(); foreach (var item in collViewPlan) { filteredViews.Add(item); } foreach (var item in collViewSection) { filteredViews.Add(item); } foreach (var item in collView3D) { filteredViews.Add(item); } foreach (Element el in filteredViews) { Autodesk.Revit.DB.View v = el as Autodesk.Revit.DB.View; ICollection <ElementId> filterIds; try { filterIds = v.GetFilters(); } catch (AmbiguousMatchException) { continue; } catch (Autodesk.Revit.Exceptions.InvalidOperationException) { continue; } foreach (ElementId id in filterIds) { if (used.Contains(id)) { continue; } OverrideGraphicSettings filterOverrides = v.GetFilterOverrides(id); bool filterVisible = v.GetFilterVisibility(id); if (CompareOverrides(filterOverrides, _defaultOverrides) && filterVisible) { unassigned.Add(id); } else { used.Add(id); } } } unassigned = new HashSet <ElementId>(unassigned.ToList().Except(used.ToList())); }