1週間前 - 最終編集 1週間前
【Archicad × Claude Code】構造計算のIFCから、木造の構造モデルと構造図を同時に自動生成する(更地から23分・ノーカット)
広島県福山市で、木造建築物の設計・施工をしている工務店です。
木造でArchicadをお使いの方に、ひとつ実験の結果を共有させてください。
https://www.youtube.com/watch?v=gUIoWo2c8fM
■ きっかけ ── 構造計算の結果を、手で打ち直している
木造の構造をBIMで組もうとすると、たいていここで止まります。
・構造計算ソフトからIFCは出せる。ただ、持ってきただけでは図面にならない
・筋交や金物は、計算書(紙・PDF)を見ながら手で拾って入力する
・柱頭柱脚金物は、記号(HD28、O15…)を1本ずつ製品に読み替えて配置する
・入力し終わった頃には、計算がひとまわり変わっている
BIMユーザーはRC造・S造の方が多いと聞きますが、木造は部材と金物の点数が多く、
この手入力の量が効いてくる分野でもあります。
■ やったこと ── 更地から、54工程・約23分・手作業ゼロ
構造計算結果のIFCを入力に、Archicad 29上で建物を丸ごと組み上げるツール群を作りました。
動画は、更地の状態から通しで流したノーカット記録です(等倍・23分)。
基礎 → 土台・大引 → 基礎パッキン・アンカーボルト・ホールダウン
→ 床束・床合板 → 柱51本(管柱48・通し柱3)→ 間柱37本 → 窓台・まぐさ
→ 筋交・耐力面材 → 小屋梁・母屋・登り梁 → 仕口・継手
→ 小屋束34本+束金物71個 → 垂木54本 → 屋根パネル60枚
→ 破風・鼻隠し → タルキ欠き270箇所 → タルキック70本 → かけ打ち200本
自動処理した要素・加工は合計1,549。この間、手作業はありません。
■ いちばんお伝えしたいこと ── モデルだけでなく「構造図」が同時に出来ます
3Dの部材が置かれた瞬間に、
・構造伏図の記号(柱の■、通し柱、束の○、金物記号)
・構造の通り断面図での見え方(仕口の断面、継手の段差、接合部の線)
が一緒に入ります。
理由は、部材のGDLオブジェクト側に2D表現を作り込んであるからです。
たとえば柱頭柱脚金物は、基礎伏図では△(アンカーボルト)、金物図ではHD記号、
というように、表示している階に応じて記号が自動で切り替わります。
「3Dモデルを作ってから、図面用に描き直す」工程がありません。
モデルが出来上がった時点で、構造伏図と構造の通り断面図もできています。
■ 構造が変わっても、もう一度まわすだけです
冒頭に書いた「入力し終わった頃には計算が変わっている」への答えが、ここになります。
ツールは、自分が作った要素に管理用の印を付けています。
そのため再実行したときに、
・増えた部材は作る
・無くなった部材は撤去する
・変わっていない部材は触らない
という動き方をします。全部消して作り直すわけではありません。
構造計算がやり直しになったら、新しいIFCに差し替えて、もう一度まわす。
それで最新版に置き換わります。金物の記号が変わっていれば金物も入れ替わりますし、
柱が1本増えていれば、その柱の仕口も金物もついてきます。
構造図の記号も同時に更新されます。
なお、手で置いた要素には印が付かないので、再実行しても触りません。
既存棟のホットリンクなども同様です。
ツールが手を入れるのは、自分で作って印を付けたものだけ、という線引きにしてあります。
■ 金物と仕口
・柱頭柱脚金物:タナカ製のコーナー金物10種類(シナー/フック/コンパクト/
オメガコーナー15kNⅡ/オメガコーナー20kN、各・標準+床合板仕様)と、
ビスどめホールダウンHi28・Hi43をGDLで作成
・構造計算のIFC(IfcMechanicalFastener)から記号を読み、
C1/FC/SC/O15/O20/HD28/HD43を実製品へ自動で振り分け
・仕口・継手:アリ、差し口、鎌継手を実形状で。受け材にはソリッド編集で女木を掘ります
・タルキ欠き270箇所も、表現ではなく実体で欠き込み
■ どうやって作ったか
ツール群もGDLオブジェクトも、Claude Code(AI)と対話しながら書いています。
私自身はプログラマではありません。
進め方としては、
・「こういう納まりにしたい」を日本語で伝える
・AIがPythonを書く/GDLを書く
・実機で流して、目視と読み戻しで検証する
・違っていたら、どこがどう違うかを伝えて直す
の繰り返しです。うまくいった部分より、間違いをどう見つけるかのほうが本題でした。
いちばん手こずったのは「書いたつもりで書けていない」値です。
たとえば梁の基準線位置。ここを取り違えたまま垂木を並べていたのですが、
位置を読み戻すと必ず期待値と一致してしまいます。基準線そのものが返るからで、
実体が幅の半分だけ横にずれていても検証は通ってしまう。
西面と東面では梁の走る向きが逆なので、両面で45mm=垂木ちょうど1本分の
食い違いになっていました。バウンディングボックスで実体を測って、やっと見つかりました。
最終的には、配置したあとに実体を測り直して期待値と突き合わせる、
という手順に落ち着いています。
■ 出来上がった後は、AIは要りません
ここは誤解されやすいところなので書いておきます。
動画で流しているのは、54工程を順に実行する通しランナー1本です。
実行中、AIは一切動いていません。ネットワークも要りません。
同じ入力を与えれば同じ結果が出る、ふつうのプログラムです。
AIが要るのは「道具を作るとき」だけで、
出来上がった道具は、AI無しで何度でも回せます。
新しい部材や納まりを足したくなったときに、またAIと一緒に作る。
その分け方で運用しています。
■ 技術構成
Archicad 29 / Tapir(無償アドオン)のPython実行環境 / Python
大半はTapirのPython実行環境だけで回ります。
ただ、どうしてもTapirから届かない操作がいくつかあり、
そこだけ自作のC++アドオン(Archicad API)で口を足しました。
・梁の基準線位置(上部左/上部芯…)の読み書き
・梁の端部の切り方(カネ/タツ/水平)の読み取り
・プロファイル梁を素の断面に戻して、幅・成・建材を確定する
・要素のレイヤー変更
・アクティブ階の切り替え
いずれも「Python側から読めない・書けない」ことが先に分かって、
後から足したものです。読めない値は検証ができないので、
検証したい値に読む口が無いなら、アドオンで足す。そう割り切りました。
■ おことわり
自社案件のために内製したもので、配布・販売の予定はありません。
物件ごとの作法も入っています。
「Archicad+Tapir+Python+AIでここまで動く」という一例としてご覧ください。
■ 次回
各GDLオブジェクト(金物・仕口・筋交・耐力面材)の紹介は、
別の動画かURLでご紹介する予定です。
■ 動画(23分ノーカット・工程名の字幕付き)
■ 木造ユーザーさんにおたずねします!
木造でArchicadをお使いの方、構造計算の結果はどのように取り込んでおられますか。
IFCを使っている方、手入力の方、それぞれの工夫があれば教えていただけると嬉しいです。