Grasshopperでのデザインにおいて、「データ」の理解は避けて通れない、いや、むしろ最も重要なフェーズと言っても過言ではありません。
意外かもしれませんが、Grasshopperではどんな値も、たとえそれが一つの数字であっても、常に「リスト」の中に存在しています。このリストの概念をしっかり掴むことで、複雑なパラメトリックモデルも意図通りにコントロールできるようになりますよ。
リストの基本とインデックス
Grasshopperのリストは、プログラミング言語と同じく「ゼロベースインデックス」を採用しています。つまり、リストの最初のアイテムは「インデックス0」として扱われるということ。この基本を忘れないでくださいね。
リスト内のアイテム数を数えるにはList Lengthコンポーネントを使います。そして、特定のインデックスにあるアイテムを取り出したいときは、List Itemコンポーネントが非常に便利です。これを使えば、例えばリストの3番目のアイテム(インデックス2)だけを抜き出す、なんてことも簡単にできます。
リストの並べ替えと抽出
リストの順番を操作したい場合も、便利なコンポーネントが用意されています。
リストの並びを逆にするにはReverse List、そして数値や文字列に基づいてリストを並べ替えるにはSort Listが活躍します。これらのコンポーネントを使いこなせば、意図した順序でデータを取り扱えるようになりますよ。
条件によるフィルタリング
特定の条件を満たすアイテムだけを残したり、別のリストに分けたりする際によく使うのが、ブール値(True/False)を用いたフィルタリングです。
まずはExpressionコンポーネントを使って、「値が10より大きい」などの条件式を作成し、True/Falseのパターンを生成します。このTrue/FalseパターンをCull Patternコンポーネントに入力することで、パターンに基づいてリストのアイテムを間引くことができます。さらに、Dispatchコンポーネントを使えば、TrueのアイテムとFalseのアイテムをそれぞれ別の出力ポートに分割することが可能。非常に強力なデータ処理テクニックなので、ぜひマスターしてくださいね。
特定パターンでの間引き
リストからn番目ごとのアイテムを削除したい、といった場合にはCull Nthコンポーネントが役立ちます。このコンポーネントは、指定したパターンでリストのアイテムを間引くことができます。どのアイテムが削除されるかを正確に予測できるようになれば、より洗練されたデータ操作が可能になります。
これらのリスト操作のスキルは、Grasshopperでのあらゆるデザインに応用できる、まさに「データリテラシー」の核となる部分です。ぜひ手を動かして、それぞれのコンポーネントの挙動を体感してみてください。きっと、Grasshopperがもっと楽しく、もっと自由に使えるようになりますよ!
