こんにちは、篠原です。
Rhinoモデルを作るとき、「この設定、前回どうしてたっけ?」「あのファイル、どこを参照してた?」と悩んだことはありませんか? そんな手戻りや再計算の手間を減らす方法が UserText です!Grasshopperを使えば、参照ファイルや作成時の設定情報を簡単に記録し、作業効率を大幅に向上させることができます。
「なぜUserTextを活用すると便利なのか?」その理由はこちらの記事で詳しく解説しています。
なぜRhinoではUserTextで情報を保持するべきなのか? - vicc blog
これから説明するように、情報を残しておくと、例えば、ファイルが更新されるときに情報を追跡しやすくなります。 下図のフローにおいて、例えば鉄骨.3dmが更新されると、そのファイルだけを参照して計算するようにMakeDrawing.ghを調整すると、通り芯.3dmを参照しない分、新しい図面.3dmをすばやく作れるようになります。

実際に、GrasshopperからRhinoモデルのUserTextを操作するにあたっては、Rhino7以下のユーザーはeleFrontプラグインを使いましょう。Rhino8以上のユーザーは標準コンポーネントのみでOKです。


それでは、どんなテキストを記録すればいいかを、その作り方と一緒にご紹介します。
どのファイルが参照されたか
Rhinoファイルを参照する
例えば MakeDrawing.gh では、どのRhinoファイルが参照されたかを記録できるようにしましょう。
eleFront を使用する場合、GetCurrentFile コンポーネントを活用します。

Pythonスクリプトを使用することで、標準機能だけで対応可能です。

import Rhino
path = Rhino.RhinoDoc.ActiveDoc.Path
Grasshopperファイルを参照する
Grasshopperファイル自体に更新がかかる可能性がある場合、その情報も記録しておきましょう。
Metahopperプラグインをインストールしている方はDocumentInfoコンポーネントを使いましょう。

Pythonスクリプトではこのように。

import Grasshopper as gh path = gh.Instances.ActiveCanvas.Document.FilePath
いつ作成されたか
どのファイルが参照されたかだけでなく、いつ作成・更新されたか を記録すると、過去のバージョン管理が容易になります。
実は、Timeパラメータ(時計のアイコン)に、nowやtodayなどの時を表すテキストを入れると、その時間情報を取得できます。
このままPanelにつないでもいいのですが、今回は少し工夫してみましょう。

さらに下図のようにFormatコンポーネントを使って、読みやすい形式に整えてあげましょう。
「{0:(テキストの体裁)}」という形式をFormatコンポーネントに読み込ませることで、お好みでテキスト処理をすることが簡単にできます。

その他のテキスト体裁はこちらから確認してみてください。
カスタム日時形式文字列 - .NET
また、Cultureパラメータ(吹き出しのアイコン)を使うと、時間表現を地域に合わせて変更できます。

逆に、テキストからTimeに変換もできます。

モデリングの基準点はどこか
基準点を記録することで、モデルの再配置やネスティング、BouindingBoxの作成が容易になります。
Timeと同様に、Formatコンポーネントを使います。復元しやすさも考慮に入れつつ記録しましょう。


過去に関連記事があり、Transformの情報をいかに記録するかについて詳しく書かれています。Blockインスタンスが好きな方は是非読んでみてください。
変換行列をテキスト化してローカル平面の情報をオブジェクトに保持させる - vicc blog
作成時のパラメータ
Grasshopperでアルゴリズムを構築する際、入力値と出力値を記録しておくこと で、後々のトラブルを防げます。
入力値の記録で迷いをなくす
「このときの NumberSlider は何の値にしたっけ…?」 こんな経験はありませんか? スライダーやパラメータの値を記録しておくことで、再現性を高め、試行錯誤を効率化 できます。

出力値を記録して計算負荷を軽減
特に 面積やボリュームなど、計算に時間がかかる処理 は、あらかじめ記録しておくと便利です。 毎回Grasshopperを開くたびに再計算するのは非効率。重要な結果はUserTextに保存し、作業スピードを向上させましょう!

このように、UserTextを活用することで、Grasshopperのワークフローがよりスムーズになります。
おわりに
今回はGrasshopperを使ってRhinoオブジェクトを作る際に、UserTextを活用して記録しておきたい情報と、その具体的な記録方法について紹介しました。
UserTextを活用するメリット - プロジェクトの再現性が向上 - NumberSliderの値を記録することで、過去の設定を正確に再現できる。 - 設定値を保存することで、Grasshopperスクリプトを複数人で共有する際の理解がスムーズになる。
作業の効率化
- 参照ファイルの情報を記録することで、必要なデータをすぐに取得可能。
- 出力結果をUserTextに保存することで、Grasshopperを開くたびに計算し直す必要がなくなる。
長期的なプロジェクト管理が容易に
- ファイルの作成日時や参照履歴を残すことで、プロジェクトの管理がしやすくなる。
- 「どの時点で、どのデータを使って計算したのか?」を明確にし、変更の影響範囲を把握しやすくする。
このように、UserTextを活用することで、プロジェクトの透明性と作業効率を大幅に向上 させることができます。情報管理の重要性を意識しながら、ぜひ活用してみてください。
Grasshopperのデータ管理についてもっと詳しく知りたい方は、viccまでご相談ください。