public static void CreateFamilyTreeTest(
Document myDoc)
{
IEnumerable<Element> familiesCollector =
new FilteredElementCollector( myDoc )
.OfClass( typeof( FamilyInstance ) )
.WhereElementIsNotElementType()
.Cast<FamilyInstance>()
// (family, familyInstances):
.GroupBy( fi => fi.Symbol.Family )
.Select( f => f.Key );
var mapCatToFam = new Dictionary<string,
List<Element>>();
var categoryList = new Dictionary<string,
Category>();
foreach( var f in familiesCollector )
{
var catName = f.Category.Name;
if( mapCatToFam.ContainsKey( catName ) )
{
mapCatToFam[catName].Add( f );
}
else
{
mapCatToFam.Add( catName,
new List<Element> { f } );
categoryList.Add( catName,
f.Category );
}
}
}