过滤是Revit的重要技术。用FilteredElementCollector 类可以实现对所有对象的过滤,这个类功能强大,效率也很高。
可以给他添加过滤条件,从中获取过滤结果。
我曾经录制过一个专题讲解高效对象过滤,请看本博这篇文章:
http://blog.csdn.net/joexiongjin/article/details/6792174
这里具体谈下你需要的代码。
过滤建筑柱子:
FilteredElementCollector collector = new FilteredElementCollector(doc);
collector.OfCategory(BuiltInCategory.OST_Columns).OfClass(TypeOf(FamilyInstance));
IList<Element> columnList = collector.ToElements(); //返回选中的柱子
过滤梁:
FilteredElementCollector collector = new FilteredElementCollector(doc);
collector.OfCategory(BuiltInCategory.OST_StructuralFraming).OfClass(TypeOf(FamilyInstance));
IList<Element> beamList = collector.ToElements(); //返回选中的梁