Timetable amendments
title: Timetable amendments ---#### Example
File format
.amendments files are XML files containing a sequence of amendment instances. Each amendment instance defines a change in the scheduled timetable; these changes are applied in the same order they are listed in the file. Each type of possible change to the timetable is described by an amendment template. Below there is a list of all the available amendment templates. The amendment instance links a template to a configuration, which contains all the parameters required to perform the change in the timetable.
Here an example of an .amendments file with two amendment instances:
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="3">
<instance id="1"
template="spareDriver"
title="Spare driver"
enabled="true">
<configuration class="spareDriver"
trainExpression="9Y61RL#1"
minimumConnectionTime="120"/>
</instance>
<instance id="2"
template="cancelConnection"
title="Cancel a connection"
enabled="true">
<configuration class="cancelConnection"
inboundTrainExpression="9W26RL#1"
inboundEntryExpression="SHENFLD"/>
</instance>
</amendments>
Instances are applied only if the enabled attribute is set to true.
The title attribute is a short description for the amendment, for documentation purposes, and it is optional. The template, instead, is used by Trenissimo and must have a valid value. Below there is a list of valid amendment templates. The class of the amendment configuration must match the class required by the templates, as outlined below.
Use an unique id for each instance, and set the nextId to the maximim id value plus one.
Add / remove / change stops
Add stop
Add a new stop. The train follows the new stopping pattern.
* Template name: addStop
* Configuration class: addStop
* Configuration options:
* trainExpression : number of the train. Required.
* entryExpression : code of the station to stop the train at. Required.
* minStopTime : minimum stop time. Required. Must be positive.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="addStop"
title="Stop at GIDEAPK"
enabled="true">
<configuration class="addStop"
trainExpression="1A34"
entryExpression="GIDEAPK"
minStopTime="30"/>
</instance>
</amendments>
Remove stop
Remove a planned stop
* Template name: removeStop
* Configuration class: removeStop
* Configuration options:
* trainExpression : number of the train. Required.
* entryExpression : code of the station to not stop the train at. Required.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="removeStop"
title="Do not stop at GIDEAPK"
enabled="true">
<configuration class="removeStop"
trainExpression="1A34"
entryExpression="GIDEAPK"/>
</instance>
</amendments>
Replatforming
The trains use a different platform
* Template name: replatforming
* Configuration class: replatforming
* Configuration options:
* trainExpression : number of the train. Required.
* stationCode : code of the station where to change platform. Required.
* newPlatform : code of the new platform to stop at. Required.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="replatforming"
title="Stop at GIDEAPK/4"
enabled="true">
<configuration class="replatforming"
trainExpression="1A34"
stationCode="GIDEAPK"
newPlatform="4"/>
</instance>
</amendments>
Cancellations
Cancel a service
Cancel a service. The course does not operate.
The uncovered unit is taken out from the platform and sent to a depot using an outbound train template. The empty train planned departure is calculated taking into account the arrival of the previous service and the user-defined minimum connection time. A inbound train is sent to the opposite end of the cancelled course to form the following train using a template. The inbound entry train is created in the simulation taking into account the planned departure of the connected service, the user-defined minimum connection time and the planned running time of the templates.
Notes: * New connections are automatically created. * Outbound/inbound templates are independent of each other, new empty trains are not connected and can refer to different depots if the units are available. In this way the inbound train can be sent even before the other one arrives.
* Template name: cancelService
* Configuration class: cancelService
* Configuration options:
* trainExpression : number of the train to cancel. Required.
* outboundEmptyTrainTemplateName : train template name for the empty move to send the unit to the depot. Required. Must start from the same origin of the cancelled train. Required.
* inboundEmptyTrainTemplateName : train template name for the empty move to get the unit from the depot. Required. Must end at the same destination of the cancelled train. Required.
* emptyTrainSuffix : suffix to append to the original train numbers. Default -EMPTY.
* connectionTime : time between the arrival of the inbound train and the departure of the empty movement, and the arrival of the empty movement and the departure of the outbound train. Default 60 seconds.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="cancelService"
title="Cancel service 1A34"
enabled="true">
<configuration class="cancelService"
trainExpression="1A34"
outboundEmptyTrainTemplateName="LIVST-TO-ILFEMUD"
inboundEmptyTrainTemplateName="ILFEMUD-TO-SHENFLD"
emptyTrainSuffix="-EMPTY"
connectionTime="360"
/>
</instance>
</amendments>
Cancel a pair of services
Cancel a pair of services. If there are 4 trains connected (train A, B, C and D) and the train A is late it is possibile to cancel the pair of service B and C (by indicating train B as inbound train to cancel). This will automatically create a new connection between train A and D.
* Template name: cancelService
* Configuration class: cancelService
* Configuration options:
* inboundTrainExpression : number of the first train to cancel. The following train will be cancelled as well. Required.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="cancelServicesPair"
title="Cancel services 1A34 and 1A35"
enabled="true">
<configuration class="cancelServicesPair"
inboundTrainExpression="1A34"/>
</instance>
</amendments>
Short turn
When a short-turn is performed using a turnback track, this amendment make a partial cancellation of two connected trains in a common intermediate station and create a new connection using a user-selected turnback track. Only the inbound train must be indicated. Outgoing train is determined automatically, based on connections. The short-turn is feasible even if two trains were connected by a single empty train in the original turnback station.
* Template name: shortTurn
* Configuration class: shortTurn
* Configuration options:
* inboundTrainExpression : number of the train to short turn. Outbound train is determined automatically, based on connections.
* entryExpression : code of the station to short turn the train at. Required.
* turnbackPlatform : name of the platform to stop the train at. Required.
* connectionTime : minimum time, in seconds, between the arrival of the inbound train and the departure of the outbound train. Required.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="shortTurn"
title="Cancel services 1A34 at GIDEAPK, wait at platform 5,
then take service as 1A35"
enabled="true">
<configuration class="shortTurn"
inboundTrainExpression="1A34"
entryExpression="GIDEAPK"
turnbackPlatform="5"
connectionTime="360"/>
</instance>
</amendments>
Short turn with empty move
When a short-turn is performed using a turnback siding, this amendment make a partial cancellation of two connected trains in a common intermediate station and create a connected empty movement between those trains using a user-defined template. Only the inbound train must be indicated. Outgoing train is determined automatically, based on connections. The short-turn is feasible even if two trains were connected by a single empty train in the original station. If there are no turnbacks or more than one in the empty train template, it is possible to specify the turnback move pivot. This parameter is the entry on which all the slack time is accumulated, to ensure the correct connection time on both the arriving and departing courses. By default, slack is accumalated at the first turnback.
* Template name: shortTurnWithEmptyMove
* Configuration class: shortTurnWithEmptyMove
* Configuration options:
* inboundTrainExpression : number of the train to short turn. Outbound train is determined automatically, based on connections.
* entryExpression : code of the station to short turn the train at. Required.
* turnbackMoveTemplate : Name of the train template for the turnback empty move. Required.
* pivotExpression : code of the station of the turnback template on which all the slack time is accumulated, to ensure the correct connection time on both the arriving and departing courses. By default, slack is accumulated at the first turnback.
* connectionTime : time between the arrival of the inbound train and the departure of the empty move, and the arrival of the empty move and the departure of the incoming train. Required.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="shortTurnWithEmptyMove"
title="Cancel services 1A34 at GIDEAPK, wait at GIDEPKM,
then return to GIDEAPK and take service as 1A35"
enabled="true">
<configuration class="shortTurnWithEmptyMove"
inboundTrainExpression="1A34"
entryExpression="GIDEAPK"
turnbackMoveTemplate="GIDEAPK-GIDEPKM-GIDEAPK"
connectionTime="360"/>
</instance>
</amendments>
Pull out of service
Pull out of service the selected trains, change their category, service class, and remove any intermediate stop.
* Template name: pullOutOfService
* Configuration class: pullOutOfService
* Configuration options:
* trainExpression : number of the train to recategorize. Required.
* categoryName : name of the empty category.
* serviceClassCode : service class of the empty category.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="pullOutOfService"
title="Run 1A34 as empty."
enabled="true">
<configuration class="pullOutOfService"
trainExpression="1A34"
categoryName="EE"
serviceClassCode="5"/>
</instance>
</amendments>
Connections
Cancel a connection
Cancel a connection.
* Template name: cancelConnection
* Configuration class: cancelConnection
* Configuration options:
* inboundTrainExpression : number of the inboound train. Required.
* inboundEntryExpression : code of the station in which to delete the connection. Default is the destination.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="cancelConnection"
title="Cancel connection between 1A34 and 1A35."
enabled="true">
<configuration class="cancelConnection"
inboundTrainExpression="1A34"/>
</instance>
</amendments>
Create a connection
Create a connection
* Template name: createConnection
* Configuration class: createConnection
* Configuration options:
* inboundTrainExpression : number of the inboound train. Required.
* outboundTrainExpression : number of the outbound train. Required.
* inboundEntryExpression : code of the station in which to create the connection. Default is the destination of the inbound train.
* minimumConnectionTime: minimum time required for the connection. Required.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="createConnection"
title="Create connection between 1A34 and 1A35."
enabled="true">
<configuration class="createConnection"
inboundTrainExpression="1A34"
outboundTrainExpression="1A35"
minimumConnectionTime="360"/>
</instance>
</amendments>
Spare driver
Use a spare driver for the connecting train, to reduce the turnback time.
* Template name: spareDriver
* Configuration class: spareDriver
* Configuration options:
* trainExpression : number of the outbound train. Required.
* entryExpression: code of the station in which to use the spare driver. Default is the origin of the outbound train.
* minimumConnectionTime: minimum time required for the connection. Required.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="spareDriver"
title="Train 1A35 driven by a spare driver."
enabled="true">
<configuration class="spareDriver"
trainExpression="1A35"
minimumConnectionTime="120"/>
</instance>
</amendments>
Rerouting
Rerouting
The rerouting works between a pair of stations in case the intermediate locations are the same. It is not necessary to perform replatforming in the two end stations or in the intermediate stations because it is performed automatically.
* Template name: rerouting
* Configuration class: rerouting
* Configuration options:
* trainExpression : number of the train to reroute. Required.
* trackCode: code of the line track to reroute the train on. Required.
* firstEntryExpression: code of the station after which to reroute the train. Required.
* lastEntryExpression: code of the station to which to reroute the train. Required.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="rerouting"
title="Train 1A35 runs on ML between BOWJ and ILFORD."
enabled="true">
<configuration class="rerouting"
trainExpression="1A35"
trackCode="ML"
firstEntryExpression="BOWJ"
lastEntryExpression="ILFORD"/>
</instance>
</amendments>
Rerouting with template
This rerouting works between a pair of stations also in case the intermediate locations are not the same. The user defines which train the rerouting applies to and chooses a train template. The template must contain only the route of the rerouting. The resulting train will have the path of the original train to the origin of the template, the path of the template, and the path of the original train from the destination of the template onwards. The original trainset is maintained throughout the re-routed path.
* Template name: reroutingWithTemplate
* Configuration class: reroutingWithTemplate
* Configuration options:
* trainExpression : number of the train to reroute. Required.
* templateName: name of the template. Required.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="reroutingWithTemplate"
title="Train 1A35 rerouted between BOWJ and ILFORD."
enabled="true">
<configuration class="reroutingWithTemplate"
trainExpression="1A35"
templateName="BOWJ-ILFORD-ML"/>
</instance>
</amendments>
Retiming
Anticipate entire train
Make the entire train run early by the given amount of time.
* Template name: anticipateEntireTrain
* Configuration class: anticipateEntireTrain
* Configuration options:
* trainExpression : number of the train to anticipate. Required.
* offset : number of seconds to anticipate the train. Required. Must be positive.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1"
template="anticipateEntireTrain"
title="Anticipate train 1A34"
enabled="true">
<configuration class="anticipateEntireTrain"
trainExpression="1A34" offset="300"/>
</instance>
</amendments>
Delay entire train
The entire train is delayed by the given amount of time.
* Template name: delayEntireTrain
* Configuration class: delayEntireTrain
* Configuration options:
* trainExpression : number of the train to delay. Required.
* offset : number of seconds to delay the train. Required. Must be positive.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1" template="delayEntireTrain"
title="Delay train 1A34" enabled="true">
<configuration class="delayEntireTrain"
trainExpression="1A34"
offset="300"/>
</instance>
</amendments>
Delay entry departure
The train is delayed at departure from a certain stop and then tries to recover.
* Template name: delayEntryDeparture
* Configuration class: delayEntryDeparture
* Configuration options:
* trainExpression : number of the train to delay. Required.
* entryExpression : code of the station to delay the departure from. Required.
* offset : number of seconds to delay the train. Required. Must be positive.
Example
<?xml version='1.0' encoding='UTF-8'?>
<amendments nextId="2">
<instance id="1" template="delayEntryDeparture"
title="Delay train 1A34 at GIDEAPK" enabled="true">
<configuration class="delayEntryDeparture"
trainExpression="1A34"
entryExpression="GIDEAPK"
offset="300"/>
</instance>
</amendments>