Question about IF THEN

Hey guys, I just recently started my GH journey and I am keen to learn as much as I can. I made a couple very specific definitions so far which I’m proud of mainly because I actually did make them (lol) and I plan to keep moving forward.

Now, the thing that I want to do is:

select a bunch of curves and
if the length is less/equal to 30 - don’t divide the curve(s),
if the length is more than 30 and less/equal to 48 - divide the curve(s) into 2 segments,
if the length is more than 48 and less/equal to 72 - divide the curve(s) into 3 segments,
if the length is more than 72 and less/equal to 96 - divide the curve(s) into 4 segments.

If you guys have any ideas how to break down this kind of logic within GH I would be more than grateful for your help.


you can do something like this: then make a similar dispatch rule for what comes out of list A

but doing that in code is easier I find:

def returndivisions():
    if x.GetLength()>30 and x.GetLength()<=48:
        return 2
    if x.GetLength()>48 and x.GetLength()<=72:
        return 3
    if x.GetLength()>72 and x.GetLength()<=96: 
        return 4
    # default
    return 1
a = returndivisions()

You can try a pattern of Find Domain and then Pick’n’Choose or Weave.

So the Find Domain will find which Domain each value ”belongs to”. This will output as a list of domain indices. The indices can be used to create a list of division counts (Weave comes into play here) or you can even set the domains in a certain order to directly output as division counts.

In general case that would be the vanilla GH way I would try.

Thank you so much Gijs de Zwart! Both solutions work flawlessly! Again, thank you so much :pray:

The vanilla grasshopper way would be to use

See an school book example here:

Kind regards- tom