Ramp Curves


I’m looking to convert a Revit Ramp to a Floor. Problem is I can’t get the curves from the Ramp, just an empty list. Any ideas?

An update to this. I was able to extract the surface(faces) from the ramp and then the perimeter curves from the surface. Still working on getting that to a floors outlineCurves…

Jay, could you just use a DirectShape node or do you need to be able to edit the floor?

1 Like

Or here is the edited floor version. Not sure it’ll work every time but should get you in the right direction.


Another possible work around (with some manual work towards the end) would be to create structural framing using the extracted ramp perimeter curves. Then use Pick Supports available under the Shape Editing options to get the floor slab to confirm to the slope of the ramp.

In the case of curved ramps the framing might have to be at regular intervals, spanning the width of the ramp.

The framing could be deleted once the slab is in place.

Thank you both. I feel like I’m almost there as I can get the surfaces and curves. I can’t seem to isolate only the top curves though. Also, it seems that a floor can be made only flat from Dynamo. I need the object to be a true floor (not directshape) because it needs to be ‘joined’ into other floors. Here’s what I have so far…

Jay that is what my code block a[4] is doing. We’re just pulling out the top surface. Then we get the perimeter curves of that surface and project them down to a level. Once we have the flattened surface we can them make a floor. Once the floor is done we can use the original curve end points to manipulate the surface. My 2nd tree should work fine if you can follow it.

Where did you get the FloorSlab Shape by Points node? Clockwork, got it. They need to have some icons on the nodes or something.

Clockwork package. I really recommend installing it, archi-lab, steamnodes, springnodes, rhythm and lunchbox.

It works for a straight ramp, except for the z direction. Doesn’t like a curving ramp. Seems that the top surface points just need to be projected. But still, how do we get the floor to slope if possible?

The reason for this is that a lot of architects build ramps in parking garages using the ramp tool. Problem is, a ramp doesn’t work well in the structure model. Ramps don’t copy/monitor and don’t cut and paste very well, and don’t receive rebar or join geometry.

Here are files with a floor in place of a curved ramp on the lines of my earlier comment.

CurvedRamp.dyn (33.4 KB)

CurvedRamp.rvt (1.3 MB)


Hi Jay,
Can you drop here dummy ramp file. There is another possible way to achieve.

Thanks Vikram, very kind of you. I’ll give that a try. Kulkul, attached is a file with a curved ramp (nothing special and I had to purge it to make it small enough).
Ramp convert to Floor.rvt (1.1 MB)

Hi Jay,
Here is my solution. I selected the edges using “SelectEdges” node from spring nodes. Then i joined all the edges. Have a look at the process below:


Kulkul, that worked thanks. I tried it with a number of different ramp shapes and it works great.
Vikram, putting supports along the ramp is very cool!

I’m going to keep working with these ideas…

Here is a variation of Vikram’s solution using SlabShape By Points to modify the floor height.
The Python Node is from the custom node - they should both work but for some reason the node is not working for me. CurvedRamp_viktor.dyn (16.2 KB)

1 Like

Hi Kulkul,

Newbie here, I am trying to replicate your graph but I hit a road block. what do u think is the problem. Thanks in advance.

Hi @vxquinones

After the node Curve.PullontoPlane you add this node called “Polycurve.Curve”. I am assuming your trying to feed polycurve.

Hi Kulkul,

thanks for the quick reply, I am trying to “convert” ramps to floors actually so I can use it with walls. will let you know where I got to.

Hi Kulkul,

This is a very good solution. However, I found that when I try to make more than one floor using this method, it deletes the previous floor before making the new one. A work-around that I found involves continuously recreating a new select edges node for every floor, which is kind of tedious.

I’ve tried modifying the script using the workflow posted below, so that it automatically selects the edges of the ramp, without having to click on them. However, for some reason it’s giving me an error.

If anyone knows why it’s giving this error, or if anyone has a better solution instead of my work-around please let me know.