Distributed Interactive Simulation (DIS)


Contents
Related Links
  • Not Applicable

Distributed interactive simulation (DIS) is a simulation interoperability standard that provides simulation applications with the ability to communicate and exchange information. The native DIS implementation is only available with the Professional Plus variant.


Starting a Session

The DIS user interface can be found under Networking in the main menu bar. The user should configure their DIS session before attempting to connect. Configuration includes items such as site, application, entity, and exercise ids as well as heartbeat and timeout values. The exercise id must match that of the session you intend to join. PDUs of other exercises will not be processed by your machine. To process PDUs from all exercises, a value of zero may be entered in the exercise id field. The user must then provide their machine's IP address as well as either a subnet mask or a multicast address depending on the connection type. Once this information is complete, the user may click connect to start or join a DIS session. See below for a more detailed description of each option.


User Interface

The DIS user interface allows the user to configure items such as entity and connection settings. The following is a description of options available from within the user interface as well as descriptions and examples of the XML format used for the configuration.

Entity

Option Description
Exercise ID The Exercise ID of the distributed interactive simulation. Applications participating in the same simulation should have matching Exercise IDs. A value of zero may be entered to receive network traffic from all connected exercises. Valid Exercise IDs range from 0 to 255.
Site ID The Site ID of this application instance. Site IDs may be the same for multiple applications as long as each application's Application ID is unique. Valid Site IDs range from 0 to 65535.
Application ID The Application ID of this application instance. Application IDs should be unique for all applications participating in a given exercise from a given site. For example, the Application ID should be unique for all simulations sharing the same Exercise ID and Site ID. Valid Application IDs range from 0 to 65535.
Entity ID The Entity ID of the user entity. Valid Entity IDs range from 0 to 65535.
Force The Force ID of the user entity. Valid Force IDs range from 0 to 255.
Marking The Marking of the user entity. The Marking must be 11 characters or less.

Connection

Option Description
Connection Type The desired connection type, either Multicast or Broadcast. Multicast connection types must provide a valid Multicast Address. Broadcast connection types must provide a valid Subnet Mask. The default connection type is Multicast.
IP Address The local IP Address of this machine. The local IP Address is used in conjunction with the subnet mask to create the broadcast address when using the broadcast connection type. The local IP Address is also used to filter incoming packets that may have been sent from this machine.
Multicast Address The Multicast Address is only used by the Multicast connection type. The valid Multicast Address range is 224.0.0.1 to 239.255.255.255.
Subnet Mask The Subnet Mask to be used in conjunction with the machine's IP Address to create the final broadcast address. The default value of the Subnet Mask is 255.255.255.0 (class C network). The Subnet Mask should be within the range 0.0.0.0 to 255.255.255.254. For universal broadcast mode, a Subnet Mask of 0.0.0.0 should be entered. This value is only valid for Broadcast connection types.
Port The Port used by both Multicast and Broadcast connection types. Valid Port ranges are from 1024 to 65535. The default value is 3000.
Time to Live The packet Time to Live value. This value represents the number of routers that a packet is allowed to cross. The default value is 64 and the maximum value is 255.

Timing

Option Description
Heartbeat The maximum time in seconds that an entity will wait between heartbeats. Simulation objects will automatically heartbeat when their current location or dead reckoning values exceed that of the DIS standard.
MaxHeartbeatFrequency The maximum frequency that an entity will heartbeat in Hertz. For example, a value of 60 Hz means that an entity will heartbeat no more than 60 times per second.
Timeout The maximum duration in seconds that remote simulation objects must heartbeat. If this duration is exceeded, the object will be removed from the simulation.
Relative Timestamp Specifies that PDU's will be sent with a relative timestamp versus an absolute timestamp.

Options

Option Description
Exercise Region Top-Left The latitude and longitude of the top-left corner of the exercise region in degrees. Remote entities reporting outside of the exercise region will not be processed. To disable the exercise region, a value of zero should be entered for the latitude and longitude of both the top-left and bottom-right corners.
Exercise Region Bottom-Right The latitude and longitude of the bottom-right corner of the exercise region in degrees. Remote entities reporting outside of the exercise region will not be processed. To disable the exercise region, a value of zero should be entered for the latitude and longitude of both the top-left and bottom-right corners.
Broadcast Nav Aids Set to true to enable the broadcasting of navigation aids such as VOR, DME, TACAN, and NDB.
Disable Articulated Parts Set to true to disable the serialization and deserialization of articulated parts.
Disable Entity Appearance Set to true to disable the serialization and deserialization of entity appearances.
Disable Dead Reckoning Set to true to disable the dead reckoning of remote entities.
Pull To Ground Set to true to force ground and surface based platforms and lifeforms onto the terrain or water.

Radios

Option Description
Intercom Channel The channel number (frequency) of the intercom. Valid values range from 1 to 100,000. Only intercom transmissions on the same channel will be heard.
Intercom Priority The priority associated with the intercom transmission. A value of 0 represents exempt meaning the transmission will always be heard. Valid values are within the range 1 to 255 with 1 being the highest priority and 255 being the lower priority. Intercoms with higher priorities will be heard over intercoms with lower priorities when transmitting at the same time. The intercom with the lower priority in this case will be muted.
Supported Audio Formats
  • 16-bit Linear PCM 2's complement, Big Endian
  • 16-bit Linear PCM 2's complement, Little Endian

  • Only a 48 kHz sampling rate is supported for all supported audio formats

Emissions

Emissions can be configured on a per object basis or in a fallback manner based on the use of wildcards in the EntityTypeString.

Emissions XML Element

Option Description
ElectromagneticEmission This set represents an electromagnetic emission definition for a given EntityType which is composed of one or more ElectromagneticEmissionSystem.


ElectromagneticEmission XML Element

Property Description
EmissionName Text based friendly name of the emission.
EntityTypeString A period delimited string representing the entity's kind, domain, country, category, subcategory, specific, and extra. See the Entity Type String for more information.
ElectromagneticEmissionSystem This set represents a single electromagnetic emission system which is composed of one or more EmitterBeam.


ElectromagneticEmissionSystem XML Element

Property Description
EmissionSystemName Text based friendly name of the emission system.
EmitterFunction An integer value representing the emitter function.
EmitterNumber The unique emitter identification number for a specific emitter. Valid values are within the range 1 to 254 inclusively.
EmitterName An integer value representing the emitter name.
EmitterBeam This set represents a single emitter beam.


EmitterBeam XML Element

Property Description
EmitterBeamName Text based friendly name for the emitter beam.
BeamNumber The unique beam identification number for a specific beam. Valid values are within the range 1 to 254 inclusively.
BeamParameter The beam parameter used in conjunction with the emitter name for database look-ups.
Frequency The average center frequency of the beam emission in Hertz.
FrequencyRange The difference between the upper and lower limits of the center frequency.
EffectiveRadiatedPower The average effective radiated power for the emission in dBm.
PulseRepetitionFrequency The average pulse repetition frequency of the emission in Hertz.
PulseWidth The average pulse with of the emission in micro-seconds.
AzimuthCenter The center azimuth of the beam in degrees relative to the emitter.
AzimuthSweep The half-angle sweep of the azimuth in degrees relative to the center azimuth.
ElevationCenter The center elevation of the beam in degrees relative to the emitter.
ElevationSweep The half-angle sweep of the elevation in degrees relative to the center elevation.
SweepSync The semi-open range from 0.0 to 100.0 representing the percentage of the pattern scanned from its origin.
BeamFunction An integer value representing the beam function.
IsHighDensityTrack True if all targets in the scan pattern are to be considered tracked or jammed.
JammingMode The jamming mode sequence for the given emitter in string representation. For example, 1.2.3.4


Emissions XML Configuration Schema

An example Emissions section is shown below.


Note: This is not a complete and valid file. This an example of the Emissions section of the DISConfiguration.xml file located in the %APPDATA%\Lockheed Martin\Prepar3D v4 directory and can also be configured via the DIS user interface.
<Emissions>
    <ElectromagneticEmission>
        <EmissionName>F-22 Raptor - 525th Fighter Squadron</EmissionName>
        <EntityTypeString>1.2.225.1.6.1.0</EntityTypeString>
        <ElectromagneticEmissionSystem>
            <EmissionSystemName>Radar</EmissionSystemName>
            <EmitterFunction>1</EmitterFunction>
            <EmitterNumber>1</EmitterNumber>
            <EmitterName>1945</EmitterName>
            <EmitterBeam>
                <EmitterBeamName>Main Beam</EmitterBeamName>
                <BeamNumber>1</BeamNumber>
                <BeamParameter>1</BeamParameter>
                <Frequency>50000000.000000</Frequency>
                <FrequencyRange>1000000.000000</FrequencyRange>
                <EffectiveRadiatedPower>1000.000000</EffectiveRadiatedPower>
                <PulseRepetitionFrequency>60.000000</PulseRepetitionFrequency>
                <PulseWidth>500.000000</PulseWidth>
                <AzimuthCenter>0.000000</AzimuthCenter>
                <AzimuthSweep>30.000000</AzimuthSweep>
                <ElevationCenter>0.000000</ElevationCenter>
                <ElevationSweep>30.000000</ElevationSweep>
                <SweepSync>0.000000</SweepSync>
                <BeamFunction>5</BeamFunction>
                <IsHighDensityTrack>False</IsHighDensityTrack>
                <JammingMode>3.25.10.5</JammingMode>
            </EmitterBeam>
        </ElectromagneticEmissionSystem>
    </ElectromagneticEmission>
</Emissions>
Note: Emission PDUs are issued every five seconds and only if the owning entity is not in the destroyed damage state. Emissions are not currently able to be activated or deactivated by the user once the session has started.

Munitions

Munitions can be configured on a per object basis or in a fallback manner based on the use of wildcards in the EntityTypeString. Munition definitions are set based and support multiple cardinality for some properties. Below is a description of each entry available in the user interface.


Munitions XML Element

Option Description
MunitionEffectTimeOut The time in seconds before infinite lifetime munition effects will be removed from the simulation. A value of 0 can be used to prevent munition effects from timing out.
MunitionDefinition A MunitionDefinition is used to configure settings for a given munition type (i.e. particle effects).

MunitionDefinition XML Element

Property Description
MunitionName Text based friendly name of the munition.
EntityTypeString A period delimited string representing the entity's kind, domain, country, category, subcategory, specific, and extra. See the Entity Type String for more information.
FireEffectList The FireEffectList is used to configure the list of particle effects to be created at the time this munition type is fired.
DetonationEffects The DetonationEffects section is used configure how particle effects should be created at the time this munition type is detonated.

FireEffectList XML Element

Property Description
EffectName The file name of the particle effect (without the extension). Multiple effect names can be associated with a single definition.

DetonationEffects XML Element

Property Description
DefaultDetonationEffectList The DefaultDetonationEffectList is used to configure the default list of particle effects to be created for all detonation result types. The DefaultDetonationEffectList does not override a detonation type of NONE. The DefaultDetonationEffectList can be overridden by creating additional DetonationDefinitions.
DetonationDefinition The DetonationDefinition entry is used to bind a list of particle effects to a list of detonation results. Multiple particle effects can be bound to multiple detonation results using a single DetonationDefinition. For example, one could bind a list of water based particle effects to a list of water based detonation results.

DefaultDetonationEffectList XML Element

Property Description
EffectName The file name of the particle effect (without the extension). Multiple effect names can be associated with a single definition.

DetonationDefinition XML Element

Property Description
DetonationName Text based friendly name of the detonation.
DetonationResults The DetonationResults list is used to configure the list of detonation results associated with this DetonationDefinition.
DetonationEffectList The DetonationEffectList is used to configure the list of particle effects to be created with this DetonationDefinition.

DetonationResults XML Element

Property Description
DetonationResult

The detonation result type of the munition. Multiple detonation result types can be associated with a single detonation definition.


Values should be one of the following:
  • Other
  • Entity Impact
  • Entity Proximate Detonation
  • Ground Impact
  • Ground Proximate Detonation
  • Detonation
  • None or No Detonation
  • HE Hit Small
  • HE Hit Medium
  • HE Hit Large
  • Armor Piercing Hit
  • Dirt Blast Small
  • Dirt Blast Medium
  • Dirt Blast Large
  • Water Blast Small
  • Water Blast Medium
  • Water Blast Large
  • Air Hit
  • Building Hit Small
  • Building Hit Medium
  • Building Hit Large
  • Mine Clearing Line Charge
  • Environment Object Impact
  • Environment Object Proximate Detonation
  • Water Impact
  • Air Burst
  • Kill with Fragment Type 1
  • Kill with Fragment Type 2
  • Kill with Fragment Type 3
  • Kill with Fragment Type 1 after Fly out Failure
  • Kill with Fragment Type 2 after Fly out Failure
  • Miss Due to Fly out Failure
  • Miss Due to End Game Failure
  • Miss Due to Fly out and End Game Failure

DetonationEffectList XML Element

Property Description
EffectName The file name of the particle effect (without the extension). Multiple effect names can be associated with a single definition.

Fire and Detonation Effects

When configuring fire and detonation effects, multiple effects are able to be chained together. When configuring detonation effects, definitions are able to be bound to multiple detonation results. A default detonation effect list can be provided as well, which will be used for all undefined detonation results except for detonation result type NONE. To override a detonation result of type NONE, a detonation definition must be created for the NONE type.


Munitions XML Configuration Schema

Below is an example Munitions set.


Note: This is not a complete and valid file. This an example of the Munitions section of the DISConfiguration.xml file located in the %APPDATA%\Lockheed Martin\Prepar3D v4 directory and can also be configured via the DIS user interface.

<Munitions>
    <MunitionEffectTimeOut>300</MunitionEffectTimeOut>
    <MunitionDefinition>
        <MunitionName>AIM-9</MunitionName>
        <EntityTypeString>2.1.225.1.1</EntityTypeString>
        <DetonationEffects>
            <DefaultDetonationEffectList>
                <EffectName>fx_explosionDestroyLandMedium</EffectName>
            </DefaultDetonationEffectList>
            <DetonationDefinition>
                <DetonationName>Building Hit</DetonationName>
                <DetonationResults>
                    <DetonationResult>Building Hit Small</DetonationResult>
                    <DetonationResult>Building Hit Medium</DetonationResult>
                    <DetonationResult>Building Hit Large</DetonationResult>
                </DetonationResults>
                <DetonationEffectList>
                    <EffectName>fx_explosionDestroyBuildingMedium</EffectName>
                </DetonationEffectList>
            </DetonationDefinition>
            <DetonationDefinition>
                <DetonationName>Dirt Spray Medium</DetonationName>
                <DetonationEffectList>
                    <EffectName>fx_dirtspray_m</EffectName>
                </DetonationEffectList>
                <DetonationResults>
                    <DetonationResult>Dirt Blast Medium</DetonationResult>
                    <DetonationResult>Ground Impact</DetonationResult>
                    <DetonationResult>Air Burst</DetonationResult>
                    <DetonationResult>Air Hit</DetonationResult>
                    <DetonationResult>Armor Piercing Hit</DetonationResult>
                </DetonationResults>
            </DetonationDefinition>
            <DetonationDefinition>
                <DetonationName>Dirt Spray Large</DetonationName>
                <DetonationEffectList>
                    <EffectName>fx_dirtspray_l</EffectName>
                </DetonationEffectList>
                <DetonationResults>
                    <DetonationResult>Dirt Blast Large</DetonationResult>
                </DetonationResults>
            </DetonationDefinition>
            <DetonationDefinition>
                <DetonationName>Entity</DetonationName>
                <DetonationEffectList>
                    <EffectName>fx_explosionDestroyVehicleMedium</EffectName>
                </DetonationEffectList>
                <DetonationResults>
                    <DetonationResult>Entity Impact</DetonationResult>
                    <DetonationResult>Entity Proximate Detonation</DetonationResult>
                </DetonationResults>
            </DetonationDefinition>
            <DetonationDefinition>
                <DetonationName>Water Impact</DetonationName>
                <DetonationEffectList>
                    <EffectName>fx_wtrspray_l</EffectName>
                </DetonationEffectList>
                <DetonationResults>
                    <DetonationResult>Water Impact</DetonationResult>
                </DetonationResults>
            </DetonationDefinition>
            <DetonationDefinition>
                <DetonationName>Water Blast</DetonationName>
                <DetonationEffectList>
                    <EffectName>fx_explosionDestroyWaterMedium</EffectName>
                </DetonationEffectList>
                <DetonationResults>
                    <DetonationResult>Water Blast Small</DetonationResult>
                    <DetonationResult>Water Blast Medium</DetonationResult>
                    <DetonationResult>Water Blast Large</DetonationResult>
                </DetonationResults>
            </DetonationDefinition>
        </DetonationEffects>
    </MunitionDefinition>
</Munitions>

Entity Type Configuration

Entity Type XML File

The DISEntityTypes.xml file is used to map SimObject container titles to DIS entity types. The file can be located within the %PROGRAMDATA%\Lockheed Martin\Prepar3D v4 directory after Prepar3D has been launched at least once. Most default included SimObjects have already been mapped to an appropriate DIS entity type where possible, however users are able to expand the included list. Multiple EntityType entries can be present. Each EntityType entry will be used as a two-way map for both the sending and receiving of EntityState PDU's. Entity type strings can also be assigned via the Aircraft Configuration Files and Simulation Object Configuration Files as well as the Gun System Configuration File.


Example DISEntityTypes.xml file:

<?xml version="1.0" encoding="UTF-8"?>

<SimBase.Document Type="DIS Entity Types" version="3,1" id="DISEntityTypes">
    <Descr>DIS Entity Type Map File</Descr>
    <Filename>DISEntityTypes.xml</Filename>
    <DIS.EntityTypes>
        <EntityType>
            <EntityTypeString>1.2.225.85.11.0.0</EntityTypeString>
            <ContainerTitle>Mooney Bravo</ContainerTitle>
        </EntityType>
    </DIS.EntityTypes>
</SimBase.Document>

Entity Type String

The entity type string is a period delimited numerical string used to define the type of a given entity. Each integer represents properties of the entity type in the following order: Kind, Domain, Country, Category, Subcategory, Specific, and Extra. Asterisks (*) can be used as wildcards for each of the entity type properties. If an entity type property is not explicitly set it will be considered a wildcard. For example, an entity type string with all digits explicitly defined suchas 1.2.225.85.11.0.0 would only be matched to other exact types. On the other hand, a wildcard based entity type string with such as 1.2 or 1.2.*.*.*.*.* would be matched to all aircraft based platforms.


Example Entity Type Strings:
1.2.225.85.11
1.2.225.85.11.*.*
1.2.*.85.11
1.2.225.85.11.0.0
    // Implicit Wildcards
    // Explicit Wildcards (same as above)
    // Explicit Inner and Implicit Outer Wildcards
    // Explicit definition (7 digits defined)


Entity Appearances Configuration

Entity Appearances XML File

The DISEntityAppearances.xml file is used to map simulation variables and registered properties to DIS entity appearances. The default file can be located within the %PROGRAMDATA%\Lockheed Martin\Prepar3D v4 directory after Prepar3D has been launched at least once. The default file contains appearance definitions for native Airplane, Helicopter, GroundVehicle, Boat, and Submersible simulations. In addition to the default DISEntityAppearances.xml file, a Custom Entity Appearances XML File can be assigned on a per-SimObject basis.

<?xml version="1.0" encoding="UTF-8"?>

<SimBase.Document Type="DIS Entity Appearances" version="3,1" id="DISEntityAppearances">
    <Descr>DIS Entity Appearances File</Descr>
    <Filename>DISEntityAppearances.xml</Filename>
    <DIS.EntityAppearanceDefinitions>
        <EntityAppearanceDefinition Name="Native Airplane" DefinitionGuid="{3389C282-752D-49C8-B6C1-B60D357B8DC7}" >
            <Appearance PropertyGet="LIGHT NAV" PropertySet="LIGHT NAV" AppearanceType="NavigationLightsOn" />
            <Appearance PropertyGet="LIGHT LANDING" AppearanceType="Custom" AppearanceMask="0x00001000" />
            ...
        </EntityAppearanceDefinition>
    </DIS.EntityAppearanceDefinitions>
</SimBase.Document>

EntityAppearanceDefinition XML Element

Property Description Required
Name

The friendly name of the EntityAppearanceDefinition.

No
DefinitionGuid

The DefinitionGUID is used to look up EntityAppearanceDefinition sets. This GUID should be unique for each EntityAppearanceDefinition. See also Custom Entity Appearances XML File.

Yes

Appearance XML Element

Property Description Required
PropertyGet

The property or simulation variable to be used to retrieve the Appearance value. This property will be used by local DIS entities when a packet is sent.

Yes
PropertySet

The property or simulation variable to be used to apply the Appearance value. This property will be used by remote DIS entities when a packet is received. If this value is not present, the PropertyGet value will be used instead.

No
AppearanceType

The Appearance type. These values will vary based on the entity's Kind and Domain. An AppearanceType of Custom can also be used in conjunction with an AppearanceMask value to define custom appearance bit values.


Values should be one of the following depending on the entity Kind and Domain:
  • Platform-Land
    • PaintScheme
    • MobilityKilled
    • FirePowerKilled
    • Damage
    • IsSmokeEmanating
    • IsEngineEmittingSmoke
    • TrailingEffect
    • Hatch
    • HeadLightsOn
    • TailLightsOn
    • BrakeLightsOn
    • IsFlaming
    • LauncherOperational
    • CamouflageType
    • ConcealedPosition
    • PowerPlantOn
    • TentExtended
    • RampExtended
    • BlackoutLightsOn
    • BlackoutBrakeLightsOn
    • SpotSearchLightsOn
    • InteriorLightsOn
    • OccupantsSurrendered
    • MaskedCloaked
  • Platform-Air
    • PaintScheme
    • MobilityKilled
    • NVGMode
    • Damage
    • IsSmokeEmanating
    • IsEngineEmittingSmoke
    • TrailingEffect
    • CanopyTroopDoor
    • LandingLightsOn
    • NavigationLightsOn
    • AntiCollisionLightsOn
    • IsFlaming
    • AfterburnerOn
    • LowerAntiCollisionLightOn
    • UpperAntiCollisionLightOn
    • AntiCollisionDayNight
    • IsBlinking
    • PowerPlantOn
    • FormationLightsOn
    • LandingGearExtended
    • CargoDoorsOpened
    • NavigationPositionBrightness
    • SpotSearchLightsOn
    • InteriorLightsOn
    • ReverseThrustEngaged
    • WeightOnWheels
  • Platform-Surface
    • PaintScheme
    • MobilityKilled
    • Damage
    • IsSmokeEmanating
    • IsEngineEmittingSmoke
    • TrailingEffect
    • RunningLightsOn
    • IsFlaming
    • PowerPlantOn
    • SpotSearchLightsOn
    • InteriorLightsOn
  • Platform-Subsurface
    • PaintScheme
    • MobilityKilled
    • Damage
    • IsSmokeEmanating
    • IsEngineEmittingSmoke
    • Hatch
    • RunningLightsOn
    • IsFlaming
    • PowerPlantOn
  • Platform-Space
    • PaintScheme
    • MobilityKilled
    • Damage
    • IsSmokeEmanating
    • IsEngineEmittingSmoke
    • IsFlaming
    • PowerPlantOn
  • Munition
    • Damage
    • IsSmokeEmanating
    • IsEngineEmittingSmoke
    • TrailingEffect
    • IsFlaming
    • LaunchFlashPresent
    • PowerPlantOn
    • CoverShroudStatus
    • MaskedCloaked
  • Expendable
    • Damage
    • IsSmokeEmanating
    • ParachuteStatus
    • FlareSmokeColor
    • IsFlaming
    • LaunchFlashPresent
    • FlareSmokeStatus
    • PowerPlantOn
    • SpotChaffStatus
    • MaskedCloaked
  • LifeForm
    • PaintScheme
    • Health
    • ComplianceStatus
    • SignalSmokeInUse
    • FlashLightsOn
    • SignalMirrorInUse
    • FlareSmokeStatus
    • IRStrobeOn
    • IRIlluminatorOn
    • LifeFormPosture
    • MountedHoistedStatus
    • WeaponImplement1
    • WeaponImplement2
    • CamouflageType
    • ConcealedStationary
    • ConcealedMovement
Yes
AppearanceMask

The AppearanceMask can be used in conjunction with an AppearanceType value of Custom to define custom appearance bit values. The AppearanceMask value should be in hexadecimal format and will represent which bits of the appearance field the given property or simulation variable value will be stored in. The hexadecimal value representation is least significant value on the right to the most significant value on the left.

Examples (least significant bit is 0 and most significant bit is 31):
AppearanceMask="0x00000001" represents bit 0
AppearanceMask="0x000000F0" represents bits 5 through 8
AppearanceMask="0x0000C000" represents bits 14 through 15
AppearanceMask="0x80000000" represents bit 31

Yes/No

Custom Entity Appearances XML File

In addition to the default DISEntityAppearances.xml, a vehicle specific DISEntityAppearances.xml file can be created on a per-SimObject basis. This file must be saved in the SimObject's folder (in the same folder as the aircraft.cfg or sim.cfg file). The GUID that is defined for the EntityAppearanceDefinition, in the XML file, must be set in the configuration file under the [GENERAL] section in a DISEntityAppearanceDefinitionGuid property (see example below). It must be a unique GUID for the vehicle (see Generating GUIDs).

An example DISEntityAppearances.xml:

<?xml version="1.0" encoding="UTF-8"?>

<SimBase.Document Type="DIS Entity Appearances" version="3,1" id="DISEntityAppearances">
    <Descr>DIS Entity Appearances File</Descr>
    <Filename>DISEntityAppearances.xml</Filename>
    <DIS.EntityAppearanceDefinitions>
        <EntityAppearanceDefinition Name="Custom Appearance" DefinitionGuid="{EA75C6F4-FD7B-47F0-90E8-4FD771CD8AC7}" >
            <Appearance PropertyGet="LIGHT NAV" PropertySet="LIGHT NAV" AppearanceType="NavigationLightsOn" />
            <Appearance PropertyGet="LIGHT LANDING" AppearanceType="Custom" AppearanceMask="0x00001000" />
            ...
        </EntityAppearanceDefinition>
    </DIS.EntityAppearanceDefinitions>
</SimBase.Document>

Inside aircraft.cfg or sim.cfg:

...
[General]
...
DISEntityAppearanceDefinitionGuid={EA75C6F4-FD7B-47F0-90E8-4FD771CD8AC7}
...


Articulated Part Configuration

Articulated Parts XML File

The DISArticulatedParts.xml file is used to map simulation variables and registered properties to DIS articulated part values and units. The default file can be located within the %PROGRAMDATA%\Lockheed Martin\Prepar3D v4 directory after Prepar3D has been launched at least once. The default file contains articulated part definitions for native Airplane, Helicopter, GroundVehicle, and Boat simulations. In addition to the default DISArticulatedParts.xml file, a Custom Articulated Part XML File can be assigned on a per-SimObject basis.

<?xml version="1.0" encoding="UTF-8"?>

<SimBase.Document Type="DIS Articulated Parts" version="3,1" id="DISArticulatedParts">
    <Descr>DIS Articulated Parts File</Descr>
    <Filename>DISArticulatedParts.xml</Filename>
    <DIS.ArticulatedPartDefinitions>
        <ArticulatedPartDefinition Name="Native Airplane" DefinitionGuid="{3389C282-752D-49C8-B6C1-B60D357B8DC7}">
            <ArticulatedPart PropertyGet="RUDDER DEFLECTION" Units="Degrees" Class="Rudder" Metric="Azimuth" Offset="0.0" Scale="1.0" />
            ...
        </ArticulatedPartDefinition>
    </DIS.ArticulatedPartDefinitions>
</SimBase.Document>

ArticulatedPartDefinition XML Element

Property Description Required
Name

The friendly name of the ArticulatedPartDefinition.

No
DefinitionGuid

The DefinitionGUID is used to look up ArticulatedPartDefinition sets. This GUID should be unique for each ArticulatedPartDefinition. If a definition is not found, no articulated part data will be sent or processed by that entity. See also Custom Articulated Part XML File.

Yes

ArticulatedPart XML Element

Property Description Required
PropertyGet

The property or simulation variable to be used to retrieve the ArticulatedPart value. This property will be used by local DIS entities when a packet is sent.

Yes
PropertySet

The property or simulation variable to be used to apply the ArticulatedPart value. This property will be used by remote DIS entities when a packet is received. If this value is not present, the PropertyGet value will be used instead.

No
Units

The units to be used when getting or setting the PropertyGet and PropertySet variables.

Yes
Class

The ArticulatedPart class. If a value of Custom is selected, the CustomClass value must also be present.


Values should be one of the following:
  • Custom
  • Rudder
  • LeftFlap
  • RightFlap
  • LeftAileron
  • RightAileron
  • HelicopterMainRotor
  • HelicopterTailRotor
  • Propeller1
  • Propeller2
  • Propeller3
  • Propeller4
  • LeftStabilator
  • RightStabilator
  • LeftRuddervator
  • RightRuddervator
  • LeftLeadingEdgeFlap
  • RightLeadingEdgeFlap
  • LeftElevator
  • RightElevator
  • LandingGear
  • TailHook
  • SpeedBrake
  • LandingGearNose
  • LandingGearLeftMain
  • LandingGearRightMain
  • DeckElevator1
  • DeckElevator2
  • Catapult1
  • Catapult2
  • JetBlastDeflector1
  • JetBlastDeflector2
  • WingRotorFold
Yes
CustomClass

This value will represent the ArticulatedPart class if a Class enumeration value of Custom is selected. This value is required if and only if Custom Class enumeration is selected.

Yes/No
Metric

The ArticulatedPart metric. If a value of Custom is selected, the CustomMetric value must also be present.


Values should be one of the following:
  • Custom
  • Position
  • PositionRate
  • Extension
  • ExtensionRate
  • TranslationX
  • TranslationRateX
  • TranslationY
  • TranslationRateY
  • TranslationZ
  • TranslationRateZ
  • Azimuth
  • AzimuthRate
  • Elevation
  • ElevationRate
  • Rotation
  • RotationRate
Yes
CustomMetric

This value will represent the ArticulatedPart metric if a Metric enumeration value of Custom is selected. This value is required if and only if Custom Metric enumeration is selected.

Yes/No
Offset

This value will be added to the ArticulatedPart property value before it is sent or subtracted from the ArticulatedPart value after it is received. This value will be added before the scale value is multiplied if being sent or subtracted after the scale value is divided if being received. The default value is 0.0.

If being sent, the formula is:

SendValue = (Property + Offset) * Scale

If being received, the formula is:

Property = (ReceivedValue / Scale) - Offset

No
Scale

This value will be multiplied against the ArticulatedPart property value before it is sent or divided from the ArticulatedPart value after it is received. This value will be multiplied after the offset value is added if being sent or subtracted after the scale value is divided if being received. The default value is 1.0.

If being sent, the formula is:

SendValue = (Property + Offset) * Scale

If being received, the formula is:

Property = (ReceivedValue / Scale) - Offset

No

Custom Articulated Parts XML File

In addition to the default DISArticulatedParts.xml, a vehicle specific DISArticulatedParts.xml file can be created on a per-SimObject basis. This file must be saved in the SimObject's folder (in the same folder as the aircraft.cfg or sim.cfg file). The GUID that is defined for the ArticulatedPartDefinition, in the XML file, must be set in the configuration file under the [GENERAL] section in a DISArticulatedPartDefinitionGuid property (see example below). It must be a unique GUID for the vehicle (see Generating GUIDs).

An example DISArticulatedParts.xml:

<?xml version="1.0" encoding="UTF-8"?>

<SimBase.Document Type="DIS Articulated Parts" version="3,1" id="DISArticulatedParts">
    <Descr>DIS Articulated Parts File</Descr>
    <Filename>DISArticulatedParts.xml</Filename>
    <DIS.ArticulatedPartDefinitions>
        <ArticulatedPartDefinition Name="Custom XML File" DefinitionGuid="{1EFB1100-8901-4EBE-86A0-63344D55375A}">
            <ArticulatedPart PropertyGet="RUDDER DEFLECTION" Units="Degrees" Class="Rudder" Metric="Azimuth" Offset="0.0" Scale="1.0" />
            ...
        </ArticulatedPartDefinition>
    </DIS.ArticulatedPartDefinitions>
</SimBase.Document>

Inside aircraft.cfg or sim.cfg:

...
[General]
...
DISArticulatedPartDefinitionGuid={1EFB1100-8901-4EBE-86A0-63344D55375A}
...


Feature Support

The following features are currently supported: