I’m interested in creating Structural Surface members using IFCscript. However, I’m facing an issue where RFEM doesn’t seem to recognize the surfaces correctly, and the structure of the IFC tree appears different (see the image below). Specifically, the RFEM IfcTree contains IfcStructuralCurveConnection(s), but the constructor for this class is private.

It’s worth noting that the IfcStructuralSurfaceMember doesn’t require IfcStructuralCurveConnection(s), whereas the IfcStructuralCurveMembers need IfcStructuralPointConnection(s).

Could someone assist me in generating the correct Ifc tree that RFEM is producing.

Kind regards,
Max Hamelijnck

@jonm I use the IFC script of GeometryGym.Ifc, do you have an answer to this question?

Hi Max,

Thanks for the query. How old is the build of the toolkit you are using?
If you can either update to latest nuget package, or fetch latest commits, there is now a public constructor for IfcStructuralCurveConnection. Refer to https://github.com/GeometryGym/GeometryGymIFC/blob/22a4a08dfcee05889933ab6d1d96f10c7287fb00/Core/IFC/IFC%20S.cs#L1609

Each class should have a public constructor (the constructors with duplicateoptions as a parameter are more for extracting a subset of an IFC data set). Typically there will be a constructor with the mandatory attributes, and many classes have a constructor with typical attributes.

Some of the relationships you highlight are inverse, so it’s a constructor on the related class that is required, rather than a direct attribute being set.

The toolkit should facilitate you to generate the same hierarchy as RFEM output.