Here is another example of what you can do with two way nested arrays, but this time using components that consist merely of different shaped and sized void elements. If you use the new v2012 parameter “Cut with Voids When Loaded”, then the voids do not even need to be face-based - you just need to make sure that parameter is checked in the original family. This does limit the choice of category of the host and nested family, as listed in the v2012 release notes and help files.
Parameters can be used to change the shapes, sizes, individual numbers of repeats (eg 3 circles), and then numbers of patterns repeats (eg 3 circles + 2 squares). As in previous examples this is done by nesting an array of components inside another array in one direction, then nesting and arraying the whole thing in the other direction. This example is hosted onto a flat wall surface. At my RTC presentation someone asked if it was possible to do this on a curved surface - my answer was that it would be a challenge to do this on a curved surface and make it follow the surface. It is however quite easy to host one of these flat two-way arrays of voids onto a curved wall - the array stays flat, at a tangent to where it is attached. You can get some quite interesting results, especially if the voids are tapered (pyramids, cones etc), as seen in the following example.
Flat void pattern on curved wall, with tapered voids
In this example the tapered voids cut smaller holes the further the wall curves away from the flat pattern. In order to make the void pattern actually follow the surface, you would need to make the arrays work in a radial pattern, with linked radius parameters - it could get immensely complicated very quickly.