この記事ではGrasshopperを用いてパラメトリックな外装のビルをモデリングします。建築の外観をパラメトリックにモデリングできるようになれば、動的な環境シミュレーションによる建物形状の最適化などに連携することが可能となります。
Rhinoceros+Grasshopperについて
Rhinoceros+Grasshopperでパラメトリックにモデリングする大枠の流れと目的については、以下の記事をご参照くださいませ。
MENTERU TECH BLOG|
Rhinoceros+Grasshopperで実現するパラメトリックなシミュレーションによる建物形状の最適化アプローチ
https://tech.menteru.jp/notes/Rhinoceros-and-Grasshopper
Grasshopperでパラメトリックな外装のビルをモデリング
以下の流れで、パラメトリックな外装のビルのモデリングを実装します。
- ビル側面の分割面を「Isotrim」と「Divide Domain^2」で規定
- 「Construct Domain」と「Range」で延長幅のリストを生成
- 「Extrude」で分割した面を延長幅のリストに応じて延長

ビル側面の分割面を「Isotrim」と「Divide Domain^2」で規定
まず、ビルの側面となる面を生成します。「Plane Surface」のコンポーネントに対して、基準となる平面を”Plane”にX方向とY方向の長さを”X Size”と”Y Size”にそれぞれ受け渡します。外装を変形させるパターンの細かさを規定するため、作成した平面を「Isotrim」で分割します。「Isotrim」の”Surface”に作成した面を接続し、”Domain”に垂直/水平方向の分割セグメントの情報を受け渡します。”Domain”に受け渡す分割セグメントは、「Divide Domain^2」で生成し、”Domain”には生成した面を、”U Count”と”V Count”にはそれぞれ垂直方向と水平方向の分割数を受け渡します。

「Construct Domain」と「Range」で延長幅のリストを生成
次に、分割した平面を引き延ばす幅のリストを「Construct Domain」で生成します。”Domain Start”を最大で引き延ばす長さとして、”Domain Start”には「Range」で引き延ばし長さを徐々に変えたリストを受け渡します。「Range」の”Domain”には引き延ばす長さの最小値と最大値を受け渡し、それを”Steps”で分割することでリスト化します。”Steps”には面の分割数と同じ値を受け渡します。

「Extrude」で分割した面を延長幅のリストに応じて延長
最後に、「Extrude」で分割した面を延長幅のリストに応じて引き延ばすことでパラメトリックな外装を再現します。
“Base”に分割した面を受け渡しますが、延長幅を適用する面をグルーピングするために「Partition List」の”List”に分割した面のリストと”Size”にグループ化する単位を受け渡します。さらに、”Flip Matrix”でグループの行列を入れ替えた状態の面のリストを「Extrude」の”Base”に受け渡します。
次に、”Direction”には、先ほど「Range」で生成した延長幅のリストにベクトル情報を付与して受け渡すため、「Unit Y」でY方向のベクトルに変換した上で”Direction”に接続します。

コメント