03.GH・Dynamo – コンピュテーショナルデザイン入門「デジタルと創作と連携」ウェビナーレポート

2023年4月7日(金)にオンラインで開催された『コンピュテーショナルデザイン入門「デジタルと創作と連携」』のイベント内容をご紹介しています。

ここからは、「03.GH(Grasshopper)・Dynamo」についてお話をしていきます。頭から読まれる方・映像をご覧になりたい方はこちらからどうぞ。

03.GH・Dynamo

GH・Dynamo

さて、ここまでの背景を考えながら、もう一度「GH(Grasshopper)・Dynamo」の話をしていきます。そうやって視点を変えると、「何に使うの?」、「やる意味あるの?」と思ってたところが、「意味はあるしニーズも増えるだろうし、これを選ばない手はない」という気持ちに変わるのではないかと思います。

Grasshopperとは

こういったツールは実際に手を動かして学ぶと一番分かりやすいですが、今回はせっかくのレクチャーということで、GHの仕組みについても話をしていきます。Dynamoの話もした後に、両方いいとこ取りができる『Rhino.Inside.Revit』についても説明します。

Rhino&GHでGHだと複雑な形ができるという理解の人もいると思いますが、複雑な形を作るためにGHができたのではなくて、そのソフトウェアのAPIがあるため、RhinoならRhino、RevitだったらRevitのAPIというように分けられています。

ソフトウェアのAPIとは?

ソフトウェアのAPIとは?

まずは、APIについて簡単に説明します。画像にはプラグが4方向に出てるように書いてありますが、ソフトウェアを作る時はプログラマーが作っているということを考えます。プログラマーが書いているプログラムは一部公開してあるため、ソフトウェアを購入した人もそのプログラムを利用できるものがAPIです。例を出すと、自由に使えるツールボックスが置いてあるというイメージです。

RhinoCommon API

APIを見てみると、画像のように『RhinoCommon API』というものが出てきました。この辺りはプログラムをしっかり勉強している人にしか分からないと思います。

スクリプトプログラミングとビジュアルプログラミング

スクリプトプログラミング

そして、2007年に「スクリプトプログラミング」が公開されました。スクリプトプログラミングでは、さまざまなバッチ処理や繰り返しの処理をスクリプトで書くということが行われてきました。

ビジュアルプログラミング

その後、もっと簡単にデザイナーやエンジニアでも使えるツールが欲しいという要望から、「ビジュアルプログラミング」が出てきました。視覚的に機能を組み合わせてプログラムを作れるため、プログラミングをしたことがない人でも始めやすいという環境になっています。私も今はスクリプト言語を書いていますが、最初に取り組んだのはGHでのビジュアルプログラミングでした。

つなげるだけで簡単にリアルタイムに動かす

私自身、正直プログラミングには全く興味がありませんでした。しかし、使えるようになると多くのことができそうだなというワクワク感があったため、触ってみることにしました。始めてみると、意外とつなげるだけで簡単にリアルタイムに動かすことができました。ビジュアルプログラミングは、ビジュアルで見るだけでつなげれば簡単に動かせる、というところが最大の魅力です。

NTTファシリティーズへの講習

NTTファシリティーズへの講習1

ここで、NTTファシリティーズの設計部にRhino&GH講習をした様子を見ていきます。計8人の方が受講してくれて、中には初めてRhino&GHを使うという方もいました。

NTTファシリティーズへの講習2

そういった状況で最初はRhinoの操作を教えて、さまざまな形を自分で作れるようになってもらいました。画像のようなパラメトリックな形を自ら考えてプログラムをすることで、想像力が発揮できることを実感してもらいました。

モデリングソフトはモデルを作ることに目的がある上で、こういうプログラミングでは何を作るかは製作者の創造力次第です。つまり、自分が作ってみたいと思ったものを作れるのがRhino&GHということです。

NTTファシリティーズへの講習3

画像はプラグインを使用している様子ですが、GHのいいところはコミュニティであるためオープンソースで誰でも使えることです。さまざまなユーザーが使えるツールを提供してシェアをして、共有しながら使っています。そのため、反響シミュレーションや最適化のツールなど、どこかの天才プログラマーが書いたツールを自由に使いながらさまざまなクリエーションを楽しむことができます。

NTTファシリティーズへの講習4
NTTファシリティーズへの講習5

これは、建物からお互いが見えない位置をプログラムで計算させて、どのように配置したらいいかを検討している例です。

NTTファシリティーズへの講習6

中にはGHでウォーキングパスを作って、画像のようなポエティックな空間を作っている方もいました。

NTTファシリティーズへの講習7

影が落ちる箇所で迷路を作るというアイディアから空間を作っている方もいました。

NTTファシリティーズへの講習8

宇宙のことを考えて作品を作っている方がいたり、ボロノイという形を使って空間を作ることにトライする方がいたり、半年間の講習だけで皆さんがそれだけのことをできるようになりました。個人個人の「作りたい」を実現できるのが、GHというツールです。

ガラスパネルシミュレーターの開発事例

ガラスパネルシミュレーターの開発事例1

次に、鹿島建設株式会社様の依頼から作成したツール、ガラスパネルシミュレーターの開発事例を紹介します。

これはさきほどのRhino&GH講習とは違い、ガラスの種類を選定するためのツールです。コスト的にガラスの品種をソートするのが設計のプロセスとして複雑でしたが、そこをコンピュータにやらせることでガラスの割り方を調整しつつ、コストを計算しながらガラスの品種が選定できます。許容荷重の計算を建築基準法や告示表の基準に基づいて風荷重の圧力を計算し、基準を満たす最適なガラスを選定可能です。

ガラスパネルシミュレーターの開発事例2

選定したガラスの種別はメーカーの方に渡す必要があるため、PDFやCAD図、エクセルなどで最終的に書き出せるという機能もあります。

データフロー

これは、データフローの一覧です。

Rhinoのモデル

Rhinoのモデルを入力して設定していくと、画像のように荷重と面積を選定したガラスが出てきます。

3D上でビジュアライズ

可視化のツールでは書き出したエクセルを読み込んで、3D上でビジュアライズします。中には3Dだと見れないメーカーの方もいるため、PDFで書き出すことで2D化しますが、全て3Dで渡すのは私たちとしてもあまり考えていません。

2D化

2Dで情報を渡した方がいい場合には、2D化して対応しています。

Dynamoとは?

Dynamoとは

ここからは、「Dynamoとは?」の話をしていきます。今までRhino&GHの説明をしてきましたが、今回はRevit上のグラフィカルコーディングについてです。APIの話に関してはさきほどと同様です。

データの考え方

GHを見て「このグラフィカルコーディングをRevitでも使えるようにしたい」という想いからDynamoができたため、見た目は非常に似ていて、操作感も似ています。しかし、中身に大きな違いがあります。

違いがある理由は、APIが全然違うからです。RhinoとRevitを比べると操作のコマンドが全然違いますし、持っている情報の持たせ方やデータの考え方も違います。最初に少し説明したように、Revitはコンポーネントと言っていましたが、実際にはRevitの要素で英語で「Element」と呼んでいます。

一番下の層から見ていくと分かりやすいですが、壁や床、ドア、窓、通芯、レベル、参照面、文字、寸法、詳細線分などを1つのCADに書いている時にはレイヤーで分けるのが一般的です。そのため、1つの階層に全部が入っていますが、Revitでは「モデル要素」と「データ要素」、「ビュー固定要素」にカテゴライズ・整理して、できるだけプログラムでオブジェクティブに実装できるように作られています。

インスタンス

ドアや窓などにおいても名前やタイプが何種類かあり、置いたものを「インスタンス」と呼んでいます。極めてクラス設計に近く、プログラマー的な作り方でモデルを作るという構造になっています。

ファミリのパラメトリックの考え方

ファミリの作られ方としても、基準面・基準線が骨格でパラメータが筋肉、表面的なジオメトリは人間の皮膚、ロジックは脳の部分のイメージです。ファミリ自体がこういうパラメトリックのような「動く」ものとしてコンポーネントが存在していて、それをいかにコンピュータで自動化するかという部分を担うのがDynamoです。Dynamoの難しさにはそういった部分があります。

Dynamoの特徴

本でもいくつかの事例を載せているため、読んでもらうと体系的に学ぶことができて、今回のセミナーの内容の理解も早まると思います。

ここで、Dynamoの特徴を2つ紹介します。
1つ目は、パッケージが豊富であることです。コミュニティで質問したら誰かが答えてくれるくらいにフォーラムが充実していて、ユーザーが多いという点があります。
2つ目は、DynamoPlayerから実行できることです。実際にグラフィカルコーディングを見なくても、パネルを押すだけで自動でプログラムが動かせるため、プログラムに抵抗がある人や恐怖心を感じてる人でも恩恵を受けることができます。

Rhino Inside.Revit

Rhino Inside.Revit

次に、Rhino Inside.Revitについて説明します。ここまでの説明で、RevitとRhinoでは用途が違うことは分かったと思います。そして、「RevitとRhinoの用途が違うのであればいいとこ取りしたい」という気持ちから開発されたのがRhino Inside.Revitです。

Rhino Inside.Revitでは、Revit内にRhinoを立ち上げ、GHを使ってRevitの要素を生成します。メリットとして、Revitが持っている構造的なモデリングや要素を使いながら、データベースで建物を作れるところがあります。また、Revitの良さには図面化が容易という点もあるため、図面化の部分をRevitに手伝ってもらいながら、Rhinoでジオメトリや計算ができます。

要するに、優秀な二人を組み合わせて両方をそれぞれ動かしているのがRhino Inside.Revitになります。

広島スタジアム建設におけるRIR活用事例

大成建設株式会社様の広島スタジアム建設において、Rhino Inside.Revitでお手伝いをした事例を紹介します。私たちは一部分のコードのお手伝いをしたのですが、Rhinoのモデルの中に構造型の情報が入っていたため、Rhino Inside.Revitを使ってGHでRevitのモデルを半自動的にワンクリックで生成できるところを試行しました。

配筋施工図の3Dモデルを自動作成するツール1

次の事例に移ります。清水建設株式会社様で、配筋施工図の3Dモデルを自動作成するツールをRhino Inside.Revitで作りました。パラメータを入力してモデルを選択すると、ワンクリックで配筋が大量に生成されます。手動での配筋も可能ですが、このモデルを作る部分に今まで膨大な労力が必要とされていたため、モデリングをできるだけ自動化しようという目的がありました。

配筋施工図の3Dモデルを自動作成するツール2

そのため、鉄筋に対しての鉄筋型や鉄筋形状などのパラメータを会社の指定のパラメータで自動的に生成するというツールをRhino Inside.Revitで作りました。

配筋施工図の3Dモデルを自動作成するツール3

これをDynamoでやろうとすると、線の数が非常に多いためツールが落ちてしまうことがよくあります。Rhino Inside.Revitのメリットには、描画量や線の量が多くても落ちにくい点もあります。そのため、Rhinoの得意なことを活かしつつ確認しながら配筋ができるのは便利な点です。

なぜコンピューテーショナルなアプローチ?

なぜコンピューテーショナルなアプローチ?

「なぜ、コンピュテーショナルなアプローチ?」ということに対して一番大きいのは、精神面の影響があると思います。よりいい方法があると分かった上で時間がかかる方法を強いられると、何よりも精神的な負荷がかかってしまいます。

単純作業でも時間をかければできるからとはいえ、その単純作業が与える影響は計り知れません。極端な例ですが、ショベルカーやダンプカーの便利さを知った後にスコップを渡されて「何時間かかってもいいから建設現場を掘ってください」と言われた時を想像してみてください。現実的には可能かもしれませんが、正直やってられません。

1度便利なツールを知ってしまった人は、知る以前に戻ることはできません。そのため、こういったコンピュテーショナルなアプローチに関しても、知ってしまったら戻れない不可逆なものだと私は考えています。

結局、どれを選べばいいの?

結局、どれを選べばいいの?

Rhino Inside.Revitも含めて、「結局、どれを選べばいいの?」と余計に迷ってしまう人もいるかもしれません。迷うことはとても大事ですし、正しいと思います。なぜかというと、こういった技術選定をする時には人や技術、機密性、期間、コスト、将来性などを考慮しながら、どれを使うべきかを考えないといけないからです。

一度選んだらやり通さないといけないため、単純な話ではありません。私たちが実際に考慮する際には、開発する人が持ってる技術などをベースに考えます。Dynamoを使う人と協業するのであれば、当然Dynamoを使います。ツールを使う人がグラフィカルコーディングを一切見たくない場合は、DynamoPlayerで見せないようにしたり、GHだとしてもUIを付けて裏にある技術を見せないようにするという考慮もします。

ソフトウェアが得意なこと、不得意なことに関しても同様です。さきほどの配筋の例でもDynamoで無理矢理やると落ちてしまったりするため、開発負荷などのコストがかかってしまいます。使用期間に関しても、短期間と長期間で使うツールを変えることがあります。Rhino&GHやDynamoなどで簡易的な自動化ツールを使うこともありますし、プラグイン的に作ることや、よりソリッドに作ることもあります。

また、そのツールのメンテナンスにかかる期間を含めて、自分用か他人用か、自分以外の人も使うのか、配布を前提とするのかなども考える必要があります。配布を前提とした時には、持っている技術を相手に見せないようにするのか、それともシェアをするのか、そしてデータの最終的な格納場所も決めないといけません。Revitに集約するのであれば最終的には投げないといけないため、フローやデータ連携の可能性についても考える必要があります。RevitとRhinoだけで全てが完結するプロジェクトはほとんどないため、構造計算は構造計算用に投げたり、その他の企業が使っているツールに投げるためにCSVを書いたりなど、データ連携の可能性も考えています。

また、ツールの今後の展望性に関していうと、Rhino&GHやDynamoは「生き長らえたツール」です。すでに実績があるため中堅ソフトのようなイメージで任せても安心感がありますが、一方で若手ツールもさまざま出てきています。そのため、若手ツールの今後の可能性や、学習コストをかける費用対効果なども考える必要があります。ずっと中堅ソフトに頼りっぱなしでは、そのうち取り残される可能性があるためです。

また、単純にソフトのコスト問題もあります。例えば私はCATIAを使っていた経験があるのですが、CATIAは高いため自分で買うのは困難でした。優秀なツールだからこそ、コストを考慮してどれを使うかを考えないといけません。

関連記事