A Family Type parameter allows you to swap out the family and type used for an element in your family with other nested families of the same kind.
For example you can change the handle in a door family by changing which nested family is used for the handle.
RULES
Each nested family must have identical insertion point, host type (e.g. face or level hosted) and parameters. Parameters must have the same name and do the same thing.
Name nested families so they list together, and clearly describe what they are. Revit lists all nested families in the host file as available so users must be able to find the one they want to use.
Don't overdo it. Each nested family added makes the host family bigger.
The Family Type parameter can not be used for profile families used in sweeps.
METHOD
Load the families you want to use in to the host family (e.g. all the different handle families you want to use in to a door family).
Place one of the families (if there are multiple instances place them all - e.g. handles to both sides of the door).
Lock to constraints and associate the nested family's parameters with equivalent host parameters (if there are any).
Test all parameters are working as expected.
Select the handles.
In the Option bar open the Label: list.
If the parameter does not exist select <Add parameter...> and create it (put under Model Properties group next to other parameters driving the nested family).
Change the parameter you created to change which nested family is used.
Select the nested family and associate type parameters with equivalent host parameters.
Repeat for each different nested family that may be used.
Save the family.
WARNING
If you create the <Family type...> parameter first (instead of using <Add Parameter...>) make sure you change its value to be one of the families you want to control.
If you don't you will get this message: