buildingSMART / buildingSMART/NextGen-IFC

Merge IfcConnectedFaceSet and IfcShell

Open
#55 1 comment 1 reaction 0 assignees View on GitHub
Decision made enhancement ISG fall 2020 topic
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.