buildingSMART / NextGen-IFC

61 stars 4 forks source link

Removing LISTS of LISTS from schema #91

Open devonsparks opened 2 months ago

devonsparks commented 2 months ago

Description of the proposal:

There are several cases in IFC (11 specifically in IFC4x3 by my count) of schema attributes that declare LISTS of LISTS. Most of these relate to geometry and share a similar flavor:

Despite IFC providing a deep and comprehensive type system, these nested LISTs seem to strip away semantic intent. Two concrete examples:

The other examples are similar, and removal of the nested lists increases model cohesion.

Describe how it contributes to the objectives (https://github.com/buildingSMART/NextGen-IFC/wiki/Towards-a-technology-independent-IFC):

By removing all occurrences of nested lists, all multi-valued attributes become single-level lists or sets, which simplifies encoding and transformation across technology backends.

Is this a proposal to 'add', 'remove' of 'change' entities in the schema (pick one): change

What do we win: consistency, cohesion, simplified integration patterns.

What do we lose: Software vendors would need to update their processing code for these types. Increase in file size.

Schema impact: Likely introduction of several new TYPEs, and removal of all nested LISTS.

Instance model impact: All nested lists replaced with single-level lists or sets of ENTITY or TYPE instances.

Backwards compatible: No.

Automatic migration possible: Yes.

Additional implications:

- Note that not all points need to be satisfied! Backwards compatibility and file size are not concerns.