Skip to content

Auto-Assign

Auto-Assign lets you bulk-assign classifications, property values, or spatial containers to BIM elements based on dynamic filter rules — without manually selecting elements first.

Overview

Use Auto-Assign when you need to:

  • Assign a classification to all elements matching a filter (e.g., all IfcWall elements get classification Wand.01)
  • Set a property value across elements that share a characteristic (e.g., set LoadBearing = true for all walls in a specific building storey)
  • Move elements into a spatial container based on their properties
  • Map property values to classifications automatically (e.g., read a "DIN276_Code" property and assign the matching classification)
  • Map property values to spatial containers automatically (e.g., read a "Building" property and assign elements to the matching building storey)

Unlike Batch Editing, which requires manual element selection, Auto-Assign discovers elements automatically using filter conditions.

Opening the Panel

Click the sparkles button in the toolbar to toggle the Auto-Assign sidebar panel.

The panel opens on the right side and has three sections:

  1. Filter — define which elements to target
  2. Assignment — choose what to assign
  3. Apply — execute the assignment

Building a Filter

The filter section uses the same condition builder as the advanced filter panel.

Adding Conditions

  1. Click the + button to add a condition
  2. Select a field (Category, Name, Status, Classification, Spatial Container, etc.)
  3. Select an operator (equals, contains, starts_with, etc.)
  4. Enter a value

Logical Operators

Combine multiple conditions with:

Operator Meaning
AND All conditions must match
OR Any condition can match
NOT Invert the group

Click the operator dropdown at the top of the group to change it.

Nested Groups

Click the group button to add a nested condition group. This lets you build complex logic like:

AND
  Category = "IfcWall"
  OR
    Name contains "Exterior"
    Name contains "Curtain"

Preview Count

As you build filters, a live preview count updates automatically (debounced 500ms). This shows how many elements match your current filter, so you can verify before applying.

Note: Preview is limited to 1000 elements. If more match, the count shows "1000+ (max 1000 shown)".

Assignment Types

Classification

Assign a classification from a class system to matching elements.

  1. Select Assignment type: Classification
  2. Pick a System from the dropdown (shows active class systems for the project)
  3. Pick a Classification from the filtered dropdown

Example — Assign "Wand.01" to all IfcWall elements:

Step Action
Filter Field: Category, Operator: equals, Value: IfcWall
Assignment Type: Classification, System: DIN 276, Class: [330] Wand.01
Preview "847 matching elements"
Apply Click "Apply to 847 elements"

Property

Set a property value in a specific property set for matching elements.

  1. Select Assignment type: Property
  2. Pick or type a Property set name (dropdown shows existing psets from metadata)
  3. Pick or type a Property name (dropdown shows properties for the selected pset)
  4. Enter the Value to assign

Example — Set "FireRating" to "REI 90" for all concrete walls:

Step Action
Filter AND: Category = IfcWall, Description contains concrete
Assignment Type: Property, Pset: Pset_WallCommon, Property: FireRating, Value: REI 90
Apply Click "Apply to 234 elements"

Example — Tag elements with a custom property:

Step Action
Filter OR: Category = IfcDoor, Category = IfcWindow
Assignment Type: Property, Pset: ENJADE_Tags, Property: Phase, Value: Phase 2
Apply Click "Apply to 512 elements"

Classification (by Property)

Automatically assign classifications by reading a property value from each element and matching it to a classification name or code in a class system.

This is useful when elements already carry classification information in a property (e.g., imported from an IFC file or spreadsheet) and you want to convert those text values into proper classification assignments.

  1. Select Assignment type: Classification (by Property)
  2. Pick the source property set and source property that contains classification names or codes
  3. Pick the target class system to match against
  4. Choose Match by: Name (matches the classification display name) or Code (matches the classification code)

How it works:

  1. Auto-Assign reads the source property value from each matching element
  2. For each unique value, it looks up the classification in the target system
  3. Elements whose property value matches a classification get that classification assigned
  4. Elements with no match are skipped (reported in the result)

Example — Assign DIN 276 classifications from a property:

Elements have a property CustomPset.DIN276_Code with values like 330, 340, 410. The project has a DIN 276 class system with matching codes.

Step Action
Filter Category = IfcWall (or no filter to process all elements)
Assignment Type: Classification (by Property)
Source Pset: CustomPset, Property: DIN276_Code
Target System: DIN 276, Match by: Code
Result "Applied to 847 elements, 12 skipped (no match)"

Example — Map description text to classifications:

Step Action
Filter Status = active
Assignment Type: Classification (by Property)
Source Pset: Pset_WallCommon, Property: Reference
Target System: Uniclass, Match by: Name

Classification (by Classification)

Automatically assign classifications by reading each element's existing classification in one class system and matching it to a classification in another system.

This is useful when elements are already classified in one system (e.g., IFC categories) and you want to assign the corresponding classification in a different system (e.g., DIN 276, Uniclass, OmniClass).

  1. Select Assignment type: Classification (by Classification)
  2. Pick the source class system (the one elements already have)
  3. Pick the target class system (the one to assign)
  4. Choose Match by: Name (matches display names across systems) or Code (matches codes across systems)

How it works:

  1. Auto-Assign reads each element's classification in the source system
  2. For each unique source classification, it looks up a matching classification in the target system by name or code
  3. Elements whose source classification matches a target classification get the target assigned
  4. Elements with no source classification or no match are skipped

Example — Map IFC classification to DIN 276:

Elements are classified in an "IFC" system with names like Wand, Decke, Fenster. The DIN 276 system has classes with matching names.

Step Action
Filter Status = active
Assignment Type: Classification (by Classification)
Source system IFC Classification
Target system DIN 276
Match by Name
Result "Applied to 1000 elements, 45 skipped (no match)"

Example — Cross-reference by code:

Elements have Uniclass codes (Ss_25_10_30) and you want to assign the matching OmniClass entries that share the same codes.

Step Action
Filter Category = IfcWall
Assignment Type: Classification (by Classification)
Source system Uniclass
Target system OmniClass
Match by Code

Spatial Container

Move matching elements into a spatial container (building storey, space, etc.).

  1. Select Assignment type: Spatial Container
  2. Enter the container element ID (the numeric ID of the spatial container element)

Example — Move all furniture to "2nd Floor":

Step Action
Filter Category = IfcFurnishingElement
Assignment Type: Spatial Container, Container ID: 4521
Apply Click "Apply to 67 elements"

Spatial Container (by Property)

Automatically assign spatial containment by reading a property value from each element and matching it to a spatial container name in the project.

This is useful when elements carry location information in a property (e.g., "Building A", "Level 02") and you want to assign them to the correct spatial container.

  1. Select Assignment type: Spatial Container (by Property)
  2. Pick the source property set and source property that contains container names
  3. Auto-Assign matches property values against spatial container element names (case-insensitive)

How it works:

  1. Auto-Assign reads the source property value from each matching element
  2. It fetches all spatial containers in the project
  3. For each unique property value, it finds the spatial container whose name matches
  4. Elements whose property value matches a container name get assigned to that container
  5. Elements with no match are skipped

Example — Assign elements to building storeys by property:

Elements have a property ePset_Location.Storey with values like Level 01, Level 02, Roof. The project has IfcBuildingStorey elements with matching names.

Step Action
Filter Category = IfcWall
Assignment Type: Spatial Container (by Property)
Source Pset: ePset_Location, Property: Storey
Result "Applied to 523 elements, 8 skipped (no match)"

Example — Assign rooms to buildings:

Step Action
Filter Category = IfcSpace
Assignment Type: Spatial Container (by Property)
Source Pset: ePset_Location, Property: Building
Result "Applied to 142 elements"

Applying Changes

  1. Verify the preview count matches your expectation
  2. Verify the assignment configuration is correct
  3. Click "Apply to N elements"

During application:

  • A progress bar shows batch progress
  • Elements are updated in chunks of 500
  • Each chunk calls the batch update API

After completion:

  • A success message shows how many elements were updated
  • If any updates failed, a warning shows the failure count
  • For mapping modes, skipped elements (no matching classification/container) are reported separately
  • The grid data refreshes automatically

Limitations

Limitation Details
1000 element cap Each apply operation processes up to 1000 matching elements. For larger datasets, apply multiple times with refined filters.
No undo Changes are applied immediately. Use the element history/catchup panel to review what changed.
Single assignment per apply Each apply sets one classification, one property, or one spatial container. For multiple changes, apply them sequentially.

Tips

  • Start with narrow filters — begin with specific conditions and preview the count before applying. Widen gradually.
  • Use the preview count — always verify the count matches your expectation. If it shows 0, your filter conditions may not match any elements.
  • Chain assignments — apply a classification first, then use that classification as a filter condition to assign properties to the same elements.
  • Property psets — the pset and property dropdowns show values from your project's metadata. You can also type custom names for properties that don't exist yet.
  • Mapping modes — use "by Property" modes when elements already carry classification codes or location names in their properties. Check the skipped count after applying to identify unmatched values that may need manual attention.
  • Case-insensitive matching — both mapping modes match property values case-insensitively. "Level 01" matches a container named "level 01" or "LEVEL 01".