コンテンツへスキップ
2026.05.04 のまとめへ

2026.05.04 / Topic 01

01
generalMcNeel Forum

GrasshopperにおけるCull Indexのインデックス指定のロジック

返信数

GrasshopperにおけるCull Indexのインデックス指定のロジック

─── 詳細記事

はじめに:Cull Indexのよくある落とし穴

Grasshopperでリストの特定要素を削除する際に便利なCull Indexコンポーネント。しかし、「Panelに数式を書いてインデックス範囲を指定しようとしたけどうまくいかない…」という経験はありませんか?今回の記事では、このCull Indexコンポーネントのインデックス指定に関する疑問を解消し、より効果的な使い方をご紹介します。元投稿では「グループコンポーネント」についても触れられていましたが、本記事ではCull Indexでのインデックス生成ロジックに焦点を当てて解説していきます。

Cull Indexが求めるもの:整数のリスト

結論から言うと、Cull Indexコンポーネントの「I」(Indices)入力は、整数のリストを期待しています。Panelに「-(1 to ?)」や「0 to N」のような数式や表現を直接書き込んでも、Cull Indexはそれを単一のテキスト値として認識してしまい、インデックスとして適切に解釈できません。公式ドキュメントでも「I」のパラメータタイプは「Integer」(つまり整数のリスト)と明記されており、式解析機能は持っていないのです。

正しいインデックスリストの生成方法

では、どのようにしてCull Indexに適切なインデックスリストを提供すればよいのでしょうか?主に2つの簡単な方法があります。

### 方法1:Panelコンポーネントで明示的に入力する(シンプルかつ明確)

最もシンプルな方法は、Panelに削除したいインデックスを直接入力することです。

1. Panelをダブルクリックして、削除したいインデックス(例: 1, 2, 3, 4, 5)を1行ずつ入力します。
2. Panelを右クリックし、表示されるメニューから「Data」タイプに設定します。
3. このPanelCull Indexの「I」入力に接続すれば、指定したインデックスの要素が削除されます。

### 方法2:Seriesコンポーネントで動的に生成する(推奨)

より動的で柔軟なアプローチは、Seriesコンポーネントを使う方法です。

1. Seriesコンポーネントを配置します。
2. 「S」(Start)入力に、削除したいインデックスの開始値(例: 1)を設定します。
3. 「N」(Step)入力に、ステップ値(通常は1)を設定します。
4. 「C」(Count)入力に、削除したいインデックスの総数を設定します。この値は、List Lengthコンポーネントなどを使ってリストの長さに応じて計算することも可能です。
5. Seriesから出力される整数のリストを、Cull Indexの「I」入力に接続します。これにより、[1, 2, 3, …, C] のような連続したインデックスリストが生成され、Cull Indexが期待する形式で提供されます。

応用テクニック:逆順インデックスと負のインデックス

### 逆順のインデックス(Nから1へ)

「10から1まで」のように逆順でインデックスを削除したい場合は、Seriesで通常のリスト(例: 1から10)を作成し、その後にReverse Listコンポーネントを接続してリストを反転させてから、Cull Indexの「I」に接続します。

### 負のインデックス

Pythonのように末尾から数える負のインデックス(例: -1で最後の要素)は、Cull Indexではサポートされていません。代わりに、List Lengthコンポーネントを使ってリストの総数を取得し、そこから計算して明示的な正のインデックスを指定する必要があります。

まとめ

Cull Indexコンポーネントを効果的に活用するためには、Panelに直接数式を入力するのではなく、Seriesコンポーネントや「Data」タイプに設定したPanelを使って、整数のリストを生成し、提供することが重要です。特にSeriesコンポーネントは、柔軟かつ動的なインデックスリストの作成に非常に役立ちます。このロジックを理解することで、Grasshopperでのデータ操作がよりスムーズになるでしょう。

─── 要約

Grasshopperの**Cull Index**コンポーネントでインデックスを正しく指定する方法を解説します。**Panel**に直接数式を書くのではなく、**Series**コンポーネントやデータ型を設定した**Panel**を使って、整数リストを生成・入力するロジックを習得できます。GH初心者から中級者まで、データ操作の理解を深めたい方に役立つでしょう。