buildingSMART / buildingSMART/IFC4.x-development

Proposed changes to IfcGridPlacement and IfcLinearPlacement

Open
#1,142 0 comments 0 reactions 0 assignees View on GitHub
before-NWI IF
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.