仅OfCategory()过滤的元素包含系统FamilySymbol
OfClass(typeof(FamilyInstance))过滤出来文档中族实例。
//过滤元素类别
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class cmdGetCate : IExternalCommand
{    
public Result Execute(ExternalCommandData cmdData, 
ref string msg, ElementSet elements)
    {
        UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
        Transaction ts = 
new Transaction(uiDoc.Document, 
"SetFamily");
        ts.Start();
        FilteredElementCollector collector = 
new FilteredElementCollector(uiDoc.Document);
        collector.OfCategory(BuiltInCategory.OST_DuctFitting);
//过滤出来系统包含的Symbol与文档包含的Instance
        //collector.OfClass(typeof(FamilyInstance)).OfCategory(BuiltInCategory.OST_DuctFitting);
        int iSymbol = 
0;        
int iFi = 
0;        
foreach (Element el 
in collector)
        {            
if (el 
is FamilySymbol)
                iSymbol += 
1;            
else if (el 
is FamilyInstance)
                iFi += 
1;
        }
        TaskDialog.Show(
"count", iSymbol + 
"," + iFi);
        ts.Commit();        
return Result.Succeeded;
    }
}url:http://greatverve.cnb
logs.com/p/api-get-symbol-
instance.html