public override void Parse(int propIndex, IPropertyValue value, int[] nestedIndex)
        {
            switch (propIndex)
            {
            case 0:
                base.Parse(propIndex, value, nestedIndex);
                return;

            case 1:
                ((ItemSet <IfcParameterValue>)_normals
                 .InternalGetAt(nestedIndex[0]))
                .InternalAdd((IfcParameterValue)(value.RealVal));
                return;

            case 2:
                _closed = value.BooleanVal;
                return;

            case 3:
                ((ItemSet <IfcPositiveInteger>)_coordIndex
                 .InternalGetAt(nestedIndex[0]))
                .InternalAdd((IfcPositiveInteger)(value.IntegerVal));
                return;

            case 4:
                _pnIndex.InternalAdd(value.IntegerVal);
                return;

            default:
                throw new XbimParserException(string.Format("Attribute index {0} is out of range for {1}", propIndex + 1, GetType().Name.ToUpper()));
            }
        }
        public override void Parse(int propIndex, IPropertyValue value, int[] nestedIndex)
        {
            switch (propIndex)
            {
            case 0:
                base.Parse(propIndex, value, nestedIndex);
                return;

            case 1:
                _values.InternalAdd((IfcStructuralLoadOrResult)value.EntityVal);
                return;

            case 2:
                ((ItemSet <IfcLengthMeasure>)_locations
                 .InternalGetAt(nestedIndex[0]))
                .InternalAdd((IfcLengthMeasure)(value.RealVal));
                return;

            default:
                throw new XbimParserException(string.Format("Attribute index {0} is out of range for {1}", propIndex + 1, GetType().Name.ToUpper()));
            }
        }
        public override void Parse(int propIndex, IPropertyValue value, int[] nestedIndex)
        {
            switch (propIndex)
            {
            case 0:
                _coordinates = (IfcCartesianPointList3D)(value.EntityVal);
                return;

            case 1:
                ((ItemSet <IfcParameterValue>)_normals
                 .InternalGetAt(nestedIndex[0]))
                .InternalAdd((IfcParameterValue)(value.RealVal));
                return;

            case 2:
                _closed = value.BooleanVal;
                return;

            default:
                throw new XbimParserException(string.Format("Attribute index {0} is out of range for {1}", propIndex + 1, GetType().Name.ToUpper()));
            }
        }