IFC Diff icon

IFC Diff

Compare different versions of IFC files, for documentation see Ifcopenshell.

Overview

This node, named "IFC Diff," is designed to compare two versions of IFC (Industry Foundation Classes) files. IFC files are widely used in the architecture, engineering, and construction industries for building information modeling (BIM). The node helps identify differences between an older and a newer IFC file version, which is useful for tracking changes in building models over time.

Common scenarios where this node is beneficial include:

  • Verifying updates or modifications made to a BIM model.
  • Quality control by detecting unintended changes between design iterations.
  • Documentation of changes for project stakeholders.
  • Filtering comparisons to specific element types (e.g., walls) or relationships.

Practical example: A user wants to compare two IFC files representing different stages of a building design to find out what geometry or property changes have been made. They can specify which relationships to compare (like geometry, attributes, classifications), optionally filter elements (e.g., only walls), and generate a JSON report summarizing the differences.

Properties

Name Meaning
Old File The name of the old IFC file to compare against the new one.
New File The name of the new IFC file to compare with the old one.
Output File The name of the output file where the comparison result will be saved (default: diff.json).
Relationships Select which relationships to compare between the IFC files. Options include: Aggregate, Attributes, Classification, Container, Geometry (default), Property Sets, Type. If none selected, defaults to Geometry.
Is Shallow Boolean flag indicating whether to stop comparison after the first difference is found for an element (true means shallow comparison).
Filter Elements Optional IFC query string to filter elements for comparison, e.g., "IfcWall" to compare only wall elements.

Output

The node outputs a JSON array containing the differences found between the two IFC files according to the specified parameters. Each item in the output corresponds to a detected difference, enriched with metadata about the execution context.

  • The JSON structure includes details about changed elements and their differing relationships (geometry, attributes, etc.).
  • The output file name is configurable but defaults to diff.json.
  • No binary data output is produced by this node.

Dependencies

  • Requires access to an external API service that performs the IFC diff operation. This service is called via a POST request to the /ifcdiff endpoint.
  • The node requires an API authentication credential configured in n8n to authorize requests to this external IFC pipeline API.
  • No other external dependencies are indicated.

Troubleshooting

  • Common issues:

    • Incorrect or missing file names for the old or new IFC files will cause errors.
    • Providing invalid IFC queries in the filter may result in no elements being compared or errors from the API.
    • Selecting no relationships and not relying on the default might lead to unexpected results.
    • Network or authentication failures when calling the external API.
  • Error messages:

    • Errors returned from the external API will be captured and included in the output if "Continue On Fail" is enabled.
    • Typical error messages relate to invalid input parameters or authorization failures.
  • Resolution tips:

    • Ensure both IFC file names are correct and accessible by the API.
    • Validate the filter query syntax before running.
    • Confirm API credentials are correctly set up in n8n.
    • Enable "Continue On Fail" to handle errors gracefully during batch processing.

Links and References

Discussion