FO4 Armors and Armor Addons - BadDogSkyrim/PyNifly GitHub Wiki
Courtesy of Blaze69:
The index system is meant for you to be able to have different ArmorAddons in the same base ARMO record and for the same slots so you can pick which one(s) show(s) up using OMODs.
For example, most vanilla armors have 3 "variants": Light, Medium and Heavy. You can have the same base ARMO have access to all three AAs (instead of separate Light/Medium/Heavy item entries), and pick which one must show up with an OMOD that modifies the "iAddonIndex" property. In this case, you'd have the Light AA set to index 1, Medium AA to 2 and Heavy AA to 3 and then the Light OMOD sets the iAddonIndex value to 1, Medium OMOD to 2 and Heavy OMOD to 3 (not the real values used in the vanilla items but same basic principles). You can even swap OMODs on the fly at the Armor Workbench and see the actual mesh get swapped for the new one if you use a mod like AWKCR or Crafting Framework that enables those options.
Any AA set to Index 0 will always be visible no matter what (only for the races it's enabled for, obviously), while any nonzero values will require either adding an OMOD that sets the corresponding index or manually adjusting the "index" data field in the ARMO itself. That's why items that aren't meant to use the AA-swapping system have all their AAs set to 0 instead.
As for actually sorting the AAs so the beast ones end up above the human ones, yes, it can only be done in xEdit. Sorting AAs isn't meant to be a thing in vanilla so the CK just does whatever the fuck it wants and places them wherever, you have to clean up the mess in xEdit afterwards (or just do all the work in xEdit in the first place and sort them properly as you add them).