buildingSMART / buildingSMART/IFC4.x-development
Proposed changes to IfcGridPlacement and IfcLinearPlacement
- Dominant language
- Python
- Stars
- 234
- Forks
- 123
- Avg merge
- 15h 4m
- Merged PRs (30d)
- 5
Description
Spinning off from #974 , three proposed changes target a future version of the current IFC (IFC4.3 ADD2). This issue is to continue the discussion and finalise the proposal, before raising new PR to the appropriate branch.
1. ensure that at _IfcGridPlacement_ and _IfcLinearPlacement_ the _PlacementReTo_ has to be provided. Proposal here to add a where rule. Example:
```
RequiresRelPlacement : EXISTS(SELF\IfcObjectPlacement.PlacementRelTo);
```
2. at _IfcGridPlacement_ and _IfcLinearPlacement_ add where rule to enforce that the parent placement belongs to an _IfcGrid_ or _IfcAlignment_ (better _IfcLinearPositioningElement_). Example:
```
CorrectLinearPlacement : EXISTS(SELF\IfcObjectPlacement.PlacementRelTo)
AND
('IFCGEOMETRICCONSTRAINTRESOURCE.IfcLocalPlacement' IN TYPEOF(SELF\IfcObjectPlacement.PlacementRelTo))
AND
SIZEOF(
QUERY(ObjPlacements <* SELF\IfcObjectPlacement.PlacementRelTo.PlacesObject |
('IFCPRODUCTEXTENSION.IFCLINEARPOSITIONINGELEMENT' IN TYPEOF(ObjPlacements))) = 1;
```
3. at _IfcGridPlacement_ and _IfcLinearPlacement_ add a where rule to enforce that the parent placement has to be an _IfcLocalPlacement_. Example:
```
'IFCGEOMETRICCONSTRAINTRESOURCE.IfcLocalPlacement' IN TYPEOF(SELF\IfcObjectPlacement.PlacementRelTo)
```
Note @I-Sokolov comment:
> Rules are becoming more and more complex.
Why can't linear placement explicitly reference the alignment and redefine PlacementRelTo as derived?
```
ENTITY IfcLinearPlacement SUBTYPE OF (IfcObjectPlacement);
PlacedAlong : IfcLinearPositioningElement;
RelativePlacement : IfcAxis2PlacementLinear;
CartesianPosition : OPTIONAL IfcAxis2Placement3D;
DERIVE
SELF\IfcObjectPlacement.PlacementRelTo : IfcLocalPlacement := THIS\PlacedAlong.ObjectPlacement;
END_ENTITY;
```
cc-ing original contributors: @I-Sokolov @SergejMuhic @TLiebich @aothms @pjanck
Contributor guide
Research direction
Start by reading the proposal in issue #1142 alongside the discussion it spins off from in #974, focusing on IfcGridPlacement and IfcLinearPlacement in IFC4.3 ADD2. Compare the three proposed where-rule changes with the alternative derived PlacementRelTo design. Done means the proposal is resolved and finalized before a new PR is raised against the appropriate branch.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100