Buildings on topography


I have a model with lots of buildings and a hill, created with contour lines that I “patched”.

I would like to move all the concerned buildings on the hill, but I want them to remain vertical, which is why the command “FlowAlongSurface” does not suit me.

What command or trick should I use to do that ?

Thank you for your help.

Hi armandl - if you have positioned your buildings in XY and only need to set Z, the MoveProject script here may help - use MoveProjectEach.


1 Like

Thank you for your answer.

However, the surface I want to project my buildings on is curved (as I said it is a topography created with patched contour lines"). The file you sent me seem not to allow the selection of the curved surface …

any idea how I could do ?

Hi Armandi - it should work with any sort of surface as a target. Did the script appear to run? Can you post an example, or send to


I sent the Rhino file to the mail you gave me.

To be clear, the building I want to drop on the surface are the ones that are currently located under the terrain (green layer : “topographie”)

Let me know if you have a question or if you manage to do anything

Hi Armandi - it works… you need to unlock the Topographie layer to be able to select the target surface. Here’s what I’d do:

  • DupBorder on the target surface.
  • In Top (Dessus) use SelBoundary and select the border curve.
  • Move the selection so all the buildings are above the target (Gumball is perfect)
  • Then run MoveProjectEach.


Oh, OK I see, my bad, that was a dumb mistake.

Can you please send me back the Rhino file with the buildings placed onto the surface ( I only achieve to place them but under the surface …)

Thanks !

1 Like

You can also try the following python script - it has the command-line option to either have the buildings stop at the first point they touch the surface, or be just embedded into the surface. It works with either mesh or surface volumes and can project onto either surfaces or meshes. There is currently a limitation with volumes that cross the outer edge, so the surface to project to should be larger than the volumes projecting onto it. (5.2 KB)



Hello after a long time Mitch,

I would like to know if changing the code could allow me to also project open curves as well.

Have a nice day,


thank you so much! I wish I knew this before!
now I have to redo all the previous work! LOL