这个过滤器可以通过类型来过滤构件,
比如一个Rvt里可能有很多种窗,我
想知道其中为0406 x 0610mm的窗
有多少个
private void FilterWindow()
{
//先找到要过滤窗的类型(FamilySymbol)
FilteredElementCollector symbolFilter = new FilteredElementCollector(doc);
//过滤到所有窗类型
symbolFilter.OfCategory(BuiltInCategory.OST_Windows).OfClass(typeof(FamilySymbol));
FamilySymbol mySymbol = null;
foreach (Element elem in symbolFilter)
{
if (elem.Name == "0406 x 0610mm")
{
mySymbol = elem as FamilySymbol;//通过名字找到要过滤的窗类型
break;
}
}
if (mySymbol != null)
{
//用找到的类型创建一个过滤条件
FamilyInstanceFilter windowFilter = new FamilyInstanceFilter(doc, mySymbol.Id);
FilteredElementCollector allWin = new FilteredElementCollector(doc);
allWin.WherePasses(windowFilter);//过滤
MessageBox.Show(allWin.Count().ToString());
}
}
博主会经常更新一些技术文章,请大家多多关注,多多交流
更多技术交流,请加qq群480950299