What command to array existing objects evenly between two objects?

I have rows of bricks, as a row of sides, all are clones, then row of ends, all are clones, and so on.

If I need to move course 8 up a little, 6 courses need to be evenly arrayed again between course 1 and 8.

How is this done ?




anyone please, I desperately need to do this simple act of distributing brick courses evenly between two courses after having moved a course.
Is there not a command to array objects evenly between two of their kind ?

attached 7 courses to be evenly distributed between the top and bottom courses cs1 and cs9.
distribute brick rows evenly.3dm (2.1 MB)


It’s pretty simple. The following is in V7, but it is the same in V5.

  1. Make a vertical line on the edge of bricks as shown, bottom corner to bottom corner
  2. Divide the line by 8 segments
  3. In Front view, snap/drag the brick corners to the corresponding points
  4. Your grouping simplifies selection of each course, but if not grouped, use crossing selection to get all the bricks in a course.
1 Like

I had been doing something similar dividing up the gap left using a drawn line then divide then moving one row and creating a mortar spacing template.

I truly thought there would be an array command to take two objects , perhaps called arraySelectedObjects with option pick extents,

Would someone care to have a stab at coding such ?

If there are many objects to do this to such a command would be far faster.

Every time I alter a brick course I have to move each course one by one.


Hello- V6 and 7 have the Distribute command, but I don’t think that is in 5.


1 Like

Hi Pascal,
No, Distribute command isnt in V5.
I find myself with deadline jobs and using V5 and perhaps taking longer as a result., cant even see a time to turn win7 pc into win10 then install V7 yet.
catch 22.

So Distribute would do as I imagined ?

Helvetosaur might be kind and show this with Distribute :slight_smile:


Hi @Steve,

Why do you have to keep altering the z-position of one course relative to another?

Hi, I am recreating accurately a brick wall and buttress, using triangulated measurements taken decades ago before it became much more lost to nature, I have a photo taken decades ago part obscured with leaves, and I am using that to establish the brick courses, also such courses will now allow me to find out why my accurate front face of the buttress is 5 inches out when laid onto the side view structure, which also was triangulated to the very same markers, …baffled. So as I trace from the photo I need to move a generic brick row structure to match reality, so three times I am altering mortar gaps., another wall, this wall and this buttress, all same site., and more to do yet.


Might be easier to represent the bricks with an array of horizontal lines that you can more easily scale until you have the height right, and only place the bricks once that is sorted.

When moving objects to match a photo (locked pictureframe), it can be helpful to use the keyboard nudge keys set to an useful increment. The movements are X and Y directions so CPlane needs to rotate accordingly in perspective view.


As I have traced the brick courses and kortar line thicknesses now on the photo, its easier to move ‘coloured’ bricks to them than yet more lines as just too many horiz lines to make sense of. I also need to marry up where the mortar vertical joints are as well as if a course is a long or an end, so all in all solid bricks is the way.

Brian M . thanks yes I was using nudge to shift things up and down, essential.

I wish I knew why carefully made triangulated dims on markers are not matching to a perp photo of the buttress, match the lower set of 4 and the upper set are half a course out. it slopes backwards 102deg but 1D scaling should compensate for that small amount.


There was a distribute script lying around this forum. Will try to find it.

Edit: found it: Pascal Golay's Scripted Utilities for Rhino [McNeel Wiki]

Search for distribute in the list.
Alternatively you can try grasshopper.

But from what you describe I get the impression that this is a manual job as each object might not be exactly the same distance apart from each other.

I was going to send it but Steve gets nervous if there are scripts in the room.


The slope is enough to account for most of it. Assuming a 50mm lens on a 35mm camera and, for simplicity, held at the height of the middle markers (fortuitously pretty much the height a standing man would hold the camera), camera held vertically and positioned to get the buttress in frame you get geometry something like this (based on your posted model):

With the photo scaled to get the bottom dim right, the top dim will be out by 1.32". Actual discrepancy will be affected by focal length, distance to subject and camera height, but you get the picture (pun intentional),


Here you go -

Note that the axes indicated are relative to the active viewport’s CPlane, not world. Hence from Front, I used Y Axis, not Z.

Note also that the procedure I outlined above for V5 takes all of about 30 seconds to do each time, so even if you have to do it 10 times, it still is less time than writing a post here…

1 Like