Ejemplo n.º 1
0
 /// <summary>
 /// Convert an IfcParameterizedProfileDef to an ICurve
 /// </summary>
 /// <param name="profile"></param>
 /// <returns></returns>
 public static ICurve ToICurve(this IfcParameterizedProfileDef profile)
 {
     if (profile is IfcRectangleProfileDef)
     {
         var rect = (IfcRectangleProfileDef)profile;
         return(Polygon.Rectangle((IfcLengthMeasure)rect.XDim, (IfcLengthMeasure)rect.YDim, rect.Position.Location.ToVector3()));
     }
     else if (profile is IfcCircleProfileDef)
     {
         var circle = (IfcCircleProfileDef)profile;
         return(Polygon.Circle((IfcLengthMeasure)circle.Radius));
     }
     else
     {
         throw new Exception($"The IfcParameterizedProfileDef type, {profile.GetType().Name}, is not supported.");
     }
 }
Ejemplo n.º 2
0
 private static ICurve ToCurve(this IfcParameterizedProfileDef profile)
 {
     if (profile is IfcRectangleProfileDef)
     {
         var rect = (IfcRectangleProfileDef)profile;
         var p    = Polygon.Rectangle((IfcLengthMeasure)rect.XDim, (IfcLengthMeasure)rect.YDim);
         var t    = new Transform(rect.Position.Location.ToVector3());
         return(t.OfPolygon(p));
     }
     else if (profile is IfcCircleProfileDef)
     {
         var circle = (IfcCircleProfileDef)profile;
         return(new Circle((IfcLengthMeasure)circle.Radius));
     }
     else
     {
         throw new Exception($"The IfcParameterizedProfileDef type, {profile.GetType().Name}, is not supported.");
     }
 }