Skip to content

Rail Features

A rail feature describes a length of rail installed on the network: its type and section, its size and height, who manufactured it, and when it was rolled, installed, and removed. An asset is the thing being maintained; a rail feature records the specific rail steel fitted to it, so you can track that material over its life on the track.

  • Represents: a length of installed rail and its physical characteristics
  • Body: a JSON array of rail-feature objects
  • Keyed by: id — your external identifier, and the upsert key
  • Belongs to: the assets it relates to, each by assetId

A rail feature captures the rail’s physical properties: its type or model, industry section code, weight and height with units, condition at installation, the track leg it sits on, and a rolling stamp recording when the steel was rolled. Lifecycle dates (installed and removed) let you reason about how long a rail has been in service.

Like other models, a rail feature can carry custom metadata as name/value pairs, so source-system fields that don’t map onto a standard rail concept aren’t lost.

Every rail feature relates to one or more assets through its assets list. Each entry names an asset by its assetId and may carry the shared geolocation block, pinning the rail to a position along that asset. The asset is the anchor, and the rail feature is the material fitted to it. A rail feature must relate to at least one asset.

  • Import (or at least define the identifiers for) the assets a rail feature references before the rail feature itself, or the link resolves to nothing.
  • Keep identifiers stable across imports. Re-importing a rail feature with an existing id updates it in place rather than creating a duplicate.
  • A reference to an asset the platform doesn’t recognise passes request validation but fails at job time — see Common Errors.