buildingSMART / buildingSMART/NextGen-IFC
Merge IfcConnectedFaceSet and IfcShell
- Dominant language
- TeX
- Stars
- 64
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
In IFC4, there is a select type `IfcShell` and an entity type `IfcConnectedFaceSet` which both seem to cover exactly the same domain of closed and open shells.
TYPE IfcShell = SELECT (IfcClosedShell, IfcOpenShell); END_TYPE;
ENTITY IfcConnectedFaceSet
SUPERTYPE OF(ONEOF(IfcClosedShell, IfcOpenShell))
SUBTYPE OF (IfcTopologicalRepresentationItem);
CfsFaces : SET [1:?] OF IfcFace;
END_ENTITY;
I would suggest to remove the select type and rename the entity type to `IfcShell`.
I understand the origin of this distinction, but it is purely historical baggage: In ISO10303-42, the shell select, blueprint for `IfcShell`, covers a larger variety of shell types, not just closed and open shells, but also wire and vertex shells. But since these types are not implemented in IFC, it became a redundant definition.
This proposal _removes_ one type and _changes_ another.
It clarifies the type graph a bit and removes redundancy.
We don't loose anything.
The removal would not have any effect on the instance level and would be forward compatible.
The rename would have low impact, since the only type that uses `IfcConnectedFaceSet` directly is already deprecated. It could then become abstract.
Automatic migration is also possible.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the IFC4 definitions for IfcShell and IfcConnectedFaceSet, including their IfcClosedShell and IfcOpenShell relationships. Trace the stated uses of IfcConnectedFaceSet and assess the proposed removal, rename, abstraction, and migration impact; done means the redundant type distinction and affected compatibility concerns have been resolved.
Written by the indexing model from the issue text.
Assessment
- Domain
- data
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 25/100