入力データに基づいた繰り返し処理:Rhino+Grasshopperを用いて
Rhino+Grasshopperを使用するとき、同じ作業を繰り返さなくてはならないことあります。
繰り返し作業が10回以下ならばGrasshopperの手動クリックでもいいでしょうが、20回を超えたり、1回の処理に10分以上かかる場合は、入力データを元にした半自動の繰り返し処理を作る方が簡単です。
ここでは、入力データに基づいた繰り返し処理の設定方法を説明します。
この繰り返し処理には、Anemoneというアドオンが必要です。
![](https://blog.syntegrate.jp/wp-content/uploads/2020/12/img001_anemone_food4rhino.png)
Grasshopperを使う上ではアドオンを活用することが最も重要です。なぜなら、GrasshopperはMcneelグループの認証なしに、誰にでもアドオン作成の扉を開いているからです。
Anemoneを一言でいうと、「LOOP」になるでしょう。
![](https://blog.syntegrate.jp/wp-content/uploads/2020/12/img002_anemone_gh_tab.png)
基本的にアネモネでは、特定の範囲(開始から終了まで)をループするように設定し、そのループしたサイクルを必要な条件に合うまで繰り返していきます。
繰り返し作業の簡単な例を見てみましょう。この例では、Rhinoの別ファイルで平面図を元にジオメトリを作成しています。
理想的なBIMの考え方からすると、3Dモデルを事前に作成しておき、それを元に2Dの図面を作成することになります。ただ実務の場合は、この例のように、2D図面(平面図、立面図)を元に3Dモデルを作成してほしいという要望が出ることが多いです。
![](https://blog.syntegrate.jp/wp-content/uploads/2021/01/Cap-2021-01-22-17-31-19-568.png)
![](https://blog.syntegrate.jp/wp-content/uploads/2021/01/Cap-2021-01-22-17-34-47-998.png)
![](https://blog.syntegrate.jp/wp-content/uploads/2021/01/Img012_fp_section_mod-1.gif)
この場合は別々のRhinoファイルに保存されたフロアごとの外形線(Attributeに高さ情報が含まれている)
![](https://blog.syntegrate.jp/wp-content/uploads/2020/12/img003_anemone_loop_cycle_all.png)
Grasshopperはビジュアルコーディングではありますが、コメントが書かれていないと理解しにくいものになります。書き加えると以下のようになります。
![](https://blog.syntegrate.jp/wp-content/uploads/2020/12/img007_anemone_scribble-1024x471.png)
ご覧のようにINPUT DATAの部分には、繰り返しデータを挿入しています。
そのすぐ下の”COUNT QUANTITY OF INPUT DATA”では、繰り返しが必要なデータの数をカウントし、それを元に微調整をしています。
![](https://blog.syntegrate.jp/wp-content/uploads/2020/12/img008_countquantity_mod-1024x84.png)
Grasshopperではリストの先頭が “1 “ではなく “0 “になっているので、長さの抽出が必要です。
![](https://blog.syntegrate.jp/wp-content/uploads/2021/01/Cap-2021-01-22-17-53-13-649.png)
以下ではアネモネの作業手順を示しています。
- 入力データを読み込む
- 入力データに基づいて、何回繰り返したかをカウント
- ループ開始条件、ループ終了条件、COUNTING PARAMETERを設定
- COUNTING PARAMETER が最後の COUNTING 番号に合うまでループ処理をする
![](https://blog.syntegrate.jp/wp-content/uploads/2020/12/img010_anemone_loop_repeating_part-1024x287.png)
このLOOP PROCESSでは、INPUT DATAだけが変化します。そのため、file#1を挿入して、次にfile#2を挿入して、最終的にfile#5を挿入していると考えることができるでしょう。
![](https://blog.syntegrate.jp/wp-content/uploads/2021/01/Cap-2021-01-22-17-40-16-276.png)
![](https://blog.syntegrate.jp/wp-content/uploads/2021/01/Img014_facade_mod.gif)
平面図ごとに異なるファイルで保存されている
このLOOP PROCESSの代わりを使わなくても、同じ結果になるのではないかと考える人もいるでしょう。しかし、サイズの異なるデータのエクスポートやデータ構造の変更などの作業を、Grasshopperの一度の作業で並行して行うことは簡単ではありません。
そのために「繰り返し」が必要になります。同じロジック/コードの繰り返しの結果を、別々のデータに保存することができるのです。
もちろんAnemoneを注意深く使えば、この「繰り返し」を「進化的」な方法にすることもできます。それが次回の記事のテーマになるでしょう。