//取得全部元素
[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

Revit API取得全部元素相关推荐

  1. Revit API:楼梯元素 Run、Landing、Support

    前言 Revit 目前仅能创建组合楼梯,即所有楼梯都必须是梯段(Run).平台(Landing)以及支撑(Support)组成.另外,栏杆扶手可以附着在它上面. 梯段 - Run 通过 API,可以创 ...

  2. Revit API、AddInManager、RevitLookup、SDK的用途

    关注公众号及时获取文章更新 NET versions are: .NET 4.0 for Revit 2014, .NET 4.5 for Revit 2015/2016/2017, .NET 4.5 ...

  3. Revit二次开发——元素信息绑定的两种方法

    <一>通过共享参数与项目参数绑定 在二次开发功能中,很多模型需要添加附加参数,这时候就得使用共享参数或者项目参数来实现,在文档中对于可载入族添加参数时,一般都是为族添加共享参数,因为项目参 ...

  4. Revit API:找到轮廓族的路径

    前言 以封檐板为例,介绍如何找到某个族中使用的轮廓族. 内容 如下图所示,这是在屋顶边缘家的封檐板: 封檐板的类型中有一个轮廓的属性: 如何通过 Revit API 去获取这个轮廓? 从封檐板获取类型 ...

  5. Revit API: Dimension 尺寸标注

    前言 本文介绍 Revit API 的尺寸标注. 内容 在 Revit API 中,尺寸标注相关的有三个类:Dimension.AngularDimension 和 SpotDimension. 后两 ...

  6. Revit API:View 视图概述

    前言 本文介绍 Revit 视图相关的基本接口. 内容 View 继承结构 所有的视图都是继承自 Autodesk.Revit.DB.View,分别对应各种视图类型. View 的实例 以官方给的文件 ...

  7. 为 Revit API 插件创建 WPF 窗口的基本项目(Revit API+WPF 系列 2/3)

    在本系列的第二部分中,我们将讨论在创建 WPF 窗口时应用的基本项目. 为了继续,请确保您的插件项目能够创建 WPF 窗口.如果没有,您最好创建一个具有 WPF 功能的项目模板并创建另一个新项目.然后 ...

  8. Revit API 开发 (10): ExtensibleStorage 外部存储

    前言 很多时候,需要往Revit的文件里面放自己的数据.这里简单介绍一下 Revit API 如何处理数据的保存和读取,并且这些数据是绑定到具体的构件上的.另外,也可以自己创建一个 DataStora ...

  9. Revit API:Element 继承体系

    继 "Revit API 开发周边:得到 Element 的所有子类" 之后,整理了一下所有 Element 的子类,内容源自 Revit SDK 中的 RevitAPI.chm ...

最新文章

  1. Mirror, Mirror,What do I see、一切都是投射
  2. 思科路由器动态NAT配置
  3. SQLServer存储过程的返回值 查询分析器/程序
  4. vue 声明周期函数_Vue2.0 探索之路——生命周期和钩子函数的一些理解
  5. C++ 是 编程界 的 背锅侠
  6. JAVA Java多线程与并发库
  7. 【Android Fragment】解决Fragment多层嵌套时onActivityResult无法正确回调的问题
  8. JDK+SDK 环境变量记录
  9. MIT App Inventor使用与入门教程
  10. CSND博客几年没有登录了,终于找回密码来报个到!
  11. viper4android哪个版本好,viper4android免root版下载
  12. excel中将两列交叉合并为一列
  13. 计算机装系统找不到硬盘分区,解决安装系统找不到硬盘的问题(图文)
  14. c语言1到100奇数和与偶数和,C语言实现1到100的和奇数与偶数和
  15. 班级网站的设计与实现
  16. simplest_ffmpeg_demuxer_simple(新版ffmpeg函数)
  17. 程序员增加收入的实用之道
  18. 富文本编辑器上传图片的功能
  19. 佛系推荐《骡子》是经典又好看的动作电影毋庸置疑
  20. VMware vSphere ESXI 6.7 U3最新版本封装网卡驱动补丁

热门文章

  1. 开发运维日常坑 总结 51-100
  2. MySQL---主从复制
  3. 境外WiFi市场持续升温 2016年或迎普及元年
  4. 分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题...
  5. win10个人壁纸默认保存位置
  6. error C2143: 语法错误 : 缺少“;”(在“using”的前面)
  7. Less(v3.9.0)使用详解—变量
  8. 转: android apk 防止反编译技术(1~5连载)
  9. 教你手工mysql拆库
  10. JedisPool介绍