2026年5月9日土曜日

IFC BuildingStorey

IFC空間階層の基本構造

標準的な建築プロジェクトでは、以下の順序で階層が構成されます。

IFCの基本的な階層



IFCクラス 説明 役割
IfcProject プロジェクト 全体の管理単位。プロジェクト名、作成者、単位系(メートルかフィートか等)、座標系の定義などを保持します。
IfcSite 敷地 建物が建つ場所。住所、緯度・経度、敷地の境界線などの情報を含みます。
IfcBuilding 建物 物理的な「ハコ」としての建物。一つの敷地に複数の建物がある場合は、ここに複数の IfcBuilding が並びます。
IfcBuildingStorey 階層・フロア 1階、2階、屋上などのレベル定義。高さ情報(GLからの高度など)を持ちます。
IfcSpace 部屋・空間 居室、廊下、倉庫などの「空間」そのもの。容積や面積の計算根拠になります。
ここでポイントとなるのはIfcBuildingStoreyです。

レベルのパラメータ"建物の階"

レベルには"建物の階"というはい/いいえ型のインスタンスパラメータがあります。これを「はい」に設定したレベルがBuildingStoreyとして出力されます。
レベル線のインスタンスプロパティ

次のようなプロジェクトで考えてみます。このプロジェクトには
  • 1FL
  • 2FL鉄骨天端
  • 2FL
という3つのレベルがあり、構造フレームは2FL鉄骨天端レベルを参照しています。

すべてのレベルの"建物の階"を「はい」に設定した状態でIFCに出力すると。。。
BuildingStoreyは1FL、2FL鉄骨天端、2FLが出力され、BuildingStorey:2FL鉄骨天端には、多くの構造フレームが”Beam”として所属しています。
BIMvisionの画面。すべてのBeamが2FL鉄骨天端にある

2FL鉄骨天端は"建物の階"ではないので、この値を「いいえ」にして出力すると・・・
すべてのBeamが1FLに

BuildingStoreyは1FL、2FLが出力され、構造フレームはBuildingStorey:1FLに所属してしまいます。
IFCでは建物の要素はBuildngStoreyに所属するもの、という方針があるためRevitのIFCエクスポーターが要素の直下のBuildingStoreyを検索して要素を配置するためです。
しかし、この場合の構造フレームは2FLの床を支持するのだから、BuildingStorey:2FLに配置したいとしたらどうすればいいでしょうか?

出力先のレベルを変更する

Revitはこの所属レベル(BuildingStorey)を指定することができます。ヘルプにははっきりとは書いていないのですが、IfcSpatialContainerという共有パラメータを作成すれば、所属するBuildingStoreyを指定することができるのです。
不思議なことに、共有パラメータIfcSpatialContainer(文字型)は大文字小文字半角全角を含めて正確に名前を一致させれば勝手に作っても構いません
Autodesk公式のIfcSpatialContainerを使いたい場合は、Revitの拡張機能の"IFC for Revit"をインストールすると、以下のファイルに
"C:\ProgramData\Autodesk\ApplicationPlugins\IFC 2026.bundle\Contents\2026\IFC Shared Parameters-RevitIFCBuiltIn_ALL.txt"
IfcSpatialContainerというAutodesk公式の共有パラメータがありますからこれを使用するといいでしょう。

使い方

まず、目的のカテゴリ(今回は構造フレームカテゴリ)にインスタンスパラメータとしてIfcSpatialContainerを設定します。
IfcSpatialContainerをプロジェクトパラメータとして設定

構造フレームを選択し、IfcSpatialContainerの値にBuildingStoreyの名前「2FL」を設定します。名前だけを設定することがポイントです。
IfcSpatialContainerの値をBuildingStoreyの名前にする

この状態で、IFCを書き出せば指定したBuildingStoreyに構造フレームが所属します。
所属するBuildingStoreyを変更出来た