Skip to content

Request to preserve MEP connectivity relationships during native IFC → Fragments conversion #27

Description

@arq-migfrazao

Hello That Open team,

We are developing a BIM coordination application on the That Open Platform that always uses .frag models in the viewer.

We would like to implement a connected MEP system selection workflow:

  • Double-click a duct, pipe, fitting, or other MEP element to select all elements that are physically connected to the same network.
  • Ctrl + double-click to add another connected network to the current selection.
  • The selection must be based on actual IFC connectivity, not on geometric proximity, category, or IFC system membership alone.

We have validated the source IFC and confirmed that the required connectivity data is correctly exported before conversion.

Test IFC details:

  • Schema: IFC4
  • Exporter: Autodesk Revit 2025 / IFC 25.4.0.27
  • IfcDistributionPort: 1,474 instances
  • IfcRelConnectsPorts: 691 instances
  • IfcRelNests: 740 instances
  • 740 MEP elements with ports
  • 44 inferred connected networks, with the largest network containing 62 elements

Therefore, the IFC includes real port-to-port connectivity and port-to-element ownership relationships.

However, after conversion through the native IFC → Fragments workflow, the resulting .frag model does not expose the required connectivity graph. The default IfcImporter relation configuration appears to preserve only general relations such as:

  • IfcRelDefinesByProperties
  • IfcRelDefinesByType
  • IfcRelAssociatesMaterial
  • IfcRelAggregates
  • IfcRelContainedInSpatialStructure

The MEP connectivity relations are not retained by default:

  • IfcRelConnectsPorts
  • IfcRelNests — required in IFC4 to associate ports with their owning elements
  • IfcRelConnectsPortToElement — required for IFC2x3 compatibility

Additionally, relation names are disabled by default (includeRelationNames = false), which makes it difficult for applications to identify available relationship data efficiently.

Requested improvement:

Please consider updating the native IfcFragmenter / IFC-to-Fragments conversion workflow so that MEP connectivity is preserved in the generated .frag file.

At minimum, the conversion should retain the following bidirectional graph:

  1. Port-to-port connections from IfcRelConnectsPorts

    • ConnectedTo
    • ConnectedFrom
  2. Port-to-element ownership from IfcRelNests for IFC4

    • Nests
    • IsNestedBy
  3. Port-to-element ownership from IfcRelConnectsPortToElement for IFC2x3

    • ContainedIn
    • HasPorts

Ideally, this could be either:

  • enabled by default in the native converter, or
  • exposed as an explicit conversion option, for example includeMepConnectivityRelations.

It would also be useful if the generated .frag retained the corresponding relation names, or if the relation graph remained discoverable without requiring relation-name serialization.

Expected result after conversion:

A viewer application should be able to load the .frag, traverse:

selected MEP element → owned ports → connected ports → owner elements

and reliably select only the physically connected MEP network.

This would enable system selection, connectivity-based inspection, network isolation, and MEP coordination workflows directly on .frag models, without requiring the original IFC to remain loaded in the application.

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions