Nodus Syntax (Timetable Development)

.ldef File

Vehicle type [vehicleType] [abbreviation] [vehicleCategory] e.g. Lines of vehicle type BUS, designated by the abbreviation B. Lines of this vehicle type are defined in the Road Vehicles (T) category.

BUS (B) in (T) {

Driving time [variableName] [number|"unknown"] e.g. B01 needs 10min from Riverside Junction (RIJ) to Pine Valley Depot (PVD)

fahz t[RIJ>B01>PVD] = 10

[number]:

  • t[[s1]<[line]>[s2]] e.g. t[RIJ<B01>PVD] -> driving time of the line line, in this case B01, between s1 & s2, in this case RIJ & PVD, in both directions
  • t[[s1]>[line]>[s2]] e.g. t[RIJ>B01>PVD] -> driving time of the line line, in this case B01, from s1 to s2, in this case from RIJ to PVD

Turnaround time ["~"+romanLetter] [number|"unknown"] e.g. B01 needs 2min at Pine Valley Depot (PVD) from arrival to departure

fahz ~a = 2

Departure [line] [stationAbbreviation] [":"+time<inMinutes>|formula] [romanLetter+(n*" ' ")]{optional} e.g. B01 (from RIJ) departs 5min after B02 (from HAP) arrives, turns and departs at RIJ (b). Append ' n times to a variable (e.g. b''), when multiple formulas are being used for the same line

abf B02(von PVD) = :04 + t[MSS>B03>PVD] = a abf B02(von HAP) = a + t[HAP>B02>RIJ] + ~a = a' abf B01(von RIJ) = a' = b

[formula]:

  • :[time<inMinutes>] e.g. :04 -> fixed time (in a specific hour), in this case in 04
  • [prefix][variable<abf|fahz>] e.g. Ub -> variable variable<abf|fahz>, in this case b, of another mean of transport with abbreviation prefix, in this case U for Subway
  • only basic operations (+, -) allowed

Travel times [line] [travelTimes] z.B. B01 needs 4min from RIJ to MSS and 9min from MSS to PVD. PVD is the turning point (final stop) and is marked with a $, afterwards B01 needs 12min from PVD to MSS and 4min from MSS to RIJ

cal B01: RIJ(t[RIJ>B01>PVD] - 9)MSS(9)PVD$(12)MSS(4)RIJ cal B02: GFP(10)(-ex lines.fahz/@B-B02)(10)GFP cal B05: FKC(12)MSS(08)BTS(16)SVS$&;FKC(12)MSS(08)BTS(5)EWS$&

[travelTimes]:

  • -ex[absolutePath]/@[individualLabeling] e.g., -ex lines.fahz/@B-B02 -> travel time definition or parts of the travel time definition can be outsourced to a .fahz-File, absolute path absolutePath of the .fahz-File (without root folder), in this case lines.fahz and the individual labeling individualLabeling für die Zuordnung, in this case B-B02
  • if a line's route takes the same amount of time in both directions (B05), an & can be placed after the $
  • if lines have branches, the line route must be created for each branch. These can be separated by a ;
  • in the .ldef file, the value of the cal variable must be written on a single line
}

[vehicleCategory]:

  • U for subways
  • S for suburban trains
  • T for road transport
  • R for regional-/ and long distance trains

Route sections [abbreviation] e.g. Subway (U)

sdf (U) {

Route section [name] [abbreviationsOfStartStation] [stopsInBetween] [abbreviationsOfEndStation] [lines] e.g. route section "S" between Maple Heights (MH) and Franklin Center (FC) via Lower Quarter (LQ) and Oak Hill Exchange (OH) served by the lines L2 and L24; route section "1" between Union Square East (UE) and Millstone Square (MS) served by the lines L1, L2 and L23

asd S = MH <- LQ - OH -> FC : L2, L24 asd 1 = UE <-> MS : L1, L2, L23
}

.tdef File

Line [vehicleTypeAbbreviation] [line] e.g. B01 (B)

(B) B01:

Weekdays [weekdays] e.g. Monday – Friday and Sunday and Holidays

Mo-Fr/So;Holidays {

Interval [index] [interval] [comments] e.g. first interval every 20min (3 times to fill 60min), starting at the time defined in the .ldef-File plus 5min

tsch [0] = {5:20*,20**,20} `*every 2. week, zw RIJ & PIV;**zw OHE & PIV´

[interval]:

Shorthand notation possible e.g. (10)_6 short for 10,10,10,10,10,10 or (22,8)_2 short for 22,8,22,8

[comments]:

functional comments:

  • zw [s1] & [s2] e.g. zw RIJ & PIV -> trip only serves the section between s1 and s2, in this case only between RIJ and PIV
  • als [alternativeLineName] e.g. als B001 -> vehicle operates under a different route designation (and route), in this case B001

Time assignment [index] [times] e.g. first interval from 10 to 12 and in 16

[0] -> 10-12, 16

Comment [Comment] e.g. extra trips between RIJ and HAP every 2. week

"more trips between RIJ and HAP every 2. week"
}

Route section [vehicleTypeAbbreviation] [name] e.g. 2 (U)

(U) ~2:

Weekdays [weekdays] e.g. Monday – Friday and Sunday and Holidays

Mon-Fri/Sun;Holidays {

Interval [index] [interval] [comments] e.g. first interval every 15, 5 and 10min (2 times to fill 60min), starting at the time defined in the .ldef-File

tsch [0] = {0#L1:15#L2,5#L23*,10#L1,15#L2,5#L23*,10#L1} `*only Fri´

[interval]:

Shorthand notation possible e.g. (10#L2)_6 short for 10#L2,10#L2,10#L2,10#L2,10#L2,10#L2 or (22#L1,8#L23)_2 short for 22#L1,8#L23,22#L1,8#L23

[comments]:

functional comments:

  • zw [s1] & [s2] e.g. zw RIJ & PIV -> trip only serves the section between s1 and s2, in this case only between RIJ and PIV
  • als [alternativeLineName] e.g. als B001 -> vehicle operates under a different route designation (and route), in this case B001

Time assignment [index] [hours] e.g. first interval from 10 to 12 and in 16

[0] -> 10-12, 16

Comment [Comment] e.g. extra trips between RIJ and HAP every 2. week

"more trips between RIJ and HAP every 2. week"
}

.fahz File

Travel time defining [individualLabeling] [travelTimes]

@B-B02: GFP(t[GFP<B02>USE])USE$(t[GFP<B02>USE] + 2)GFP

[travelTimes]:

  • external parts can also be linked within the .fahz file. Nevertheless the absolute path (starting from the root) must be set. Infinite loops should be avoided
  • in the .fahz file, the value can be written across multiple lines

/// ...: /// to comment out a line

Key Combinations

Ctrl + S to save the file

Ctrl + M to add a selected undefined variable

Ctrl + Shift + M to add all undefined variables

Ctrl + Shift + / to comment out selected lines

secdef + Tab for a sample vehicle type definition

fahz + Tab for a sample travel time/turnaround time definition

abf + Tab for a sample departure definition

sdf + Tab for a sample route section definition of a vehicle type

asd + Tab for a sample route section definition

span + Tab for a sample weekday schedule definition

tsch + Tab for a sample interval definition

assign + Tab for a sample interval assignment