Skip to content

Boolean Operations generating invalid meshes #549

@r-silveira

Description

@r-silveira

Description

I’m trying to load the attached IFC model. In these models, I isolated the problematic geometries: they are all walls generated by Boolean Operations

This is the correct mesh:
Image

When I load the file using the master branch (v5.1.820), I get invalid meshes – only a few triangles are generated. The issue seems to come from the following line in Xbim3DModelContext.cs:

// Line 929
nextGeom = elementGeom.Cut(openingAndProjectionOp.CutGeometries, precision);

Mesh generated by xbim:
Image

For the full model (to which these walls belong), generating some walls gradually allocates more and more memory until the process eventually crashes.

I think it's some bug or inaccuracy in OCC, but this issue seems to have been resolved in version 6, in the feature/netcore branch.

Precision behavior

  • Changing the precision gives mixed results: one wall may succeed, while another one fails.
  • precision = 0.000001 seems to produce correct geometries for these walls.
  • However, the same precision causes uncut geometries in other IFC files created with the same modeling software.

Branch comparison

  • On the master branch (v5.1.820) → meshes are invalid.
  • On the feature/netcore branch → walls are generated correctly.

Is it possible to run version 5.1.820 with the latest OCC release, or are there any known fixes available for 5.1.820?
Ifc models:
https://drive.google.com/drive/folders/1TkmLu1imDf5GRjpeh-vNjB1z0NHaQZMM?usp=sharing

Correct mesh generated by the feature/netcore branch version:

Image Image Image

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