public override string WhereRule()
        {
            IfcDimensionCount dim = Dim;

            foreach (IfcCartesianPoint item in _controlPointsList)
            {
                if (item.Dim != dim)
                {
                    return("WR41 BSplineCurve : All control points shall have the same dimensionality.");
                }
            }
            return("");
        }
        public override string WhereRule()
        {
            IfcDimensionCount d = Dim;

            if (d < 2 || d > 3)
            {
                return
                    ("WR1 CartesianPoint : Only two or three dimensional points shall be used for the purpose of defining geometry in this IFC Resource.");
            }
            else
            {
                return("");
            }
        }
 public override void IfcParse(int propIndex, IPropertyValue value)
 {
     switch (propIndex)
     {
         case 0:
         case 1:
             base.IfcParse(propIndex, value);
             break;
         case 2:
             _coordinateSpaceDimension = (sbyte) value.IntegerVal;
             break;
         case 3:
             _precision = value.RealVal;
             break;
         case 4:
             _worldCoordinateSystem = (IfcAxis2Placement) value.EntityVal;
             break;
         case 5:
             _trueNorth = (IfcDirection) value.EntityVal;
             break;
         default:
             this.HandleUnexpectedAttribute(propIndex, value); break;
     }
 }