BuildingCoder.CmdImportsInFamilies.GetFamilies C# (CSharp) Метод

GetFamilies() приватный Метод

Retrieve all families used by the family instances and annotation symbols in the given document. Return a dictionary mapping the family name to the corresponding family object.
private GetFamilies ( Document doc ) : Family>.Dictionary
doc Document
Результат Family>.Dictionary
        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;
        }