どうもこんにちは ぺいです。
今回は List Item を使って、リストから任意のデータを抽出する方法について書きたいと思います。
リストの取り扱いはgrasshopperのモデリングの中では基本的なことですが、原点にして頂点なので、一つずつ慣れていきましょう。
その他、グラスホッパー関連記事もまとめてあるんで、よかったらどうぞ。
もくじ
まとめ・結論

リストからデータを取り出すときのポイントって?
では、まず、結論から。
1.取り出したいデータはどこにあるのか?を把握する
2.取り出したいデータのインデックスを指定する
1.データを抽出するコンポーネント 『List item』でほしいデータを取り出す
では、まずはコンポーネントの紹介から。
リストからデータを抽出するときに使うのは『List item』です。

List item
リストから指定したインデックスを取り出すことができる。
2.List itemでリストからデータの抽出をやってみる
リストから「インデックスを指定する?」「取り出す?」といきなり言われてもわからんわー、、という人は、この辺の記事が参考になるんじゃないかなと思います。

インデックスって?
実際にデータの抽出をやってみる
では、実際にデータを取り出してみたいと思います。
円をDivide Curveで分割したものを例としてみてみると、それぞれのインデックスは下のような感じになっています。
これは、リストの構造によって変わるので、どんな風にインデックスが入っているかは実際に簡単に試してみて見つけるのが速いと思います。
簡単な調べ方については、別の記事で書いてますんで、よかったら是非。

実際にリストからデータを抽出していきたいと思います。
取り出すインデックスを「18」として入力してみます。
抽出されたデータを見てみると、リストの中の「18」番目のデータを同じデータが取り出されていることがわかると思います。

リストからデータを取り出すときのポイント
では、まとめもかねて、抽出時のポイントを見てきます。
抽出時のポイント① データ構造の把握
まずは抽出したいデータがリストのどこにあるのかを把握しましょう。
さっきも言いましたが、基本的に、データがどこに入っているかはリストによって違います。
List itemに適当なインデックスを入れて確かめてみてもいいですし、『Panel』を使って座標などから大体の位置に当たりをつけてもいいですし、いろんなやり方があると思います。
抽出時のポイント② 数を超えた分に関してはもう一周
リストのインデックスを超えた分に関しては、もう一周します。
今回でいえば、リストの中のインデックスは、0~19の20個です。
例えば、インデックスを21で指定したときのことを考えてみます。
「超えた分に関してはもう一周」、
つまり、21は「21ー20=1」でインデックス1と同じ扱いになります。

3.ちょっと応用 複数のデータの抽出のしかた
ほかにもちょっと応用的なデータの取り出し方もあります。
『List item』の出力端子を増やす
基本的にはさっきと同じで、指定した数(今回でいう18)を基準としてデータが取り出されます。
出力端子の増やし方には、指定した数(今回でいう18)を基準として2通りの増やし方があります。
「ー」方向に増やすのか?
「+」方向に増やすのか?
「ー」方向に増やす場合は、増やした数分だけ基準のデータ(18)からマイナスされ、「+」方向に増やす場合は、増やした数の分だけ、基準のデータ(18)からプラスされます。
例えば、「ー」方向に「2」増やした場合は基準値から「ー2」をして、インデックス「16」が取り出されます。

複数のインデックスを抽出する
複数のインデックスを抽出することもできます。
やり方は鬼簡単で、指定する(入力する)インデックスの数を増やすだけです。
試しに、入力するインデックスに 2~20の偶数を入れて、取り出してみます。


リスト・データ構造関係はしっかり極めよう
1.抽出したいデータはどこにあるのか?を把握する
2.抽出したデータのインデックスを指定する
当たり前なことになってしまうんですが、まとめとしてはとりあえず上の二つです。
リスト関係・データ関係はgrasshopperにおいて、基本中の基本ですが複雑なモデリングもこれがないと絶対に成り立ちません。
まさに原点にして頂点。しっかり押さえて、自由自在にrhinoceros・grasshopperを使い倒しましょう。
Rhinoceros・Grasshopperの長所を生かすっていう意味では、アルゴリズミックデザインのような、一定のルールに基づいたモデリング手法も使ってみたいところ。
アルゴリズミックデザインと聞くと難しそうですけど、簡単なところからでも始められます。
入門としてはいいんじゃないかな、と思うんで、興味ある人は是非是非、以前の記事も見てみてください。
最後までありがとうございます!
ではでは、また今度