BlenderBIM crashing when loading IFC file

I'm managed to generate and IFC file that crashes BlenderBIM. I know the problem is with the file and not BB. I just can't figure out what I'm doing wrong. The error report and file are attached if anyone wants to take a look. Thanks.


  • This file also crashes Open IFC Viewer 24.7

  • We don't yet support IfcAxis2PlacementLinear which is new in IFC4X3. Could you help write a Python implementation of it?

  • I can try to help, but not sure where to begin. My Python is pretty rusty as I work mostly in C++ - I've recently been in contact with Thomas from IfcOpenShell and the guy who was writing the alignment stuff in python. We are going to collaborate a porting the alignment code to C++. Addressing IfcAxis2PlacementLinear in that work seems logical to me.

    In the meantime, can you point me to a viewer or other tool that might help me figure out if I'm remotely close to generating the correct IFC for AbRV?

  • Addressing IfcAxis2PlacementLinear in that work seems logical to me.

    Sort of. Right now, especially for objects with no geometry but with an object placement, there are pure Python implementations to get the placement matrixes which are currently only implementing local placements (i.e. no grid placements, definitely no linear placements):

    The best scenario would be to have the C++ implementation of it updated to 1) handle all placement types, including linear placements and 2) exposed to Python so that we don't need to do the work twice. Otherwise we'd need to rewrite it in Python which is a shame.

    Ping @aothms

    I'm not sure of a viewer that might help, sorry.

  • It seems like the tricky part is implementing something for IfcPointByDistance. Once that is resolved to a point, IfcAxis2PlacementLinear is equal to IfcAxis2Placement3d. A subset of the curve types for IfcPointByDistance are the same curves as an alignment would use.

    I’m willing to attempt this project but I’ll need some guidance to get started

  • That makes sense, I think @aothms might know the best way to proceed.

  • I had to change my code to generate a straight, flat bridge using IfcLocalPlacement and IfcExtrudedAreaSolid to get a graphical representation
    Starting with baby steps :)

Sign In or Register to comment.