You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With the change of IfcObjectPlacement having a RelativePlacement attribute, the encoding of relative placement can be simplified greatly.
Currently, one needs to account for the IfcPositioningElement::ObjectPlacement when calculating the correct origin and rotations of the context in which a IfcGridPlacement or IfcLinearPlacement are defined. My proposal is to require the IfcObjectPlacement entity as referenced by IfcPositioningElement::ObjectPlacement to always be the ::RelativePlacement of every IfcObjectPlacement that is done within the context of said IfcPositioningElement.
Example:
Current way of obtaining the correct context of a IfcGridPlacement:
Similar procedure applies to IfcLinearPlacement as well.
A very bad sketch of the schema needed to understand the example (MS Paint FTW):
Action We need to document this in the IfcPositioningElement as well as IfcObjectPlacement descriptions, introducing an informal proposition: For context dependent positioning (like IfcGridPlacement and IfcLinearPlacement), the IfcObjectPlacement::RelativePlacement needs to be filled with the ::ObjectPlacement of the corresponding IfcPositioningElement. Or something in the likes.
Is this a proposal to 'add', 'remove' of 'change' entities in the schema: change
What do we win:
simplified traversion of IFC structure to obtain correct relative placement
removal of inverses "pointing" from resource layer upwards
What do we lose:
backwards compatibility?
Schema impact:
removing PositioningElement inverse of IfcBoundedCurve
removing PartOf.. inverses of IfcGridAxis
Instance model impact:
none
Backwards compatible:
Yes: from the physical file perspective. (given that IfcObjectPlacement::RelativePlacement change is out-of-scope of this change)
No: for all implementers taking the inverses into account.
Automatic migration possible:
Yes (given that IfcObjectPlacement::RelativePlacement change is out-of-scope of this change).
The text was updated successfully, but these errors were encountered:
I'm all for a WHERE rule - probably demanding that IfcGridPlacement and IfcLinearPlacement have their RelativePlacement attribute filled with an instance of ifcLocalPlacement - and then specifying in the informal proposition that it has to be the same as the corresponding IfcPositioningElement uses?
Good suggestion to simplify relative positioning.
IFC5 is an opportunity to improve and simplify lots of things. Relative positioning is very important as well to re-evaluate.
With the conformance levels replacing MVDs in IFC5, it is even more important to make sure that this is as efficient and effective as possible.
Focusing on WHERE rules alone is not a solution though, since the solution needs to work in other representations/languages as well.
Description of the proposal:
With the change of
IfcObjectPlacement
having aRelativePlacement
attribute, the encoding of relative placement can be simplified greatly.Currently, one needs to account for the
IfcPositioningElement::ObjectPlacement
when calculating the correct origin and rotations of the context in which aIfcGridPlacement
orIfcLinearPlacement
are defined. My proposal is to require theIfcObjectPlacement
entity as referenced byIfcPositioningElement::ObjectPlacement
to always be the::RelativePlacement
of everyIfcObjectPlacement
that is done within the context of saidIfcPositioningElement
.Example:
Current way of obtaining the correct context of a
IfcGridPlacement
:Proposal:
Similar procedure applies to
IfcLinearPlacement
as well.A very bad sketch of the schema needed to understand the example (MS Paint FTW):
Action We need to document this in the
IfcPositioningElement
as well asIfcObjectPlacement
descriptions, introducing an informal proposition: For context dependent positioning (likeIfcGridPlacement
andIfcLinearPlacement
), theIfcObjectPlacement::RelativePlacement
needs to be filled with the::ObjectPlacement
of the correspondingIfcPositioningElement
. Or something in the likes.Is this a proposal to 'add', 'remove' of 'change' entities in the schema: change
What do we win:
What do we lose:
Schema impact:
PositioningElement
inverse ofIfcBoundedCurve
PartOf..
inverses ofIfcGridAxis
Instance model impact:
Backwards compatible:
IfcObjectPlacement::RelativePlacement
change is out-of-scope of this change)Automatic migration possible:
IfcObjectPlacement::RelativePlacement
change is out-of-scope of this change).The text was updated successfully, but these errors were encountered: