buildingSMART / buildingSMART/NextGen-IFC

Do something about IfcPropertySetDefinitionSelect and IfcPropertySetDefinitionSet

Open
#19 4 comments 3 reactions 0 assignees View on GitHub
enhancement valid proposal
Dominant language
TeX
Stars
64
Forks
4
PR merge metrics
No merged PRs in 30d

Description

There is only 1 EXPRESS TYPE in the IFC schema that is equivalent to a SET, namely `IfcPropertySetDefinitionSet`. This complicates matters drastically when converting to XML or JSON or RDF - for seemingly no reason?

Who uses this? Can this be made an ENTITY in EXPRESS?

```
TYPE IfcPropertySetDefinitionSet = SET [1:?] OF IfcPropertySetDefinition;
END_TYPE;
```

Slightly connected to this, is the `IfcPropertySetDefinitionSelect` TYPE. This TYPE is equivalent to a SELECT of either a TYPE (IfcPropertySetDefinition) OR a SET of ENTITIES (IfcPropertySetDefinitionSet). Also this is very (understatement) complicated to translate to any language other than EXPRESS and English.

```
TYPE IfcPropertySetDefinitionSelect = SELECT (
IfcPropertySetDefinitionSet,
IfcPropertySetDefinition);
END_TYPE;

TYPE IfcPropertySetDefinitionSet = SET [1:?] OF IfcPropertySetDefinition;
END_TYPE;

ENTITY IfcPropertySetDefinition
ABSTRACT SUPERTYPE OF (ONEOF
(IfcPreDefinedPropertySet
,IfcPropertySet
,IfcQuantitySet))
SUBTYPE OF (IfcPropertyDefinition);
[...]
END_ENTITY;
```

Because of these kinds of choices, everything needs to be objectified in any language other than EXPRESS. EXPRESS is one of the few languages that only knows 'datatypes' in its core (see ISO spec), where most other information modelling languages (Java, C#, RDF, XML, JSON) distinguish between objects/classes and attributes/values. So... EXPRESS allows to just link SETs to ENTITIES to LISTS to TYPES to INTEGERS to anything really, which is a problem for nearly all other languages. Suggestion: keep out these (relatively few) EXPRESS-specific constructs.

Contributor guide

No contributing guide indexed for this repository

Research direction

No files or tests are identified. Start by reviewing the EXPRESS definitions for IfcPropertySetDefinitionSelect and IfcPropertySetDefinitionSet, then examine how the schema is converted to XML, JSON, and RDF; done requires an agreed resolution for whether these constructs should change and an updated schema or documented decision.

Written by the indexing model from the issue text.

Assessment

Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.