Skip to main content

FAQ: BIM/CAD Model Formats in Cesium ion

This FAQ applies to tilesets produced by the BIM/CAD Tiler with Database.

Revit (RVT)

Revit has a fixed, standardized set of built-in categories (e.g., Floors, Walls, Doors) that are consistent across projects. After tiling, each 3D Tiles feature carries category and subcategory values as BigInt IDs in the tileset metadata, with human-readable names stored as parallel arrays. To filter by category in CesiumJS, use a Cesium3DTileStyle with an evaluate callback and Set.has() for O(1) performance. See element properties & filtering Step 4 for more information.

All Revit parameters per element are accessible via the Element Properties API: GET /assets/:assetId/elements/:elementId returns a properties object with all parameter key-value pairs (e.g., INSTANCE_LENGTH_PARAM, INSTANCE_REFERENCE_LEVEL_PARAM). Properties are not embedded in the 3D Tiles themselves — they require an API call.

Revit Rooms and Spaces are tiled by default as spatial container geometry. They can be hidden in CesiumJS using category-based styling, and a fix to filter them at tiling time is planned. Note also that RevitDynamic.TextNote elements are currently classified as physical elements and will appear in the tiled output.

Each 3D Tiles feature carries element, model, category, and subcategory IDs, sufficient for flat category-based grouping (e.g., show/hide all doors). Full hierarchy traversal (building → level → room → element) requires iModel tree APIs not yet exposed as generic REST endpoints.

IFC

IFC categories are defined by the IFC schema (IfcProduct subtypes) and can be controlled at export time. Unlike RVT, IFC exports can be configured to exclude unwanted element types before upload. Each feature carries category and subcategory BigInt IDs, same as RVT.

Those are IfcSpace elements — spatial containers used to define room volumes. By default, all geometry including spatial elements is tiled. A fix to filter these at tiling time is planned. In the meantime, they can be hidden in CesiumJS using category-based styling.

Each feature carries element, model, category, and subcategory IDs sufficient for flat grouping. Full traversal of the IFC spatial hierarchy (IfcSiteIfcBuildingIfcBuildingStoreyIfcSpaceelement) requires iModel tree APIs not yet available as generic REST endpoints.

AutoCAD Drawing (DWG)

Categories map directly to layers. Layer names are user-defined and not standardized — they vary widely across projects and firms. After tiling, layer names appear as category names in the tileset metadata. Consistent naming between different DWG sources is not guaranteed.

It varies based on what was authored in the source file. DWG supports block attributes and xdata. Layer names are always available as category names. There is no standard attribute schema, so metadata richness varies widely between files.

MicroStation Design (DGN)

DGN categories correspond to levels — MicroStation's equivalent of layers. After tiling, level names appear as category names. Known issue: 2D drawing elements at z=0 are classified as Generic:PhysicalObject rather than a drawing-specific class, so they appear in the tiled output alongside 3D geometry.

It varies based on what was authored in the source file. DGN supports item types and tags. Level names are always available as category names. As with DWG, there is no standard attribute schema.

Content and code examples at cesium.com/learn are available under the Apache 2.0 license. You can use the code examples in your commercial or non-commercial applications.