Filter a BOM table

You can filter parts that will form the Bill of Material. There are 2 filter types: main and column.

Main filter

A Main filter works in the same way as the DATAEXTRACTION command. First, all parts in the assembly, at the required level (top, bottom or hierarchical), are matched against the filter expression. Then, only the parts that have passed the filter are included in the BOM.

The filter expression may not refer to BOM columns because filtering is done before the BOM is generated. For example, it is possible to create a filter for all standard parts because Is standard is a normal property of the component. However, it is not possible to set the main filter to filter out all parts with a quantity greater than 1. You must use Column filters for that.

Filter configurator

The easiest way to configure the main filter is to use the Filter Configurator in the BOM manager.

The Filter Configurator allows to define a set of conditions. Each condition defines a relation between a selected property and a target value.

Possible relations are:
  • Equal to
  • Not equal to
  • Less than
  • Greater than
  • Less than or equal to
  • Greater than or equal to
Conditions can be added to a group, which defines how those conditions are treated. There are 2 types of groups:
  • All of group: is "true" if all conditions in that group are "true". This is the same as the "and" operator.
  • Any of group: is "true" if at least one condition in that group results in "true". This is the same as the "or" operator.

A group can contain an arbitrary number of conditions. It can also contain nested groups, thus making complex filters possible.

To add a condition:
  • Select a property from the list of properties.
  • Select a required relation operator and specify the target value.

    For text values, a target value can be selected from the list of all possible values also. For numerical values, their target unit can be specified also in order to automatically convert the value with respect to the default unit of the document.

For text values, "Equal to" and "Not equal to" relations support wild cards.

The Filter Configurator automatically converts the set of conditions into a filter expression, which can be made visible by clicking :

This expression is fully editable and two-way associative with the set of conditions.

Syntax description:

Operator Meaning
== equal to
!= not equal to
< less than
> greater than
<= less than or equal to
>= greater than or equal to
  • Property names must be enclosed in quotes.
  • Relational operators can be combined using "and" and "or" operators. Operator "and" results in "true" if both sides of the operator are true. Operator "or" results in "false" if either left or right side of the operator is true.
  • Logical operators "and" and "or" are case sensitive.
  • Use "(" and ")" to combine two operators into one.
  • String values are enclosed in double quotation marks "".
  • Relational operators for strings are case sensitive.
  • "==" and "!=" operators support wild cards.

For example, to get a BOM of all standard parts, use the following expression:

"Is standard"=="Yes"

To get a BOM of all ISO standard parts, use the following expression:

"Is standard"=="Yes" and "Part standard"=="ISO"

To get a BOM of all ISO or DIN standard parts, use the following expression:

"Is standard"=="Yes" and ("Part standard"=="ISO" or "Part standard"=="DIN")

Wild cards

Wild cards allow you to match property values against a specific template. For example, if you want to find all components containing "nozzle" in their names, the following expression could be used: "Component name"=="*nozzle*".

Wild cards can also be used as target values in the Filter Configurator.

Only "Equal to" and "Not equal to" relational operators support wild cards.

Note: Wild cards in the main filter are case-sensitive. For Column filters, you can specify if you need case-sensitive or case-insensitive matching.

The following special symbols are supported:

Name Character Description
Back quote ` Escape the next character (takes it literally).
Comma , Separate patterns.
Asterisk * Match any character sequence, including a null sequence, anywhere.
Question mark ? Match a single character.
Period . Match a single non-alphanumeric character.
At sign @ Match a single alphabetic character.
Hash tag # Match a single numeric character.
Tilde ~ If the first character in a pattern matches anything but the pattern.
Brackets [...] Match a single enclosed character.
Tilde brackets [~...] Match a single non-enclosed character.
Hyphen - In brackets, match a single character in the specified range.

Column filter

Column filters allows you to quickly set the conditions which rows display, depending on the column content (somewhat similar to filters in some spreadsheet processors). Unlike the main filter, they are applied after the BOM table has been generated. Therefore, it is possible to use column filters for columns with aggregated content, such as quantities.

Each column can have one filter only. However, you can add column filters to as many columns as you need. Only rows that pass all column filters display in the final BOM.

You can configure column filters using the Column Filter dialog box in the BOM manager:

In this dialog box, you can select the type of filter from the list and configure it accordingly. The list of possible filters depends on the column content type, as shown in the table:

Filter type Column type Description
always accepted any all column values are accepted
equal to numerical value should be equal to the target one
not equal to numerical value should be not equal to the target one
less than numerical value should be less than the target one
greater than numerical value should be greater than the target one
less than or equal to numerical value should be less than or equal to the target one
greater than or equal to numerical value should be greater than or equal to the target one
between numerical value should be in the given range, both ends included
not in range numerical value should not be in the given range, both ends excluded
exactly matches text value should exactly match the target one
does not match text value should be different from the target one
starts with text value should start with the given text
does not start with text value should not start with the given text
ends with text value should end with the given text
does not end with text value should not end with the given text
contains text value should contain the given text
does not contain text value should not contain the given text
matches pattern text value should match the given wild card template
does not match pattern text value should not match the given wild card template
in text and numerical value should be in the given set of values
not in text and numerical value should not be in the given set of values

For all text filters, you can also specify whether they should be case-sensitive or case-insensitive.