How to filter a list based on curve length

Hi, there.

Need to filter a list into 3 based on curve length.

I want to get 3 kinds of grids of different lengths while keeping them horizontal. And then filter them into 3 lists.

As you can see, the grids would be like what I circled in this picture.

There are two methods I’m trying.

One is isotrim the surface then select random then join them, but it may result in vertical grid and I don’t know how to filter them.

The other is divide and join contour lines to escape the underlying vertical problem. But still, how can I filter them into three lists

Here are the files.
filter grids.3dm (2.8 MB)
filter (22.0 KB)

Hope guys can salvage the novice.

Many thanks.

do you have any rule of thumb that the filtering must follow?
assuming panel types are A,B,C → is there any configuration you consider “bad” so want to avoid?
like for instance:
A A A A A C → is it ok to not have all 3 different types present in the same row?
A A A A B C → is it ok to have “big disproportion” between the amounts of different panel type?
A B A A C A → A appears, then something else, then A again, then something else, then A again: is it ok for a type to appear multiple times in separate “islands” in the very same row? or:
A A B B B C → or once a type appears it can be repeated, but when a new one comes then the old type shouldn’t be used anymore?

if nothing of the above matters, then you can just random integer range [0,2] and bam, you have your filter (just need to find seed value you like):

I don’t know specifically what you want to do with those panels, but I -personally- prefere to not reorganize panel lists into panel types unless strictly necessary… but if you really want a data tree based on panel type you might go with something like this:

[Create Tree component from Elefront, same as unweave + entwine]
filter (19.5 KB)

1 Like

Really appreciate your help!

Still, i’m getting 3 lists now, but each panel is separate.

Is there a way to get 3 list in which,
list 1 contains panels that have no panel adjacent to them horizontally
list 2 contains panels that have only 1 panel adjacent to them horizontally
list 3 contains panels that have only 2 panels adjacent to them horizontally

and I also find out if I try to join the surfaces, they may join horizontally or vertically, but I hope they only join horizontally even if there are panels on top or below it.

need to better understand :slight_smile:

→ each row of panel should be independent from the others
→ you want to get groups of 1, 2 or 3 panels joined together, and want them to be in separate lists
→ between panels that belong to two different lists should there be a “hole”? like empty space in the size of a single panel?

1 Like

You totally get it! Except the last one, there’s no need to have a hole(but curious how to do that if it doesn’t cause you too much trouble)

well… let me say I thought it would be an easy task to just use domains in first place to trim panels to their final length (meaning not having to join unit-panels together) but it involved more suffering than I thought :slight_smile: (btw, no “hole” thing at the moment)

filter (19.0 KB)

1 Like