Grasshopperをテキストデータで読む

こんにちは、AMDlabの森山です。本日はちょっとした小ネタ的な内容のご紹介です。

皆さんが扱っているGarasshopperのコンポーネントをテキストデータで読んだことはありますか?例えばこちらのコンポーネント

何の変哲もない、デフォルトのAdditionコンポーネントです。
こちらのコンポーネントをコピーして、適当なテキストエディタに貼り付けてみてください。すると、こんな感じで表示されると思います。

とても長いです。どうやらxmlデータであるということが分かります。ここで大事なのは、さっきのAdditionはどこにいるのかというところです。Additonで検索してみると

ここのあたりからAdditionの説明が始まっている感じがします。
上から読んでいくと、なんとなく概要が分かるかと思います。実際に色々いじって、どこが何を示すのか見ていきましょう
例えば<item name=”NickName” type_name=”gh_string” type_code=”10″>A+B</item>の部分をA+B+Cとかにして、全文をコピーして貼り付けてみます。

見た目上は何も変化がありませんが、よく見ると、カーソルを合わせたときの説明文が変わっています。では、実態をいじるにはどうすればいいのでしょうか。

では、GH側で、コンポーネントの入力を一つ増やし、別ファイルでテキストエディタに貼り付けてみます。お手持ちのUbuntuがある場合、またはMacの方はDiffコマンドで差分を見てみましょう。ない場合は次の結果を見てみてください

+されている行を見ると、なかなか難しそうです。入力側のポッチから、インプットのデータの型指定から、位置まで、すべて指定しなければ出来なさそうです。

しかし、このxmlデータを利用して、少し面白いことができます。まずはこちらをご覧ください。

こちらのふたつのコンポーネントを青枠と赤枠に分けて、テキストエディタに貼ります。
このとき、NumberSliderは含まないでください
引き算側のGUID

を足し算側のGUID

側に書き換えます。その後、書きかえたテキストデータをコピペすると…

なんと入力が入れ替わりました。

しかし、注意してください。Diffで見たように、この入れ替えを行うには、コンポーネントの対称性が保たれていることが重要です。

ARTICLES