Grasshopper :: Dataの様々なCull方法
今回は、リスト内のデータを”Cull”する方法についてです。”Cull”をググってみると、「選び出す、間引く、摘む」などといった意味があるようです。
つまり”Cull○○”という名前のコンポーネントは、”○○で選んでリストから除く”という操作になるかと思います。
それではレシピを見てみましょう。
レシピ
“Cull○○”コンポーネントと、それらと同じような機能をもつコンポーネントを並べてみました。
以下、機能ごとに解説いたします。
インデックスでCull
[List Item]コンポーネントは、リストのアイテムをインデックスで選ぶ操作になります。
[Cull Index]コンポーネントはその逆で、指定されたインデックスのアイテムを取り除く操作になります。
これらは、インデックスを返すコンポーネントと併用することが多いかと思います。
序数(順番)でCull
[Cull Nth]コンポーネントは、○番目ごとのアイテムを取り除く操作を行い、[Cull frequency]に繋いだ数字がその番号となります。
上図では、2番目ごとのアイテムが取り除かれるため、[1,3,5,7,9]のインデックスのアイテムが除かれています。
ちなみに、[Cull frequency]に入力する数字は“1”を入力するとエラーになり、複数の数字を入力すると、その序数ごとにパスとリストが生成されます。
真偽でCull
[Cull Pattern]コンポーネントは、真偽でリスト内のアイテムを取り除きます。上図では、入力側の[Cull Pattern]に真偽のデータが繋がれ、真(”1″)のアイテムが残るようになっています。
また、リストのアイテム数よりも真偽のデータ数が少ない場合は、真偽のデータは繰り返されます。上図では、[0,1,0]が繰り返され、[0,1,0,0,1,0,0,1,0,0]となっていますね。
さて、このコンポーネントとよく似た機能をもつ[Dispatch]コンポーネントもあります。
[Cull Pattern]コンポーネントは取り除かれた方のアイテムは出力されませんが、[Dispatch]コンポーネントを使うと、両方出力することができます。
この[Cull Pattern]や[Dispatch]コンポーネントは、下図のように条件分岐させたい時などによく使います。
ここでは、リスト内の数値が10以上かどうかで分けています。
“<“(より大きい)や”<=”(以上)で真偽を返すには、[Larger Than]コンポーネントを使います。その返された真偽を、[Dispatch]コンポーネントの[Dispatch Pattern]に繋いで完了です。
終わりに
データを特定の条件で選び出す際は、これらのコンポーネントを活用して見てください。
他にもCull○○コンポーネントはあるので、また別の機会に紹介できればと思います。
使用した主なコンポーネント
- [Cull Index] (Sets > Sequence > Cull Index)
- [Cull Nth] (Sets > Sequence > Cull Nth)
- [Cull Pattern] (Sets > Sequence > Cull Pattern)
- [Dispatch] (Sets > List > Dispatch)
- [List Item] (Sets > List > List Item)