FamilyManager API consistency with UI
Regarding consistency between FamilyManager API methods and similar in the UI the below needs to be considered:
Since formulas and default instance parameter values are independent of family type you shouldn’t have to set the current type in order to change these for a family parameter. Currently you have to create a family type to change these values if there isn’t currently a family type in the family. You then can’t remove this type.
In the UI you are able so change parameters (type and instance) if there are no family types defined in the family. The API should be consistent with this by allowing the changing of parameters (type or instance) when there is no type defined i.e. when .CurrentType property is set to nothing.
No possible state of the .CurrentType property should raise an exception when changing parameters i.e. it is either nothing (when there are no types) or it is set to a type (when there are types).
When setting formulas the requirement for an equals sign should be consistent with the UI. Users of such a field in a custom interface would expect to prefix a formula with '=' but to not cause an exception the developer would have to take it out before passing it through to the .SetFormula method. Alternatively .SetFormula method should tolerate both with and without '=' prefix.