Attach topography to roof/floor/ramp/model/etc?

Is there a way for dynamo to make the topography points adjust according to a roof, floor, ramp or even a sweep model for instance? the goal is to create a road-like model and let the topography follow it, get the points higher where necessary and lower where needed, sort of like the attach command for walls… I see you’ve added some topography nodes in the latest upgrade and they’re totally awesome, I’ve managed to create topographies from surfaces and lines, but a feature like that would be awesome, please let me know if there’s a way or command me to post it on Github as a suggestion! Thanks a lot for the awesome work!

I currently don’t have the time to make a node that would actually alter a topo element, but here’s a workaround:


  • Make sure that your topo does not have any topo points underneath the floor slab / roof / whatever element you want it to adapt to.
  • Use this simple graph and pick the topo and the bottom face of your element.
  • With the slider you can control the point resolution.
This will unfortunately create a new toposurface but as a proof of concept it shows that it can be easily done in Dynamo. You could even use multiple surfaces, but you might have to be careful about points that share the same XY coordinates.


Thanks a lot for the reply and the share Andreas, It helps!


Is there a way to go the other way with a floor element? I know you (Andreas) built a custom node that adds points on the floor and roof elements on the subelement level. GREAT!

the only issue is that the “boundaries” of the floor have to be outside of the topo.

Since The floor/roofs have internal and boundary points, could those match the internal and boundary points of the topo respectively?

floor/roof boundary points = topo boundary points?

floor/roof internal points = topo internal points?

What that uv xyz grid from face node? I cant seem to find it.

Russ, it’s called Paneling.GridFromFace now, part of package Clockwork.


That is a great little workaround, Andreas (if I would even call it that). You could easily merge the Topos together afterwards.


As for the “other way,” even having the Floor boundaries outside the Topo makes for a funny result. But if you have a Topo point on (the same x,y) as the Floor boundary point, the the Floor conforms a little better and at least does not leave the boundary points behind. But there is still the issue of following the rest of the boundary.

I am still quite new to Dynamo, but to get those boundary points you could simply intersect the Topo along the Floor boundary. Surely that is doable?

For some reason, the Paneling.GridFromFace is only giving me 1 Point output, even though it should be more…

dynamo_only 1 point

And this is the result, since it only creates 1 point from the Floor…

dynamo_only 1 point_revit

Any ideas?

My first guess would be that it’s because of the fact that in Dynamo 0.7 the Select Face node will now give you a list of surfaces (even despite the fact that that list will usually only contain one item). Run its output through a List.FirstItem node and you should probably be fine.

Thanks Andreas, that worked. Do you know how I could go about doing this with multiple faces at once? Since I often work with shape-edited floors, going one face at a time is quite limited in its usefulness. Ideally, I would like to be able to select all of the faces on the underside of a floor.