Skip to main content

Variants and Cancellation variants

Variants​

Variants are trains, which substitute and modify the original train. Each variant is connected to a base train, from which it derives its path and calendar. The variant then offers the user the possibility to change these characteristics to adapt to new operational requirements.

A variant can only be created for trains without a train group (i.e. the train is not part of a train group with multiple courses). It is possible to create more than one variant for a base train.

Creating a variant​

To create a variant various options are available. It is possible to use the context menu on one or more selected trains in the Timetable or the Timetable graph. It is possible to create a variant from the train editor.

A variant needs a unique identifier (train code), additionally the variant is identified by the variant number. The variant number identifies the variant in the variant hierarchy, where the base train is number zero (not displayed) and the first variant is number 01.

Each variant has an activity bitmask and operating days, which need to be defined during the creation process.

Activity bitmask and operating days​

Each variant has an activity bitmask and operating days. The base train has its activity bitmask true for each day within the scenario validity period and has its Operating Calendar or Custom calendar assigned. The first variant 01 has an activation bitmask (each day either true or false) and this determines if the variant 01 affects the Operating days of the base train. The variant 01 then has its own Operating days defined, either by Operating Calendar or by Custom calendar. The second variant 02 then has its activation bitmask and this determines if the variant 02 affects the Operating days of either the base train or the variant 01. The variant 02 then has its own Operating days defined, either by Operating Calendar or by Custom calendar. Normally, the activation bitmask and the operating days of a variant should be identical.

Example for a scenario with a validity of one week:

Train - bitmask typeMonTueWedThuFriSatSun
Base train - Activation bitmask1111111
Base train - operating days1111100
Variant 01 - Activation bitmask0001000
Variant 01 - operating days0001000
Base train - Effective operating days1110100

Adding a variant 02 the result is the following:

Train - bitmask typeMonTueWedThuFriSatSun
Variant 02 - Activation bitmask0000110
Variant 02 - operating days0000110
Base train - Effective operating days1110000
Variant 01 - Effective operating days0001000
Variant 02 - Effective operating days0000110

The result of this cascade of bitmasks is, that the base train (which was running Mon - Fri at the start) ends up running only Mon - Wed. Variant 01 runs Thu and Variant 02 runs Fri and Sat. On Sunday no train is running. Please note that variants can add or remove trains to and from the timetable, this can significantly change the service concept operated on certain days.

Cancellation variant​

A cancellation variant works the same as a "normal" variant, only that the activation bitmask and the operating days are combined into a single "cancellation bitmask". The effect of "operating days" is inverted, too. This means, when a cancellation variant is active it doesn't run and it deactivates the base train (or other variants below it in the hierarchy). The cancellation variant only allows full cancellations at the moment. For partial cancellations please create a "normal" variant and the possibility to modify its train path.

Example:

Train - bitmask typeMonTueWedThuFriSatSun
Base train - Activation bitmask1111111
Base train - operating days1111100
Cancellation variant 01 - Cancellation bitmask0001000
Base train - Effective operating days1110100