Pattern

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);