bSI-InfraRoom / bSI-InfraRoom/IFC-Specification

IfcVoxelData explicit attribute definition seems incorrect

Open
#755 3 comments 0 reactions 1 assignee Claimed by @SergejMuhic View on GitHub
EXPRESS
Dominant language
No language data
Stars
27
Forks
24
PR merge metrics
No merged PRs in 30d

Description

```
ENTITY IfcIntegerVoxelData
SUBTYPE OF (IfcVoxelData);
Values : ARRAY [1:GridSize] OF IfcInteger;
Unit : OPTIONAL IfcUnit;
DERIVE
GridSize : IfcInteger := SIZEOF(SELF\IfcProduct.Representation.Representations[1].Items[1]\IfcVoxelGrid.Voxels);
END_ENTITY;
```
Usage of DERIVED attribute GridSize seems incorrect here as in the moment of IfcIntegerVoxelData creation GridSize is UNSET and ARRAY can not be instantiated in terms of EXPRESS, ISO 10303 p.11 says:
8.2.1 Array data type
NOTE 1 The bounds may be positive, negative or zero, but may not be indeterminate (?) (see 14.2).

That's why probably all previous IFC schemas use approach with kind of attribute "duplication", as
```
ENTITY IfcRationalBSplineCurveWithKnots
SUBTYPE OF (IfcBSplineCurveWithKnots);
WeightsData : LIST [2:?] OF IfcReal;
DERIVE
Weights : ARRAY [0:UpperIndexOnControlPoints] OF IfcReal := IfcListToArray(WeightsData,0,SELF\IfcBSplineCurve.UpperIndexOnControlPoints);
```
which looks more correct.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.