この連載について

シリーズ全5回のテーマを以下に設定した。BIMについて、アプリケーションの使い方やノウハウを中心に紹介したこれまでの記事から、少し違う方向にハンドルを切って「BIMでこう変えていこう」「BIMをこう変えていこう」と提案できるような記事にしていきたい。

シリーズ記事

1.三つの支点で立体トラスを支える

予定していたテーマは「構造設計フローを変える」だったが、前回の「コンピュテーショナルデザインで設計手法を変える」を続けさせていただくことにした。二つのテーマを合体して「コンピュテーショナルデザインが構造設計のフローを変える」というような内容を展開したい。

前回は図のような「立体トラスの支点位置と変形」を最後に少し紹介した。ここでは長方形としたが、大きな屋根があってそれを少ない柱で支えるのに、どこに柱を置けばいいか、コンピューターに考えてもらおうというテーマだ。

立体トラスの支点位置と変形

Autodesk社のDieter Vermeulen氏によるAutodesk University 2018のセミナーで紹介されたプログラムだ。筆者はここで紹介するDynamoのプログラムをクラスの資料(下記)を参考にして作成した。原因は分からないがRevit 2021の新機能、ジェネレーティブデザインとはまだつながらない。

Structural Dynam(o)ite: Optimized Design and Fabrication Workflows with Dynamo
(https://www.autodesk.com/autodesk-university/article/Structural-Dynamoite-Optimized-Design-and-Fabrication-Workflows-Dynamo-2019)

前回と同じくDynamo(ダイナモ)というビジュアルプログラミング言語を使っている。部品(Dynamoではノードと呼ぶ)を並べてつなぐことでプログラムを作るという、目で見て分かりやすい手法だ。このプログラムではDynaShape(https://github.com/LongNguyenP/DynaShape)というパッケージを使って立体トラスを作成している。そしてその支点位置(図では赤い円すい)を動かして、どの位置ならどれくらい立体トラスが変形するかを検討している。荷重がかかって変形した状態は緑色の線で表示されている。

プログラム上で支点位置を示す数値を変更すれば、支点の位置の動きに応じて変形量と形状が変わる。動きのある楽しいプログラムだ。

2.DynamoからRevitへ

BIMアプリケーションであるRevitの中で動作するDynamoだが、Dynamoで作られたモデルがそのままRevitに渡るわけではない。Dynamoプログラムの最後にRevitに出力するというノードを追加しないといけない。

ここでは「StructuralFraming.BeamByCurve」というノードを使い、配置するレベルと梁(はり)部材のファミリタイプを追加で入力して設定した。

DynamoでStructuralFraming.BeamByCurveを使う

このノードを配置してつなぐと同時にRevitの画面には図のようなモデルが作成される。立体トラスの1本1本がRevitの構造フレーム(梁)として作成されている。

Revit上に作成された立体トラスのモデル

3.Grasshopperでも構造検討

コンピュテーショナルデザインのツールとしてはこちらの方がメジャーだと思うが、Dynamoと同じビジュアルプログラミング言語ツールであるGrasshopper(グラスホッパー=バッタ)というアプリケーションがある。Grasshopperでは図のようなKaramba 3D(https://www.karamba3d.com/)という構造計算用の有償プラグインを使ってみた。ここでもサンプルとして用意されている格子梁のモデルを変更して、3点で支えたときの変形をダイナミックに表示させるプログラムを作成した。

Grasshopper +Karamba 3Dによる格子梁モデルの作成

図の緑色の矢印が支点の位置だ。この位置を動かすと、図のように鉛直方向の荷重によって梁が変形していき表示される。

Grasshopperで計算されたモデルはRhinoceros(ライノセラス=サイ)というアプリケーション上に表示される。Rhinocerosは3Dの汎用(はんよう)モデリングツール製品の代表格の一つだ。

Rhinoceros(https://www.rhino3d.co.jp/) *GrasshopperはRhinocerosに付属

Rhinocerosで表示された格子梁の変形

4.Karamba 3Dで部材を最適化

Karamba 3Dには「最適化」という素晴らしい機能がある。部材に働く応力によって適切な部材を選んでくれるのだ。ここではヨーロッパのEU標準規格の鋼材の中から鋼管を指定したので、直径の異なる鋼管から適当な部材が選ばれて配置される。応力の大きな所は濃い青色で表示され、大きな部材が自動的に選ばれ表示されている。

応力に応じて部材の大きさが最適化された

5.モデルをファイルに

Rhinoceros上に3Dモデルが表示されたが、このままではほかのアプリケーションで利用することはできない。ファイルとして保存できるようにする必要がある。

見えているだけの形状を実体のある形状に変換することをGrasshopperでBakeという。図のように形状を表示している部品(Grasshopperではコンポーネントと呼ぶ)を選択しておいてメニューから「Bake Selected」を選ぶ、あるいは[Insert]キーを押すとBakeされる。

Grasshopperでコンポーネントを選択してBake

断面を最適化していない変形の大きな状態のモデルで一度Bakeし、もう一度今度は最適化を行った状態でもBakeする。図のように二つのモデルが重なってRhinoceros上で作成され表示される。BakeされたこのモデルはRhinocerosでファイルに保存することができる。

Rhinocerosで最適化前と後のBakeされたモデルを重ねて表示

6.モデルをDWGに

このようにRhinocerosの画面に選択できる実体が表示されたら、後は自由に加工できる。CADの世界の標準であるDWGファイルに書き出してAutoCADで開いてみた。図のようにきちんと表示される。部材1本1本が独立したポリメッシュというオブジェクトになっている。DWGやDXFに書き出せたらほかのCADやBIMアプリケーションでも使うことができる。

BIMの標準ファイルであるIFCというファイルにもプラグインを使って書き出すことはできるが、ここでは触れない。

AutoCADでRhinocerosから書き出されたDWGファイルを表示

7.RhinocerosからRevitへ

Rhinocerosの標準ファイルは拡張子が3dmのファイルだ。このファイルをRevitやRevitで動作するDynamoで読み込めないか、ツールをインターネットで探してみるとちゃんとあった。Rhynamo(ライナモ)というツールだ。

ここではRhinocerosの3dmファイルを読み込んでDynamo上で表示してみた。図のような四つのノードを配置するだけでDynamo上にRhinocerosモデルが表示された。RhynamoはRhinocerosからRevitに少ない手順でつなぐ最強のツールだと思う。

Rhynamo(https://provingground.io/tools/rhynamo/)

Dynamo上に表示されたRhinocerosモデル

8.ARCHICADとつなぐ

Grasshopper-ARCHICAD Live ConnectionというGrasshopperとBIMアプリケーションのARCHICADを直接つなぐツールがある。Live Connection(ライブ コネクション)という名前がついている。何が「ライブ」なのか見てみよう。

ダウンロードは下記のサイトから行える。最新バージョンのARCHICADを使っている場合は英語サイトからダウンロードした方がよいだろう。サイトには対応するARCHICAD製品番号の記載があるので、よくチェックしてからダウンロードされたい。

日本語(https://graphisoft.com/downloads/addons/interoperability/rhino-JPN)
英語(https://graphisoft.com/downloads/addons/interoperability/rhino)

ダウンロードしてインストールすると、図のように「ファイル」メニュー→「相互運用性」→「Grasshopper Connection」が使えるようになる。実行するとARCHICAD上に「Grasshopper」パレットが表示される。

ARCHICADの「Grasshopper Connection」メニューと「Grasshopper」パレット

Rhinoceros、Grasshopper、ARCHICADと、三つのアプリケーションを起動してデスクトップに並べておく。こうなるとモニター2台は必須だ。

そして目的のGrasshopperのコンポーネントの後ろに、「ARCHICAD」タブにある「Design」パネルの「Beam」コンポーネントをつなぐ。ここではさらに3Dモデルから線分を取り出すKaramba 3Dの「Model」コンポーネントと、メートル単位でモデリングしたモデルをミリメートル単位のモデルに変更するために1,000倍の縮尺をかける「Scale」コンポーネントも追加した。

Grasshopperに「Beam」コンポーネントを追加

これらのコンポーネントを追加してつなぐと、すぐにRhinocerosとARCHICADに図のような格子梁モデルが登場する。

つながったRhinoceros、Grasshopper、ARCHICAD

ARCHICADに表示されたのは表面形状だけを書き出したメッシュのモデルではない。Beam(梁)コンポーネントを使ったので、ちゃんと「梁」としてARCHICADで扱える。ARCHICAD上で、梁ツールを使って部材断面を鋼管に変更してみた。ARCHICADで操作した内容がすぐRhinocerosに反映される。これが「ライブ」の意味だ。モデルの情報が相互にリアルタイムでやりとりされる。

ARCHICADで梁の情報を変更するとRhinocerosモデルも変更される

9.Revitにも渡せるか

実用的な意味はあまりないのだが、せっかくRhinocerosできれいなモデルが表示されたのでこれをRhinoceros標準の3dmファイルに保存して、Revitで読み込んでみた。Revit 2021.1から3dmファイルを直接Revitに読み込めるようになった。ただしRevitでは個々の梁として読み込むことはできず、格子梁全体が一つのオブジェクトとして扱われる「一般モデル」になるので使い道は制限される。

Rhinoceros-Grasshopper-ARCHICAD-Revitとつないでみたというだけの実験だが、構造設計にとって、コンピュテーショナルデザインを使う可能性が広がったことは間違いないようだ。後は使いこなすだけだ。

シリーズ記事