Variable Height Extrusion

Hi everyone,

I’ve been trying for a quite long time to figure out how to extrude a surface with a variable height.

My aim is to have different height at the ends of the surface and in the middle part. Or for example a smaller height at the one end and bigger at the other one, or a bigger one at the middle - and so, that the extrusion flows gradually.

Maybe it’s very simple but I just can’t get it. I still don’t understand fully the components and some of the things
I have borrowed from other solutions.

I’ve tried to extrude first just one curve on the surface this way. I’ve tried to divide it and by that define the regions and connect that with the extrusion. But I think that’s not it.

Does someone have an idea how can I do it?

Here are the .3dm and .gh files…

Surface.3dm (183.5 KB)
Surface.gh (10.8 KB)

What is exactly the height you want, is it defined by a curve, a function …
The most simple for your geometry seem to make a sweep 2 rail.
Extract the 2 lateral curves, moves control points on Z …



Surface (1)LD.gh (15.6 KB)

1 Like

Hello Laurent,

thanks for the file, I’ve done something similar before with only one curve, but with the graph mapper I can’t set the maximum height of the extrusion. Here I need it to be 0.2 meters.

The whole idea is to create stairs that are solid in the middle and get thinner at the ends, like membranes.

I am not sure what should define the height…it should be something like – the nearest area to the middle is the highest and in direction to the ends it gets thinner.

Or the bigger the curvature, the higher the extrusion.

But I really have no idea how to define that.

And there is something in the gh definition - why does the extrusion not work when I set multiple surfaces?

but with the graph mapper I can’t set the maximum height of the extrusion. Here I need it to be 0.2 meters.

Usually you should just use the graph with factors from 0 to 1. After you get the effect you want just remap the values with the remap component to be in the domain of your desired min and max value.

I just don’t know why I have to type in .02 so that in rhino I have a height of .2?
And actually it is not really reaching the next surface, which is at a distance of .2 m.

Hi, you don’t need to use the specific numbers I used - they are just an example. Set the min and max to whatever you need. In your case set the max (B input of construct domain) to .2 meters and set the min to whatever you want your lowest possible height to be.

Also, after that you should not need to multiply

Post the files for the exact example you are showing in the screenshot

Hi Michael,

I actually just got it…the multiplier was set to 8.84. I didn’t see it earlier.
Thanks for the advice with the ramaper.

It is quite easy to use multiple surfaces. The flatten I used for simplicity make problems in the definition. So no more flatten but a component that is named “trim tree”. You will have to use the remap component to get the max height you want. But it is not very hard.


Surface (1)LD.gh (60.8 KB)

When you ask question it is important to give more informations (simple one). A sketch is a good thing…

I’ll have that in mind, thanks!
I was actually afraid of writing too much without really being clear what I mean.

May I ask you some other question…why do you need to deconstruct the control points?

Point deform use control points so I use them. You also have a curve with same topology. It is better for loft