LearnRevitAPI

🔽 Easy Guide On How to use Revit API Filters (Quick vs Slow vs Logical)

Aug 18, 2025

FEC Quick/Slow Filters

If you want to get the most from FEC collectors then you'll need to look into Revit API Filters.

I'll be honest, the first time you try it, it's confusing. But once you understand the logic behind them and use a few of them, it will start to make sense.

And then you'll have no trouble getting the most from collectors with your own custom filters.

Let's look into that.

3 Types of Revit API Filters

There are 3 types of Revit API Filters for collectors. And don't confuse them with View Filters, that's another topic for another day...

The 3 types are:

These are the base classes, so you'll find a list of all children filters in the inheritance hierarchy. It's great to get an overview since most of them are self explanatory.


Quick Filters

All quick filters are based on ElementQuickFilter Class.
This means you can scroll down to Inheritance Hierarchy to see all of them.

I would recommend scrolling through the list and read their names. They are quite self-explanatory.

💡Also keep in mind that many quick filters are similar to FilteredElementCollector Methods (More on that in a moment...).


Slow Filters

Just like quick filters, all slow filters are based on ElementSlowFilter. So you can scroll down to Inheritance Hierarchy and get a list of all these filters!

💡None of the Slow Filters have shortcuts in the FEC class. However, there are many interesting filters to explore.

Especially ElementParameterFilter and ElementIntersectsFilter. Not the simplest to use, but they are really powerful!


Logical Filters

Lastly, there are only 2 logical filters to combine your Quick or Slow filters into a single filter:

- LogicalAndFilter
- LogicalOrFilter

These filters combine other filters using AND/OR logic.

When applied to a collector, either all filters must be true (AND logic) or at least one (OR logic) to select your elements.


Slow vs Quick Filters?

You might be wondering why there are 'slow' and 'quick' filters?
Does 'slow' mean we shouldn't use those filters? And the answer is - Not at all!

As the name suggests, one type of filter is quicker than the other.

Quick filters work faster because they look at a database record instead of expanding element in the memory.

They don't need to know every detail about the elements to filter them. Therefore they are called - QuickFilters.

On the other hand, slow filters need more information about each element. That means they have to load all the details of the elements into memory to check their different properties. Therefore - Slow Filters.

❗But you shouldn't even worry about this difference.

It's very unlikely you'll even notice any difference in perfomance unless you run it inside a crazy loop with thousand iterations. And even then it will be fast enough.

💪 Focus on making them work and leave efficiency for another day.


How To Use Revit API Filters?

There are 2 ways to apply filters to a collector.

1️⃣ Firstly, you can use shortcut methods.

As you remember, you can create FilteredElementCollector and use its methods to filter elements. And these methods are shortcuts to apply the most used quick filters.

For example when you apply OfClass or OfCategory method to your collector, you're actually creating ElementClassFilter or ElementCategoryFilter. It's just simplified for quicker and easier use.

💡Also, not all Quick-Filters have a shortcut method

2️⃣ Or you can create your own Filter and then apply it.

To apply custom filters to a collector you need to use WherePasses method that takes filter as an argument.

And if you want to combine multiple filters, then you need to use LogicalFilte

Also, if you want to combine multiple filters, then you need to use LogicalAndFilter / LogicalOrFilter and provide it as an argument.

It's actually quite simple once you see an example.


Example: Apply Custom Filter

Now how do we apply filters?

Firstly, we need to create a custom filter and provide it to a collector using WherePases method. Most of them are very easy to create.

Let's start simple and look at - ElementIsCurveDrivenFilter
This filter requires no arguments, so you simply call it to create and apply the collector.

Other filters might have more arguments to create them.
For example - FamilySymbolFilter

This filter needs Family Id as an argument.
I will manually write the ID of that Symbol in this example:


Video Tutorial

I have a video tutorial on how to use ElementParameterFilter. That's a tricky one to use, so I wanted to break it down step by step. You can watch it here.

video preview


P.S.

As I've mentioned Filters are very simple to use once you have an example.

That's why I created in-depth lessons including detailed summaries for every Revit API Filter, so you can understand what they do and most importantly Code Example of how to use it.

You can access them inside LearnRevitAPI Course Lessons:

Here is the preview:

Enjoyed Newsletter?

Leave a Testimonial Here.

⌨️ Happy Coding!
Erik Frits

Join Newsletter

📩 You will be added to Revit API Newsletter

Join Us!

which is already read by 9500+ people!