Parametric I-beam Tutorial

Hi, I am modeling an hp shell roof structure on grasshopper for the firm I am interning for and they are not sure as to the dimensions of the beam. It would be great if I can model the I-beams parametrically so that they can change the dimensions.

I was able to write the script for each of the parts of the I-beam (the flanges and the web) however I’m stuck with moving the flange rectangles to their positions on the web and associating them so they all change together.

I couldn’t find any free tutorials online for a parametric I-beam, surely I’m misssing one.

What should I do?

1 Like

Here’s another approach.

Parametric-I (14.4 KB)


Thank you SO much! That really cleaned it up. I was able to understand most of what you were doing, but wanted to understand more what the final rectangle is doing exactly. It’s not a pressing matter as I’m only asking to learn and understand better :slight_smile:


1 Like

As you can see, the second rectangle component produce 2 rectangles with filleted corners and they are supposed to be used forRegion Differenceopperation with the first rectangle(Beam size)afterward.


Try the Extrude Linear component for making a solid out of your result. This gives you several planes of control (profile & axis)


With such a fundamental project as ‘parametric I-beam’ …

There’s got to be a simpler (or more ‘intuitive’) way of doing this…

@HS_Kim in your approach, I see “construction” type geometry for ‘subtracting’ from a rectangle, using other rectangles. This approach in a way is treating the original rectangle like it’s a ‘solid’ and needs to be ‘subtracted’ from, in order to obtain a final shape.

This is interesting to me, even though it seems more complicated than I’d expect (from a traditional 3d parametric solid modeling perspective).

I don’t mean to criticize it, while I imagine you probably have many other approaches you could accomplish a similar final result. I guess that’s obvious to most modelers. While, you could transform the geometry into a ‘solid’ right away and modify it in that state, I think a common approach is to make an ‘initial sketch’ profile as detailed and simple as possible to then be ‘extruded’ into the solid final shape.

This is basically what you demonstrated, but to me I’m still struggling to wrap my brain around it with the GH jargon :sweat_smile:

This grasshopper stuff continues to blow my mind.

If I were to attempt this type of project, I’d try an approach that is the simplest as possible, and more directly related to controlling the final profile as soon and direct as possible.

From a direct modeling approach, as a user, I’d want to ‘drive’ the final profile geometry as intuitive as possible with ‘constraints’ both ‘dimensionally’ and/or ‘geometrically’.

These ‘domains’ are strange to me…

I wish there were ‘dimensional’ and ‘geometrical’ components in GH. Idk, maybe there are, I’m still learning…

This is a cool project :sunglasses: I like parametrics!