A Route is a sequence of track elements set up for a train to travel on. It starts on a block, passing one of the exit signals there and continues through other track elements until a destination block is reached. The switches are aligned and the signals are cleared along the way, and no other route can exist that is is in conflict of this. Except for the start block, all track elements are locked under this route. A start block is part of a route, but it is not locked itself, thus it can be a destination block of another route, and destination blocks can be start blocks of another route. As a result smaller routes can be chained together to a much larger route.
A minimal route consists of a start block and an end block, and other elements between them that cannot act as a start or end block. Start and end block must have an exit signal (destination blocks can also lead to an exit outside of the territory, or a dead-end track with an end-of-track signal) in the same direction as start and end suggests. The signals must be compatible for the route type. The blocks can be superblocks – the exit signals “belong” to the superblock, not to any inferior block the superblock may contain (therefore inferior blocks cannot be a start or end block for a route).
Any longer route can be divided into smaller minimal route sections. These route sections can be defined by the territory designer (and can contain some additional data), or can be generated or completed automatically at start up time. These are considered “fixed”, as they are present in the route table all the time and activated as needed. Some routes can be created dynamically, e.g. when saved game data are loaded – CTC does not try to match them to any routes in the route table of the scene. Also, parts of a route may be released, and a dynamic route is created automatically to cover the remaining part of the original route, which itself is deactivated. Dynamic routes are eliminated from the route table if not needed anymore.
Any route section, whether it is dynamically created or an activated fixed type, is claimed by a train when it enters the first object from the start block – and turning all track elements of the route to “occupied”, and it is released if it has completely entered the end block – or completely returned to the start block when reversing while on the section – clearing all track elements to “free” except the start and end blocks.
If two trains are coupled together (helper function), the occupancy of routes described above is handled as if it is a single train.
A section can be released also by canceling a route, as long as it was not claimed by a train yet. While it is already released, a conflicting route cannot be entered and switches cannot be manually thrown if the signal that cleared the route earlier is still “running”.