The SymbolPart class represents one part in a hierarchy of pieces needed to represent an actual symbol. A symbol may require geometries from its parents, as each piece further down the hierarchy makes each symbol's meaning more specific, or scoped for a particular task. The top-level SymbolPart represents the entire symbology tree. Descending down through the tree, a SymbolPart representing one of the 5 Scheme sections is next, with the lower levels dependent on the Scheme definitions.
The SymbolPart is smart enough to use the hierarchy.properties file that defines the symbol set and create the symbol tree using the appropriate Code classes. Not all Code classes help define the tree, because some aspects of a symbol are flexible, like the Affiliation (enemy, friend, etc). The SymbolPart tree only defines some aspects of the symbol. Other parts of the symbol are dependent on these flexible variations that are provided to the SymbolPart at the time icons are created.