ParameterFilterElement Class


Parameter Filter Element Class

Admits elements that satisfy two conditions:
  1. The element's category must be one of a certain set of allowed categories.
  2. The element must pass a series of filter rules.
Inheritance Hierarchy

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public class ParameterFilterElement : FilterElement

The ParameterFilterElement type exposes the following members.

Properties
Name Description
Public property AssemblyInstanceId The id of the assembly instance to which the element belongs.
(Inherited from Element )
Public property Code example BoundingBox Retrieves a box that circumscribes all geometry of the element.
(Inherited from Element )
Public property Category Retrieves a Category object that represents the category or sub category in which the element resides.
(Inherited from Element )
Public property Code example CreatedPhaseId Id of a Phase at which the Element was created.
(Inherited from Element )
Public property Code example DemolishedPhaseId Id of a Phase at which the Element was demolished.
(Inherited from Element )
Public property Code example DesignOption Returns the design option to which the element belongs.
(Inherited from Element )
Public property Document Returns the Document in which the Element resides.
(Inherited from Element )
Public property Code example Geometry Retrieves the geometric representation of the element.
(Inherited from Element )
Public property GroupId The id of the group to which an element belongs.
(Inherited from Element )
Public property Code example Id A unique identifier for an Element in an Autodesk Revit project.
(Inherited from Element )
Public property IsModifiable Identifies if the element is modifiable.
(Inherited from Element )
Public property IsTransient Indicates whether an element is transient or permanent.
(Inherited from Element )
Public property IsValidObject Specifies whether the .NET object represents a valid Revit entity.
(Inherited from Element )
Public property LevelId The id of the level associated with the element.
(Inherited from Element )
Public property Code example Location This property is used to find the physical location of an element within a project.
(Inherited from Element )
Public property Name A human readable name for the Element.
(Inherited from Element )
Public property OwnerViewId The id of the view that owns the element.
(Inherited from Element )
Public property Code example Parameter BuiltInParameter Retrieves a parameter from the element given a parameter id.
(Inherited from Element )
Public property Parameter Definition Retrieves a parameter from the element based on its definition.
(Inherited from Element )
Public property Parameter Guid Retrieves a parameter from the element given a GUID for a shared parameter.
(Inherited from Element )
Public property Code example Parameters Retrieves a set containing all of the parameters that are contained within the element.
(Inherited from Element )
Public property ParametersMap Retrieves a map containing all of the parameters that are contained within the element.
(Inherited from Element )
Public property Pinned Identifies if the element has been pinned to prevent changes.
(Inherited from Element )
Public property Code example UniqueId A stable unique identifier for an element within the document.
(Inherited from Element )
Public property VersionGuid Get the element version Guid.
(Inherited from Element )
Public property ViewSpecific Identifies if the element is owned by a view.
(Inherited from Element )
Public property WorksetId Get Id of the Workset which owns the element.
(Inherited from Element )
Top
Methods
Name Description
Public method AllRuleParametersApplicable(ElementFilter) Checks that the parameters of the rules used by the given ElementFilter are valid for this filter's categories.
Public method Static member AllRuleParametersApplicable(Document, ICollection ElementId , ElementFilter) Checks that the parameters of the given ElementFilter (representing a combination of rules) are valid for the given set of categories.
Public method ArePhasesModifiable Returns true if the properties CreatedPhaseId and DemolishedPhaseId can be modified for this Element.
(Inherited from Element )
Public method CanBeHidden Indicates if the element can be hidden in the view.
(Inherited from Element )
Public method CanBeLocked Identifies if the element can be locked.
(Inherited from Element )
Public method CanDeleteSubelement Checks if given subelement can be removed from the element.
(Inherited from Element )
Public method CanHaveTypeAssigned Identifies if the element can have a type assigned.
(Inherited from Element )
Public method ChangeTypeId(ElementId) Changes the type of the element.
(Inherited from Element )
Public method ClearRules Removes all rules from this filter.
Public method Static member Create(Document, String, ICollection ElementId ) Creates a new ParameterFilterElement in the given document.
Public method Static member Create(Document, String, ICollection ElementId , ElementFilter) Creates a new ParameterFilterElement in the given document.
Public method DeleteEntity Deletes the existing entity created by %schema% in the element
(Inherited from Element )
Public method DeleteSubelement Removes a subelement from the element.
(Inherited from Element )
Public method DeleteSubelements Removes the subelements from the element.
(Inherited from Element )
Public method Dispose
(Inherited from Element )
Public method ElementFilterIsAcceptableForParameterFilterElement(ElementFilter) Checks that an ElementFilter is acceptable for use in defining the filtering rules for a ParameterFilterElement (i.e., for view filtering).
Public method Static member ElementFilterIsAcceptableForParameterFilterElement(Document, ISet ElementId , ElementFilter) Checks that an ElementFilter is acceptable for use in defining the filtering rules for a given list of categories (i.e., for view filtering).
Public method Equals Determines whether the specified object is equal to the current object.
(Inherited from Object )
Public method EvaluateAllParameterValues Evaluates all the parameters' values of the element.
(Inherited from Element )
Public method EvaluateParameterValues Evaluate the parameters' values of the element on the given parameter ID set.
(Inherited from Element )
Public method GetCategories Gets the categories admitted by this filter.
Public method GetDependentElements Get all elements that, from a logical point of view, are the children of this Element.
(Inherited from Element )
Public method GetElementFilter Returns an ElementFilter representing the combination of rules used by this filter.
Public method GetElementFilterParameters Retrieves a list of the parameters associated with each rule in the filter.
Public method GetElementFilterParametersForCategory 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%.
Public method GetEntity Returns the existing entity corresponding to the Schema if it has been saved in the Element, or an invalid entity otherwise.
(Inherited from Element )
Public method GetEntitySchemaGuids Returns the Schema guids of any Entities stored in this element.
(Inherited from Element )
Public method GetExternalFileReference Gets information pertaining to the external file referenced by the element.
(Inherited from Element )
Public method GetExternalResourceReference Gets the ExternalResourceReference associated with a specified external resource type.
(Inherited from Element )
Public method GetExternalResourceReferenceExpanded Gets the collection of ExternalResourceReference associated with a specified external resource type.
(Inherited from Element )
Public method GetExternalResourceReferences Gets the map of the external resource references referenced by the element.
(Inherited from Element )
Public method GetExternalResourceReferencesExpanded Gets the expanded map of the external resource references referenced by the element.
(Inherited from Element )
Public method Code example GetGeneratingElementIds Returns the ids of the element(s) that generated the input geometry object.
(Inherited from Element )
Public method GetGeometryObjectFromReference Retrieve one geometric primitive contained in the element given a reference.
(Inherited from Element )
Public method GetHashCode Serves as the default hash function.
(Inherited from Object )
Public method GetMaterialArea Gets the area of the material with the given id.
(Inherited from Element )
Public method GetMaterialIds Gets the element ids of all materials present in the element.
(Inherited from Element )
Public method GetMaterialVolume Gets the volume of the material with the given id.
(Inherited from Element )
Public method GetMonitoredLinkElementIds Provides the link instance IDs when the element is monitoring.
(Inherited from Element )
Public method GetMonitoredLocalElementIds Provides the local element IDs when the element is monitoring.
(Inherited from Element )
Public method GetOrderedParameters Gets the parameters associated to the element in order.
(Inherited from Element )
Public method GetParameter Retrieves a parameter from the element given identifier.
(Inherited from Element )
Public method GetParameterFormatOptions Returns a FormatOptions override for the element Parameter, or a default FormatOptions if no override exists.
(Inherited from Element )
Public method GetParameters Retrieves the parameters from the element via the given name.
(Inherited from Element )
Public method GetPhaseStatus Gets the status of a given element in the input phase
(Inherited from Element )
Public method GetSubelements Returns the collection of element subelements.
(Inherited from Element )
Public method GetType Gets the Type of the current instance.
(Inherited from Object )
Public method Code example GetTypeId Returns the identifier of this element's type.
(Inherited from Element )
Public method GetValidTypes Obtains a set of types that are valid for this element.
(Inherited from Element )
Public method HasPhases Returns true if this Element has the properties CreatedPhaseId and DemolishedPhaseId.
(Inherited from Element )
Public method IsCreatedPhaseOrderValid Returns true if createdPhaseId and demolishedPhaseId are in order.
(Inherited from Element )
Public method IsDemolishedPhaseOrderValid Returns true if createdPhaseId and demolishedPhaseId are in order.
(Inherited from Element )
Public method IsExternalFileReference Determines whether this Element represents an external file.
(Inherited from Element )
Public method IsHidden Identifies if the element has been permanently hidden in the view.
(Inherited from Element )
Public method IsMonitoringLinkElement Indicate whether an element is monitoring any elements in any linked models.
(Inherited from Element )
Public method IsMonitoringLocalElement Indicate whether an element is monitoring other local elements.
(Inherited from Element )
Public method IsNameUnique(String) Determines whether a potential filter element name is unique.
(Inherited from FilterElement )
Public method IsPhaseCreatedValid Returns true if createdPhaseId is an allowed value for the property CreatedPhaseId in this Element.
(Inherited from Element )
Public method IsPhaseDemolishedValid Returns true if demolishedPhaseId is an allowed value for the property DemolishedPhaseId in this Element.
(Inherited from Element )
Public method IsValidType(ElementId) Checks if given type is valid for this element.
(Inherited from Element )
Public method LookupParameter Attempts to find a parameter on the element which has the given name.
(Inherited from Element )
Public method RefersToExternalResourceReference Determines whether this Element uses external resources associated with a specified external resource type.
(Inherited from Element )
Public method RefersToExternalResourceReferences Determines whether this Element uses external resources.
(Inherited from Element )
Public method SetCategories Sets the categories admitted by this filter.
Public method SetElementFilter Sets the rules that must be satisfied for a given element to pass this filter.
Public method SetEntity Stores the entity in the element. If an Entity described by the same Schema already exists, it is overwritten.
(Inherited from Element )
Public method ToString Returns a string that represents the current object.
(Inherited from Object )
Top
Example
/// <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."));
          }

          ElementFilter elemFilter = CreateElementFilterFromFilterRules(filterRules);
          parameterFilterElement.SetElementFilter(elemFilter);

          // Apply filter to view
          view.AddFilter(parameterFilterElement.Id);
          view.SetFilterVisibility(parameterFilterElement.Id, false);
          t.Commit();
      }
  }
See Also