c1 = NurbsCurve.ByPoints(Autodesk.Point.ByCoordinates

([0,0.1,0.5,0.9,1],[0.1,0.125,0.5,0.74,0.75]));

c2 = Arc.ByCenterPointStartPointEndPoint(Autodesk.Point.ByCoordinates(1,0),

Autodesk.Point.ByCoordinates(1,0,-0.75),Autodesk.Point.ByCoordinates(1,0.75));

c3 = Arc.ByCenterPointStartPointEndPoint(Autodesk.Point.ByCoordinates(0,0.75),

Autodesk.Point.ByCoordinates(0,0.1),Autodesk.Point.ByCoordinates(0,0.75,-0.75));

[c2,c3];

surface1 = Surface.BySweep(c1, t3);

plane1 = Plane.XZ();

geometry1 = Geometry.Mirror(surface1, plane1);

t4 = [surface1, geometry1];

plane2 = Plane.YZ();

geometry2 = Geometry.Mirror(t4, plane2);

t5 = [t4, geometry2];

t6 = List.Flatten(t5, -1);

polySurface1 = PolySurface.ByJoinedSurfaces(t6);

t1 = (0..#10..2);

t2 = (0..#10..1.5);

geometry3 = Geometry.Translate(polySurface1<1>, t1<2>, t2<3>, 0);