Skip to main content
This page lives in the Users section and is also referenced from Developers. If you arrived from there, your sidebar has switched to Users.

IFC Infrastructure Types

CDT's Infrastructure entity supports civil engineering assets across multiple IFC 4.x domains and CityGML. The type system is reflected in @collabdt/core/types/dbTypes.ts as a set of enumerations that map to IFC schema concepts.

Overview

When creating or classifying an infrastructure asset, two top-level enums set the domain:

  • InfrastructureType — the broad category (Road, Railway, Bridge, etc.)
  • IfcInfrastructureDomain — the specific IFC schema domain

Additional type-specific enums then apply depending on the domain (e.g., ifcRoadType applies only when ifcDomain = IfcRoad).

How It Works in CDT

The Infrastructure model stores IFC domain fields as optional columns. Only the fields relevant to the asset type need to be populated — all others remain null.

// Example: a highway road segment
const road: Partial<Infrastructure> = {
infrastructureType: 'Road',
ifcDomain: 'IfcRoad',
ifcRoadType: 'Highway',
ifcLaneCount: 4,
ifcDesignSpeed: 100,
}

The CityGML fields (cityGmlLod, cityGmlFunction, etc.) can be set independently of IFC fields on the same record, supporting hybrid representations.

Key Files

FileRole
@collabdt/core/types/dbTypes.tsAll infrastructure enums and the Infrastructure interface
@collabdt/core/hooks/infrastructures/infrastructures.tsHooks for reading/writing infrastructure records

Enum Reference

InfrastructureType

Top-level classification of the asset.

ValueDescription
LandFeatureNatural or artificial land feature
FacilityBuilt facility (airport, port, station)
ProjectConstruction project envelope
AlignmentLinear reference route
RoadRoad corridor
RailwayRail corridor
SurveySurvey boundary or point
LandDivisionCadastral division
CondominiumCondominium unit boundary
OtherUncategorised

InfrastructureState

Lifecycle state of the asset.

Value
Existing
Proposed
Planned
UnderConstruction
Abandoned
Demolished

IfcInfrastructureDomain

IFC 4.x schema domain.

ValueIFC Schema
IfcRoadRoads
IfcRailwayRailways
IfcBridgeBridges
IfcMarineFacilityPorts, harbours
IfcWaterwayCanals, rivers
IfcGeotechnicalAssemblyGround/geotechnical

IfcRoadType

Value
Highway, Street, Interchange, BicycleWay, Footway, NotDefined

IfcRailType

Value
HeavyRail, LightRail, Subway, Tram, Monorail, RackRail

IfcTrackComponentType

Value
Track, Sleeper, Ballast, Frog, Sleepers, Block

IfcBridgePartType

Value
Abutment, Deck, Pier, Pylon, Superstructure, Substructure

IfcGeotechType

Value
Borehole, Earthwork, RockTunnel

IfcSignalType

Value
TrafficLight, RailSignal, Sign, Panel

IfcSensorType

Value
TrafficSensor, WeatherSensor, SecurityCamera

IfcUtilityType

Value
PowerLine, Telecom, Stormwater, Sewage, Gas, DuctBank

IfcEarthworksType

Value
Cut, Fill, Embankment, Subgrade

IfcFacilityPartType

Value
Segment, Junction, LevelCrossing, Terminal

CityGML Enums

CityGML fields describe the visual and semantic attributes of city objects at a given Level of Detail (LOD).

CityGmlLod

LOD0 (footprint) → LOD4 (interior).

CityGmlFunction

Value
Traffic, WaterBody, SolitaryVegetation, PlantCover, CityFurniture, LandUse

CityGmlFurnitureType

TrafficLight, TrafficSign, StreetLamp, BusStop, Bench, WasteBin, Bollard

CityGmlVegetationType

Tree, Shrub, Hedge, Grass

CityGmlSurfaceMaterial

Asphalt, Concrete, Gravel, Soil, Grass, PavingStones

CityGmlTrafficSurfaceFunction

DrivingLane, CycleLane, Sidewalk, ParkingBay, Crosswalk, TrafficIsland, Embankment

CityGmlCondition

Intact, UnderConstruction, Declined, Demolished, Ruin

Gotchas

  • IFC fields are domain-specific — setting ifcRoadType on a IfcBridge record has no semantic meaning. The schema does not enforce this constraint; validation is the application's responsibility.
  • cityGmlLod is independent of ifcDomain. A single record can carry both IFC and CityGML attributes.
  • infrastructureParentId is a string referencing another infrastructure record's external/feature ID, not its database id.

Further Reading