Quantcast
Channel: All Revit API Forum posts
Viewing all articles
Browse latest Browse all 66664

Re: Filter Legend from viewsheet?

$
0
0

I'm uisng your workaround to filter all the legends placed on sheets and then delete the ones that are not on shets

            //get all the sheets in the model
FilteredElementCollector vftCollector = new FilteredElementCollector(doc);
vftCollector.OfClass(typeof(ViewSheet));

//get all the Legends in the model FilteredElementCollector legCollector = new FilteredElementCollector(doc) .OfClass(typeof(View)); List<ElementId> allLegendsOnModelIdlist = new List<ElementId>(); foreach (ElementId eid in legCollector.ToElementIds()) { View v = doc.GetElement(eid) as View; if (v.ViewType == ViewType.Legend) allLegendsOnModelIdlist.Add(v.Id); } List<ElementId> allsLegendsOnsheetsId = new List<ElementId>(); foreach (ViewSheet vs in vftCollector) { //get all legends on sheet foreach (ElementId eid in vs.GetAllPlacedViews()) { View v = doc.GetElement(eid) as View; if (v.ViewType == ViewType.Legend) allsLegendsOnsheetsId.Add(v.Id); //TaskDialog.Show("Legend", "Found a legend named: " + v.Name + "\non sheet: " + vs.LookupParameter("Sheet Number").AsString()); } } var legendsToDelete = allLegendsOnModelIdlist.Except(allsLegendsOnsheetsId); toDelete.AddRange(legendsToDelete);

 

 


Viewing all articles
Browse latest Browse all 66664

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>