FilteredElementCollector.GetElementIdIterator Method

FilteredElementCollectorGetElementIdIterator Method

Returns an element id iterator to the elements passing the filters.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public FilteredElementIdIterator GetElementIdIterator()
Public Function GetElementIdIterator As FilteredElementIdIterator
public:
FilteredElementIdIterator^ GetElementIdIterator()
member GetElementIdIterator : unit -> FilteredElementIdIterator 

Return Value

FilteredElementIdIterator
Exceptions
ExceptionCondition
InvalidOperationException The collector does not have a filter applied. Extraction or iteration of elements is not permitted without a filter.
Remarks
Calling this when you have an active iterator to this same collector will result in the first iterator being stopped by this call.
Example
// Use a RoomFilter to find all room elements in the document. 
RoomFilter filter = new RoomFilter();

// Apply the filter to the elements in the active document
FilteredElementCollector collector = new FilteredElementCollector(document);
collector.WherePasses(filter);

// Get results as ElementId iterator
FilteredElementIdIterator roomIdItr = collector.GetElementIdIterator();
roomIdItr.Reset();
while (roomIdItr.MoveNext())
{
    ElementId roomId = roomIdItr.Current;
    // Warn rooms smaller than 50 SF
    Room room = document.GetElement(roomId) as Room;
    if (room.Area < 50.0)
    {
        String prompt = "Room is too small: id = " + roomId.ToString();
        TaskDialog.Show("Revit", prompt);
        break;
    }
}
' Use a RoomFilter to find all room elements in the document. 
Dim filter As New RoomFilter()

' Apply the filter to the elements in the active document
Dim collector As New FilteredElementCollector(document)
collector.WherePasses(filter)

' Get results as ElementId iterator
Dim roomIdItr As FilteredElementIdIterator = collector.GetElementIdIterator()
roomIdItr.Reset()
While roomIdItr.MoveNext()
   Dim roomId As ElementId = roomIdItr.Current
   ' Warn rooms smaller than 50 SF
   Dim room As Room = TryCast(document.GetElement(roomId), Room)
   If room.Area < 50.0 Then
      Dim prompt As [String] = "Room is too small: id = " & roomId.ToString()
      TaskDialog.Show("Revit", prompt)
      Exit While
   End If
End While

No code example is currently available or this language may not be supported.

No code example is currently available or this language may not be supported.

See Also