您的位置:首页 > 其它

Revit API取得全部元素

2013-11-04 12:19 169 查看
//取得全部元素
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class cmdGetAll : IExternalCommand
{
public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)
{
UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
//全部元素
FilteredElementCollector collectorAll = new FilteredElementCollector(uiDoc.Document);
collectorAll.WherePasses(new LogicalOrFilter(new ElementIsElementTypeFilter(false), new ElementIsElementTypeFilter(true)));
TaskDialog.Show("全部", collectorAll.Count().ToString());
//IsElement
FilteredElementCollector collectorIs = new FilteredElementCollector(uiDoc.Document);
collectorIs.WherePasses(new ElementIsElementTypeFilter(true));
TaskDialog.Show("IsElement", collectorIs.Count().ToString());
//IsNotElement
FilteredElementCollector collectorIsNot = new FilteredElementCollector(uiDoc.Document);
collectorIsNot.WherePasses(new ElementIsElementTypeFilter(false));
TaskDialog.Show("IsNotElement", collectorIsNot.Count().ToString());

//数量
int ductAll = 0;
int ductIs = 0;
int ductIsNot = 0;
foreach (Element el in collectorAll)
{
if (el is Duct)
ductAll += 1;
}
foreach (Element el in collectorIs)
{
if (el is Duct)
ductIs += 1;
}
foreach (Element el in collectorIsNot)
{
if (el is Duct)
ductIsNot += 1;
}
TaskDialog.Show("duct", ductAll + "," + ductIs + "," + ductIsNot);

return Result.Succeeded;
}
}url:http://greatverve.cnblogs.com/p/get-all-element.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: