We have done a few experiments recently and verified that the two simpler signatures of the Document.LoadFamilySymbol Revit .NET method work just like a charm.
The third complex but also powerful signature of the method surely also works. If we do choose to use this signature so as to use its much power, the concern will become how to implement the IFamilyLoadOptions interface nicely, professionaly, and still meeting our need.
public bool LoadFamilySymbol(
string filename,
string name,
IFamilyLoadOptions familyLoadOptions,
out FamilySymbol symbol
)
Once again, if you only care to load a few family symbols from a family document rather than intervene the loading process, please use the other two simpler signatures of the Document.LoadFamilySymbol as demonstrated in a few earlier posts. The guy who declared solemnly that they do not work is totally wrong!
In terms of implementing the IFamilyLoadOptions interface, a few posts have already addressed it on this blog. Here are a few.
IFamilyLoadOptions of Revit API – A Sample Implementation
Revit API & VB.NET - IFamilyLoadOptions Implementation with VB.NET
Revit .NET 2013: the IFamilyLoadOptions Interface
Much better, RevitNetAddinWizard (Revit .NET Addin Wizard) provides a nice coder to help generate most of the IFamilyLoadOptions implementation in no time. Details about the coder, Family Optional Loader, have been discussed in another post:
IFamilyLoadOptions of Revit API – Family Optional Loader
Revit Addin Wizard (RevitAddinWizard) provides various wizards, coders and widgets to help program Revit addins. It can be downloaded from the Download link at the bottom of the blog index page.