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.

Cheers!

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

The vanilla grasshopper way would be to use
Sift
Combine
…components

See an school book example here:

Kind regards- tom