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.
Comments
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?
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): https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.7.0/src/ifcopenshell-python/ifcopenshell/util/placement.py#L49
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.
Perhaps this viewer might help? https://joss.theoj.org/papers/10.21105/joss.03061.pdf
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 :)
It took a fair bit of work, but I've got a very simple IFC 4x3 ADD2 bridge model in blenderbim using IfcOpenShell v0.8.0. The model uses IfcLinearPlacement, IfcSectionSolidHorizontal, and other alignment related entities.
Hi @Rick_Brice :
Awesome stuff, would you care to share the procedure, if possible?
my colleague created a Python script to automate culvert construction based on parameters (BBIM) and would love to know more of your work
thanks
Btw is there some issue with PGSuperExport.ifc?
Seems to still fail (now with a segfault) on v0.8.0 branch:
Not surprising - the file attached to the earlier post had errors. I've since corrected them. Here is a new file.
Not sure if the error is in the C++ code or the Python code for IFCOS
get_axis2placement
is expectingIfcAxis2PlacementLinear
, notIfcLinearPlacement
. Or you can useget_local_placement
that works withIfcLinearPlacement
. Either way, new file indeed seems to work fine on v0.8.0sweet!
By bad - I'm still kind of new to all of this.
@steverugi The high level procedure is:
1. Build IfcOpenShell v0.8.0 from source using the directions at https://github.com/IfcOpenShell/IfcOpenShell
2. Install BlenderBIM per the instructions for the live development environment, https://docs.blenderbim.org/devs/installation.html
3. Get a valid IFC 4x3 file and have some fun.
Hi @Rick_Brice
Thanks, I am using BBIM quite regularly (and have fun too) and I was wondering if you could specifically tell more about the bridge you showed in the image above
Thanks
@steverugi Specifically, the bridge I showed is a sample bridge created from a default template for the BridgeLink:PGSuper software. I did a presentation on that software for the OSArch Monthly meetup a while back. Here is a link to the recording
There is nothing special about that bridge model. It is a straight, flat, slab-on-beam bridge composed of reinforced concrete deck and precast, prestressed concrete girders. The geometry is modeled very inefficiently. There is a lot of missing information such as material properties, reinforcement, quantities, etc. My goals were to:
1. Write the alignment geometry code for IfcOpenShell
2. Export a simple bridge model
3. Open and review the bridge model in BlenderBIM
So, mission accomplished!
If there is anything else you'd like to know, please reach out.
Rick
Hi @steverugi,
can you share the script you commented?.
If you want model some bridge structures, maybe Freecad can help.
Attached two samples in a zip file and the ifc with the project.
@Rick_Brice, do you plan to extend BridgeLink to create ifc model of the structure?
@avico BridgeLink is not really intended to be an IFC authoring tool, but I do intend to extend its capabilities to model the structure more completely. The software does have substructure geometry that I just haven't exported to IFC yet - I was focused on developing the alignment based geometry and linear referencing in IfcOpenShell. That is a key foundational piece to move forward will all of infrastructure.
Hi @avico
at the moment I am not able to share the script, but you can have a look at it in this video, a bit outdated, the new version includes wing walls
merit goes entirely to my colleague Jonathan, we only share ideas from time to time on how to implement BBIM/IFC in our workflow
thanks
Sorry for being off topic but I can't find another way.
I have tried to test the latest version of Bridgelink but I am encountering problems in the WSDOT configuration server (it does not connect). In a web browser I can see the directory structure but the program does not update the configuration and gives an error. TxDOT server connects without problems
@avico I did a clean install this morning and didn't have any difficulties. Maybe it has something to do with firewall settings on your side.
Connecting to the server isn't critical. On the steps of the configuration wizard you can select the "Use the default configuration" option. This bypasses the server and uses a configuration that is installed locally.
My guess is you want to play with the IFC Export feature. That is an experimental feature and it isn't installed by default. When running the installer (or using the Repair option for a current installation), select the "Experimental Features" option under BridgeLink\PGSuper\PGSplice.
There is a dedicated user forum at PGSuper.com for support. You could also use Issues or Discussions from https://github.com/WSDOT/PGSuper
@Rick_Brice, thanks for the reply. I've known Bridgelink since version 5 and I was trying to test the latest one. I will investigate if it is a local problem in my connection (although the TxDOT server connects without problems with the same ftp protocol).
@avico WSDOT uses FTP and TxDOT uses HTTPS protocol. FTP is a bit more problematic.