//取得全部元素
[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 = ;
        int ductIs = ;
        int ductIsNot = ;
        foreach (Element el in collectorAll)
        {
            if (el is Duct)
                ductAll += ;
        }
        foreach (Element el in collectorIs)
        {
            if (el is Duct)
                ductIs += ;
        }
        foreach (Element el in collectorIsNot)
        {
            if (el is Duct)
                ductIsNot += ;
        }
        TaskDialog.Show("duct", ductAll + "," + ductIs + "," + ductIsNot);         return Result.Succeeded;
    }
}

url:http://greatverve.cnblogs.com/p/get-all-element.html

Revit API取得全部元素的更多相关文章

  1. Revit API射线法读取空间中相交的元素

    Revit API提供根据射线来寻找经过的元素.方法是固定模式,没什么好说.关键代码:doc.FindReferencesWithContextByDirection(ptStart, (ptEnd  ...

  2. 【Revit API】梁构件支座检查算法

    一.前言         应该是第二次写关于Revit API的博文了.虽然在BIM企业中工作,从事桌面BIM软件开发,但是我是不怎么喜欢写Revit API相关的代码.平时更多的是在写界面展示,架构 ...

  3. Revit API 判断一个构件在某个视图中的可见性

    查看 Revit API.发现有Element::IsHidden这个方法.通过UI创建一个element,注意要使得这个element在某些视图可见,但是在另一些视图不可见.运行下面的方法,你会发现 ...

  4. Revit API 操作共享参数和项目参数

    1.获取共享参数 private string GetSharInfo(Autodesk.Revit.ApplicationServices.Application revitApp) { Strin ...

  5. Revit API 加载族并生成实例图元

    在Revit API中加载族可以使用Doc.LoadFamily方法,传入要加载的族文件路径名,但是这种方式有一种缺点,就是如果族文件在当前工程中没有加载的话则返回成功,如果已经加载过,则返回失败,也 ...

  6. Selenium 安装与配置及webdriver的API与定位元素

    1. selenium安装命令行 C:\Users\wu>cd /d E:\soft\python3.6\Scripts E:\soft\python3.6\Scripts>pip3 in ...

  7. 关于Revit API修改元素参数的问题?

    >ADN: DEVR3894  >ADN service level: Professional  >产品:Revit MEP 2012  >版本:2012  >语言:中 ...

  8. Revit API封装一个通用函数“过名称找元素”

    感觉这个函数不错.通过这种方式寻找元素经常需要用到. )         {  ];         }         // cannot find it.         return null; ...

  9. Revit API创建几何实体Solid并找到与之相交的元素

    几何实体的创建方法之一:构成封闭底面,指定拉伸方向与拉伸高度.GeometryCreationUtilities ;         , pt.Y - dBoxLength / , pt.Z);    ...

随机推荐

  1. struts2 中 Preparable 接口实现数据准备

    今天才知道struts还有Preparable接口,实现此接口需要实现其prepare()方法,调用action中其他方法之前会先调用prepare()方法.此接口和方法可以用于初始化一些数据. 测试 ...

  2. SqlMapConfig.xml全局配置文件介绍——(四)

    ----------mybatis的全局配置文件SqlMapConfig.xml,配置内容如下:----------- properties(属性) settings(全局配置参数) typeAlia ...

  3. 记一次ThreadPoolExecutor面试

    ThreadPoolExecutor点滴 线程池应该也是面试绕不开的一个点,平时大家也没少用,但其实也有一些小Tips还是值得记录一下. Constructor public ThreadPoolEx ...

  4. 【mongoDB】 分享系列

    mongoDB 作为一个非关系性数据库(功能很像关系型数据库) MongoDB 之一 MongoDB是什么 MongoDB 之二 增-删-改-查 MongoDB 之三 数据类型 MongoDB 之四 ...

  5. Java多态概述

    多态 所谓多态,实际上就是一个对象的多种状态: 下面例子中,Tiger可以看做Tiger,也可以看做Animal Cat  可以看做Cat,也可以看做Animal Dog 可以看做Dog,也可以看做A ...

  6. poj 2236 加点 然后判断某两点是否连通

    题目大意:给你N台电脑,从1-N.一个数字,表示两台计算机的最大通信距离,超过这个距离就无法进行通信.然后分别告诉这些电脑的坐标,接下来有两种操作,第一种O表示这点电脑修好,第二种S,表示测试这两台电 ...

  7. sklearn GMM模型介绍

    参考  SKlearn 库 EM 算法混合高斯模型参数说明及代码实现   和   sklearn.mixture.GaussianMixture 以前的推导内容:    GMM 与 EM 算法 记录下 ...

  8. Java动态性之--反射机制

    1. 动态语言 程序运行时,可以改变结构或变量类型.典型的语言: Python.ruby.javascript等 如下javascript代码 function test(){ var s = &qu ...

  9. 018 jquery中的事件

    一:事件 1.Dom的两种加载方式 2.程序 略 二:事件绑定 1.事件绑定介绍 2.程序一(使用click的原始方式) <!DOCTYPE html> <html> < ...

  10. django 使用 request 获取浏览器发送的参数

    django 使用 request 获取浏览器发送的参数     转载请注明出处 https://blog.csdn.net/fanlei5458/article/details/80638348 获 ...