Using the Revit API, we can determine if a family was created using a Wall, Floor, Face, Ceiling or Roof based template. This is particularly helpful in case of, say, a generic mass family which can be created with any of the specific templates – Wall, Face, Floor, Ceiling, Roof based etc.
The solution is to access the Family Document –> Owner Family –> Host parameter, to get this information. This parameter value is stored as an integer value and the integer values imply the following about the templates (hosting behavior):
Wall based - 1
Floor based - 2
Ceiling based - 3
Roof based - 4
Face based - 5
The families created using line and pattern based templates, however return integer value of 0 and cannot be determined using this method.