Dictionary<string, Family> GetFamilies( Document doc )
{
Dictionary<string, Family> families
= new Dictionary<string, Family>();
// collect all family instances and determine their families:
FilteredElementCollector instances
= new FilteredElementCollector( doc );
instances.OfClass( typeof( FamilyInstance ) );
foreach ( FamilyInstance i in instances )
{
Family family = i.Symbol.Family;
if ( !families.ContainsKey( family.Name ) )
{
families[family.Name] = family;
}
}
// collect all annotation symbols and determine their families:
FilteredElementCollector annotations
= new FilteredElementCollector( doc );
annotations.OfClass( typeof( AnnotationSymbol ) );
foreach ( AnnotationSymbol a in annotations )
{
//Family family = a.AsFamilyInstance.Symbol.Family; // 2011
Family family = a.Symbol.Family; // 2012
if ( !families.ContainsKey( family.Name ) )
{
families[family.Name] = family;
}
}
return families;
}