Grasshopperでアルゴリズムが複雑になってしまった時は、「Cluster」という機能で収納箱の様に複数のコンポーネントをまとめて管理することができます。また「Create User Object機能」を使うことで、頻繁に使うClusterを画面上部のコンポーネントパネルに登録しておき、後から読み込んで使うこともできます。



注意:Cluster化したものはRhino5ではUndo以外では戻すことが出来ません。
Rhino6以降は、Clusterを右クリック>Explode Clusterを実行することで、Clusterを解除できます。
またClusterはインスタンスの様な形でコピーされ、コピーする前のClusterと中身が同期されます。そのため、Clusterの内部を一か所修正するだけで、コピーしたすべてのClusterの中身を修正するといったこともできます。
下記動画で、ClusterとCreate User Object機能の説明がご覧いただけます。右下の右から4番目の字幕ボタン(CC)を押すことで、より詳細な説明が表示されます。
動画と内容が重複しますが、下記補足になります。
1.コンポーネントをCluster化する方法
Cluster化したいコンポーネントを選択して、キャンバスで 右クリック>Cluster を実行します(クリックで画像拡大)。
2.Cluster化する時の注意点
一つの端子を複数の入力に繋いだ状態でCluster化すると、不必要に端子が増えることがあります。
その際は下記画像を参考に、接続をまとめてからCluster化してください(Params>GeometryのCurve、Surface、BrepなどやParams>PrimitiveのIntegerやNumberなどのコンポーネントに一度データを格納すること)。またその際、名前を付けておくことでClusterの入力端子名に反映されます。
接続をまとめていない例

接続をまとめた例

接続をまとめずにCluster化した結果

接続ををまとめてからCluster化した結果

3.既に設定したClusterに端子を追加する方法
Clusterをダブルクリックし、Clusterの中に入ります。入力端子を追加する場合は Params>Cluster Input を、出力端子ならParams>Cluster Output を繋ぎ、”Save&Close”を押してClusterを閉じます。
Cluster Input とCluster Output を繋いでいる図


4.Clusterのインスタンスコピーと同期の切り方
またClusterはインスタンスの様な形でコピーされ、コピーする前のClusterと中身が同期されます。そのため、Clusterの内部を一か所修正するだけで、コピーしたすべてのClusterの中身を修正することができます。
同期を切りたい場合は、Clusterの上で 右クリック>Disentangle を実行します。Disentangle後の()内の数字は、コピーされている数を表しています。(1)なら1つコピーされているということです。Disentangleを実行し同期されていないClusterは、Disentangleの表示がグレーがかった状態になります。

5.UserObjectへの登録の方法
登録したいClusterを選択し、 File>Create User Object を実行します。
Name(検索する際に使う名称)やNickname(Clusterの黒帯に表示される名前)、Description(カーソルを合わせたときに出る表示)、登録したいCategory(パネルのタブ名)とSub-Category(黒いバーの名前)を決めて”OK”ボタンを押します。


検索時に使用されるName

Clusterの表示名Nickname

またムービー内に記述はありませんが、Clusterは 右クリック>Assign Password… でCluster内を編集されない様にロックをかけることもできます。

6.User Objectの保存先フォルダ
登録されたUser Objectは下記のフォルダにghuser形式で保存されます( File>Special Folders>User Object Folder で開くことができます)。
C:Usersユーザー名AppDataRoamingGrasshopperUserObjects (ユーザー名は任意の名前)
PC等の環境を移設したい時や、複数のPCを同じ環境で使いたい場合は、上記フォルダのghuserデータをコピーすることで新しいPCにUser Objectを追加することができます。
7.[逆引き]機能について
通常、gha形式で提供されるコンポーネントは、標準のもの・プラグインで追加したものを問わず、Ctrl+Alt 左クリックを長押しをすることで、 ツールバーのどこにあるかを確認することができる[逆引き]機能がありますが、Clusterで作成したコンポーネントについては、[逆引き]に対応しておりませんのでご了承ください。
