> For the complete documentation index, see [llms.txt](https://1spatial.gitbook.io/fme-form-beginner/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://1spatial.gitbook.io/fme-form-beginner/transformer-usage/conditional-filtering/other-key-filter-transformers.md).

# Other Key Filter Transformers

The Tester and TestFilter are not the only useful filter transformers.

## AttributeFilter

The AttributeFilter transformer directs features by values in a chosen attribute. It is not a binary test (Yes/No) but a way to separate many values for a single attribute, for example:

* Is that road an Arterial, Collector, NonCity, Other, Private, Residential, or Secondary?

<figure><img src="/files/NdOGBjLXaer3W53v8alM" alt=""><figcaption></figcaption></figure>

If you were using seven Tester transformers to separate this data, you could save space on the workspace canvas and replace that setup with just a single AttributeFilter.

{% hint style="info" %}
**NOTE**

*In almost every scenario where you are using multiple Tester transformers, it's possible to use a different filtering transformer to achieve the same result but using much less space on the canvas.*
{% endhint %}

The AttributeFilter also works with numeric values; however, its only "operator" is to find equivalency (=), so you would rarely use it for arithmetical tests. In that scenario, the better solution is the AttributeRangeFilter.

## AttributeRangeFilter

The AttributeRangeFilter carries out the same operation as the AttributeFilter, except that it can handle a range of numeric values instead of just a simple one-to-one match.

For example, we might want to separate data based on a range of snowfall values, like so:

<figure><img src="/files/aMurTAiZcE1mxaAYJFyX" alt=""><figcaption></figcaption></figure>

Notice that the AttributeRangeFilter parameters dialog has a Generate button to generate ranges automatically from a set of user-defined extents.

## GeometryFilter

The GeometryFilter directs features on the basis of geometry type; for example, point, line, area, ellipse:

<figure><img src="/files/cVFhEhInjWSooqmuuNdd" alt=""><figcaption></figcaption></figure>

It can even filter data based on null geometry (tabular records):

<figure><img src="/files/qIvfUIJXdvqDdRhmOFc0" alt=""><figcaption></figcaption></figure>

The GeometryFilter is useful for:

* Filtering out unwanted geometry types; for example, removing non-linear features before using an AreaBuilder transformer
* Validating geometry against a list of permitted types; for example, where the dataset is constrained to either point or area features (above)
* Dividing up geometry types to write to separate destination Feature Types; for example, when writing to a geometry-restricted format such as Esri Shapefile


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://1spatial.gitbook.io/fme-form-beginner/transformer-usage/conditional-filtering/other-key-filter-transformers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
