We can use Propagate to copy objects over a certain pattern. In this example we'll create a pattern of skylights in this roof.
We'll launch Propagate Pattern. First, we'll select the base solid, which is the roof in this case.
Next we'll select the detail. We want to create a pattern of skylights, so we'll select this skylight as our detail object.
Hovering over the suggestion icon, we can see there are two options.
The first option is to propagate to similar locations. In this case this will be the four corners of the slab.
The second option is to create a grid on top of this slab, by adding rows and columns.
We can explode this suggestion so we can individually toggle the different suggestions. In this case we'll use this to create a seemingly random pattern.
Finally we'll press Enter to accept.
If a Grid is drawn on top of the base solid, then this grid will be detected and a third option will automatically be presented: create a pattern according to this grid.
Again, the two options that were available in the previous example are also available here.
Now a third option is available: propagate along this Grid.
We can again explode to have control over the individual suggestions.