3Dメッシュを描くだけでBIM建築モデルが完成!Homemaker add-onでIFC自動生成
3Dメッシュを描くだけでBIM建築モデルが完成!Homemaker add-onでIFC自動生成
ひとことでいうと
Homemaker add-on は、Blender(無料の3D作成ソフト)上でざっくり描いた3Dメッシュ(壁・床・屋根などの面の集まり)をもとに、建築業界の標準フォーマットである IFC ファイルを自動で作り出す Python ライブラリ兼 Blender アドオンです。専用のBIMツールを使いこなさなくても、シンプルな3D形状さえ用意すれば、壁・床・屋根・階段といった建築部位が自動的に組み立てられます。生成されたモデルは IfcOpenShell をはじめ多くの建築ソフトで読み込めるため、初期の設計スケッチから施工書類の作成まで一貫したワークフローを実現できます。Blender の感覚で描いた形が、そのままBIMデータになるのが最大の魅力です。
こんな人におすすめ
建築設計者・BIM担当者の方には、初期スケッチ段階のアイデアをすばやくIFCモデル化できる点がぴったりです。Blenderのモデリング感覚のまま業界標準データを出力できるので、専用ツールへの切り替えを最小限に抑えられます。
研究者・学生の方には、パターンランゲージ(建築設計のパターンを体系化した考え方)や建築の自動生成研究の実験基盤として活用できます。ライブラリとして Python から直接呼び出せるため、プログラムで建物の形を変化させながら自動的にIFCを出力する実験的なワークフローを構築できます。
FreeCAD・Blenderプラグイン開発者の方は、BIM機能を自分のプラットフォームに組み込む際の土台として利用できます。内部が molior(建築要素を作るモジュール)と topologist(空間のつながりを解析するモジュール)という2層構造になっており、他プラットフォームへの移植もロードマップに含まれています。
インストール・使い方
ターミナル(文字で命令を送る画面)を使います。コマンドはコピー&ペーストで実行してかまいません。
Step 1: 依存ライブラリのビルド
Homemakerの核心となるIFC生成エンジンは TopologicCore(C++ で書かれたトポロジー解析ライブラリ)を必要とします。まず必要なヘッダファイルをインストールし、TopologicCore をビルド(コンピューターが読める形に変換)します。
# Ubuntu系の場合
sudo apt install libocct-foundation-dev libocct-modeling-data-dev
git clone https://github.com/wassimj/Topologic
cd Topologic && mkdir build && cd build
cmake .. && make -j$(nproc) && sudo make install
「OpenCASCADE」というCAD用ライブラリの部品を取得し、TopologicCore のソースコードをダウンロードしてビルドしています。make -j$(nproc) はパソコンのCPUコア数をフルに使って高速ビルドするオプションです。
Step 2: Bonsai BIM と pyyaml の準備
Blender向けのBIMアドオン Bonsai(旧称 BlenderBIM)と、設定ファイルを読み書きするための pyyaml をインストールします。
pip install pyyaml
# Bonsai は公式サイト https://bonsaibim.org/ からインストーラをダウンロード
pip install は Python のパッケージ(部品)を自動取得するコマンドです。Bonsai はIFCファイルの読み書きを担うライブラリ「IfcOpenShell」を内包しており、Homemakerが作るIFCデータの出力を担います。
Step 3: アドオンのインストール
GitHubのReleasesページから環境に合ったインストーラをダウンロードします。すべての依存ライブラリを同梱したオールインワンインストーラを使うと、Step 1 の個別ビルドが不要になり、最も楽に環境を整えられます。ダウンロードしたファイルをBlenderのアドオンディレクトリに配置するか、インストーラの指示に従ってください。
Step 4: Blender でメッシュを描いて実行
Blenderを開き、壁や床を表す平面メッシュを画面上に配置します。アドオンパネルから「Generate IFC」ボタンを押すだけで .ifc ファイルが出力されます。
# DXF(CADソフトで広く使われる図面形式)から直接 IFC を生成することも可能
python dxf2ifc.py input.dxf output.ifc
Blenderの操作に慣れていない場合は、まず公式Wikiに掲載されているサンプルの .blend ファイルを開いて「Generate IFC」を実行するだけで、全体の流れを確認できます。
デモについて
HomemakerのIFC生成にはTopologicCore(C++ネイティブライブラリ)とBonsai BIM(Blender統合環境)が必要なため、ブラウザ上でそのままお試しいただける構成ではありません。実際に試す場合は、GitHubのReleasesページにあるオールインワンインストーラを使ってBlender環境に導入するのが最も確実で手軽な方法です。BlenderとBonsai BIMが動く環境であれば、インストーラがTopologicCoreも含めてセットアップしてくれます。
動かしてみた
実際の環境ではPython 3.12での動作が確認でき、リポジトリのファイル構成が正常に展開されていることを確かめました。主なファイルには以下のようなものが含まれています。
molior/repeat.py
molior/space.py
molior/floor.py
molior/wall.py
molior/stair.py
molior/shell.py
molior/grillage.py
topologist/cell.py
topologist/topology.py
topologist/cellcomplex.py
topologist/graph.py
molior モジュールが壁・床・屋根・階段などの建築要素を生成する担当で、topologist モジュールが3Dセル複体(部屋を立体のブロックとして管理する仕組み)によるトポロジー解析を担う、という二層構造になっています。また blender_manifest.toml というファイルの存在から、Blender 4.x 系の新しいエクステンション形式にも対応していることが確認できました。
はじめの一歩(実践のコツ)
まず手軽に動かしてみたい場合は、以下の順番で進めると迷いにくいです。
- オールインワンインストーラを使う: GitHubのReleasesページから環境に合ったインストーラをダウンロードします。TopologicCoreのビルドが省けるため、初めて試す方にはこちらがおすすめです。
- Blenderのアドオンを有効化する: Blenderを起動し、メニューの「Edit → Preferences → Add-ons」で「Homemaker」を検索して有効にします。すると3Dビューポートのサイドパネルに専用UIが現れます。
- サンプルファイルから試す: 公式Wikiに掲載されているサンプルの
.blendファイルを開いて「Generate IFC」を実行してみましょう。いきなり自分でメッシュを描くより、既存のサンプルで流れをつかむほうがスムーズです。 - 生成結果を確認する: できあがった
.ifcファイルをIfcOpenShellのViewerやBIMcollabで開くと、壁・床・屋根が正しく階層化されたBIMモデルとして表示されます。 - DXF変換も試してみる: AutoCADなどで作ったDXFファイルがあれば、
dxf2ifc.pyスクリプトで直接IFCに変換できます。既存の図面資産をそのまま活かせる手軽な方法です。
活用例
- 住宅設計の初期検討: 部屋の配置をブロック状のメッシュで素描し、IFCに変換して熱負荷シミュレーションや構造解析ソフトへ渡します。IFCには2nd Level Space Boundary(熱環境解析に必要な境界情報)も含まれるため、エネルギーシミュレーションツールとの連携がそのまま可能です。
- 自動建築生成の研究:
molior/topologistをライブラリとしてPythonスクリプトから呼び出し、数値を変えながら建物の形を変化させて一括でIFC化する実験的なワークフローを構築できます。パターンランゲージのフィットネス評価と組み合わせた進化的設計も開発中です。 - DXF図面のBIM化: 既存のAutoCAD DXF図面を
dxf2ifc.pyでIFCに変換し、過去の図面資産をモダンなBIMデータとして再利用するレトロフィット(既存資産の現代化)に活用できます。 - 建築学生の卒業設計補助: 手書きに近い感覚でざっくりとしたメッシュを組み、自動でBIMデータ化することで、設計の思考に集中しながらIFC出力まで完結できます。専用BIMツールの習得コストを大幅に下げられます。
- BIMプラグイン開発の基盤: molior・topologistの2モジュール構成が明確で、FreeCADなど他のプラットフォームへの移植がロードマップに含まれています。新しいBIMツールを開発したい開発者が、IFC生成エンジンとして組み込む用途にも向いています。
- 建築情報学の教育利用: PythonからAPIとして呼び出せるため、大学の建築情報学の授業で「プログラムで建物を設計する」実習ツールとして使えます。IFCという国際標準フォーマットを手を動かしながら学ぶ教材としても適しています。
用語とポイント解説
IFC(Industry Foundation Classes) 建築・土木分野の国際標準データフォーマット(ISO 16739)です。かんたんに言うと、どのソフトで設計しても同じ形式でデータをやりとりできる「共通言語」のようなものです。ベンダー(ソフトウェアメーカー)に依存せず、設計情報を建築関係者の間で広く共有できます。Homemakerが最終的に出力するファイル形式がこれにあたります。
BIM(Building Information Modeling) 3Dモデルに属性・コスト・スケジュールなどの情報を統合する設計・施工手法です。かんたんに言うと、「見た目の3D形状」だけでなく「この壁は何の材料か」「工事費はいくらか」といった情報もまとめて管理する仕組みです。設計から施工・維持管理まで一貫してデータを活用できるため、建築業界での普及が進んでいます。
TopologicCore 3D形状のトポロジー(面と面の隣接関係・空間の内外判定など)を解析するC++ライブラリです。かんたんに言うと、「この面とあの面がつながっているか」「この空間は室内か室外か」を高速に判定するための計算エンジンです。CellComplexという仕組みで空間を部屋単位に分割し、Homemakerが建築要素を自動生成する土台を作ります。
Bonsai BIM Blender向けのオープンソースBIMアドオンで、旧称はBlenderBIMです。かんたんに言うと、Blenderの中でIFCファイルを直接作ったり編集したりできるようにする「拡張機能」です。IfcOpenShellというIFC読み書きライブラリを内包しており、Homemakerが生成するIFCデータのファイル出力を担います。
CellComplex 複数のCell(閉じた空間領域)をグラフ構造で管理するデータ構造です。かんたんに言うと、建物全体を「部屋のブロック」の集まりとして表現し、隣り合うブロックの境界が自動的に壁や床になる仕組みです。この考え方があるため、メッシュを描くだけで建築要素が正しく生成できます。
molior 本ライブラリの建築要素生成モジュールです。かんたんに言うと、トポロジー解析の結果をもとに「壁」「床」「階段」などのIFCエンティティ(データの単位)を実際に作り出す担当部分です。wall・floor・stair などクラスごとにファイルが分かれており、機能を追加・拡張しやすい構造になっています。
topologist 空間のつながりや境界を解析するモジュールです。かんたんに言うと、描いたメッシュがどこで「部屋」になり、どこが「壁」になるかを計算する役割を担います。moliorが建築エンティティを作り出す前段階の処理として、CellComplexのグラフ操作をまとめて行います。
IfcOpenShell IFCファイルを読み書きするためのオープンソースライブラリです。かんたんに言うと、IFCという複雑な形式のファイルをPythonから簡単に扱えるようにするツールキットです。Bonsai BIMの内部でも使われており、生成されたIFCデータをファイルとして書き出す処理を担います。
DXF(Drawing Exchange Format)
AutoCADをはじめとするCADソフト間でデータをやりとりするためのファイル形式です。かんたんに言うと、設計事務所などで広く使われているCAD図面の「共通フォーマット」です。Homemakerでは dxf2ifc.py スクリプトを使ってDXFからIFCへの変換が可能で、既存の図面資産をそのままBIMデータとして再活用できます。
パターンランゲージ 建築家クリストファー・アレグザンダーが提唱した、建築設計の「よいパターン」を体系化した考え方です。かんたんに言うと、「日当たりのよい場所に居間を置く」「入口近くに収納を設ける」など、暮らしやすい空間を作るためのルール集のようなものです。Homemakerの開発は、こうしたパターンを自動的に評価・適用するアルゴリズム建築設計の研究とも深く結びついています。
ぜひ、住宅設計の初期スケッチのIFC化や、Pythonを活用したアルゴリズム建築生成の実験などに活用してみてはいかがでしょうか。