クラスとPredefinedTypeの関係
IFCは、現実世界の建材をコンピュータが理解できるように分類しています。しかし、一つのクラスだけでは範囲が広すぎます。例えば
- IfcCovering(クラス):何かを覆うもの
- これだけだと、それが「天井」なのか「床」なのか「幅木」なのか区別がつきません。
- PredefinedType(小分けラベル):その中身を特定する役割
- CEILING(天井)
- FLOORING(床仕上げ)
- SKIRTINGBOARD(幅木)
USERDEFINEDの役割
- PredefinedType = SKIRTINGBOARD
- 「世界標準のリストにある『幅木』です」という意味。
- PredefinedType = USERDEFINED
- 「リストにはない特殊なものですが、仕上げ材の一種です。具体的な名前は ObjectType を見てください」という意味。
IFCのルールでは、PredefinedType(定義済みの種類)を USERDEFINED にした場合、「じゃあ、具体的に何なの?」という情報を ObjectType という属性に書き込むことが義務付けられています。
RevitでObjectTypeを指定する
RevitでObjectTypeを指定するには、パラメータIfcSpatialContainer同様、隠しパラメータIfcObjectTypeが用意されています。
IfcObjectTypeパラメータは、次のいずれかの方法で作成できます。
- 共有パラメータで自作する
- プロジェクトパラメータとして自作する
- Autodesk公式の共有パラメータを使用する
1や3の共有パラメータであれば、ファミリにあらかじめ仕込んでおくこともできます。
3の場合は、Revitの拡張機能からIFC v26.4.1 for Revit 2026などをインストールすると、次の共有パラメータファイルの中にあります。(各バージョン有ります)
"C:\ProgramData\Autodesk\ApplicationPlugins\IFC 2026.bundle\Contents\2026\IFC Shared Parameters-RevitIFCBuiltIn_ALL.txt"
例えば次のような簡単な下足入れを造作工事カテゴリでインプレイスファミリとして作成しました。これをObjectType=SHOERACKと指定してみます。
| 造作工事カテゴリで作成した下足入れ |
何も設定せずIFCに出力すると・・・・
| BIMvisionでの表示 |
IfcEntityはRevit標準のマッピングでIfcFurnitureになっていますが、PredefinedTypeはNOTDEFINEDですから、「具体的に何なのか?」がわかりませんね。
そこでまず、プロジェクトパラメータとしてIfcObjectTypeを目的のカテゴリ(今回は造作工事)にインスタンス(場合によってはタイプ)パラメータとして追加します。
- パラメータを自作する場合は、データタイプを文字にしてください。
データタイプは文字 - Autodeskの標準共有パラメータを使用する場合は、パラメータグループRevit IFC Exporter ParametersグループにあるIfcObjectTypeを利用してください。
IFC Shared Parameters-RevitIFCBuiltIn_ALL.txt
目的のファミリを選択し、インスタンスパラメータ定義済み書き出しIFCクラス、IFCタイプ、IfcObjectTypeを次のように設定します。
この状態で書き出してみます。
| ObjectType=SHOERACKと出力されました |
これでユーザー定義のオブジェクトタイプを書き出すことができ、この要素がなんであるかを伝えることができるIFCデータになります。