Revit中的Category、Family、FamilySymbol与FamilyInstance
在Revit中除了
Category
这个概念以外,还有Family、
FamilySymbol、FamilyInstance
这三个相关的概念。这里通过一张图来说明我对这四个概念的理解:
又如风管类别里面四者的关系:
风管 - 类别(Category)
圆形风管 - 族(Family)
T形三通 - 族类型(FamilySymbol)
画出来的图元 - 族实例(FamilyInstance)
圆形风管 - 族(Family)
T形三通 - 族类型(FamilySymbol)
画出来的图元 - 族实例(FamilyInstance)
在Revit二次开发中,可以用FilteredElementCollector、OfClass、OfCategory等方法来获取族实例、族类型,如
FilteredElementCollector collector = new FilteredElementCollector(m_document.Document);
//获取门实例
collector.OfCategory(BuiltInCategory.OST_Doors).OfClass(typeof(FamilyInstance));
IList<Element> instancelists = collector.ToElements();
//获取门类型
collector.OfCategory(BuiltInCategory.OST_Doors).OfClass(typeof(FamilySymbol));
IList<Element> symbollists = collector.ToElements();
//获取门族
collector.OfCategory(BuiltInCategory.OST_Doors).OfClass(typeof(Family));
IList<Element> Familylists = collector.ToElements();
同时,在Revit二次开发中,类别、族、族类型和族实例也可以相互获取。
例如,从族实例获取族类型:
FamilyInstance familyInstance = item as FamilyInstance;
FamilySymbol familysymbol=familyInstance.Symbol;
从族类型获取族的方式如下:
Family family=familysymbol.Family;