X-PLANE
AIRPORT DATA (APT.DAT) FILE SPECIFICATIONVERSION 1050

REVISION HISTORY
18 Jan 2017

Spec created, based upon prior apt.dat 1000 spec.

APPLICABILITY
This specification (APT.DAT 1050) is supported in X-Plane 10.50 and later and by WorldEditor 1.5 and later. The prior specification for airport data was APT.DAT
1000, which is recommended for X-Plane 10.00-10.45.
This spec is an extension to 1000 – all features in 1000 are fully supported.

SUPPORT FOR DEPRECATED FILE FORMATS
The deprecated file specification (APT.DAT 1000) is still supported. A dwindling quantity of custom airport data exists only in this format. So airports definedaccording to this specification (APT.DAT 1000) can be included in a file otherwise complying with the APT.DAT 1050 specification.

OVERVIEW & SCOPE
This specification defines core airport data for X-Plane. This includes the locations of runways, taxiway and apron pavement, basic airport ‘furniture’ (VASI/PAPIs,
windsocks, light beacons and taxiway signage) and communications frequencies. It also includes attributes for each of these features to fully describe them (eg. it
includes runway surface type, runway markings, taxiway lighting and markings, approach lighting, taxiway sign text, etc).
This specification (1000) introduces new airport data to define arrival and departure traffic flows to airports and taxi networks & routings for AI-controlled
airplanes.
This specification does ​not​ include scenery objects (such as buildings, static aeroplanes or underlying terrain textures).

BASIC CONCEPTS●●

Latitudes and longitudes are described in a decimal notation (eg. 20.12345678) up to 8 decimal places.
o A latitude of 50 degrees 30 minutes south would be defined as -50.50000000
North latitudes and east longitudes are positive. South latitudes and west longitudes are negative.

X-Plane Airport Data (apt.dat) File Specification Page 1 of 171050 Version, 18-Jan-2017●All​ headings are referenced to ​true​ north (not magnetic north).

FILE CHARACTERISTICS
The apt.dat files are plain text files:●●●

Fields in the data can be separated by one or more white space characters (space, tab).
o By default, the files are generated so that columns of data are consistently aligned, but this is not required.
Blank rows are permitted and are helpful to differentiate between airports.
Comments are permitted and are indicated by “#” as the first two characters of a row.

FILE STRUCTURE
It is recommended that all airports be created in WorldEditor (“WED”). This will ensure that all structural requirements listed here for airport data are met. WED
version 1.5 is required to support the features in this spec.
In common with most other X-Plane data file specification, header rows of data define the origin (“I” = PC or “A” = Mac) of a particular copy of a file, and define thefile specification version. The file specification may be followed by a reference to a sequential release data cycle and build number for the data, and a copyrightmessage:I
1000 Version - data cycle 2012.03, build 20121054, metadata AptXP1000.
(​robin@xsquawkbox.net) ​...

Copyright © 2012, Robin A. PeelThe complete copyright message ​must​ be left intact if you redistribute this data. The GNU GPL (general public License) under which this data is released isdesigned to encourage modifications, enhancements and redistribution, even in commercial derivative products.

X-Plane Airport Data (apt.dat) File Specification Page 2 of 171050 Version, 18-Jan-2017

Subsequent rows of data follow a hierarchical structure:
●
●
●

​

Each row of data has a numeric ‘row code’ as its first field, to define its content.
The top level of this hierarchy defines an individual airport, defined by an airport header row (a row code of ‘1’, ‘16’ or ‘17’).
Subsequent rows define elements of an airport:o Runways​ (including helipads) follow the airport header row (one row per runway).
o Pavement (taxiway/apron) definitions​ have a header row followed by an ordered list of nodes that define its boundaries:▪ Each pavement definition must each have a single boundary with no overlaps with itself.
▪ Nodes on this outer boundary must be defined in a counter-clockwise direction.
▪ Boundaries must be terminated with a node with a row code ‘113’ or ‘114’.
▪ Pavement definitions may overlap with another pavement chunk. But this is not recommended – instead consider precise alignment ofadjacent features by ‘snapping’ nodes to identical locations in World Editor (WED).
● A pavement definition can ​never​ overlap with itself.
▪ The sequencing of the pavement definitions is the layering in which they will be rendered in X-Plane, top-down. So the last piece ofpavement in the file will be rendered ​underneath​ any others with which it overlaps.
▪ Holes​ can be defined for pavement (through which the underlying terrain texture will show):● Hole boundaries should follow the termination of the pavement definition in which the hole occurs (starting with a row type‘111’ or ‘112’).
● Hole boundaries are defined in a clockwise direction (ie, ​opposite direction to the boundary nodes).
● Hole boundaries must form a closed loop (ie. must terminate with a row code ‘113’ or ‘114’).
● Each pavement definition can have zero, one or multiple hole boundaries.
● Hole boundaries must be contained within the outer boundary of the pavement definition.
● Holes cannot overlap each other.
● After creating a hole boundary, it can be ‘filled’ with a new pavement chunk (probably using a different surface type).
o Linear features​ also have a header row followed by an ordered list of nodes that define the line:▪ Linear features can be closed loops (terminating in a node of type ‘113’ or ‘114’) or just strings (terminating with ‘115’ or ‘116’).
o An ​airport boundary​ is defined with nodes in a counter-clockwise direction. A boundary can contain holes (see above) and ​must​ form a closed
loop (terminating in a node of type ‘113’ or ‘114’).
o Airport traffic flows​ have a header row (row code ‘1000’) followed by multiple rows that define rules of multiple classes (time, wind direction,ceiling, visibility, runway in use, VFR traffic pattern) that indicated that a flow should be used (wind rules, minimum ceiling rules, visibility rules,
time rules, and operations rules).
▪ A flow is acceptable is ​any​ rule of a class is acceptable, or if there are ​no​ rules of a given class. So to permit a flow with no time
restrictions, simple exclude any traffic time rules (row code ‘1004’).
▪ Rules use ‘or’ logic. For example, a flow may have two wind rules (row code ‘1001’) – one for slight winds very generally aligned with arunway, and one with strong winds only if they are almost exactly with the runway.
▪ A flow will be used only if ​all​ its rule classes are ‘passed’.

X-Plane Airport Data (apt.dat) File Specification Page 3 of 171050 Version, 18-Jan-2017

▪

o

o

The flows are evaluated in sequence. The first flow to ‘pass’ will be used. So, the most specific-but-useful rule should be listed first (eg.
parallel VFR approaches on a clear, calm day) and the most general (but least useful) rules should be listed last (eg. a single ILS cat III
approach to a single runway).
▪ If the rules prevent ​any​ defined flow from being ‘passed’ then the X-Plane’s AI engine will create a flow.
▪ ‘Runway in use’ rules (row code 1100} are also evaluated in sequence. The first ‘runway in use’ rule to ‘pass’ will be used for the parent
flow. So rules should be listed in preferential sequence.
Airport taxi routes & networks ​begin with a row code ‘1200’ and​ ​are defined by a set of nodes (row code ‘1201’) and ‘edges’ (the taxi routing)that connect two nodes (row code ‘1202’):▪ Nodes can be defined as ‘init’ (a point at which X-Plane will try to start a taxi route), ‘end’ (where X-Plane will try to end a taxi route), or‘both’. ‘junc’ can also be used for junctions between taxi routes.
▪ Edges must specify an allowed width, sizes A-E, and may be followed by multiple rows (row code ‘1204) defining an ‘active zone’ ‘forthat parent edge (eg. if the edge conflicts with arrival or departure runways, or an ILS-critical area).
▪ Taxi routings begin or end at ramp locations (row code ‘1300’), which are also available as startup-locations in X-Plane. These locations
may not be directly connected to the taxi route network – X-Plane’s ATC engine will calculate how to direct an airplane between the taxi
route network and each location.
Other airport features​ are defined with one row for each feature.

The file is terminated by a ‘99’:
99

ROW CODES
Each row of data begins with an integer code that defines the type of data:
Row
Code

Meaning1
16
17Land airport header
Seaplane base header
Heliport header

100
101
102

RunwayWater runway
Helipad

110
120
130

Pavement (taxiway or ramp) header
Linear feature (painted line or light string) header
Airport boundary header

X-Plane Airport Data (apt.dat) File Specification Page 4 of 17

Comment

Must form a closed loop
Can form closed loop or simple string
Must form a closed loop

1050 Version, 18-Jan-2017

111
112
113
114
115
116

Node
Node with Bezier control point
Node with implicit close of loop
Node with Bezier control point, with implicit close of loop
Node terminating a string (no close loop)
Node with Bezier control point, terminating a string (no close loop)

All nodes can also include a “style” (line or lights)
Bezier control points define smooth curves
Implied join to first node in chain
Implied join to first node in chain
No “styles” used
No “styles” used

14
15
18
19
20
21

Airport viewpoint
Aeroplane startup location
Airport light beacon
WindsockTaxiway sign (inc. runway distance-remaining signs)
Lighting object (VASI, PAPI, Wig-Wag, etc.)

One or none for each airport*** Convert these to new row code 1300 ***One or none for each airport
Zero, one or many for each airport
Zero, one or many for each airport
Zero, one or many for each airport

1000

Airport traffic flow

1001
1002
1003
1004
1100
1101

Traffic flow wind rule
Traffic flow minimum ceiling rule
Traffic flow minimum visibility rule
Traffic flow time ruleRunway-in-use arrival/departure constraints
VFR traffic pattern

Zero, one or many for an airport. Used if following rules met(rules of same type use ‘or’ logic, rules of a different type use‘and’ logic). First flow to pass all rules is used.
Zero, one or many for a flow. Multiple rules use ‘or’ logic.
Zero or one rule for each flow
Zero or one rule for each flow
Zero, one or many for a flow. Multiple rules use ‘or’ logic.
First constraint met is used. Sequence matters!
Zero or one pattern for each traffic flow

1200
1201
1202
1204

Header indicating that taxi route network data follows
Taxi route network node
Taxi route network edge
Taxi route edge active zone

Sequencing is arbitrary. Must be part of one or more edges.
Must connect two nodes. Can specify size (A-E).
Can refer to up to 4 runway ends

1300
1301

Airport location (deprecates code 15)
Ramp start metadata1302

Airport identification metadata

Not explicitly connected to taxi route network
Consists of an ICAO width code, an operations type code andzero or more space separated 3-letter airline codes
Zero, one or many for each airport

50 – 56

Communication frequencies

Zero, one or many for each airport

X-Plane Airport Data (apt.dat) File Specification Page 5 of 171050 Version, 18-Jan-2017

EXAMPLE DATA
Here is some example data for KBFI. It is ​not real​ and is very incomplete, but it illustrates examples of most types of data found in an apt.dat file. This data
includes an airport header, runway, water runway, helipad, PAPI, taxiway definition, painted line, viewpoint, startup location, light beacon, windsock, taxiway sign
and an ATC communications frequency:1
21 1 0 KBFI Boeing Field King Co Intl
100 29.87
1
0 0.15 0 2 1 13L 47.53801700 -122.30746100
73.15
0.00 2101 49 1 08 35.04420900 -106.59855700 26 35.04420911 -106.59855711
102 H147.53918248 -122.30722302
2.00
10.06
10.06
1 0
0 0.25 02147.53666659 -122.30585255 2 150.28
3.30 13L PAPI-2L
110 1 0.25 150.29 A2 Exit
111 47.53770968 -122.30849802
111 47.53742819 -122.30825844
3
112 47.53752190 -122.30826710 47.53757385 -122.30824831
3 102
114 47.53768630 -122.30834929 47.53768690 -122.30838150
3 102
120 Line B1
111 47.53969864 -122.31276189 51
111 47.53977825 -122.31255145
1
115 47.54002296 -122.31189878
1447.52917900 -122.30434900 100 0 ATC Tower
15
47.52926674 -122.29919589 304.16 A8 Run Up
18
47.52920400 -122.30412800 1 BCN
1947.53900921 -122.30868700 1 WS
20
47.54099177 -122.31031317 235.71 0 2 {@L}A1{@R}31R-13L
50
12775 ATIS

0 0 1 31R

47.52919200 -122.30000000

110.950.00 20 0 1

Here is some example data for KSEA showing the new 1000 version traffic flow and taxi route data:
1000 Calm and South flow
1001 KSEA
000 359 5
1001 KSEA
070 250 999
1002 KSEA
01003 KSEA
01004 0000 2400
1100 16C 11920 arrivals jets|turboprops|props 160340 161161 Arrival 16C
1100 16R 11920 arrivals jets|turboprops|props 341159 161161 Arrival 16R
1100 16L 11920 arrivals heavy 000359 161161 Arrival Heavy Jets
1101 16R right
1200
1201 47.46360812 -122.30613338 both 5416 A_stop
1202 5258 5266 twoway taxiway B
1204 ils 34R
1300 47.43931757 -122.29806851 88.78 gate jets|turboprops A10

X-Plane Airport Data (apt.dat) File Specification Page 6 of 171050 Version, 18-Jan-2017

DEFINITION OF DATA FIELDS
Each column in each row code is defined below, using the example data from KBFI shown above. Note that:
●
●

Row

1
16
17

Some row codes store data in an identical specification, and these have been grouped together in the table below.
The specification aims to be consistent. For example, the format or latitudes and longitudes is always the same, and all headings/orientations are definedas ​true​ (not magnetic) degrees.

Meaning
Example value

Comment
Explanation

Land airport header
Seaplane base header
Heliport header

Row codes 1, 16 and 17 share a common format (see below)
Row codes 1, 16 and 17 share a common format (see below)
Row codes 1, 16 and 17 share a common format (see below)

1
21
1
0
KBFI
Boeing Field King Co…

100

Row code for an airport, seaplane base or heliport
Elevation of airport in feet above mean sea level (AMSL)
Deprecated. Use default value (“0”)
Deprecated. Use default value (“0”)
Airport ICAO code. If no ICAO code exists, use FAA code (USA only)
Airport name. May contain spaces. Do not use special (accented) characters

Valid values

1, 16 or 17
Use 0
Use 0
Maximum four characters. Must be unique.
Text string (up to 40 characters)

Land Runway
100
Row code for a land runway (the most common)
29.87
Width of runway in metres
1
Code defining the surface type (concrete, asphalt, etc)0
Code defining a runway shoulder surface type
0.15
Runway smoothness (not used by X-Plane yet)0
Runway centre-line lights
2
Runway edge lighting (also implies threshold lights)
1
Auto-generate distance-remaining signs (turn off if created manually)
The following fields are repeated for each end of the runway
13L
Runway number (eg. “31R”, “02”). Leading zeros are required.
47.53801700-122.30746100
73.15
0.00
2
0

Latitude of runway end (on runway centerline) in decimal degrees
Longitude of runway end (on runway centerline) in decimal degrees
Length of displaced threshold in metres (this is included in implied runway length)
A displaced threshold will always be ​inside​ (between) the two runway ends
Length of overrun/blast-pad in metres (​not​ included in implied runway length)
Code for runway markings (Visual, non-precision, precision)
Code for approach lighting for this runway end

X-Plane Airport Data (apt.dat) File Specification Page 7 of 17

100
Two decimal places recommended. Must be >= 1.00
Integer value for a ​Surface Type Code ​(see below)
0=no shoulder, 1=asphalt shoulder, 2=concrete shoulder
0.00 (smooth) to 1.00 (very rough). Default is 0.25
0=no centerline lights, 1=centre line lights
0=no edge lights, 2=medium intensity edge lights
0=no auto signs, 1=auto-generate signs
Two to three characters. Valid suffixes: “L”, “R” or “C” (orblank)
Eight decimal places supported
Eight decimal places supported
Two decimal places (metres). Default is 0.00
Two decimal places (metres). Default is 0.00
Integer value for ​Runway Marking Code ​(see below)
Integer value for ​Approach Lighting Code ​(see below)

1050 Version, 18-Jan-2017

0
1

101

Flag for runway touchdown zone (TDZ) lighting
Code for Runway End Identifier Lights (REIL)

Water runway101
Row code for a water runway
49
Width of runway in metres
1
Flag for perimeter buoys
The following fields are repeated for each end of the water runway
08
Runway number. Not rendered in X-Plane (it’s on water!)
35.04420911
Latitude of runway end (on runway centerline) in decimal degrees-106.59855711
Longitude of runway end (on runway centerline) in decimal degrees

102

Pavement (taxiways)
110
1
0.25
150.29A2 Exit120
130

Linear feature
Airport boundary
120
Line B1

111
112
113
114
115
116

101
Two decimal places recommended. Must be >= 1.00
0=no buoys, 1=render buoys
Valid suffixes are “L”, “R” or “C” (or blank)
Eight decimal places supported
Eight decimal places supported

Helipad102
H1
47.53918248-122.30722302
2.00
10.06
10.06
1
0
0
0.25
0

110

0=no TDZ lighting, 1=TDZ lighting
0=no REIL, 1=omni-directional REIL, 2=unidirectional REIL

Node
Node
Node
Node
Node
Node
112
47.53752190

Row code for a helipad
Designator for a helipad. Must be unique at an airport.
Latitude of helipad centre in decimal degrees
Longitude of helipad centre in decimal degrees
Orientation (true heading) of helipad in degrees
Helipad length in metres
Helipad width in metres
Helipad surface code
Helipad markings
Code defining a helipad shoulder surface type
Helipad smoothness (not used by X-Plane yet)
Helipad edge lighting

101
Usually “H” suffixed by an integer (eg. “H1”, “H3”)
Eight decimal places supported
Eight decimal places supported
Two decimal places recommended
Two decimal places recommended (metres), must be >=1.00
Two decimal places recommended (metres), must be >= 1.00
Integer value for a ​Surface Type Code ​(see below)
0 (other values not yet supported)
0=no shoulder, 1=asphalt shoulder, 2=concrete shoulder
0.00 (smooth) to 1.00 (very rough). Default is 0.25
0=no edge lights, 1=yellow edge lights

Defines an arbitrary pavement shape
Row code for a pavement chunk header (must be followed by a set of nodes)
Code defining the surface type (concrete, asphalt, etc)
Runway smoothness (not used by X-Plane yet)
Orientation (true degrees) of pavement texture ‘grain’
Description of pavement chunk (not used by X-Plane)

110Integer value for a ​Surface Type Code ​(see below)
0.00 (smooth) to 1.00 (very rough). Default is 0.25
Two decimal places recommended
Text string

Painted surface markings & light strings
Boundary for future terrain ‘flattening’
Row code for a linear feature or airport boundary
Description of feature or boundary (not used by X-Plane)

120 or 130
Text string

Node (plain)
Node with Bezier control point
Node (close loop), to close boundary
Node (close loop) with Bezier control point
Node (end) to terminate a line
Node (end) with Bezier control point
Row code for a node. First node must follow an appropriate header row[All nodes] Latitude of node in decimal degrees

X-Plane Airport Data (apt.dat) File Specification Page 8 of 17

111 thru 116
Eight decimal places supported

1050 Version, 18-Jan-2017

-122.30826710
47.53757385-122.30824831
3
102

14

Viewpoint14
47.52917900-122.30434900
100
0
ATC Tower

15

Startup location
15
47.52926674-122.29919589
304.16A6 Run Up

18

Light beacon
1847.52920400-122.30412800
1
BCN

19

Windsock19
47.53900921-122.30868700
1
WS

20

Signs
20
47.54099177-122.31031317
235.710
2{@L}A1{@R}31R-13L

21

Lighting objects[All nodes] Longitude of node in decimal degrees[112, 114, 116 only] Latitude of Bezier control point in decimal degrees[112, 114, 116 only] Latitude of Bezier control point in decimal degrees[Not for 115 or 116] Code for painted line type on line segment starting at this node
[Not for 115 or 116] Code for lighting on line segment starting at this node

Maximum of ​one​ viewpoint for each airport

Eight decimal places supported
Eight decimal places supported. Ignore for 111, 113, 115
Eight decimal places supported. Ignore for 111, 113, 115
Integer ​Line Type Code ​(see below). Not for 115 or 116
Integer ​Line Type Code ​(see below). Not for 115 or 116

Row code for a viewpoint
Latitude of viewpoint in decimal degrees
Longitude of viewpoint in decimal degrees
Height (in feet) of viewpoint above ground level
Code deprecated. Use ‘0’Name of viewpoint (not used by X-Plane)

14
Eight decimal places supported
Eight decimal places supported
Integer0
Descriptive text string (optional)

Startup locations for airplanes at an airport

Should be converted to new row code 1300

Row code for a startup location
Latitude of startup location in decimal degrees
Longitude of startup location in decimal degrees
Heading (true) of an aeroplane when positioned at startup location
Name of startup location (list will be displayed in X-Plane for each airport)

15
Eight decimal places supported
Eight decimal places supported
Two decimal places recommended
Short descriptive text string – ten characters or lessMaximum of ​one​ beacon for each airport

Row code for an airport light beacon
Latitude of beacon in decimal degrees
Longitude of beacon in decimal degrees
Code for type of light beacon. Determines colors of beacon.
Name of viewpoint (not used by X-Plane)

18
Eight decimal places supported
Eight decimal places supported
Integer ​Beacon Type Code ​(see below)
Descriptive text string (optional)

Multiple windsocks permitted for each airport
Row code for a windsock
Latitude of windsock in decimal degrees
Longitude of windsock in decimal degrees
Flag for windsock lighting
Name of viewpoint (not used by X-Plane)

19
Eight decimal places supported
Eight decimal places supported
0=unlit, 1=illuminatedDescriptive text string (optional)

Taxiway signs or runway distance-remaining
signs
Row code for a sign
Latitude of sign in decimal degrees
Longitude of sign in decimal degrees
Orientation of sign in true degrees (heading of someone looking at sign’s front)
Reserved for future use. Ignore.
Code for sign size
Text to be rendered on sign front and/or back20
Eight decimal places supported
Eight decimal places supported
Two decimal places recommended
0
Integer ​Sign Size Code ​(see below)
Text string formatted by ​Sign Text Definition ​(see below)

VASI, PAPI, wig-wags, etc.

X-Plane Airport Data (apt.dat) File Specification Page 9 of 171050 Version, 18-Jan-2017

21
47.53666659-122.30585255
2
150.28
3.30
13L
PAPI-2L

1000

Traffic flow
1000
Calm and south flows

1001

Traffic flow wind rule
1001
KSEA
000
359
5

1002

Traffic flow ceiling rule
1002
KSEA
0

1003

Traffic flow visibility
rule
1003
KSEA
0

1004

Traffic time rule
1004
0000
2400

1100

Runway-in-use ruleRow code for a lighting object
Latitude of lighting object in decimal degrees
Longitude of lighting object in decimal degrees
Code for type of lighting object
Orientation of lighting object in true degrees (looking toward object)
Visual glideslope angle in degrees
Associated runway number (required for VASI/PAPI, etc)
Description of lighting object (not used by X-Plane

21
Eight decimal places supported
Eight decimal places supported
Integer ​Lighting Object Code ​(see below)
Two decimal places recommended
Two decimal places. 0.00 if not required. Default is 3.00
One to three characters
Short text string (optional)

Arrival and departure traffic flows
Row code for an arrival/departure traffic flow
Traffic flow name1000
Descriptive name (max 50 characters)

Zero or multiple wind rules permitted per flow
Row code for a traffic flow wind rule
METAR reporting station (may be a remote airport, eg KSEA for KBFI)Wind direction minimum (magnetic)
Wind direction maximum (magnetic)
Maximum wind speed. Use 999 for ‘all’ wind speeds.

1001
ICAO code, up to 6 characters000 - 359
000 - 359
0 - 999

Zero or one ceiling rule permitted per flow
Row code for a traffic flow ceiling rule
METAR reporting station (may be a remote airport, eg KSEA for KBFI)
Minimum reported ceiling in feet AGL at reporting station

1002
ICAO code, up to 6 characters
Positive integer

Zero or one visibility rule permitted per flow
Row code for a traffic flow visibility rule
METAR reporting station (may be a remote airport, eg KSEA for KBFI)
Minimum reported visibility in statute miles

1003
ICAO code, up to 6 characters
Float (eg. “1.5”)

Zero or multiple time rules permitted per flow
Row code for a traffic flow time rule
UTC time from which rule is valid
UTC time at which rule ends

1004
0000 - 2400
0000 - 2400

Multiple rules for each flow. First to ‘pass’ is
used

1100
34C

Row code for a runway-in-use ruleRunway end identifier

11920
arrivals
jets|turboprops

Arrival or departure frequency
Rule type (arrivals, departures)
Airplane types to which rule applies

X-Plane Airport Data (apt.dat) File Specification Page 10 of 17

1100
Two to three characters. Valid suffixes: “L”, “R” or “C” (orblank)
Five digit integer, rounded DOWN where necessary
Pipe separated list (“|”). ‘arrivals’ and/or ‘departures’
Pipe-separated list (“|”). Can include “heavy”, ”jets”,“turboprops”, “props” and “helos”

1050 Version, 18-Jan-2017

181359
341341
Arrival 34C

1101

VFR pattern rule

On course heading range ((ie. first leg of flight plan for departures, last leg for
arrivals)
Initial ATC assigned departure heading range. Not used for arrivals.
Rule nameRow code for a VFR traffic pattern
Runway end identifierleft

VFR traffic pattern direction

1200

Taxi routing network(for readability only)

1201

Taxi routing node

All nodes must be used in at least one edge

1202

Taxi routing edge
1202
5416
5417
twowaytaxiway
A

1204

1300

1301

Row code for taxi routing network node
Latitude of node in decimal degrees
Longitude of node in decimal degrees
Usage of node in network (begin or end a taxi path, or both)
Node identifier (user-defined)
Node name. Not currently used.

1101
Two to three characters. Valid suffixes: “L”, “R” or “C” (orblank)“left” or “right”

1201
Eight decimal places supported
Eight decimal places supported“dest”, “init”, “both” or “junc”
Integer. Must be unique within scope of an airport.
String (max 16 characters)

Segment in taxi routing network
Row code for taxi routing network edge
Node identifier for start of edge
Node identifier for end of edge
Edge can be used in both directions
Node is on a regular taxiway. If on “runway” a clearance is needed from ATC
Taxiway identifier. Used to build ATC taxi clearances (eg. “.. .taxi via A, T, Q”)

Edge active zone

Identifies an edge as in a runway active zone.

1204
arrival
16L,16C

Row code for an edge entering a runway active zone
Active zone classification
Runway(s) to which active zone refers

Taxi location

Start or end point for taxi routes. ​Not​ linked totaxi routing network by edges (row code 1202)

1300
47.43931757-122.29806851
88.78
gate
jets|turboprops

Row code for taxi route start/end point
Latitude of location in decimal degrees
Longitude of location object in decimal degrees
Heading (true) of airplane positioned at this location
Type of location
Airplane types to that can use this location

Gate A2

Unique name of location (within a single airport{

Row Code
1301
d000000 - 359359
Descriptive name (max 50 characters)

Zero or one VFR pattern rule permitted per flow

1101
34L

1201
47.53752190-122.30826710
both
5416
A_start000000 - 359359

1202
Integer. Must refer to valid node (row code ‘1201’)
Integer. Must refer to valid node (row code ‘1201’)“twoway” or “oneway”“taxiway” or “runway”
String. Taxiway or runway identifier (eg. “A” or “16L/34R”)

1204“arrival” or “departure” or “ils”
Comma-separated list up to 4 runway identifies

1300
Eight decimal places supported
Eight decimal places supported
Decimal degrees, true heading“gate”, “hangar”, “misc” or “tie-down”
Pipe-separated list (“|”). Can include “heavy”, ”jets”,“turboprops”, “props” and “helos” (or just “all” for all types)
Text string, must be unique at an airport

For ramp start metadata
ICAO width code

X-Plane Airport Data (apt.dat) File Specification Page 11 of 17

1301
A, B, C, D, E, F

1050 Version, 18-Jan-2017

1302

50
51
52
53
54
55
56

airline
AAL

Operation type
Airline permitted to use this ramp

none, general_aviation, airline, cargo, military
3-letter airline codes (AAL, SWA, etc)

Row Code1302
icao_id
KBOS

Airport metadata
row code
key_value for ICAO code
ICAO for airport

Takes zero, any or all applicable Key_values
icao_id, faa_id, iata_id, city_id, country_id, region_id
Unique identifier up to 8 characters long

ATC – Recorded
ATC – Unicom
ATC – CLD
ATC – GND
ATC – TWR
ATC – APP
ATC - DEP

AWOS, ASOS or ATIS
Unicom (US), CTAF (US), Radio (UK)
Clearance Delivery
GroundTower
Approach
Departure

51
12775
ATIS

Row code for an ATC COM frequency
Frequency in MHz x 100 (eg. use “12322” for 123.225MHz)
Descriptive name (displayed on X-Plane charts)

50 thru 56 (see above)
Five digit integer, rounded DOWN where necessary
Short text string (recommend less than 10 characters)

CODES
Codes used to define airport data:
Codes
Code value

Comment
Code meaning

Surface Type CodeSurface type of runways or taxiways

1
2
3
4
5
12
13
14
15

Runway Marking Code
0
1
2
3
4
5

Asphalt
Concrete
Turf or grass
Dirt (brown)
Gravel (grey)
Dry lakebed (eg. At KEDW)
Water runways
Snow or ice
Transparent

Code applicability

Example: KEDW (Edwards AFB)
Nothing displayed
Poor friction. Runway markings cannot be added.
Hard surface, but no texture/markings (use in custom
scenery)

Markings on runway
No runway markings
Visual markings
Non-precision approach markings
Precision approach markings
UK-style non-precision approach markings
UK-style precision approach markings

X-Plane Airport Data (apt.dat) File Specification Page 12 of 17

Disused runways appear like taxiways

UK uses distinctive touch-down zone markings
UK uses distinctive touch-down zone markings

1050 Version, 18-Jan-2017

Approach Lighting Code0
1

Approach lighting systems
No approach lighting
ALSF-I●2

ALSF-II
●
●

3

7

8

●
●

High intensity, Simplified Short Approach Light System
With sequenced flashing lights●

High intensity, Short Approach Light System

SALS

MALSR
Medium-intensity Approach Light System
With Runway Alignment Indicator Lights (RAIL)

MALSF
●

10

High intensity, Simplified Short Approach Light System
With Runway Alignment Indicator Lights (RAIL)

SSALF

●
●

9

British - High intensity with red side bar lights (barettes) the last 1000’
Barettes align with TDZ lighting

SSALR
●
●

6

British - High intensity

Calvert ILS Cat II and Cat II●●

5High intensity Approach Light System with sequenced Flashing lights
Red side bar lights (barettes) the last 1000’, that align with TDZ lighting.

Calvert●4

High intensity Approach Light System with sequenced flashing lights

Medium-intensity Approach Light System with sequenced flashing lights

MALS●

Medium-intensity Approach Light System

X-Plane Airport Data (apt.dat) File Specification Page 13 of 171050 Version, 18-Jan-2017

11

12

Line Type Code

ODALS
●
●

Omni-directional approach light system
Flashing lights, not strobes, not sequenced●●

Runway Alignment Indicator Lights
Sequenced strobes and green threshold lights, with no other approachlightsRAIL

Painted lines and light strings
Note that for all linear features that involve runway entrance hold lines and associated lights (4, 5, 6, 103 & 104 below), the runway is
assumed to be to the LEFT of the string and the taxiway to the RIGHT (looking along string from its first node)

0
1
2
3
4
5
6
7
8
9
51-59

Nothing.
Solid yellow line
Broken yellow line
Double solid yellow lines
Two broken yellow lines and two solid yellow lines. Broken line on left of string.
Broken yellow line with parallel solid yellow line. Broken line on left of string.
Yellow cross-hatched line
Solid yellow line with broken yellow line on each side
Widely separated, broken yellow line
Widely separated, broken double yellow line
Line types 1-9 above with a black border

Taxiway centre lines
Miscellaneous boundaries
Taxiway edge lines
Runway hold positions
Other (non-runway) hold locations
ILS hold
Taxiway centerlines in runway safety zones
Mark ‘lanes’ for queuing aeroplanesMark ‘lanes’ for queuing aeroplanes
Use on concrete surfaces for higher contrast

20
21
22

Solid white line
White chequerboard pattern
Broken white line

Roadway markings
Roadway markings
Roadway centreline

101
102
103
104
105
106

Note that lights added to the edge boundary of a piece of pavement (or hole) will be placed off the edge of the pavement (about one meter).
Green embedded lights, bidirectional along string axis
Taxiway centrelines
Blue lights, omnidirectional
Taxiway edge
Closely spaced, embedded amber lights. Unidirectional to right of string
Hold lines
Closely spaced, pulsating embedded amber lights. Unidirectional to right of string
Runway hold lines
Alternating green and amber embedded lights, bidirectional along string axis
Centrelines in runway safety zones
Red lights, omnidirectional
Edge lights in dangerous/critical zones (eg. on bridges)

Beacon Type Code
0
1
2
3
4

Sign Size Code1
2
3

Airport light beacons
No beacon. Suppresses automatic creation of beacon by X-Plane.
White-green flashing
White-yellow flashing
Green-yellow-white flashing
White-white-green flashing

Use a dummy airport lat/lon for the location.
Civilian land airport
Seaplane base
Heliport
Military airport

Taxiway sign sizes & types
Small taxiway signMedium taxiway sign
Large taxiway sign

X-Plane Airport Data (apt.dat) File Specification Page 14 of 171050 Version, 18-Jan-2017

4
5

Large distance-remaining sign on runway edge
Small distance-remaining sign on runway edge

Lighting Object Code
1
2
3
4
5
6

Alternatively, can be auto generated for a runway
Alternatively, can be auto generated for a runway

Lighting objects
VASI
PAPI-4L (four-light) on left of runway
PAPI-4R (four light) on right of runway
Space Shuttle PAPI, 20 degree glidepath
Tri-colour VASI
Runway guard (“wig-wag”) lights

Location is centre point between the two VASI units
Left-handed: red indication appears first on ​right​ 2 lights
Right-handed: red indication appears first on ​left​ 2 lights
Deprecated. Use normal PAPI with an appropriate angle.
Pulsating double amber lights alongside runway entrances

TAXIWAY SIGN TEXT DEFINITION
The text on taxiway signs follows ​a specification shared with the FlightGear flight simulator​.
In summary, the text and images on a taxiways sign are represented in X-Plane by:●●●

Instructions​ define the style of the text and images on the sign. These are always prefixed with the "@" symbol:
o Black lettering on a yellow background (direction signs) ("@Y").
o Yellow lettering on a black background (location signs) ("@L").
o White lettering on a black background (runway distance-remaining signs) ("@B").
o White lettering on a red background (runway holding point signs) ("@R").
o Instructions ​must​ be included inside curly braces (eg. “{@Y}”)
Single-character glyphs​ define a series of numbers or characters on the sign. These translate one-to-one to the text on the sign. The only allowable single
characters are:o The numbers "0" through "9", for all sign styles.
o The uppercase letters "A" through "Z". Only UPPERCASE characters are allowed! No letters are allowed on distance remaining signs.
o The following single-character symbols are allowed for runway ("@R") and location ("@Y") signs ​only​:▪ Space (represented by an underscore "_")▪ Large dot (represented by an asterisk ("*")▪ Vertical separator (represented by the vertical bar "|") (also referred to as a "frame separator")▪ Period, comma, slash and hyphen (".", ",", "/" and "-")
Multi-character glyphs​ define symbols:o Directional arrows (eg. "^lu" for a left-up arrow, "^rd" for a right-down arrow) are allowed for red ("@R") and yellow ("@Y") signs only.
o The only allowable arrows are: "^l", "^r", "^u", "^d", "^lu", "^ld", "^ru", "^rd"▪ Note that for diagonal arrows, the left/right must precede the up/down. For example, "^dr" is invalid.
o ILS-critical boundary ("critical"). These do not require a sign style.
o Runway safety zone boundary ("safety"). These do not require a sign style.
o No-entry symbols ("no-entry"). These do not require a sign style.

X-Plane Airport Data (apt.dat) File Specification Page 15 of 171050 Version, 18-Jan-2017

o
o
o
o

Hazard (end of taxiway) ("hazard"). These do not require a sign style.
Switch sides - flip to the back of the sign and start a new text string for the back ("@@")
Roman numerals (for ILS categories, such as "CAT III") ("r1", "r2" and "r3") are allowed for red ("@R") and yellow ("@Y") signs only.
Multi-character glyphs ​must​ be included inside curly braces (eg. “{r1}”)

There are rules about how these three types of data must be structured on a taxiway sign:
●
●
●

●

Instructions and single-character glyphs ​must​ be UPPERCASE.
Multi-character glyphs ​must​ be lowercase
Instructions and multi-character glyphs must be enclosed in curly braces ("{}"), to distinguish them from a set of single-character glyphs.
o If there are multiple consecutive instructions and/or multi-character glyphs, they can be separated within the same set of curly braces by acomma (eg. “{@Y,^l}”)Spaces are not allowed. Spaces on the sign itself are represented by the underscore ("_") character.

Examples of sign text:
Sign

Sign type

Text to generate this sign

Direction sign{@Y}A{^r}Location sign{@L}T

Location and direction sign{@L}A{@Y,^l}E{^r}Complex sign{@Y,^l}E|{^lu}F{@L}A{@Y}T{^ru}|E{^r}

Direction sign{@Y}MIL{^r}

Direction to runway{@Y}27*33{^r}

Direction to multiple
runways{@Y}{^l}5|13{^u}Runway hold{@R}15-33

Runway crossing{@R,^ld}5-23{^ru}|{^lu}9-27{^rd}Runway approach area{@R}15-APCH

X-Plane Airport Data (apt.dat) File Specification Page 16 of 171050 Version, 18-Jan-2017

Location & runway hold{@L}T{@R}18-36

Runway safety areaboundary●●

ILS critical zone boundary{critical}

Hazard (end of taxiway){hazard}Distance remaining●●{safety}
If on back of a runway hold sign (above) would be: {@L}T{@R}18-36{@@}{safety}{@B}3Distance from opposite end of runway might be on back of sign: {@B}3{@@}7

Common errors in sign text:
These are the most common errors found in airport submissions:
●
●
●
●
●
●
●

Using a space instead of an underscore symbol for a space in direction (@Y) and runway (@R) signs (eg. "{@Y}RWY 04{^ru}")
Using spaces or underscores in location (@L) signs (eg. “{@L}STAND_24”). These are ​not​ allowed.
Forgetting the "@" symbol that prefixes an instruction (eg. "{Y}RWY_04{^ru}")
Using lower case text for single-character glyphs (eg. "{@Y}Rwy_04{^ru}")
Invalid diagonal arrows - the left/right must precede the up/down (eg. "{@Y}RWY_04{^ur}")Forgetting the "^" symbol that prefixes an arrow (eg. "{@Y,ru}B{@L}B")
Mismatched curly braces (do ​not​ use regular parentheses) (eg. "{@Y}RWY_04(^ru}"). These are hard to spot!

If there are errors in the text on a taxiways sign, then X-Plane will not render the sign. Such errors are identified and logged in the log.txt file in your X-Plane
system folder. Look for log entries such as:
Syntax error - unknown glyph at B{@L}B
Syntax error - missing closing brace.
(in sign '{@L}B5{@R}NO_ENTRY{@Y}{@@}{@Y,ru}B{@L}B')

FURTHER INFORMATION
Resources are available for airport designers at the X-Plane Scenery Gateway at ​http://gateway.x-plane.com/

X-Plane Airport Data (apt.dat) File Specification Page 17 of 171050 Version, 18-Jan-2017