The SimConnect_RequestFacilitesList function is used to request a list of all the facilities of a given type currently in the world, or within a radius of the aircraft depending on the requested type.


HRESULT SimConnect_RequestFacilitesList(
    HANDLE  hSimConnect,


Parameter Description Type
hSimConnect Handle to a SimConnect object. Integer
type Specifies one member of the SIMCONNECT_FACILITY_LIST_TYPE enumeration type. Enum
RequestID Specifies the client defined request ID. This will be returned along with the data. Integer


Return Values

The function returns an HRESULT. Possible values include, but are not limited to, those in the following table.

Return value Description
S_OK The function succeeded.
E_FAIL The function failed.



The simulation keeps a facilities cache of all the airports within the world, and all the waypoints, NDB and VOR stations within a certain radius of the aircraft. This radius varies depending on where the aircraft is in the world, but is at least large enough to encompass the whole of the reality bubble for waypoints, and can be over 200 miles for VOR and NDB stations. As the user aircraft moves, waypoints, NDB and VOR stations will be added to and removed from the cache, however no changes will be made to airports as they are all already in the list. In the interests pf performance, hysteresis is built into the system.


To receive event notifications when a facility is added, use the SimConnect_SubscribeToFacilities function. When this function is first called, a full list from the world will be sent, thereafter just the additions will be transmitted. To terminate these notifications use the SimConnect_UnsubscribeToFacilities function.


When requesting types of facility information, one function call has to be made for each of the four types of data. The data will be returned in one of the four structures:

The four list structures inherit the data from the SIMCONNECT_RECV_FACILITIES_LIST structure. Given that the list of returned facilities could be large, it may be split across several packets, and each packet must be interpreted separately by the client.


See Also