ParameterFilterElement
Description:
Admits elements that satisfy two conditions: The element's category must be one of a certain set of allowed categories.The element must pass a series of filter rules.
Admits elements that satisfy two conditions: The element's category must be one of a certain set of allowed categories.The element must pass a series of filter rules.
Inheritance Hierarchy:
System.Object
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.FilterElement
Autodesk.Revit.DB.ParameterFilterElement
System.Object
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.FilterElement
Autodesk.Revit.DB.ParameterFilterElement
public class ParameterFilterElement : FilterElement
/// <summary>
/// Create an ElementFilter representing a conjunction ("ANDing together") of FilterRules.
/// </summary>
/// <param name="filterRules">A list of FilterRules</param>
/// <returns>The ElementFilter.</returns>
private static ElementFilter CreateElementFilterFromFilterRules(IList<FilterRule> filterRules)
{
// We use a LogicalAndFilter containing one ElementParameterFilter
// for each FilterRule. We could alternatively create a single
// ElementParameterFilter containing the entire list of FilterRules.
IList<ElementFilter> elemFilters = new List<ElementFilter>();
foreach (FilterRule filterRule in filterRules)
{
ElementParameterFilter elemParamFilter = new ElementParameterFilter(filterRule);
elemFilters.Add(elemParamFilter);
}
LogicalAndFilter elemFilter = new LogicalAndFilter(elemFilters);
return elemFilter;
}
/// <summary>
/// Creates a new view filter matching multiple criteria.
/// </summary>
/// <param name="doc"></param>
/// <param name="view"></param>
public static void CreateViewFilter(Document doc, View view)
{
List<ElementId> categories = new List<ElementId>();
categories.Add(new ElementId(BuiltInCategory.OST_Walls));
List<FilterRule> filterRules = new List<FilterRule>();
using (Transaction t = new Transaction(doc, "Add view filter"))
{
t.Start();
// Create filter element assocated to the input categories
ParameterFilterElement parameterFilterElement = ParameterFilterElement.Create(doc, "Example view filter", categories);
// Criterion 1 - wall type Function is "Exterior"
ElementId exteriorParamId = new ElementId(BuiltInParameter.FUNCTION_PARAM);
filterRules.Add(ParameterFilterRuleFactory.CreateEqualsRule(exteriorParamId, (int)WallFunction.Exterior));
// Criterion 2 - wall height > some number
ElementId lengthId = new ElementId(BuiltInParameter.CURVE_ELEM_LENGTH);
filterRules.Add(ParameterFilterRuleFactory.CreateGreaterOrEqualRule(lengthId, 28.0, 0.0001));
// Criterion 3 - custom shared parameter value matches string pattern
// Get the id for the shared parameter - the ElementId is not hardcoded, so we need to get an instance of this type to find it
Guid spGuid = new Guid("96b00b61-7f5a-4f36-a828-5cd07890a02a");
FilteredElementCollector collector = new FilteredElementCollector(doc);
collector.OfClass(typeof(Wall));
Wall wall = collector.FirstElement() as Wall;
if (wall != null)
{
Parameter sharedParam = wall.get_Parameter(spGuid);
ElementId sharedParamId = sharedParam.Id;
filterRules.Add(ParameterFilterRuleFactory.CreateBeginsWithRule(sharedParamId, "15.", true));
}
ElementFilter elemFilter = CreateElementFilterFromFilterRules(filterRules);
parameterFilterElement.SetElementFilter(elemFilter);
// Apply filter to view
view.AddFilter(parameterFilterElement.Id);
view.SetFilterVisibility(parameterFilterElement.Id, false);
t.Commit();
}
}
| Name | Return Type | Description | Inherited From |
|---|---|---|---|
| AllRuleParametersApplicable(Document, ICollection<ElementId>, ElementFilter) | bool | Checks that the parameters of the given ElementFilter (representing a combination of rules) are valid for the given set of categories. | |
| AllRuleParametersApplicable(ElementFilter) | bool | Checks that the parameters of the rules used by the given ElementFilter are valid for this filter's categories. | |
| ClearRules() | None | Removes all rules from this filter. | |
| Create(Document, String, ICollection<ElementId>) | ParameterFilterElement | Creates a new ParameterFilterElement in the given document. | |
| Create(Document, String, ICollection<ElementId>, ElementFilter) | ParameterFilterElement | Creates a new ParameterFilterElement in the given document. | |
| ElementFilterIsAcceptableForParameterFilterElement(Document, ISet<ElementId>, ElementFilter) | bool | Checks that an ElementFilter is acceptable for use in defining the filtering rules for a given list of categories (i.e., for view filtering). | |
| ElementFilterIsAcceptableForParameterFilterElement(ElementFilter) | bool | Checks that an ElementFilter is acceptable for use in defining the filtering rules for a ParameterFilterElement (i.e., for view filtering). | |
| GetCategories() | ICollection<ElementId> | Gets the categories admitted by this filter. | |
| GetElementFilter() | ElementFilter | Returns an ElementFilter representing the combination of rules used by this filter. | |
| GetElementFilterParametersForCategory(ElementId) | ISet<ElementId> | Retrieves a list of the parameters associated with all rules in the filter that are combined (using logical AND) with a FilterCategoryRule corresponding to single %categoryId%. | |
| GetElementFilterParameters() | ISet<ElementId> | Retrieves a list of the parameters associated with each rule in the filter. | |
| SetCategories(ICollection<ElementId>) | None | Sets the categories admitted by this filter. | |
| SetElementFilter(ElementFilter) | bool | Sets the rules that must be satisfied for a given element to pass this filter. | |
| ArePhasesModifiable() | bool | Returns true if the properties CreatedPhaseId and DemolishedPhaseId can be modified for this Element. | Element |
| CanBeHidden(View) | bool | Indicates if the element can be hidden in the view. | Element |
| CanBeLocked() | bool | Identifies if the element can be locked. | Element |
| CanDeleteSubelement(Subelement) | bool | Checks if given subelement can be removed from the element. | Element |
| CanHaveAnalyticalModel() | bool | Indicates whether the Element can have an Analytical Model. | Element |
| CanHaveTypeAssigned() | bool | Identifies if the element can have a type assigned. | Element |
| CanHaveTypeAssigned(Document, ICollection<ElementId>) | bool | Checks if all elements in the set can have a type assigned. | Element |
| ChangeTypeId(Document, ICollection<ElementId>, ElementId) | IDictionary | Changes the type of all elements in the given set. | Element |
| ChangeTypeId(ElementId) | ElementId | Changes the type of the element. | Element |
| DeleteEntity(Schema) | bool | Deletes the existing entity created by %schema% in the element | Element |
| DeleteSubelement(Subelement) | bool | Removes a subelement from the element. | Element |
| DeleteSubelements(IList<Subelement>) | bool | Removes the subelements from the element. | Element |
| Dispose() | None | Releases all resources used by the | Element |
| GetAnalyticalModelId() | Element Id. | Retrieves the Element Id of the Analytical Model Element for this Element. | Element |
| GetAnalyticalModel() | Writeable Analytical Model. | Retrieves writeable Analytical Model for Element. | Element |
| GetChangeTypeAny() | ChangeType | Returns ChangeType associated with any change in an element. | Element |
| GetChangeTypeElementAddition() | ChangeType | Returns ChangeType associated with element addition | Element |
| GetChangeTypeElementDeletion() | ChangeType | Returns ChangeType associated with element deletion. | Element |
| GetChangeTypeGeometry() | ChangeType | Returns ChangeType associated with a change in the geometry of an element | Element |
| GetChangeTypeParameter(ElementId) | ChangeType | Returns ChangeType associated with a change in a parameter's value | Element |
| GetChangeTypeParameter(Parameter) | ChangeType | Returns ChangeType associated with a change in a parameter's value | Element |
| GetDependentElements(ElementFilter) | IList<ElementId> | Get all elements that, from a logical point of view, are the children of this Element. | Element |
| GetEntity(Schema) | The returned Entity. | Returns the existing entity corresponding to the Schema if it has been saved in the Element, or an invalid entity otherwise. | Element |
| GetEntitySchemaGuids() | IList<Guid> | Returns the Schema guids of any Entities stored in this element. | Element |
| GetExternalFileReference() | ExternalFileReference | Gets information pertaining to the external file referenced by the element. | Element |
| GetExternalResourceReference(ExternalResourceType) | ExternalResourceReference | Gets the ExternalResourceReference associated with a specified external resource type. | Element |
| GetExternalResourceReferences() | IDictionary | Gets the full map of the external resource references referenced by the element. | Element |
| GetGeneratingElementIds(GeometryObject) | ICollection<ElementId> | Returns the ids of the element(s) that generated the input geometry object. | Element |
| GetGeometryObjectFromReference(Reference) | GeometryObject | Retrieve one geometric primitive contained in the element given a reference. | Element |
| GetMaterialArea(ElementId, Boolean) | double | Gets the area of the material with the given id. | Element |
| GetMaterialIds(Boolean) | ICollection<ElementId> | Gets the element ids of all materials present in the element. | Element |
| GetMaterialVolume(ElementId) | double | Gets the volume of the material with the given id. | Element |
| GetMonitoredLinkElementIds() | IList<ElementId> | Provides the link instance IDs when the element is monitoring. | Element |
| GetMonitoredLocalElementIds() | IList<ElementId> | Provides the local element IDs when the element is monitoring. | Element |
| GetOrderedParameters() | IList<Parameter> | Gets the parameters associated to the element in order. | Element |
| GetParameterFormatOptions(ElementId) | FormatOptions | Returns a FormatOptions override for the element Parameter, or a default FormatOptions if no override exists. | Element |
| GetParameter(ForgeTypeId) | Parameter | Retrieves a parameter from the element given identifier. | Element |
| GetParameters(String) | IList<Parameter> | Retrieves the parameters from the element via the given name. | Element |
| GetPhaseStatus(ElementId) | ElementOnPhaseStatus | Gets the status of a given element in the input phase | Element |
| GetSubelements() | IList<Subelement> | Returns the collection of element subelements. | Element |
| GetTypeId() | ElementId | Returns the identifier of this element's type. | Element |
| GetValidTypes() | ICollection<ElementId> | Obtains a set of types that are valid for this element. | Element |
| GetValidTypes(Document, ICollection<ElementId>) | ICollection<ElementId> | Obtains a set of types that are valid for all given elements. | Element |
| HasPhases() | bool | Returns true if this Element has the properties CreatedPhaseId and DemolishedPhaseId. | Element |
| IsCreatedPhaseOrderValid(ElementId) | bool | Returns true if createdPhaseId and demolishedPhaseId are in order. | Element |
| IsDemolishedPhaseOrderValid(ElementId) | bool | Returns true if createdPhaseId and demolishedPhaseId are in order. | Element |
| IsExternalFileReference() | bool | Determines whether this Element represents an external file. | Element |
| IsHidden(View) | bool | Identifies if the element has been permanently hidden in the view. | Element |
| IsMonitoringLinkElement() | bool | Indicate whether an element is monitoring any elements in any linked models. | Element |
| IsMonitoringLocalElement() | bool | Indicate whether an element is monitoring other local elements. | Element |
| IsPhaseCreatedValid(ElementId) | bool | Returns true if createdPhaseId is an allowed value for the property CreatedPhaseId in this Element. | Element |
| IsPhaseDemolishedValid(ElementId) | bool | Returns true if demolishedPhaseId is an allowed value for the property DemolishedPhaseId in this Element. | Element |
| IsValidType(Document, ICollection<ElementId>, ElementId) | bool | Checks if given type is valid for the set of elements. | Element |
| IsValidType(ElementId) | bool | Checks if given type is valid for this element. | Element |
| LookupParameter(String) | nullNothingnullptr | Attempts to find a parameter on the element which has the given name. | Element |
| RefersToExternalResourceReference(ExternalResourceType) | bool | Determines whether this Element uses external resources associated with a specified external resource type. | Element |
| RefersToExternalResourceReferences() | bool | Determines whether this Element uses external resources. | Element |
| SetEntity(Entity) | None | Stores the entity in the element. If an Entity described by the same Schema already exists, it is overwritten. | Element |
| IsNameUnique(Document, String) | bool | Determines whether the given name could be applied to a new FilterElement, or if it could not be applied because the name is already in use. | FilterElement |
| IsNameUnique(String) | bool | Determines whether a potential filter element name is unique. | FilterElement |
| Name | Return Type | Description | Inherited From |
|---|---|---|---|
| AssemblyInstanceId | ElementId | The id of the assembly instance to which the element belongs. | Element |
| BoundingBox | BoundingBoxXYZ | Retrieves a box that circumscribes all geometry of the element. | Element |
| Category | Category | Retrieves a Category object that represents the category or sub category in which the element resides. | Element |
| CreatedPhaseId | ElementId | Id of a Phase at which the Element was created. | Element |
| DemolishedPhaseId | ElementId | Id of a Phase at which the Element was demolished. | Element |
| DesignOption | DesignOption | Returns the design option to which the element belongs. | Element |
| Document | Document | Returns the Document in which the Element resides. | Element |
| Geometry | GeometryElement | Retrieves the geometric representation of the element. | Element |
| GroupId | ElementId | The id of the group to which an element belongs. | Element |
| Id | ElementId | A unique identifier for an Element in an Autodesk Revit project. | Element |
| IsTransient | bool | Indicates whether an element is transient or permanent. | Element |
| IsValidObject | bool | Specifies whether the .NET object represents a valid Revit entity. | Element |
| LevelId | ElementId | The id of the level associated with the element. | Element |
| Location | Location | This property is used to find the physical location of an element within a project. | Element |
| Name | string | A human readable name for the Element. | Element |
| OwnerViewId | ElementId | The id of the view that owns the element. | Element |
| Parameter | Parameter | Retrieves a parameter from the element given a parameter id. | Element |
| Parameter | Parameter | Retrieves a parameter from the element based on its definition. | Element |
| Parameter | Parameter | Retrieves a parameter from the element given a GUID for a shared parameter. | Element |
| ParametersMap | ParameterMap | Retrieves a map containing all of the parameters that are contained within the element. | Element |
| Parameters | ParameterSet | Retrieves a set containing all of the parameters that are contained within the element. | Element |
| Pinned | bool | Identifies if the element has been pinned to prevent changes. | Element |
| UniqueId | string | A stable unique identifier for an element within the document. | Element |
| VersionGuid | Guid | Get the element version Guid. | Element |
| ViewSpecific | bool | Identifies if the element is owned by a view. | Element |
| WorksetId | WorksetId | Get Id of the Workset which owns the element. | Element |