Finding Hidden Elements

Finding Hidden Elements

jmyr
Enthusiast Enthusiast
1,842 Views
1 Reply
Message 1 of 2

Finding Hidden Elements

jmyr
Enthusiast
Enthusiast

Hi all,

 

I'm trying to unhide elements (Unreferenced Callouts to be specific) but for some reason i cant find hidden elements using code below. Any idea what's wrong? Thanks

 

 IEnumerable<ElementId> refCallouts = new FilteredElementCollector(doc)
                .OfCategory(BuiltInCategory.OST_Viewers)
                .WhereElementIsNotElementType()
                .Where(x =>
                x.IsHidden(view) &&
                x.get_Parameter(BuiltInParameter.ID_PARAM).AsElementId() != view.Id &&
                GetViewFromMarker(x, doc).ViewType == ViewType.DraftingView &&
                x.get_Parameter(BuiltInParameter.VIEWER_SHEET_NUMBER).AsString() != "---")
                .Select(x => x.Id)
                .Cast<ElementId>();

                foreach (ElementId elementId in refCallouts)
                {
                    MessageBox.Show(elementId.ToString());
                }
              
            }
            public static View GetViewFromMarker(Element element, Document doc)
            {
                ElementId elementId = element.get_Parameter(BuiltInParameter.ID_PARAM).AsElementId();
                Element getElement = doc.GetElement(elementId);

                if (getElement is View view)
                {
                    return view;
                }
                else
                {
                    return null;
                }
            }

 

0 Likes
Accepted solutions (1)
1,843 Views
1 Reply
Reply (1)
Message 2 of 2

stever66
Advisor
Advisor
Accepted solution

The code below seems to be enough to retrieve the hidden section views, so I'm not sure what all the other filters are for.  I'd suggest trying to get the code  below to work, and then adding the other items you want one at a time.  Start simple and work your way up to the more complex.

 

View view = uidoc.ActiveView ;
				IEnumerable<ElementId> refCallouts = new FilteredElementCollector(doc)
                .OfCategory(BuiltInCategory.OST_Viewers)
					.WhereElementIsNotElementType().Where(x =>x.IsHidden(view))
				.Select(x => x.Id)
                .Cast<ElementId>();
			
                foreach (ElementId elementId in refCallouts)
                {
                    TaskDialog.Show("Revit", elementId.ToString());
                }
0 Likes