FS20 BGL File Format

From FSDeveloper Wiki
Revision as of 20:00, 2 December 2021 by Virtuali (talk | contribs) (Airport.TaxiwayPathContainer.TaxiwayPath.Material)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This is a terse reference for the FS20 (MSFS) BGL file format.

Much of the original BGL File Format information still applies in terms of BGL format and a number of the mathematical transformations used to decode certain data types.

This page should be used in conjunction with that page for a more full understanding of the FS20 BGL format, in particular everything in BGL Common Format still holds.

Note that BGL section IDs are encoded in FSSectType, which are largely identical to FSX with a couple of additions.

Contents

Airport

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x0056
0x2 4 uint recSz
0x6 1 byte runwayCt
0x7 1 byte comCt
0x8 1 byte startCt
0x9 1 byte appCt
0xa 1 byte legacyApronCt
0xb 1 byte helipadCt
0xc 4 LongitudeInt32 lon
0x10 4 LatitudeInt32 lat
0x14 4 AltitudeInt32 alt
0x18 4 LongitudeInt32 towerLon
0x1c 4 LatitudeInt32 towerLat
0x20 4 AltitudeInt32 towerAlt
0x24 4 float magvar
0x28 4 Icao ident
0x2c bits 0 to 10 4 Icao region
0x30 4 Services fuelService
0x35 1 byte trafficScalar Used as a float - ratio of the byte value over 255
0x36 bit 0 1 bool starAirport
0x36 bit 1 1 bool isOnTIN
0x36 bit 2 1 bool closed
0x37 1 byte departureCt
0x38 1 bool onlyAddIfReplace
0x39 1 byte arrivalCt
0x3a 1 byte unknown
0x3b bit 0 1 bool applyFlatten
0x3c 2 ushort apronCt
0x3e 2 ushort paintedLineCt
0x40 2 ushort paintedPolygonCt
0x42 2 ushort paintedHatchedAreaCt

It has the following child records, which appear immediately afterwards:

Airport.Name

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x0019
0x2 4 uint recSz
0x6 recSz - 6 string name

Airport.GroundMergingTransfer

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00e9
0x2 4 uint recSz
0x6 2 ushort unknown
0x8 4 float groundMergingTransfertBright
0xc 4 float groundMergingTransfertDark

Airport.Approach

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x0024
0x2 4 uint recSz
0x6 1 char suffix
0x7 1 byte runway (RunwayNumber)
0x8 bits 0 to 3 1 partialbyte type (ApproachType)
0x8 bits 4 to 6 1 partialbyte designator (Designator)
0x8 bit 7 1 bool gpsOverlay
0x9 1 byte transitionCt
0xa 1 byte legCt
0xb 1 byte missedApproachLegCt
0xc bits 0 to 4 4 partialuint fixType (FixType)
0xc 4 Icao fixIdent
0x10 bits 0 to 10 4 Icao fixRegion
0x10 bits 11 to 31 4 Icao airportIdent
0x14 4 AltitudeFloat altitude
0x18 4 float heading
0x1c 4 AltitudeFloat missedAltitude

It has the following child records, which appear immediately afterwards:

Airport.Apron

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00d3
0x2 4 uint recSz
0x6 bit 0 1 bool drawSurface
0x6 bit 1 1 bool drawDetail
0x6 bit 2 1 bool localUV
0x6 bit 3 1 bool stretchUV
0x6 bit 4 1 boolFalse groundMerging
0x6 bit 5 1 boolFalse excludeVegetationAround
0x6 bit 6 1 boolFalse excludeVegetationInside
0x7 1 byte opacity
0x8 4 ColorationRGBA coloration
0xc 16 Guid surface
0x1c 4 float tiling
0x20 4 float heading in radians
0x24 4 float falloff
0x28 4 int priority
0x2c 2 ushort vertexCt
0x2e 2 ushort triangleCt

Then: vertexCt x vertices:

Offset Byte length Value type Name Notes
pos 4 LongitudeInt32 lon
pos + 0x4 4 LatitudeInt32 lat

Then: triangleCt x triangles:

Offset Byte length Value type Name Notes
pos 2 ushort vertex1
pos + 0x2 2 ushort vertex2
pos + 0x4 2 ushort vertex3

Airport.ApronEdgeLights

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x0031
0x2 4 uint recSz
0x6 2 ushort unknown
0x8 2 ushort vertexCt
0xa 2 ushort edgeCt
0xc 4 ColorationRGBA coloration
0x10 4 float scale
0x14 4 float falloff

Then: vertexCt x vertices:

Offset Byte length Value type Name Notes
pos 4 LongitudeInt32 lon
pos + 0x4 4 LatitudeInt32 lat

Then: edgeCt x edges:

Offset Byte length Value type Name Notes
pos 4 float radius
pos + 0x4 2 ushort vertex1
pos + 0x6 2 ushort vertex2

Airport.Arrival: see Airport.FsProcedure

Airport.BlastFence: see Airport.VectorPlacement

Airport.BoundaryFence: see Airport.VectorPlacement

Airport.Com

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x0012
0x2 4 uint recSz
0x6 2 ushort type (ComType)
0x8 4 FrequencyMHz frequency
0xc recSz - 0xc string name

Airport.DeleteAirport

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x0033
0x2 4 uint recSz
0x6 bit 0 2 bool allApproaches
0x6 bit 1 2 bool allApronLights
0x6 bit 2 2 bool allAprons
0x6 bit 3 2 bool allFrequencies
0x6 bit 4 2 bool allHelipads
0x6 bit 5 2 bool allRunways
0x6 bit 6 2 bool allStarts
0x6 bit 7 2 bool allTaxiways
0x6 bit 8 2 bool allBlastFences
0x6 bit 9 2 bool allBoundaryFences
0x6 bits 10 to 11 2 bool allJetways
0x6 bit 11 2 bool allControlTowers
0x8 1 byte runwayCt
0x9 1 byte startCt
0xa 1 byte freqCt
0xb bit 0 1 bool allDepartures
0xb bit 1 1 bool allArrivals
0xb bit 2 1 bool allPaintedElements
0xb bit 3 1 bool allLightSupports
0xb bit 4 1 bool allTaxiwaySigns
0xb bit 5 1 bool allILSs
0xb bit 6 1 bool allTerminalWaypoints
0xb bit 7 1 bool allTerminalNDBs

Then: followed potentially by individual runways / starts / frequencies, but no examples of that yet

Airport.Departure: see Airport.FsProcedure

Airport.FsProcedure

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) as per particular procedure type
0x2 4 uint recSz
0x6 2 byte[] unknown
0x8 1 byte runwayTransitionCt
0x9 1 byte commonRouteLegCt
0xa 1 byte enrouteTransitionCt
0xb 1 byte unknown
0xc 8 string name

It has the following child records which appear immediately afterwards:

Airport.Helipad

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x0026
0x2 4 uint recSz
0x6 1 byte surface (Surface)
0x7 bits 0 to 3 1 partialbyte type (Helipad)
0x7 bit 4 1 bool transparent
0x7 bit 5 1 bool closed
0x8 4 Color color
0xc 4 LongitudeInt32 lon
0x10 4 LatitudeInt32 lat
0x14 4 AltitudeInt32 alt
0x18 4 Distance length
0x1c 4 Distance width
0x20 4 float heading

Airport.Jetway

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00de
0x2 4 uint recSz
0x6 2 ushort parkingNumber
0x8 2 ushort gateName (ParkingName)
0xa 2 ushort suffix (ParkingName)
0xc 2 ushort unknown
0xe 2 ushort scenObjLen1
0x10 2 ushort scenObjLen2

Then: up to 2 SceneryObjects (dependant on if respective scenObjLen is nonzero)

Airport.LegContainer.Leg

Offset Byte length Value type Name Notes
0x0 1 byte type (LegType)
0x1 1 byte altitudeDescriptor (AltitudeDescriptor)
0x2 bits 0 to 1 2 partialushort turnDirection (TurnDirection)
0x2 bit 8 2 bool courseIsTrue
0x2 bit 9 2 bool timeIsSpecified
0x2 bit 10 2 bool flyOver
0x4 bits 0 to 4 4 partialuint fixType (FixType)
0x4 4 Icao fixIdent
0x8 bits 0 to 10 4 Icao fixRegion
0x8 bits 11 to 31 4 Icao fixAirport
0xc bits 0 to 4 4 partialuint recommendedType (FixType)
0xc 4 Icao recommendedIdent
0x10 bits 0 to 10 4 Icao recommendedRegion
0x10 bits 11 to 31 4 Icao recommendedAirport
0x14 4 float theta
0x18 4 DistanceFloat rho
IF courseIsTrue
0x1c 4 float trueCourse
ELSE
0x1c 4 float magneticCourse
ENDIF
IF timeIsSpecified
0x20 4 float time
ELSE
0x20 4 DistanceFloat distance
ENDIF
0x24 4 AltitudeFloat altitude1
0x28 4 AltitudeFloat altitude2
0x2c 4 float speedLimit
0x30 4 float verticalAngle
0x34 16 bytes Unknown

Airport.LegContainer

Offset Byte length Value type Name Notes
0x0 2 ushort childType 0x00e1 for ApproachLegs
0x00e2 for MissedApproachLegs
0x00e3 for TransitionLegs
0x00e4 for RunwayTransitionLegs
0x00e5 for CommonRouteLegs
0x00e6 for EnrouteTransitionLegs
0x2 4 uint recSz
0x6 2 ushort legCt

Then: legCt x Airport.LegContainer.Leg

Airport.LightSupport

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x0057
0x2 4 uint recSz
0x6 2 ushort unknown
0x8 8 LatitudeDouble latitude
0x10 8 LongitudeDouble longitude
0x18 8 AltitudeDouble altitude
0x20 8 AltitudeDouble altitude2
0x28 4 float heading
0x2c 4 float width
0x30 4 float length

Airport.PaintedHatchedArea

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00d8
0x2 4 uint recSz
0x6 4 uint type (PaintedLineType)
0xa 2 ushort vertexCount
0xc 4 float heading
0x10 4 Distance spacing

Then: vertexCt x vertices:

Offset Byte length Value type Name Notes
pos 4 LongitudeInt32 lon
pos + 0x4 4 LatitudeInt32 lat

Airport.PaintedLine

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00cf
0x2 4 uint recSz
0x6 1 byte type (PaintedLineType)
0x7 1 byte trueAngle (PaintedLineTrueAngle)
0x8 4 uint vertexCount
0xc 16 Guid surface

Then: vertexCt x vertices:

Offset Byte length Value type Name Notes
pos 4 LongitudeInt32 lon
pos + 0x4 4 LatitudeInt32 lat

Airport.PaintedPolygon

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType)
0x2 4 uint recSz
0x6 2 ushort vertexCount
0x8 4 ColorationRGBA color

Then: vertexCt x vertices:

Offset Byte length Value type Name Notes
pos 4 LongitudeInt32 lon
pos + 0x4 4 LatitudeInt32 lat

Airport.ProjectedMesh

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00e8
0x2 4 uint recSz
0x6 1 byte priority
0x7 1 byte unknown
0x8 bit 0 4 bool groundMerging
0x8 bits 1 to 31 4 partialuint unknown
0xc 2 ushort subRecSz

Then: a SceneryObject used as the source of the projected mesh

Airport.Runway

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00ce
0x2 4 uint recSz
0x6 bit 7 1 bool transparent
0x8 1 byte primaryNumber (RunwayNumber)
0x9 1 byte primaryDesignator (Designator)
0xa 1 byte secondaryNumber (RunwayNumber)
0xb 1 byte secondaryDesignator (Designator)
0xc 4 Icao primaryILSIdent
0x10 4 Icao secondaryILSIdent
0x14 4 LongitudeInt32 lon
0x18 4 LatitudeInt32 lat
0x1c 4 AltitudeInt32 alt
0x20 4 Distance length
0x24 4 Distance width
0x28 4 float heading
0x2c 4 AltitudeFloat patternAltitude
0x30 bit 0 2 bool markingsEdges
0x30 bit 1 2 bool markingsThreshold
0x30 bit 2 2 bool markingsFixedDistance
0x30 bit 3 2 bool markingsTouchdown
0x30 bit 4 2 bool markingsDashes
0x30 bit 5 2 bool markingsIdent
0x30 bit 6 2 bool markingsPrecision
0x30 bit 7 2 bool markingsEdgePavement
0x30 bit 8 2 bool markingsSingleEnd
0x30 bit 9 2 bool markingsPrimaryClosed
0x30 bit 10 2 bool markingsSecondaryClosed
0x30 bit 11 2 bool markingsPrimaryStol
0x30 bit 12 2 bool markingsSecondaryStol
0x30 bit 13 2 bool markingsAlternateThreshold
0x30 bit 14 2 bool markingsAlternateFixedDistance
0x30 bit 15 2 bool markingsAlternateTouchdown
0x32 bit 5 1 bool markingsAlternatePrecision
0x32 bit 6 1 bool markingsLeadingZeroIdent
0x32 bit 7 1 bool markingsNoThresholdEndArrows
0x32 bits 0 to 1 1 partialbyte lightsEdge (Lights)
0x32 bits 2 to 3 1 partialbyte lightsCenter (Lights)
0x32 bit 4 1 bool lightsCenterRed
0x33 bit 0 1 boolFalse primaryTakeOff
0x33 bit 1 1 boolFalse primaryLanding
0x33 bit 2 1 partialbyte primaryPattern (Side)
0x33 bit 3 1 boolFalse secondaryTakeOff
0x33 bit 4 1 boolFalse secondaryLanding
0x33 bit 5 1 partialbyte secondaryPattern (Side)
0x33 bit 6 1 boolFalse groundMerging
0x33 bit 7 1 boolFalse excludeVegetationAround
0x34 0x14 byte[] unknown
0x48 4 float falloff
0x4c 16 Guid surface
0x5c 4 ColorationRGBA coloration

It has the following child records which appear immediately afterwards:

Airport.Runway.ApproachLights

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSRunwayChildType) 0x00df for Primary, 0x00e0 for Secondary
0x2 4 uint recSz
0x6 bits 0 to 4 1 partialbyte system (ApproachLights)
0x6 bit 5 1 bool endLights
0x6 bit 6 1 bool reil
0x6 bit 7 1 bool touchdown
0x7 1 byte strobes
0x8 4 Distance spacing
0xc 4 Distance offset
0x10 4 float slope
0x14 4 uint unknown

Airport.Runway.BlastPad

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSRunwayChildType) 0x0007 for Primary, 0x0008 for Secondary
0x2 4 uint recSz
0x6 2 ushort fsXsurface (Surface)
0x8 16 Guid surface
0x18 4 Distance length
0x1c 4 Distance width

Airport.Runway.FacilityMaterial

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSRunwayChildType) 0x00cb
0x2 4 uint recSz
0x6 1 byte unknown
0x7 1 byte opacity
0x8 16 Guid guid
0x18 4 uint unknown
0x1c 4 float tilingU
0x20 4 float tilingV
0x24 4 Distance width
0x28 4 float falloff

Airport.Runway.OffsetThreshold

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSRunwayChildType) 0x0005 for Primary, 0x0006 for Secondary
0x2 4 uint recSz
0x06 2 ushort fsXsurface (Surface)
0x08 16 Guid surface
0x18 4 Distance length
0x1c 4 Distance width

Airport.Runway.Overrun

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSRunwayChildType) 0x0065 for Primary, 0x0066 for Secondary
0x2 4 uint recSz
0x06 2 ushort fsXsurface (Surface)
0x8 4 Distance length
0xc 4 Distance width

Airport.Runway.RunwayDeformation

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSRunwayChildType) 0x003e
0x2 4 uint recSz
0x6 2 ushort unknown
0x8 4 float ratio
0x0c 4 AltitudeFloat alt
0x10 4 float controlPointBefore
0x14 4 float controlPointAfter

Airport.Runway.VASI

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSRunwayChildType)
0x000b for Primary Left, 0x000c for Primary Right
0x000d for Secondary Left, 0x000e for Secondary Right
0x2 4 uint recSz
0x6 2 ushort type (Vasi)
0x08 4 Distance biasX
0x0c 4 Distance biasZ
0x10 4 Distance spacing
0x14 4 float pitch

Airport.Start

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x0011
0x2 4 uint recSz
0x6 1 byte number (RunwayNumber)
0x7 bits 0 to 3 1 partialbyte designator (Designator)
0x7 bits 4 to 7 1 partialbyte type (Start)
0x8 4 LongitudeInt32 lon
0xc 4 LatitudeInt32 lat
0x10 4 AltitudeInt32 alt
0x14 4 float heading

Airport.TaxiNameContainer

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x001d
0x2 4 uint recSz
0x6 2 ushort subRecCt

Then: subRecCt x Airport.TaxiNameContainer.TaxiName

Airport.TaxiNameContainer.TaxiName

Offset Byte length Value type Name Notes
0x0 8 string name


Airport.TaxiwayParkingContainer

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00e7
0x2 4 uint recSz
0x6 2 ushort subRecCt

Then: subRecCt x Airport.TaxiwayParkingContainer.TaxiwayParking

Airport.TaxiwayParkingContainer.TaxiwayParking

Offset Byte length Value type Name Notes
0x0 bits 0 to 5 4 partialuint name (ParkingName)
0x0 bits 6 to 7 4 partialuint pushBack (ParkingPushback)
0x0 bits 8 to 11 4 partialuint type (ParkingType)
0x0 bits 12 to 23 4 partialuint number
0x0 bits 24 to 31 4 partialuint airlineCodeCt
0x4 4 Distance radius
0x8 4 float heading
0xc 4 float teeOffset1
0x10 4 float teeOffset2
0x14 4 float teeOffset3
0x18 4 float teeOffset3
0x1c 4 LongitudeInt32 lon
0x20 4 LatitudeInt32 lat

Then: airlineCodeCt x airlineCodes (fixed 4 char strings)

Offset Byte length Value type Name Notes
pos 4 string airlineCode

Then, at unknown position pos after that:

Offset Byte length Value type Name Notes
pos 1 bool numberMarking
pos + 0x1 1 byte suffix (ParkingName)
pos + 0x2 0x5 byte[] unknown
pos + 0x8 4 Distance numberBiasX
pos + 0xc 4 Distance numberBiasZ
pos + 0x10 4 float numberHeading


Airport.TaxiwayPathContainer

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00d4
0x2 4 uint recSz
0x6 2 ushort subRecCt

Then: subRecCt x Airport.TaxiwayPathContainer.TaxiwayPath

Airport.TaxiwayPathContainer.TaxiwayPath

Offset Byte length Value type Name Notes
0x0 2 ushort start
0x2 bits 0 to 11 2 partialushort legacyEnd
0x2 bits 12 to 15 2 partialushort designator (Designator)
0x4 bits 0 to 3 1 partialbyte type (TaxiwayPathType)
0x4 bit 4 1 bool enhanced
0x4 bit 5 1 bool drawSurface
0x4 bit 6 1 bool drawDetail
IF type is RUNWAY
0x5 1 byte number (RunwayNumber)
ELSE
0x5 1 byte name
ENDIF
0x6 bit 0 1 bool centerLine
0x6 bit 1 1 bool centerLineLighted
0x6 bits 2 to 3 1 partialbyte leftEdge (TaxiwayEdgeType)
0x6 bit 4 1 bool leftEdgeLighted
0x6 bits 5 to 6 1 partialbyte rightEdge (TaxiwayEdgeType)
0x6 bit 7 1 bool rightEdgeLighted
0x7 1 byte fsXsurface (Surface)
0x8 4 Distance width
0xc 4 uint weightLimit
0x10 4 uint unknown
0x14 4 uint unknown
0x18 16 Guid surface
0x28 4 ColorationRGBA coloration
0x2c 1 byte materialCt
0x2d bit 0 1 bool groundMerging
0x2d bit 1 1 boolFalse excludeVegetationAround
0x2d bit 2 1 boolFalse excludeVegetationInside
0x2e 2 ushort end

Then: materialCt x Airport.TaxiwayPathContainer.TaxiwayPath.Material

Airport.TaxiwayPathContainer.TaxiwayPath.Material

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00d5
0x2 4 uint recSz
0x6 1 byte type
0x7 1 byte opacity
0x8 16 Guid surface
0x18 4 uint type (FSTaxiwayPathMaterialType)
0x1C 4 float tilingU
0x20 4 float tilingV
0x24 4 float width
0x28 4 float falloff

Airport.TaxiwayPointContainer

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x001a
0x2 4 uint recSz
0x6 2 ushort subRecCt

Then: subRecCt x Airport.TaxiwayPointContainer.TaxiwayPoint

Airport.TaxiwayPointContainer.TaxiwayPoint

Offset Byte length Value type Name Notes
0x0 1 byte type (TaxiPointType)
0x1 1 byte orientation (TaxiPointOrientation)
0x2 2 ushort unknown
0x4 4 LongitudeInt32 lon
0x8 4 LatitudeInt32 lat

Airport.TaxiwaySign

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x00d9
0x2 4 uint recSz
0x6 2 ushort aptTaxiwaySignCt unused?
0x8 4 LongitudeInt32 lon
0xc 4 LatitudeInt32 lat
0x10 4 float heading
0x14 1 byte size (SignSize)
0x15 1 byte justification (Side)
0x16 0x3e string label

Airport.Tower

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType) 0x0066
0x2 4 uint recSz
0x6 2 ushort subRecSz
0x8 bit 0 1 bool defaultTower
0x8 bits 1 to 2 1 partialbyte overrideSize (OverrideTowerSize)
0x9 1 byte overrideLevel
IF defaultTower
0xa 8 LatitudeDouble lat
0x12 8 LongitudeDouble lon
0x1a 8 AltitudeDouble alt
ELSE
A SceneryObject is embedded at 0xa
ENDIF

Airport.TransitionContainer

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSProcedureChildType)
0x2 4 uint recSz
0x6 1 byte transitionCt
IF childType == RunwayTransitions
0x7 1 byte number (RunwayNumber)
0x8 1 byte designator (Designator)
0x9 3 byte[] unk
ENDIF

Then: transitionCt x Airport.TransitionContainer.Transition

Airport.TransitionContainer.Transition

Offset Byte length Value type Name Notes
0x6 1 byte transitionType (TransitionType)
0x7 1 byte legCt
0x8 bits 0 to 4 4 partialuint fixType (FixType)
0x8 4 Icao fixIdent
0xc bits 0 to 10 4 Icao fixRegion
0xc bits 11 to 31 4 Icao fixAirport
0x10 4 AltitudeFloat altitude
IF transitionType == DME
0x0 4 Icao dmeIdent
0x4 bits 0 to 10 4 Icao dmeRegion
0x4 bits 11 to 31 4 Icao dmeAirport
0x8 4 int radial
0xc 4 DistanceFloat distance
ENDIF

Then: legCt x Airport.Leg


Airport.VectorPlacement

Offset Byte length Value type Name Notes
0x0 2 ushort childType (FSAirportChildType)
0x2 4 uint recSz
0x6 2 ushort vertexCt
0x8 16 Guid instanceId
0x18 16 Guid profile

Then: vertexCt x vertices:

Offset Byte length Value type Name Notes
pos 4 LongitudeInt32 lon
pos + 0x4 4 LatitudeInt32 lat


Boundary

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x0020
0x2 4 uint recSz
0x6 1 byte type (BoundaryType)
0x7 bits 0 to 3 1 partialbyte maximumAltitudeType (AltitudeType)
0x7 bits 4 to 7 1 partialbyte minimumAltitudeType (AltitudeType)
0x8 4 LongitudeInt32 lonMinimum
0xc 4 LatitudeInt32 latMinimum
0x10 4 AltitudeInt32 altitudeMinimum
0x14 4 LongitudeInt32 lonMaximum
0x18 4 LatitudeInt32 latMaximum
0x1c 4 AltitudeInt32 altitudeMaximum

It has the following child records which appear immediately afterwards:

Boundary.Name: see Airport.Name

Boundary.Com: see Airport.Com

Boundary.BoundaryDefContainer

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSBoundaryChildType) 0x0021
0x2 4 uint recSz
0x6 2 ushort subRecCt

Then: subRecCt x Boundary.BoundaryDefContainer.BoundaryDef

Boundary.BoundaryDefContainer.BoundaryDef

Offset Byte length Value type Name Notes
0x0 1 byte boundaryDefType (FSBoundaryDefType)
0x1 1 byte index

Then based on the type, choose a subtype:

Boundary.BoundaryDefContainer.BoundaryDef.Com: unknown

Boundary.BoundaryDefContainer.BoundaryDef.Origin

Offset Byte length Value type Name Notes
0x2 4 LatitudeInt32 lat
0x6 4 LongitudeInt32 lon

Boundary.BoundaryDefContainer.BoundaryDef.Circle

Offset Byte length Value type Name Notes
0x2 4 uint unknown
0x6 4 Distance radius

Boundary.BoundaryDefContainer.BoundaryDef.Line

Offset Byte length Value type Name Notes
0x2 4 LatitudeInt32 lat
0x6 4 LongitudeInt32 lon

Boundary.BoundaryDefContainer.BoundaryDef.Arc

Offset Byte length Value type Name Notes
0x2 4 LatitudeInt32 lat
0x6 4 LongitudeInt32 lon

Boundary.BoundaryDefContainer.BoundaryDef.Start

Offset Byte length Value type Name Notes
0x2 4 LatitudeInt32 lat
0x6 4 LongitudeInt32 lon


DeleteAirportNavigation

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x00db
0x2 4 uint recSz
0x6 2 ushort unknown
0x8 4 Icao ident
0xc bits 0 to 10 4 Icao region
0xc bits 11 to 31 4 Icao airportIdent

DeleteNavigation

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x00da
0x2 4 uint recSz
0x6 bit 0 2 bool deleteAllWaypoints
0x6 bit 1 2 bool deleteAllVORs
0x6 bit 2 2 bool deleteAllNDBs
0x6 bit 3 2 bool deleteAllTerminalWaypoints
0x6 bit 4 2 bool deleteAllTerminalNDBs
0x6 bit 5 2 bool deleteAllILSs
0x6 bit 6 2 bool deleteAllApproaches
0x6 bit 7 2 bool deleteAllDepartures
0x6 bit 8 2 bool deleteAllArrivals
0x6 bit 9 2 bool deleteAllFrequencies

ExclusionRectangle

Offset Byte length Value type Name Notes
0x0 bit 3 4 bool excludeAllObjects
0x0 bit 4 4 bool excludeBeaconObjects
0x0 bit 5 4 bool excludeEffectObjects
0x0 bit 6 4 bool excludeGenericBuildingObjects
0x0 bit 7 4 bool excludeLibraryObjects
0x0 bit 8 4 bool excludeTaxiwaySignObjects
0x0 bit 9 4 bool excludeTriggerObjects
0x0 bit 10 4 bool excludeWindsockObjects
0x0 bit 11 4 bool excludeExtrusionBridgeObjects
0x0 bit 12 4 bool excludeSimObjects
0x0 bit 13 4 bool excludeWorldScripts
0x0 bit 14 4 bool excludeCarParking
0x0 bit 15 4 bool excludeRectangles
0x0 bit 16 4 bool excludePolygons
0x4 4 LongitudeInt32 longitudeMinimum
0x8 4 LatitudeInt32 latitudeMaximum
0xc 4 LongitudeInt32 longitudeMaximum
0x10 4 LatitudeInt32 latitudeMinimum

FsAirportSummary

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x0032
0x2 4 uint recSz
0x6 bits 5 to 15 2 partialushort approachAvailability
0x8 4 LongitudeInt32 lon
0xc 4 LatitudeInt32 lat
0x10 4 AltitudeInt32 alt
0x14 4 Icao ident
0x18 4 uint unknown
0x1c 4 float magvar
0x20 4 float longRwyLength
0x24 4 float longRwyHeading
0x28 4 Services fuelService

FsIndexMember

Offset Byte length Value type Name Notes
0x0 bits 0 to 4 4 partialuint rectype
0x0 bits 5 to 31 4 Icao ident
0x4 bits 0 to 10 4 Icao region
0x4 bits 11 to 31 4 Icao airportIcao
0x8 2 ushort qmidU
0xa 2 ushort qmidV

FsNameList

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x0027
0x2 4 uint recSz always zero
0x6 2 ushort regionCt
0x8 2 ushort countryCt
0xa 2 ushort stateCt
0xc 2 ushort cityCt
0xe 2 ushort airportCt
0x10 2 ushort identCt
0x12 4 uint regionOffset
0x16 4 uint countryOffset
0x1a 4 uint stateOffset
0x1e 4 uint cityOffset
0x22 4 uint airportOffset
0x26 4 uint identOffset

Then: identCt x following struct:

Offset Byte length Value type Name Notes
pos 1 byte region regionNames[regionIdx]
pos + 0x1 1 byte country countryNames[countryIdx]
pos + 0x2 bits 4 to 15 2 partialushort state stateNames[stateIdx]
pos + 0x4 2 ushort city cityNames[cityIdx]
pos + 0x6 2 ushort airport airportNames[airportIdx]
pos + 0x8 4 Icao icao
pos + 0x0c 4 uint regionCode?
pos + 0x10 2 ushort qmidU
pos + 0x12 2 ushort qmidU

LandmarkLocation

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x00ea
0x2 4 uint recSz
0x6 16 Guid instanceId
0x16 4 LongitudeInt32 lon
0x11 4 LatitudeInt32 lat
0x1e 4 AltitudeInt32 alt
0x22 1 byte nameLen
0x23 1 byte typeLen
0x24 1 byte ownerLen
0x26 nameLen string name
0x26 + nameLen typeLen string type
0x26 + nameLen + typeLen ownerLen string owner

Marker

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x0018
0x2 2 ushort recSz
0x5 2 short heading Heading calculation
0x7 1 byte type (MarkerType)
0x8 4 LongitudeInt32 lon
0xc 4 LatitudeInt32 lat
0x10 4 AltitudeInt32 alt
0x14 4 Icao ident
0x18 4 uint unknown

Ndb

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x0017
0x2 4 uint recSz
0x6 2 ushort type (NdbType)
0x8 4 FrequencyKHz frequency
0xc 4 LongitudeInt32 lon
0x10 4 LatitudeInt32 lat
0x14 4 AltitudeInt32 alt
0x18 4 Distance range
0x1c 4 float magvar
0x20 4 Icao ident
0x24 bits 0 to 10 4 Icao region
0x24 bits 11 to 31 4 Icao airportIdent

It has the following child records which appear immediately afterwards:

Route

Offset Byte length Value type Name Notes
0x0 1 byte routeType (RouteType)
0x1 8 string name

Then: next (offset 0x9) and previous (offset 0x15) route elements as Route.PreviousNext

Route.PreviousNext

Offset Byte length Value type Name Notes
0x0 bits 0 to 2 4 partialuint waypointType (RouteWaypointType)
0x0 bits 5 to 31 4 Icao waypointIdent
0x4 bits 0 to 10 4 Icao waypointRegion
0x8 4 AltitudeFloat altitudeMinimum

SceneryObject

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x0025
0x2 2 ushort recSz
0x4 4 LongitudeInt32 lon
0x8 4 LatitudeInt32 lat
0xc 4 AltitudeInt32 alt
0x10 bit 0 1 bool altitudeIsAgl
0x10 bit 1 1 bool noAutogenSuppression
0x10 bit 2 1 bool noCrash
0x10 bit 3 1 bool noFog
0x10 bit 4 1 bool noShadow
0x10 bit 5 1 bool noZWrite
0x10 bit 6 1 bool noZTest
0x10 bit 7 1 bool hideOnTIN
0x12 2 short pitch Pitch calculation
0x14 2 short bank Bank calculation
0x16 2 short heading Heading calculation
0x18 2 ushort imageComplexity (Complexity)
0x1a 2 ushort unknown
0x1c 16 Guid instanceId

This record has multiple sub-types:

It has the following child records which appear immediately afterwards:

SceneryObject.LibraryObject

Offset Byte length Value type Name Notes
0x2c 16 Guid name
0x3c 4 float scale

SceneryObject.Windsock

Offset Byte length Value type Name Notes
0x2c 4 Distance poleHeight
0x30 4 Distance sockLength
0x34 4 Color poleColor
0x38 4 Color sockColor
0x3c bit 0 1 bool lighted
0x3e 1 byte containerTitleLen
0x3f 1 byte containerPathLen
0x40 containerTitleLen string containerTitle
0x40 + containerTitleLen + 1 containerPathLen string containerPath

SceneryObject.WorldScript

Offset Byte length Value type Name Notes
0x2c 2 ushort objectFileLen
0x2e objectFileLen string objectFile

SceneryObject.SimObject

Offset Byte length Value type Name Notes
0x2c 4 float scale
0x30 2 ushort containerTitleLen
0x32 2 ushort containerPathLen
0x34 containerTitleLen string containerTitle
0x34 + containerTitleLen + 1 containerPathLen string containerPath

SceneryObject.CarParking

Offset Byte length Value type Name Notes
0x2c 2 ushort vertexCt


Then: vertexCt x vertices:

Offset Byte length Value type Name Notes
pos 8 LatitudeDouble lat
pos + 0x8 8 LongitudeDouble lon

SceneryObject.AttachedObject

Offset Byte length Value type Name Notes
0x0 2 ushort beginRecTypeRaw
0x2 2 ushort beginRecSz
0x4 2 ushort subType
0x6 2 ushort subRecSz
0x8 2 ushort attachpointNameOffset
0xa 2 ushort pitch Pitch calculation
0xc 2 ushort bank Bank calculation
0xe 2 ushort heading Heading calculation
0x10 4 float biasX
0x14 4 float biasY
0x18 4 float biasZ
0x1c 16 Guid instanceId
0x2c 2 ushort probability Ratio over 0x10000
0x2e 2 ushort randomness
pos + attachpointNameOffset *** unknown *** string attachpointName
pos + attachpointNameOffset + unknown 2 ushort endRecTypeRaw
pos + attachpointNameOffset + unknown + 0x2 2 ushort endRecSz

It has the following child records which appear immediately afterwards:

SceneryObject.Beacon

Offset Byte length Value type Name Notes
0x0 2 ushort type thisBeaconType.type
0x0 2 ushort baseType thisBeaconType.baseType
0x2 2 ushort unknown

VorIls

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x13
0x2 4 uint recSz
0x6 1 byte vorType (VorType)
0x8 4 LongitudeInt32 lon
0xc 4 LatitudeInt32 lat
0x10 4 AltitudeInt32 alt
0x14 4 FrequencyMHz frequency
0x18 4 Distance range
0x1c 4 float magvar
0x20 4 Icao ident

Then, if the type is ILS:

Offset Byte length Value type Name Notes
0x7 bit 2 1 bool backCourse
0x24 bits 11 to 31 4 Icao airportIdent

It has the following child records which appear immediately afterwards:

Otherwise, if the type is VOR:

Offset Byte length Value type Name Notes
0x6 1 byte type (VorType)
0x7 bit 0 1 boolFalse dmeOnly
0x7 bit 4 1 bool dme
0x7 bit 5 1 bool nav
0x24 bits 0 to 10 4 Icao region

It has the following child records which appear immediately afterwards:

Ils.Localizer

Offset Byte length Value type Name Notes
0x6 1 byte number (RunwayNumber)
0x7 1 byte designator (Designator)
0x8 4 float heading
0xc 4 float width

VorIls.Dme

Offset Byte length Value type Name Notes
0x2 4 uint recSz
0x8 4 LongitudeInt32 lon
0xc 4 LatitudeInt32 lat
0x10 4 AltitudeInt32 alt
0x14 4 Distance range

Ils.GlideSlope

Offset Byte length Value type Name Notes
0x2 4 uint recSz
0x8 4 LongitudeInt32 lon
0xc 4 LatitudeInt32 lat
0x10 4 AltitudeInt32 alt
0x14 4 Distance range
0x18 4 float pitch

Waypoint

Offset Byte length Value type Name Notes
0x0 2 ushort recType (FSDataType) 0x22
0x2 4 uint recSz
0x6 1 byte waypointType (WaypointType)
0x7 1 byte routeCt
0x8 4 LongitudeInt32 lon
0xc 4 LatitudeInt32 lat
0x10 4 float magvar
0x14 4 Icao waypointIdent
0x18 bits 0 to 10 4 Icao waypointRegion
0x18 bits 11 to 31 4 Icao waypointAirport

Then: routeCt x Route

Enumerated Types

Naming convention:

  • Names beginning with "FS" are enumerated types which are not defined within the bglcomp.xsd format.
  • All other names correspond with bglcomp.xsd.

AltitudeDescriptor

Name Value
EMPTY 0x0
A 0x1
+ 0x2
- 0x3
B 0x4
C 0x5
G 0x6
H 0x7
I 0x8
J 0x9
V 0xa

AltitudeType

Name Value
UNKNOWN 0x0
MEAN_SEA_LEVEL 0x1
ABOVE_GROUND_LEVEL 0x2
UNLIMITED 0x3

ApproachLights

Name Value
NONE 0x0
ODALS 0x1
MALSF 0x2
MALSR 0x3
SSALF 0x4
SSALR 0x5
ALSF1 0x6
ALSF2 0x7
RAIL 0x8
CALVERT 0x9
CALVERT2 0xa
MALS 0xb
SALS 0xc
SALSF 0xd
SSALS 0xe

ApproachType

Name Value
UNKNOWN 0x0
GPS 0x1
VOR 0x2
NDB 0x3
ILS 0x4
LOCALIZER 0x5
SDF 0x6
LDA 0x7
VORDME 0x8
NDBDME 0x9
RNAV 0xA
LOCALIZER_BACKCOURSE 0xB

ArcDirection

Name Value
CLOCKWISE 0x1
COUNTER_CLOCKWISE 0x2

BoundaryType

Name Value
NONE 0x0
CENTER 0x1
CLASS_A 0x2
CLASS_B 0x3
CLASS_C 0x4
CLASS_D 0x5
CLASS_E 0x6
CLASS_F 0x7
CLASS_G 0x8
TOWER 0x9
CLEARANCE 0xa
GROUND 0xb
DEPARTURE 0xc
APPROACH 0xd
MOA 0xe
RESTRICTED 0xf
PROHIBITED 0x10
WARNING 0x11
ALERT 0x12
DANGER 0x13
NATIONAL_PARK 0x14
MODEC 0x15
RADAR 0x16
TRAINING 0x17

Complexity

Name Value
VERY_SPARSE 0x0
SPARSE 0x1
NORMAL 0x2
DENSE 0x3
VERY_DENSE 0x4
EXTREMELY_DENSE 0x5

ComType

Name Value
ATIS 0x0001
MULTICOM 0x0002
UNICOM 0x0003
CTAF 0x0004
GROUND 0x0005
TOWER 0x0006
CLEARANCE 0x0007
APPROACH 0x0008
DEPARTURE 0x0009
CENTER 0x000A
FSS 0x000B
AWOS 0x000C
ASOS 0x000D
CLEARANCE_PRE_TAXI 0x000E
REMOTE_CLEARANCE_DELIVERY 0x000F

Designator

Name Value
NONE 0x00
LEFT 0x01
RIGHT 0x02
CENTER 0x03
WATER 0x04
A 0x05
B 0x06

End

Name Value
PRIMARY
SECONDARY
BASE
RECIP

FixType

Name Value
UNKNOWN 0x0
AIRPORT 0x1
VOR 0x2
NDB 0x3
TERMINAL_NDB 0x4
WAYPOINT 0x5
TERMINAL_WAYPOINT 0x6
LOCALIZER 0x8
RUNWAY 0x9

FSAirportChildType

Name Value
Null 0x0000
Start 0x0011
Com 0x0012
Name 0x0019
TaxiwayPoint 0x001a
TaxiName 0x001d
Waypoint 0x0022
Approach 0x0024
Helipad 0x0026
ApronEdgeLights 0x0031
DeleteAirport 0x0033
BlastFence 0x0038
BoundaryFence 0x0039
Departure 0x0042
Arrival 0x0048
LightSupport 0x0057
Tower 0x0066
Runway 0x00ce
PaintedLine 0x00cf
Apron 0x00d3
TaxiwayPath 0x00d4
PaintedHatchedArea 0x00d8
TaxiwaySign 0x00d9
TaxiwayParkingMfgrName 0x00dd
Jetway 0x00de
TaxiwayParking 0x00e7
ProjectedMesh 0x00e8
GroundMergingTransfer 0x00e9

FSAttachedObjectType

Name Value
Null 0x0
Beacon 0x11

FSBoundaryChildType

Name Value
Null 0x0000
Com 0x0012
Name 0x0019
BoundaryDef 0x0021

FSBoundaryDefType

Name Value
START 0x1
LINE 0x2
ORIGIN 0x3
ARC_CW 0x4
ARC_CCW 0x5
CIRCLE 0x6

FSDataType

Name Value
Undefined 0x00
Airport 0x56
GenericBuilding 0x0A
LibraryObject 0x0B
Windsock 0x0C
Effect 0x0D
TaxiwaySign 0x0E
Trigger 0x10
ExtrusionBridge 0x12
VorIls 0x13
WorldScript 0x15
CarParking 0x16
Ndb 0x17
Marker 0x18
SimObject 0x19
Boundary 0x20
Waypoint 0x22
Geopol 0x23
SceneryObject 0x25
NameList 0x27
VorIcaoIndex 0x28
NdbIcaoIndex 0x29
WaypointIcaoIndex 0x2a
ModelData 0x2b
AirportSummary 0x2c
ExclusionRectangle 0x2e
TimeZone 0x2f
AirportSummary 0x32
CVX 0x65
DEM 0x67
Landclass 0x68
Waterclass 0x69
Regions 0x6a
Population 0x6c
LCLookup 0x6f
Seasons 0x78
DeleteNavigation 0xDA
DeleteAirportNavigation 0xDB
LandmarkLocation 0xEA

FSProcedureChildType

Name Value
Null 0x0000
Transition 0x002c
RunwayTransitions 0x0046
EnrouteTransitions 0x0047
EnrouteTransitions (new) 0x004a
ApproachLegs 0x00e1
MissedApproachLegs 0x00e2
TransitionLegs 0x00e3
RunwayTransitionLegs 0x00e4
CommonRouteLegs 0x00e5
EnrouteTransitionLegs 0x00e6
CommonRouteLegs (new) 0x00f0

FSRunwayChildType

Name Value
Null 0x0000
OffsetThresholdPri 0x0005
OffsetThresholdSec 0x0006
BlastPadPri 0x0007
BlastPadSec 0x0008
VASIPriL 0x000b
VASIPriR 0x000c
VASISecL 0x000d
VASISecR 0x000e
RunwayDeformation 0x003e
OverrunPri 0x0065
OverrunSec 0x0066
FacilityMaterial 0x00cb
ApproachLightsPri 0x00df
ApproachLightsSec 0x00e0

FSSceneryChildType

Name Value
Null 0x0000
GenericBuilding 0x000A
LibraryObject 0x000B
Effect 0x000D
TaxiwaySign 0x000E
Trigger 0x0010
ExtrusionBridge 0x0012
WorldScript 0x0015
CarParking 0x0016
Windsock 0x0018
SimObject 0x0019
AttachedObject 0x1002

FSSectType

Name Value
Undefined 0x0
Airport 0x3
VorIls 0x13
Ndb 0x17
Marker 0x18
Boundary 0x20
Waypoint 0x22
Geopol 0x23
SceneryObject 0x25
NameList 0x27
VorIcaoIndex 0x28
NdbIcaoIndex 0x29
WaypointIcaoIndex 0x2a
ModelData 0x2b
AirportSummary 0x2c
ExclusionRectangle 0x2e
TimeZone 0x2f
ModelIndex 0x30
LandmarkLocation 0x31
CVX 0x65
DEM 0x67
Landclass 0x68
Waterclass 0x69
Regions 0x6a
Population 0x6c
LCLookup 0x6f
Seasons 0x78

FSTaxiwayPathMaterialType

Name Value
Base Tiled 0x0000
Border 0x0003
Center 0x0004

FSVorIlsNdbChildType

Name Value
Null 0x0
Localizer 0x14
GlideSlope 0x15
DME 0x16
Name 0x19
SceneryObject 0x25

FuelAvail

Name Value
NO 0x0
UNKNOWN 0x1
PRIOR_REQUEST 0x2
YES 0x3

FuelType

Name Value
73
87
100
130
145
MOGAS
JET
JETA
JETA1
JETAP
JETB
JET4
JET5
UNKNOWN

Helipad

Name Value
NONE 0x0
H 0x1
SQUARE 0x2
CIRCLE 0x3
MEDICAL 0x4

LegType

Name Value
AF 0x1
CA 0x2
CD 0x3
CF 0x4
CI 0x5
CR 0x6
DF 0x7
FA 0x8
FC 0x9
FD 0xa
FM 0xb
HA 0xc
HF 0xd
HM 0xe
IF 0xf
PI 0x10
RF 0x11
TF 0x12
VA 0x13
VD 0x14
VI 0x15
VM 0x16
VR 0x17

Lights

Name Value
NONE 0x0
LOW 0x1
MEDIUM 0x2
HIGH 0x3

MarkerType

Name Value
INNER 0x0
MIDDLE 0x1
OUTER 0x2
BACKCOURSE 0x3

NdbType

Name Value
COMPASS_POINT 0x0
MH 0x1
H 0x2
HH 0x3

OverrideTowerSize

Name Value
NONE 0x0
SMALL 0x1
MEDIUM 0x2
LARGE 0x3

PaintedLineTrueAngle

Name Value
NONE 0x0
BEGIN 0x1
END 0x2
BOTH_ENDS 0x3
ALL_POINTS 0x4

PaintedLineType

Name Value
DEFAULT
HOLD_SHORT_FORWARD
HOLD_SHORT_BACKWARD
HOLD_SHORT_FORWARD_MARKED
HOLD_SHORT_BACKWARD_MARKED
ILS_HOLD_SHORT
EDGE_LINE_SOLID
EDGE_LINE_DASHED
HOLD_SHORT_TAXIWAY
SERVICE_DASHED
EDGE_SERVICE_SOLID
EDGE_SERVICE_DASHED
WIDE_YELLOW
WIDE_WHITE
WIDE_RED
SLIM_RED
EDGE_SOLID_ORTHO
EDGE_SOLID_ORTHO_BACK
NON_MOVEMENT
NON_MOVEMENT_BACK
ENHANCED_CENTER
DEFAULT_LIGHTED
HOLD_SHORT_FORWARD_MARKED_L
HOLD_SHORT_BACKWARD_MARKED_L
HOLD_SHORT_FORWARD_LIGHTED
HOLD_SHORT_BACKWARD_LIGHTED
ILS_HOLD_SHORT_LIGHTED
EDGE_LINE_SOLID_LIGHTED
EDGE_LINE_DASHED_LIGHTED
HOLD_SHORT_TAXIWAY_LIGHTED
SERVICE_DASHED_LIGHTED
EDGE_SERVICE_SOLID_LIGHTED
EDGE_SERVICE_DASHED_LIGHTED
WIDE_YELLOW_LIGHTED
WIDE_WHITE_LIGHTED
WIDE_RED_LIGHTED
SLIM_RED_LIGHTED
EDGE_SOLID_ORTHO_LIGHTED
EDGE_SOLID_ORTHO_BACK_LIGHT
NON_MOVEMENT_LIGHTED
NON_MOVEMENT_BACK_LIGHTED
ENHANCED_CENTER_LIGHTED

ParkingName

Name Value
NONE 0x00
PARKING 0x01
N_PARKING 0x02
NE_PARKING 0x03
E_PARKING 0x04
SE_PARKING 0x05
S_PARKING 0x06
SW_PARKING 0x07
W_PARKING 0x08
NW_PARKING 0x09
GATE 0x0a
DOCK 0x0b
GATE_A 0x0c
GATE_B 0x0d
GATE_C 0x0e
GATE_D 0x0f
GATE_E 0x10
GATE_F 0x11
GATE_G 0x12
GATE_H 0x13
GATE_I 0x14
GATE_J 0x15
GATE_K 0x16
GATE_L 0x17
GATE_M 0x18
GATE_N 0x19
GATE_O 0x1a
GATE_P 0x1b
GATE_Q 0x1c
GATE_R 0x1d
GATE_S 0x1e
GATE_T 0x1f
GATE_U 0x20
GATE_V 0x21
GATE_W 0x22
GATE_X 0x23
GATE_Y 0x24
GATE_Z 0x25

ParkingPushback

Name Value
NONE 0x00
LEFT 0x01
RIGHT 0x02
BOTH 0x03

ParkingSuffix

Name Value
NONE 0x00
GATE_A 0x01
GATE_B 0x02
GATE_C 0x03
GATE_D 0x04
GATE_E 0x05
GATE_F 0x06
GATE_G 0x07
GATE_H 0x08
GATE_I 0x09
GATE_J 0x0a
GATE_K 0x0b
GATE_L 0x0c
GATE_M 0x0d
GATE_N 0x0e
GATE_O 0x0f
GATE_P 0x10
GATE_Q 0x11
GATE_R 0x12
GATE_S 0x13
GATE_T 0x14
GATE_U 0x15
GATE_V 0x16
GATE_W 0x17
GATE_X 0x18
GATE_Y 0x19
GATE_Z 0x1a

ParkingType

Name Value
NONE 0x00
RAMP_GA 0x01
RAMP_GA_SMALL 0x02
RAMP_GA_MEDIUM 0x03
RAMP_GA_LARGE 0x04
RAMP_CARGO 0x05
RAMP_MIL_CARGO 0x06
RAMP_MIL_COMBAT 0x07
GATE_SMALL 0x08
GATE_MEDIUM 0x09
GATE_HEAVY 0x0a
DOCK_GA 0x0b
FUEL 0x0c
VEHICLE 0x0d
RAMP_GA_EXTRA 0x0e
GATE_EXTRA 0x0f

Randomness

Name Value
ALWAYS_DISPLAY 0x0
LOCATION_RANDOM 0x1
PURE_RANDOM 0x2

RouteType

Name Value
VICTOR 0x1
JET 0x2
BOTH 0x3

RouteWaypointType

Name Value
VOR 0x2
NDB 0x3
NAMED 0x5

RunwayNumber

Name Value
00 0x00
01 0x01
02 0x02
03 0x03
04 0x04
05 0x05
06 0x06
07 0x07
08 0x08
09 0x09
10 0x0a
11 0x0b
12 0x0c
13 0x0d
14 0x0e
15 0x0f
16 0x10
17 0x11
18 0x12
19 0x13
20 0x14
21 0x15
22 0x16
23 0x17
24 0x18
25 0x19
26 0x1a
27 0x1b
28 0x1c
29 0x1d
30 0x1e
31 0x1f
32 0x20
33 0x21
34 0x22
35 0x23
36 0x24
NORTH 0x25
NORTHEAST 0x26
EAST 0x27
SOUTHEAST 0x28
SOUTH 0x29
SOUTHWEST 0x2a
WEST 0x2b
NORTHWEST 0x2c

Side

Name Value
LEFT 0x0
RIGHT 0x1

SignSize

Name Value
SIZE1 0x0
SIZE2 0x1
SIZE3 0x2
SIZE4 0x3
SIZE5 0x4

Start

Name Value
UNKNOWN 0x00
RUNWAY 0x01
WATER 0x02
HELIPAD 0x03
TRACK 0x04

Surface

Name Value
CONCRETE 0x0000
GRASS 0x0001
WATER 0x0002
CEMENT 0x0003
ASPHALT 0x0004
CLAY 0x0007
SNOW 0x0008
ICE 0x0009
DIRT 0x000c
CORAL 0x000d
GRAVEL 0x000e
OIL_TREATED 0x000f
STEEL_MATS 0x0010
BITUMINOUS 0x0011
BRICK 0x0012
MACADAM 0x0013
PLANKS 0x0014
SAND 0x0015
SHALE 0x0016
TARMAC 0x0017
UNKNOWN 0x00fe
USE_FS20_MATERIAL 0x0200
USE_FS20_APRON_MATERIAL 0xff03

TaxiPointOrientation

Name Value
FORWARD 0x00
REVERSE 0x01

TaxiPointType

Name Value
UNKNOWN 0x00
NORMAL 0x01
HOLD_SHORT 0x02
ILS_HOLD_SHORT 0x04
HOLD_SHORT_NO_DRAW 0x05
ILS_HOLD_SHORT_NO_DRAW 0x06

TaxiwayEdgeType

Name Value
NONE 0x0
SOLID 0x1
DASHED 0x2
SOLID_DASHED 0x3

TaxiwayPathType

Name Value
UNKNOWN 0x0
TAXI 0x1
RUNWAY 0x2
PARKING 0x3
PATH 0x4
CLOSED 0x5
VEHICLE 0x6
ROAD 0x7

TransitionType

Name Value
FULL 0x1
DME 0x2
NDB 0x3
VOR 0x4
GPS 0x5
AIRWAY 0x6
ILS 0x7

TurnDirection

Name Value
NULL 0x0
L 0x1
R 0x2
E 0x3

Vasi

Name Value
VASI21 0x01
VASI31 0x02
VASI22 0x03
VASI32 0x04
VASI23 0x05
VASI33 0x06
PAPI2 0x07
PAPI4 0x08
TRICOLOR 0x09
PVASI 0x0a
TVASI 0x0b
BALL 0x0c
APAP 0x0d
PANELS 0x0e

VorType

Name Value
TERMINAL 0x1
LOW 0x2
HIGH 0x3
ILS 0x4
VOT 0x5

WaypointType

Name Value
NAMED 0x1
UNNAMED 0x2
VOR 0x3
NDB 0x4
OFF_ROUTE 0x5
IAF 0x6
FAF 0x7
RNAV 0x8
VFR 0x9