BIM・IFCブログに戻る
エクスポートの修正 · 2026-05-20 · 8分
IFCのGUID重複:気づかないうちにすべてを壊すエラー
BCFで調整を始めて3週間、コメントが参照している要素がモデルから消えていることに気づきます。モデルは一見正常です。エラーの正体は、同じGlobalIdを共有する2つの要素。下流のすべてのツールは、初日から気づかないまま混乱していたのです。
IFCのGUID重複:気づかないうちにすべてを壊すエラー — IFC Viewer Online article cover
IFCのGlobalIdとは
IFCファイル内でIfcRootを継承するすべてのエンティティ(物理要素、スペース、階、建物、敷地のすべてを含みます)は、GlobalId属性を持っています。独自のBase64アルファベットを使った22文字の文字列で、グローバルに一意であり、改訂を重ねても変わらず、ソフトウェア間を行き来しても保持されることが前提になっています。
#100 = IFCWALL('3LYa_FRDj3zhLfyYoQv6Jr', $, 'Exterior Wall - 300mm', $, $, #88, #92, $, .NOTDEFINED.);
#101 = IFCDOOR('3LYa_FRDj3zhLfyYoQv6Jr', $, 'Door D001', $, $, #89, #93, $, .NOTDEFINED.);
// Both elements share the same GlobalId — IFC schema violation.
IFCの仕様(ISO 10303-21)は、GlobalIdの重複を禁じています。しかし、仕様にはそれを強制する手段がありません。ファイルパーサーは、渡されたものを何でも読み込みます。ほとんどのパーサーはチェックすらしません。その結果、構造的には有効なのに、2つの要素が同じIDを自分のものだと主張するファイルができあがります。
重複が起きる原因
- Revitの再エクスポート:Revitのエクスポート設定によっては、既定でエクスポートのたびにGUIDを再生成します。同じモデルを2回エクスポートすると別々のGUIDになり、さらに3回目のエクスポートで古いファイルから要素をコピーすると、衝突が起きます。
- オーサリングツール(BIMソフト)でのコピー&ペースト:GUIDが再発行されないままファミリのインスタンスを複製すると(ArchiCADやVectorworksでよくあります)、同一のGlobalIdを持つ2つの要素ができてしまいます。
- モデルの統合:2つのIFCファイルを、互いのGUIDの衝突を確認せずに統合すると、確実に重複が生じます。両方のファイルが同じ元モデルからエクスポートされている場合は、なおさらです。
- スクリプトで生成したGUID:独自のエクスポートスクリプトが通常のUUID(16進数32文字)でGUIDを生成し、正しいBase64エンコードを行わずに22文字に切り詰めると、一意でない文字列や無効な形式が生まれます。
GUIDの重複で壊れるもの
BCFによる調整
BCFの指摘事項は、GlobalIdで要素を参照します。重複があると、コメントは受け手のツールがたまたま先に読み込んだほうの要素に紐付き、もう一方の要素には参照でたどり着けなくなります。
RevitのIFCリンク
RevitのIFCリンクは、モデルの更新をまたいで要素のバージョンを追跡するためにGlobalIdを使います。重複があると、更新のたびに要素の識別情報がランダムに入れ替わり、変更の追跡が機能しなくなります。
共通データ環境(CDE)の資産台帳
ACCやProjectWiseなどのCDEは、引き渡しデータのためにIFCの要素をGlobalIdで索引付けします。重複があると、台帳には載っているのにモデルの中では見つからない「幽霊資産」が生まれます。
COBieのエクスポート
COBieのシートは、施設管理(FM)のデータをIfcSpaceやIfcAssetのGlobalIdに紐付けます。スペースが重複していると、FMの引き渡しパッケージに重複した行が生じます。
GUIDの重複を検出する方法
CDEに納品する前には、必ず検証を実行しましょう。RULE_DUPLICATE_GUIDのチェックは、他の要素とGlobalIdを共有しているすべての要素を検出します。しかも自動修正が可能で、検証ツールがワンクリックで、重複した要素に仕様準拠の新しいGUIDを生成できます。
Duplexモデルをライブで検証する
buildingSMARTのDuplexをビューアーで開き、問題のない検証レポートがどのようなものかを確認してください。そのうえで、自分のプロジェクトファイルを開いて、GUIDの重複をチェックしてみましょう。
IFC2x3 · 2.4 MB
インタラクティブなIFCビューアーを開く
GUIDの重複を修正する方法
方法1:検証ツールで自動修正する
IFC Viewerの検証ツールは、GUIDの重複を自動修正可能な指摘事項として扱います。RULE_DUPLICATE_GUIDの指摘事項の横にある修正アイコンをクリックすると、仕様に準拠した新しいGlobalIdが生成されます。正しいIFCのBase64アルファベット(0–9、A–Z、a–z、_、$)を使い、先頭の文字が0〜3の範囲に収まる22文字の文字列です。
方法2:Revitで修正する
オープンソースのIFCエクスポーターを使っているRevitの場合:File → Export → IFC → Modify Setup → Advancedタブ →「Export IFC GUIDs」を「Keep Existing」に設定します。これにより、エクスポートのたびにGUIDを再生成するのではなく、Revitが内部で割り当てている安定したGlobalIdがそのまま保持されます。
方法3:ArchiCADで修正する
ArchiCADの場合:File → Save As → IFC 2x3 → Settings → IFC Translation Settings →「Write stable GlobalIDs (from AC internal IDs)」を有効にします。これを有効にしないと、ArchiCADはエクスポートのたびに新しいGUIDを生成します。
IFCのGUID重複:気づかないうちにすべてを壊すエラー