/// <summary>
 /// Compares two objects for geometric equality
 /// </summary>
 /// <param name="a"></param>
 /// <param name="b">object to compare with</param>
 /// <returns></returns>
 public static bool GeometricEquals(this IfcLoop a, IfcLoop b)
 {
     if (a.Equals(b)) return true;
     IfcPolyLoop aLoop = a as IfcPolyLoop;
     IfcPolyLoop bLoop = b as IfcPolyLoop;
     if (aLoop != null && bLoop != null)
         return aLoop.GeometricEquals(bLoop);
     else
         throw new XbimGeometryException("Only loops of type IfcPolyLoop are currently supported");
 }
 public override void IfcParse(int propIndex, IPropertyValue value)
 {
     switch (propIndex)
     {
         case 0:
             _bound = (IfcLoop) value.EntityVal;
             break;
         case 1:
             _orientation = value.BooleanVal;
             break;
         default:
             this.HandleUnexpectedAttribute(propIndex, value); break;
     }
 }