BIM・IFCブログに戻る
デジタルツイン · 2026-10-16 · 8分
CityGML・IFC・3D Tilesの違い:デジタルツインにはどの形式を使うべきか
デジタルツインが都市スケールに広がると決まって話題に上る3つの形式は、まるで競合するかのように比べられがちです。しかし役割はそれぞれ違います。CityGMLは都市をオブジェクトとして、IFCは1つのアセットを要素単位で記述し、3D Tilesはそのどちらかを分割してブラウザーに届けます。
IFC Viewer Onlineの3Dマップで、市街地の街区の間に配置したヘルシンキ中央駅とバスターミナルのIFCモデル
デジタルツインが1棟の建物から地区へと広がると、どんな議論でも3つの形式が話題に上ります。CityGML、IFC、3D Tilesです。これらはよく、どれか1つが勝たなければならないかのように並べて比べられます。しかし競合しているわけではありません。それぞれが別の問いに答えており、都市のツインには通常3つすべてが必要です。
この記事のポイント
- CityGML(とそのJSONエンコーディングであるCityJSON)は、都市をオブジェクトとして記述します。建物、道路、地形、植生を、詳細度(LOD)ごとに表します。
- IFCは1つのアセットを要素単位で記述し、運用と維持管理に必要なタイプ、プロパティ、関係を持ちます。
- 3D Tilesは配信のための形式です。あらゆる3Dコンテンツを、ブラウザーが粗いものから細かいものへ順にストリーミングできるタイルに分割します。
- 相互の変換では必ず何かが失われます。各ソースはそれぞれの形式のまま保持し、変換するのは配信するときだけにしましょう。
3つは競合ではなく、3つの役割です。都市、アセット、そしてそのどちらかをブラウザーに届けること。
CityGML:オブジェクトとしての都市
CityGMLは、OGC(Open Geospatial Consortium)による3D都市モデルの標準です[citygml]。都市を型付きのオブジェクト(建物、橋、道路、水域、植生、地形)として記述し、それぞれが属性と、詳細度に応じた形状を持ちます。詳細度は建物外形(LOD0)から開口部のあるファサード(LOD3)までです。多くの国や都市のデータセットがこの形式で公開されています。CityJSON[cityjson]は同じデータモデルをJSONで表現したもので、ブラウザーではこちらのほうがはるかに扱いやすくなります。
強みは広さです。地区全体を、一貫した分類で表せます。限界は深さです。CityGMLの建物は、地下にあるポンプのことを知りません。その詳細度がBIMの詳細度とどう違うかは、BIMとCityGMLのLODの違いで解説しています。
IFC:要素単位のアセット
IFCは、建築物とインフラのモデルのためのbuildingSMARTのオープンなスキーマで、ISO 16739-1として発行されています[ifc]。壁、ドア、ポンプ、ドック支柱の1つひとつが、タイプ、プロパティ、数量、周囲の要素との関係を持つ要素です。ツインが追跡するアセットに必要なのはまさにこれです。ライブデータをバインドするための識別情報と、維持管理が頼りにするデータです。IFCモデルを地図上に配置するにはジオリファレンス、つまりIfcMapConversionが必要です。詳しくはIFCの座標とジオリファレンスで解説しています。
3D Tiles:ストリーミングのための形式
OGCのコミュニティ標準である3D Tiles[3dtiles]は、別の問題を解決します。巨大な3Dコンテンツをブラウザーに届けることです。タイルセットはタイルのツリーで、各タイルがそれぞれの詳細度を持ちます。ビューアーはまず粗いタイルを読み込み、カメラが向いている部分を詳細化していきます。写真測量のメッシュ、点群、都市モデル全体がこの方法で配信されます。タイルが持つ意味は、タイルに付随するメタデータの範囲に限られます。
並べて比較
| CityGML / CityJSON | IFC | 3D Tiles |
|---|
| 記述する対象 | 都市オブジェクト | 1つのアセットを要素単位で | あらゆる3Dコンテンツをタイルとして |
| 一般的なスケール | 地区から国全体まで | 建物、橋、駅 | 地球全体まで |
| 意味情報 | オブジェクトごとのクラスと属性 | タイプ、プロパティ、関係、システム | タイルまたはフィーチャーごとのメタデータ |
| 形状 | LOD0〜3のサーフェス | 要素ごとのソリッド | メッシュ(glTF)、点群 |
| 現実世界での位置 | 標準で保持 | 任意(IfcMapConversion) | 標準で保持 |
| 得意なこと | 都市全体で一貫したデータ | アセットの識別情報とデータ | 大きなモデルをブラウザーに届けること |
都市ツインでの組み合わせ方
よくあるパターンはこうです。周辺環境と都市全体の分析にはCityGMLまたはCityJSONの都市モデル、ライブデータを担うアセットや維持管理が必要なアセットにはIFC、そしてどちらかが大きすぎて一度に送れない場合のストリーミングには3D Tiles。IFCをCityGMLに変換すると外形は残りますが、意味情報の大半は失われます。どちらを3D Tilesに変換しても、残るのは見た目くらいです。だからこそ、各ソースはそれぞれの形式で保持し、変換は配信のときだけにします。
このブログのライブ事例では、周辺環境はOpenStreetMapの建物を押し出したブロック(おおむねLOD1)で描き、アセットはIFCモデルにしています。ライブデータがバインドされるのがIFCモデルだからです。このビューアーが読み込むのはIFCで、現時点ではCityGMLや外部の3D Tilesは読み込めません。事例と、それぞれで示していることは、都市デジタルツインとはをご覧ください。
CityGML・IFC・3D Tilesの違い:デジタルツインにはどの形式を使うべきか