SCENERY OBJECT DEFINITIONS

The <scene_filename>.xml file should be formatted as follows:

<?xml version="1.0" encoding="UTF-8"?>
<FSData version="9.0">
    <SceneryObject [attributes]>
        <!-- OBJECT PROPERTIES HERE -->
    </SceneryObject>
    <!-- FURTHER SCENERY OBJECTS HERE -->
</FSData>

Within the <FSData> element you would list all the different scenery objects you want to include in the package between opening and closing <SceneryObject> elements.

 

 

<ProjectedMesh>

This element is used to add a ProjectedMesh Object to a scene, although it can also be used to add a projected mesh object to an airport by adding it as a sub-element of <Airport>. Each projected mesh element requires a <SceneryObject> sub-element to define the object that belongs to it. The element has the following attributes:

 

Attribute Description Type Required
priority This option sets the render priority for the projected mesh object. The default render priority is 0, which for most cases is fine. However, if you have overlapping meshes and want one to render over another one, then you will need to change this value to make it a higher or lower priority. Higher priority values will render over lower priorities, for example, a mesh with priority 1 will render over one with priority 0, which in turn will render over one with priority -1. Note that the engine cannot guarantee the render order for meshes with the same priority, so if you need something to always render over or under something else, you need to set this value. Integer No
drawOrder

This option permits you to place meshes into the render hierarchy so that they are drawn under or over different elements. To use this attribute, you must supply one of the given strings, and the projectd mesh will be rendered after the given element has been rendered but before the next element (the element strings are listed in render order). For example, if you select "MARKING", then the projected mesh will be rendered over Aprons, Taxiways and Runways, but under Markings, Runway Markings and Marking Text.

String (listed in order of rendering):

  1. "APRON"
  2. "TAXIWAY"
  3. "RUNWAY"
  4. "MARKING"
  5. "RUNWAY_MARKING"
  6. "MARKING_TEXT"
No
surface This option permits you to select from a list of default surface types that can be applied to the projected mesh. These surfaces will be merged with the mesh texture to add further visual variety and better integrate the mesh with the terrain and surrounding elements.

String:

  1. "ASPHALT"
  2. "BITUMINOUS"
  3. "BRICK"
  4. "CEMENT"
  5. "CLAY"
  6. "CONCRETE"
  7. "CORAL"
  8. "DIRT"
  9. "ERASE_GRASS"
  10. "GRASS"
  11. "GRAVEL"
  12. "ICE"
  13. "MACADAM"
  14. "OIL_TREATED"
  15. "PAINT"
  16. "PLANKS"
  17. "SAND"
  18. "SHALE"
  19. "SHORT_GRASS"
  20. "SNOW"
  21. "STEEL_MATS"
  22. "TARMAC"
  23. "UNDEFINED"
  24. "UNKNOWN"
  25. "WATER"
No
groundMerging Set this attribute to "TRUE" to have the projected mesh object be merged with the underlying ground, or set it to "FALSE" otherwise. You can see a visual example of this effect here: Ground Merging Boolean No

 

 

<SceneryObject>

This element is used in multiple different places to add a scenery object to the sim. This element is explained in full along with its different attributes here: <SceneryObject>.

 

This element can contain one or more of the following sub-elements, and for scenery objects this will usually be at least <LibraryObject /> and <AttachedObject> (click the links below for more information on each element):

 

 

It should be noted that the <AttachedObject> element should always be defined last.

 

 

<Rectangle>

This element can be used to define a rectangular surface in a scene. It is generally used for terraforming an area and for changing the surface material within the rectangle. The rectangle is defined by supplying two sets of coordinates for latitude, longitude and altitude, which will set the positions for two sides of the rectangle, while the width value sets how wide the rectangular area will be between those points. The diagram below helps illustrate this:

Scenery Rectangle Being Defined

This element can contain the <RunwayDeformation /> as well as the <Heightmap/> sub-elements, and takes the following attributes:

 

Attribute Description Type Required
width The total width of the rectangular area, in meters. Float Yes
falloff Defines the range of terrain affected by the flattening of the rectangular area, higher value meaning an increase range. Float Yes
surface Material to apply to the rectangular surface. If not supplied, then the original terrain surface material will be used.

String:

"CONCRETE"
"GRASS"
"WATER"
"GRASS_BUMPY"
"ASPHALT"
"SHORT_GRASS"
"LONG_GRASS"
"HARD_TURF"
"SNOW"
"ICE"
"URBAN"
"FOREST"
"DIRT"
"CORAL"
"GRAVEL"
"OIL_TREATED"
"STEEL_MATS"
"BITUMINUS"
"BRICK"
"MACADAM"
"PLANKS"
"SAND"
"SHALE"
"TARMAC"
"WRIGHT_FLYER_TRACK"

No
lat Latitude of the first side of the rectangular area. Float Yes
lon Longitude of the first side of the rectangular area. Float Yes
alt Altitude of the first side of the rectangular area, in meters. Please note that the referential for this value is always ELLIPSOID. Float Yes
lat2 Latitude of the second side of the rectangular area. Float Yes
lon2 Longitude of the second side of the rectangular area. Float Yes
alt2 Altitude of the second side of the rectangular area, in meters. Please note that the referential for this value is always ELLIPSOID. Float Yes
priority This value is used to define the order in which the terraforming rectangles should be applied. Integer No

 

<Heightmap/>

This sub-element can be added to a <Rectangle> to define a set of heightmap values to the area being terraformed. This element takes two attributes:

 

Attribute Description Type Required
width The width of the data grid. Integer Yes
data

A list of alltitude values, where each value is seperated by a space, eg:

data="49.393673 49.393929 49.394184 49.394440"

String Yes

 

The heightmap will be applied to the entire rectangle, and the attributes are basically defining a grid of values where:

number_of_data_values = width * length

For example, say we want to apply a heightmap of 9 points to the defined rectangle. We'd use this element like this:

<Heightmap width="3" data="val1 val2 val3 val4 val5 val6 val7 val8 val9" />

This would then be applied to the rectangle like this:

Heightmap Element Example Illustration

 

 

 

<ExclusionRectangle />

This element can be used to define a rectangular area which can be used to exclude specific elements. The elements to be excluded are supplied as attributes to the element and are listed in the table below.

IMPORTANT! This element will not exclude anything from the current package being edited. It is only valid for removing things from a previously loaded package, and is dependent on the package load order. So, packages loaded after the package with the <ExclusionRectangle> will be rendered as normal, and packages loaded before the package with the <ExclusionRectangle> will have elements excluded.

NOTE: Exclusion rectangles will only apply to SimObjects placed via the Scenery Editor. They will not apply to BGL traffic or SimObjects spawned using SimConnect.

This element has no children and is self closing, and it uses the attributes listed below:

 

Attribute Description Type Required
latitudeMinimum The minimum latitude for one side of the rectangle. Float Yes
latitudeMaximum The maximum latitude for one side of the rectangle. Float Yes
longitudeMinimum The minimum longitude for one side of the rectangle. Float Yes
longitudeMaximum The maximum longitude for one side of the rectangle. Float Yes
excludeAllObjects Setting this will exclude all objects within the rectangular area (in which case none of the other attributes are necessary). Bool No
excludeBeaconObjects Setting this will exclude any beacons within the rectangular area.
excludeCarParking Setting this will exclude any car park objects within the rectangular area.
excludeEffectObjects Setting this will exclude any legacy effect objects within the rectangular area.
excludeExtrusionBridgeObjects

Setting this will exclude any extruded bridge objects within the rectangular area.

NOTE: Extruded bridges are deprecated in Microsoft Flight Simulator, so including this attribute will make no difference to rendering.

excludeGenericBuildingObjects

Setting this will exclude any generic building objects within the rectangular area.

NOTE: Generic buildings are deprecated in Microsoft Flight Simulator, so including this attribute will make no difference to rendering.

excludeLibraryObjects Setting this will exclude any library objects within the rectangular area.
excludePolygons Setting this will exclude any polygons within the rectangular area.
excludeProjectedMesh Setting this will exclude any projected meshes within the rectangular area.
excludeRectangles Setting this will exclude any rectangles within the rectangular area.
excludeSimObjects Setting this will exclude any SimObjects within the rectangular area.
excludeTaxiwaySignObjects Setting this will exclude any taxiway signs within the rectangular area.
excludeTriggerObjects Setting this will exclude any Triggers within the rectangular area.
NOTE: Triggers are deprecated in Microsoft Flight Simulator, so including this attribute will make no difference to rendering.
excludeVisualObjects Setting this will exclude any Visual Effect objects within the rectangular area.
excludeWindsockObjects Setting this will exclude any windsocks within the rectangular area.
excludeWorldScripts Setting this will exclude any world script objects within the rectangular area.
excludeAirports Setting this will exclude the airport that it has been placed over. This requires that the exclusion rectangle covers the center point of the airport, and will prevent all airport objects from spawning, including towers, runways, aprons, etc... Note that this will not change any ground textures, and so - if the airport being excluded exists in the real world - there may still be airport areas visible in the TIN.