buildingSMART Forums

IfcSurfaceCurveSweptAreaSolid examples and documentation issues


959899_test.4bsp.ifc (23.6 KB)
959899_test.4poly.ifc (29.2 KB)
959899_test.2x3.ifc (38.6 KB)
959899_test.2x3brep.ifc (298.3 KB)
Attached some examples using IfcSurfaceCurveSweptAreaSolid.
I am looking for responses and comments from importers who supports it…

There are some unclear things in the documentation.
Controlling implicit transformation looks a bit overcomplicated.
And unclear how it interacts with IfcSweptAreaSolid.Position: if Position != E - what is profile and directrix location?
@TLiebich, could you please have a look


And one note to FixedReferenceSwept.

Documentation says “local X axis is in the direction of the projection of FixedReference onto the normal plane to the directrix at this point.”

There is something inaccurate here, a normal plane may be orthogonal to FixedReference
Most probably it says about small (differential) parameter change but in this case see no real difference with SurfaceCurveSwept for planar directrix.


I personally would like to see an alteration to fixed reference sweep where the direction could nominate x or y axis of the profile. You can achieve the same result by using a transformed profile ( * IfcDerivedProfileDef ) but this isn’t ideal in some use cases.


I quickly ran them though IfcOpenShell [1] and I get the same result visually for all four cases. So that’s a success I guess. But frankly IfcOpenShell’s support for IfcSurfaceCurveSweptAreaSolid is fairly limited, for example the Start- and End param are ignored. That part of the code base is five years old, there just weren’t enough public test models at that time.

And unclear how it interacts with IfcSweptAreaSolid.Position

IfcOpenShell just moves the resulting solid by that transformation as a final operation. I think that makes sense, since it’s a parameter on the supertype it should be agnostic to how solid was constructed.


1 Like