Is there a method to extract individual assemblies similar to Tekla Structures Assembly Exporter Add-on?

Hi Everyone,

I am new to this forum so bear with me if this is not the appropriate forum. I work for a start-up that is trying to use IFC files for an Augmented reality feature. We are a production-level tool for the Structural Steel industry and have so far relied on Tekla Structures to deliver the payload we need for our system to operate.

Our current workflow is to have our clients upload a complete project IFC as well as individual steel assembly IFC files that are extracted using the Tekla add-on called Assembly Exporter. This works great for customers that use Tekla but leaves out customers using other products.

Most steel modeling software suites do have an IFC export function that will export a 2x3 coordinate view file. We would like to either find an external product that will allow us to perform a similar action to the Assembly Exporter from Tekla or create one ourselves. However, there are some features of the Assembly Exporter that are hard to replicate.

  1. Each assembly must be extracted from the project IFC and given a filename that is the same as the assembly number
  2. Each assembly must be relocated from its global coordinate to a local coordinate of 0,0,0
  3. Each assembly must be placed along the x-axis
  4. The project north side of the assembly should be facing up (nice to have)

So far we have used SimpleBIM and python script to accomplish 1 & 2. The missing piece is to take the assembly from its global orientation/direction and place it along the x-axis. #4 would be the cherry on top but we have a rotate feature in our software that would rectify that. We have the option to handle the model inside of unity but are seeing if there is a way to preprocess the IFCs so we don’t have to modify our software.

Any help would be invaluable!

You can have a look at both the BlenderBIM Add-on and IfcOpenShell, which are fully scriptable, free / open source, and support Python bindings to help script these features. There are also utility functions for calculating local vs global coordinates and coordinate inheritance in IFC.

We are using the IFC Patch, which you created, thanks!!. However, we need to be able to reorient the object from its global orientation to a local orientation that is along the x-axis. Is there a recipe for this or something that we could modify to accomplish this? Also, our understanding of the IFC is evolving but still limited. We are not sure of all the elements that would need to be changed to accomplish this.

Some of the elements we have identified for targeting are IFCDIRECTION. Other information that is available and may be helpful is the Gridline data, however we are not sure how it is identified.

Thanks for the response!