Revit API取得全部元素_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Revit API取得全部元素

Revit API取得全部元素

 2013/11/4 13:35:36  大气象  博客园  我要评论(0)
  • 摘要://取得全部元素[Transaction(TransactionMode.Manual)][Regeneration(RegenerationOption.Manual)]publicclasscmdGetAll:IExternalCommand{publicResultExecute(ExternalCommandDatacmdData,refstringmsg,ElementSetelements){UIDocumentuiDoc=cmdData.Application
  • 标签:API

//取得全部元素
[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
发表评论
用户名: 匿名