buildingSMART / buildingSMART/NextGen-IFC
Do something about IfcPropertySetDefinitionSelect and IfcPropertySetDefinitionSet
- 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