I also think it's time to 'update' Lee's parking information in the AFCAD readme with what we have learned after it was written:
The parking assignment process has been slightly tweaked in FSX, but still follows the same process as FS2004.
When an aircraft lands every parking spot on the airport is scanned and values are assigned to each open spot for various catagories. The spot with the highest value is the one to which the aircraft is assigned.
This occurs during the rollout phase of the landing cycle on the runway at about 30 kts. This is apparently when the aircraft moves from the flight phase of the process to the ground phase.
When the aircraft leaves the runway and reaches a hold short node - the parking spot assignment is confirmed with another check to see if the spot is open and no higher value spot is available.
At some airports with multiple runways you will see two or maybe three aircraft which have landed all assigned to the same parking spot. The first one to reach a hold short node leaving the runway gets the spot, the others are assigned to other spots, and in very rare cases may be deleted due to no suitable parking available.
I have not yet been able to identify the trigger event which makes a spot open and available for parking assignment. It appears to be when the aircraft enters the pushback phase of the flight cycle, but might be the contact with ground to request taxi clearance, or the announcement of taxi at uncontrolled airports.
Occasionally, you will see an AI aircraft parking assignment changed at the hold short node to a just opened parking spot.
The cycle runs like this as near as we have been able to determine:
1. Parking Spot Size - this is the only yes/no decision in FS2004 - there might be an additional one or two in FSX. Is there an open parking spot on the airport large enough to hold the aircraft? Yes - the plane will park; No - the plane is deleted.
2. Parking Code - This is a weighted value assigned to a parking spot. In FS2004 only one entry in the atc_parking_codes= line in the aircraft.cfg would be used in this process. Also, though multiple codes can be assigned to a parking spot - the first code has much higher value than a second code. By the fifth position in the list of codes, the parking code value can often be too small to overcome some other values below.
3. Parking Types - This is the atc_parking_types= entry in the aircraft.cfg file matched to the parking spot properties. Though Microsoft puts GATE,RAMP in some aircraft.cfg files, I've never seen multiple codes in that entry actually work. Every test description and AFCAD I've been given, it was other factors making the parking choice.
The atc_parking_types= entries match up as:
GATE = GATE_SMALL / GATE_MEDIUM / GATE_HEAVY - all parking types having equal value.
CARGO = RAMP_CARGO
MIL_CARGO = RAMP_MIL_CARGO
MIL_COMBAT = RAMP_MIL_COMBAT
RAMP = RAMP_GA / RAMP_CARGO / RAMP_GA_SMALL / RAMP_MIL_CARGO / RAMP_GA_MEDIUM / RAMP_MIL_COMBAT / RAMP_GA_LARGE - all parking types having equal value
DOCK = DOCK_GA
** Possible FSX difference - I have seen examples of GATE aircraft not using RAMP_MIL_CARGO spots upon FS session start. i.e. the aircraft are not assigned to those spots even though they are the right size. The aircraft was deleted. But landing aircraft with GATE are assigned to those spots for parking. Need more investingation.
4. Parking Areas - this is a much more critical element than most people realize
atc_parking_codes=GATE will be assigned to "Gate" parking areas first, then "Parking" all other parking codes except Dock will be assigned to "Parking" first and then "Gate"
Priorities
GATE # has a priority over GATE (any letter) #
There does not appear to be any priority of the # of the Gate. i.e. Parking spot Gate 1 does not have a higher value than Gate 2.
Gate A 1 does not have a higher value than Gate B 1 or Gate Z 99.
There is no apparent priority in Parking types for the RAMP aircraft.
A cargo aircraft will be assigned to a Parking # spot over a Gate C # spot as a preference. But if all Cargo spots on the airport are GATE C, this will have no bearing as long as there is a RAMP_CARGO GATE C spot open.
5. Size Difference - A 18M aircraft will be assigned to a 18.0M spot as a priority over a 18.1M spot.
Remember that aircraft are always in whole meters with no decimal places, but parking spots can be in tenths or hundredths of meters.
With AFCAD people could enter parking spot sizes in feet - and this created major issues with their airports. The rounding of AFCAD would display a parking spot with a radius value in feet of 65.55 feet as being a 20.0M parking spot - when it was really 19.98M.
There must have been a hundred threads on the old PAI AFCAD forums about something being wrong with parking/ aircraft over this single issue - because a 20M aircraft is not going to parking in a 19.98M spot no matter how it displays in AFCAD.
When dealing with aircraft.cfg wing_span= values, you must round up to the next whole meter.
When dealing with parking spot sizes in feet, you must not round up and cross a meter barrier.
** Possible FSX difference - there are some reports that a size difference of 5M or greater between the aircraft calculated value and the parking spot size results in the aircraft not being assigned to the spot / deleted. I have not been able to verify that, or determine if other parts of the parking process might influence that if true.
6. Parking List Order - Though last in the list, this is really the primary parking spot determinante for most AI aircraft. The open parking spot with the lowest index value gets the aircraft when several spots have equal value.
What happens is a 18M aircraft lands at EGLL atc_parking_types=GATE atc_parking_codes=BAW
1. Yes there are 34 empty spots 18M or larger on the airport
2. There are 14 open spots with BAW as the first parking code
3. Of these 14 spots - four are RAMP and 10 are GATE type parking spots - those 10 have priority
4. Of these 10 spots - four are GATE A and six are GATE # - those six have priority
5. Of those six spots - four are 18.0M in size, one is 23.0M and one is 36.0M - the four 18.0M spots have priority
6. Of those four spots - the top one on the list - the lowest index value - is the one to which the aircraft is assigned.
The real hard part becomes when the aircraft does not have a clear match in Parking Code - but the same process works.
1. Yes - there are 34 empty spots 18M or larger on the airport
2. There are zero open spots with BAW as the first parking code, there are zero open spots with BAW as the second code, there are zero spots with BAW as the third code, there are zero spots with BAW as the fourth code.
3. Of these 34 spots - 18 are RAMP and 16 are GATE type parking spots - those 16 have priority. All of the GATE spots have a parking code property other than BAW - so all are equal value.
4. Of these 16 spots - four are GATE A, four are GATE B, two are GATE C and six are GATE D - there is no priority
5. Of those 16 spots - eight are 18.0M in size, four are 23.0M and four are 36.0M - the eight 18.0M spots have priority
6. Of those eight spots - the top one on the list - the lowest index value - is the one to which the aircraft is assigned - even though it has a parking code of BMA BMI.
There is some extremely difficult to replicate evidence that a long enough taxi path from the hold short node to the parking spot will give a closer spot a priority over a more distant parking spot when all other factors except parking list order/ index value are equal.
However, the difference in the index value also appears to have a role in this parking assignment. i.e. If the two spots are very close - Index Value 6 and Index Value 8 - spot 8 might get the aircraft. But if the spots are Index Value 6 and Index Value 47 - then spot 6 gets the aircraft.
If you can work out an airport and flight plans to test this - let me know.
Now two final items on airport setup and parking.
1. Overflow parking of each type with no parking codes is critical to success. We recently saw a thread about why a SWA aircraft parks in a cargo spot. The fellow had spend days going over the aircraft and the SWA parking at the airport. The problem was an NWA airbus with a model size too large for it's parking spot. Without overflow parking problem aircraft land in other airline parking - and push those aircraft into other airline spots - what we call a cascade.
2. Airport parking must match the AI flightplans, not the real world. If the real airport has three gates for AFR aircraft, and the flight plans put four AFR aircraft on the airport - the parking will not work.
A very common issue is KBOS. The 'best' AI flight plans put 25 mainline AAL aircraft into KBOS to RON each night, and 16 American Eagle/ American Connection aircraft. Almost no AFCAD I've seen has parking for more than the real world 15 gates for AAL/ AALX. And it is very unusual to see more than five overflow spots. Right off the bat the 'realistic AFCAD' has 26 aircraft with no parking - so they overflow.
In FS2002 traffic files load and place AI aircraft based upon the order of the flight plans in the single traffic file.
That still occurs in FS2004 and FSX, despite the ability to have multiple traffic files.
Each traffic file is read / placed in order which the flight plans are in the source files.
And each traffic file is read and loaded before the next traffic file is loaded - this appears to be ASCII sort order as to which traffic file is read first.
Thus you can overpopulate an airport with AAL aircraft in the DAL and USA parking spots - and have most of the DAL aircraft deleted when their traffic file is read/ loaded. Then when the USA traffic file is read/ loaded - there are no open parkings spots on the airport - and no aircraft are placed there.
"Something's wrong with the US Airlines package - I don't see USA aircraft at KBOX"
No the AFCAD and the AAL flight plans don't match and the USA aircraft are being pushed out of the airport.