How to Filter a BOM Table in BricsCAD Mechanical
Quick answer: BricsCAD supports two filter types for a Bill of Materials, resolving both the Main filter and Column filters covered on this hub’s BOM Manager page.
The Main Filter
Works the same way as DATAEXTRACTION: every part in the assembly, at the required level (top, bottom, or hierarchical), is matched against the filter expression first, and only parts that pass get included in the BOM. Since filtering happens before the BOM generates, the expression can’t reference BOM columns, filtering for all standard parts works fine (Is standard is a normal component property), but filtering out parts with a quantity greater than 1 doesn’t, since quantity only exists once the table is built, use a column filter for that instead.
Filter Configurator: the easiest way to build a main filter, available in the BOM Manager panel. Define conditions (a property, a relation, and a target value), using one of six relations: Equal to, Not equal to, Less than, Greater than, Less than or equal to, Greater than or equal to. Group conditions into an “All of” group (AND logic) or an “Any of” group (OR logic), each holding any number of conditions or nested groups, enabling arbitrarily complex filters. Text target values can be picked from a dropdown of all possible values; numeric ones can specify their own unit, auto-converted to the document’s default. Text “Equal to”/”Not equal to” relations support wildcards. The Configurator converts your conditions into a fully editable filter expression, two-way associative with the condition list, visible via a toggle icon.
Syntax, confirming the same structure covered on this hub’s DXD file editing page:
| Operator | Meaning |
|---|---|
== |
equal to |
!= |
not equal to |
< |
less than |
> |
greater than |
<= |
less than or equal to |
>= |
greater than or equal to |
Property names go in quotes; combine relational expressions with and/or (case-sensitive), parenthesize to group them, enclose strings in double quotes, and note that string comparisons are case-sensitive too. == and != support wildcards.
Examples:
- All standard parts:
"Is standard"=="Yes" - All ISO standard parts:
"Is standard"=="Yes" and "Part standard"=="ISO" - All ISO or DIN standard parts:
"Is standard"=="Yes" and ("Part standard"=="ISO" or "Part standard"=="DIN")
Wildcards: match property values against a template, "Component name"=="*nozzle*" finds every component with “nozzle” anywhere in its name, usable as Filter Configurator target values too. Only “Equal to” and “Not equal to” support them, and main filter wildcards are always case-sensitive (column filters let you choose case sensitivity).
| Character | Meaning |
|---|---|
` |
Escapes the next character (literal) |
, |
Separates patterns |
* |
Matches any character sequence, including none |
? |
Matches a single character |
. |
Matches a single non-alphanumeric character |
@ |
Matches a single alphabetic character |
# |
Matches a single numeric character |
~ |
Matches anything except the given pattern (as the first character) |
[...] |
Matches a single enclosed character |
[~...] |
Matches a single non-enclosed character |
- (in brackets) |
Matches a character within the specified range |
The Column Filter
Sets conditions on which rows display based on a specific column’s content, similar to a spreadsheet filter. Unlike the main filter, column filters apply after the BOM table generates, so they work on aggregated content like quantities. Each column supports only one filter, but as many columns as needed can each carry their own; a row only displays if it passes every active column filter.
Configure them via the Column Filter dialog in the BOM Manager. Available filter types depend on the column’s content type:
| Filter type | Column type | Meaning |
|---|---|---|
| always accepted | any | Every value passes |
| equal to / not equal to | numerical | Matches or doesn’t match the target value |
| less than / greater than | numerical | Below or above the target value |
| less than or equal to / greater than or equal to | numerical | At or below / at or above the target value |
| between | numerical | Within the given range, both ends included |
| not in range | numerical | Outside the given range, both ends excluded |
| exactly matches / does not match | text | Matches or doesn’t match the target text exactly |
| starts with / does not start with | text | Begins (or doesn’t) with the given text |
| ends with / does not end with | text | Ends (or doesn’t) with the given text |
| contains / does not contain | text | Includes (or doesn’t) the given text anywhere |
| matches pattern / does not match pattern | text | Matches (or doesn’t) a wildcard template |
| in / not in | text and numerical | Belongs (or doesn’t) to a given set of values |
Every text filter type also lets you choose case-sensitive or case-insensitive matching.
Frequently Asked Questions
Can a main filter exclude parts based on their quantity in the final BOM? No, quantity is generated after the BOM builds, so the main filter can’t reference it, use a column filter instead.
Can a single column have more than one filter applied? No, each column supports only one filter at a time, though every column can have its own simultaneously.
Are wildcards case-sensitive in both filter types? Main filter wildcards are always case-sensitive; column filters let you choose case-sensitive or case-insensitive matching.
Why would I use a column filter instead of the main filter for something like “only show quantities greater than 1”? Because column filters apply after the BOM table generates, letting them work on values (like quantity) that don’t exist until the table is actually built.