I would first try create a few pavers and then group the in the pattern you want, and then use array rectangular to lay them out, and then ungroup them so they can be flowed.
Perhaps you may want the surface to be on the top of the source bricks, so when when you choose the bottom target surface, they are kind-of floated to the top, where one would walk in real life. Otherwise, the spaces will open wide between them, like turning a book inside out.
If it works well enough, you might be able to just offset the target surface down to make the cement level below the bricks.
Just a little fillet on the bricks might make them look more natural. You might want to turn each kind of brick into a block before flowing them, and then you can set the rendering mesh to a lower quality, so that it won’t slow your computer. When you are done, and want to do final renders, you can make the mesh a higher quality, then. If the bricks, are just boxes, then the mesh likely won’t matter, and the blocking them likely won’t be worth the bother.
You can also soften corners for rendering, using the object’s properties.
And of course, before you even begin, you might want to investigate to see if a bumpmap will give you enough effect to achieve your goal.
The lintel over the door is 3D, but there ain’t no 3D real bricks here. This is hard to sell, too because there is no colormap.
The deck is flat, too. The lintel face is smooth, without the bumpmap.