Hi,
are there any resources out there which point out the structural changes of 4.3 RC2 to 4.1 final? It seems that the IfcAlignment composition has been completely refactored…
I evaluated the lost elements from IFC4X1 to IFC4X3_RC2:
Layer | Element (entity or enum) |
---|---|
GeometricConstraintResource | Alignment2DHorizontal |
GeometricConstraintResource | Alignment2DHorizontalSegment |
GeometricConstraintResource | Alignment2DSegment |
GeometricConstraintResource | Alignment2DVertical |
GeometricConstraintResource | Alignment2DVerticalSegment |
GeometryResource | DistanceExpression |
GeometryResource | OrientationExpression |
ProductExtension | BuildingElement |
ProductExtension | BuildingElementType |
ProductExtension | TransportElementTypeEnum |
I think, this will be the structural changes (replaced by new elements).
Hope it helps.
These are the new entities from IFC4X1 to IFC4X3_RC2 (only the three layers above):
Layer | Entity |
---|---|
GeometricConstraintResource | AlignmentCantSegment |
GeometricConstraintResource | AlignmentHorizontalSegment |
GeometricConstraintResource | AlignmentVerticalSegment |
GeometryResource | Axis2PlacementLinear |
GeometryResource | BlossCurve |
GeometryResource | Clothoid |
GeometryResource | CurveSegment |
GeometryResource | DirectrixCurveSweptAreaSolid |
GeometryResource | GradientCurve |
GeometryResource | PointByDistanceExpression |
GeometryResource | Segment |
GeometryResource | SegmentedReferenceCurve |
GeometryResource | SeriesParameterCurve |
ProductExtension | AlignmentHorizontal |
ProductExtension | AlignmentSegment |
ProductExtension | AlignmentVertical |
ProductExtension | Bridge |
ProductExtension | BridgePart |
ProductExtension | BuiltElement |
ProductExtension | BuiltElementType |
ProductExtension | Facility |
ProductExtension | FacilityPart |
ProductExtension | LinearElement |
ProductExtension | RelPositions |
Thanks again for this summary. I’ve done some investigations by my own. It’s a currently incomplete overall picture… but here is a class diagram visualisation of the recent RC2 picture only concerning the affected parts of the alignment entities and some of their classifying entities in product extension.
I don’t fully understand some aspects: Why are there two positioning approaches of IfcLinearPlacement and IfcLinearPositioningElement? If I’m correct, there are two product modelling alternative extensions. IfcLinearElement substructures are using enumerations indicating the type of geometry. IfcPositioningElement uses an IfcCurve instance and is linked via IfcRelPositions. Finally the scene node transformation instances of IfcObjectPlacement uses a relative position along a curve.
For your questions:
- Differences between the different versions of IFC standard are compiled in Appendix F of the documentation.
- Project teams of IFC Rail and IFC Infrastructure Extension Deployment projects have promised a report on the changes - WIP, to be published during the course of this year. I can share a working draft of the Linear placement changes - please DM me your email.
-
IfcLinearPlacement
andIfcLinearPositioningElement
serve two different purposes - the former is for positioning of products (it inherits fromIfcObjectPlacement
), the latter is for semantic identification, properties, context, etc. (it inherits fromIfcProduct
) of a linear positioning element. Related, but not at all two approaches to the same thing. - I’m not completely following your statement on “product modelling alternative extensions” - care to elaborate a bit more?
EDIT: Forgot a “)”.
Hi Stefan,
thanks for clarification! What I meant by “alternative” is that there are two “alignment” products now. IfcLinearElement
which is a kind of semantic branch downstream in inheritance hierarchy (for horizontal / vertical) and IfcLinearPositioningElement
. The only difference I see seems to be a more differentiated semantic usage of instances of IfcLinearElement
. Isn’t it?
Oh, you meant IfcLinearElement
, not ...Placement
.
There is still only one IfcAlignment
, inheriting from IfcLinearPositioningElement
. Its decomposition, as usually the case in infrastructure, can be semantically modeled with classes inheriting from IfcLinearElement
. I don’t see a possibility to use IfcLinearElement
directly as an instance of alignment (instead of IfcLinearPositioningElement
).