There are two types of nested family i.e. shared and non-shared:
A shared nested family exists in it's own right in the project document even though it is nested into another family. I believe also this is independent of nesting level.
This mainly means:
- It can be accessed by the method FamilyInstance.GetSubComponentIds likewise the host family can be accessed the other way via FamilyInstance.SuperComponent
- Instance geometry for the nested family is not included in the geometry of the host family
- Type parameters for the nested family can be accessed directly in the project
When a non-shared family is nested it can't be accessed the ways above directly in the project. The instance geometry of the host also contains the geometry of the nested family.
If you can tab into the family from the project then it is shared.
You may need to edit the family in either circumstance depending on the authored behaviour of the family. Items such as colours (materials) often need to be selected from a predefined list. The obvious choice for a family author would have been to add material parameters to the family and change such things in the project.