2020年10月 6日公開

実務者のためのCAD読本

【アーカイブ記事】以下の内容は公開日時点のものです。
最新の情報とは異なる可能性がありますのでご注意ください。

続・コンピュテーショナルデザインで設計手法を変える【BIMで変える、BIMが変わる/第3回】

監修:鈴木 裕二

  • CAD
  • BIM

コンピュテーショナルデザインが構造設計の手法を変えると思う。DynamoとGrasshopperというビジュアルプログラミング言語のツールが構造設計で使えるかを検証する。さらにこれらのプログラミングツールとBIMアプリケーションのRevitとARCHICADとがどのようにつながるのかも実例で検証する。特にGrasshopperとARCHICADをつなぐGrasshopper-ARCHICAD Live Connectionが面白い。ファイルに書き出したり読み込んだりすることなく、画面上で三つのアプリケーションがつながって動作する。これらのツールを使いこなすことが、コンピュテーショナルデザインの第一歩だ。そしてどのアプリケーションも構造設計に「使える」というのが筆者の結論だ。

この連載について

シリーズ全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されたモデルを重ねて表示