public class ElementLevelFilter : ElementSlowFilter
The ElementLevelFilter type exposes the following members.
| Name | Description | |
|---|---|---|
| ElementLevelFilter(ElementId) | Constructs a new instance of an ElementLevelFilter. | |
| ElementLevelFilter(ElementId, Boolean) | Constructs a new instance of an ElementLevelFilter, with the option to match all elements not associated to the given level id. |
| Name | Description | |
|---|---|---|
| Inverted |
True if the results of the filter are inverted; elements that would normally be accepted by this filter will be rejected,
and elements that would normally be rejected will be accepted.
(Inherited from ElementFilter) | |
| IsValidObject |
Specifies whether the .NET object represents a valid Revit entity.
(Inherited from ElementFilter) | |
| LevelId | The id of the level that will be matched to elements' associated level. |
| Name | Description | |
|---|---|---|
| Dispose | (Inherited from ElementFilter) | |
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object) | |
| GetHashCode | Serves as the default hash function. (Inherited from Object) | |
| GetType | Gets the Type of the current instance. (Inherited from Object) | |
| PassesFilter(Element) |
Applies the filter to a given element.
(Inherited from ElementFilter) | |
| PassesFilter(Document, ElementId) |
Applies the filter to a given element.
(Inherited from ElementFilter) | |
| ToString | Returns a string that represents the current object. (Inherited from Object) |
// Use ElementLevel filter to find elements by their associated level in the document // Find the level whose Name is "Level 1" FilteredElementCollector collector = new FilteredElementCollector(document); ICollection<Element> levels = collector.OfClass(typeof(Level)).ToElements(); var query = from element in collector where element.Name == "Level 1" select element;// Linq query // Get the level id which will be used to match elements List<Element> level1 = query.ToList<Element>(); ElementId levelId = level1[0].Id; // Find all walls on level one ElementLevelFilter level1Filter = new ElementLevelFilter(levelId); collector = new FilteredElementCollector(document); ICollection<Element> allWallsOnLevel1 = collector.OfClass(typeof(Wall)).WherePasses(level1Filter).ToElements(); // Find all rooms not on level one: use an inverted ElementLevelFilter to match all elements not on the target level ElementLevelFilter notOnLevel1Filter = new ElementLevelFilter(levelId, true); // Inverted filter collector = new FilteredElementCollector(document); IList<Element> allRoomsNotOnLevel1 = collector.WherePasses(new RoomFilter()).WherePasses(notOnLevel1Filter).ToElements();
' Use ElementLevel filter to find elements by their associated level in the document ' Find the level whose Name is "Level 1" Dim collector As New FilteredElementCollector(document) Dim levels As ICollection(Of Element) = collector.OfClass(GetType(Level)).ToElements() Dim query As System.Collections.Generic.IEnumerable(Of Autodesk.Revit.DB.Element) query = From element In collector _ Where element.Name = "Level 1" _ Select element ' Linq query ' Get the level id which will be used to match elements Dim level1 As List(Of Element) = query.ToList() Dim levelId As ElementId = level1(0).Id ' Find all walls on level one Dim level1Filter As New ElementLevelFilter(levelId) collector = New FilteredElementCollector(document) Dim allWallsOnLevel1 As ICollection(Of Element) = collector.OfClass(GetType(Wall)).WherePasses(level1Filter).ToElements() ' Find all rooms not on level one: use an inverted ElementLevelFilter to match all elements not on the target level Dim notOnLevel1Filter As New ElementLevelFilter(levelId, True) ' Inverted filter collector = New FilteredElementCollector(document) Dim allRoomsNotOnLevel1 As IList(Of Element) = collector.WherePasses(New RoomFilter()).WherePasses(notOnLevel1Filter).ToElements()