转载请复制以下信息:
原文链接: http://blog.csdn.net/joexiongjin/article/details/7678923

作者: 叶雄进, Autodesk ADN

问题:

现在需要获取视图中的所有实例对象,包括系统族的实例与用户自建族的实例。使用OfClass(typeof(FamilyInstance))过滤方法比较容易获取用户自建族的实例,但是视图中的系统族实例,不知道如何一起获取出来,请指教。

答:

是的,通过FilteredElementCollector.OfClass(typeof((FamilyInstance)) 只能获取标准族实例,也就是你说的自建族实例。

但是系统族实例并不是从FamilyInstance类派生的,而是从HostObject类派生。

所以你可以使用逻辑Or过滤器LogicOrFilter,把两个类过滤器(ElementClassFilter)合并起来实现。

下面是完整实现代码。在对话框中显示所有实例对象的数量。

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using  Autodesk.Revit .DB;
using Autodesk.Revit.UI;
using Autodesk.Revit .ApplicationServices;
using Autodesk.Revit.Attributes ;
[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class RevitCommand : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)
{
UIApplication app = commandData.Application;
Document doc = app.ActiveUIDocument.Document;
ElementClassFilter instanceFitler = new ElementClassFilter(typeof(FamilyInstance));
ElementClassFilter hostFilter = new ElementClassFilter(typeof(HostObject));
LogicalOrFilter andFilter = new LogicalOrFilter(instanceFitler, hostFilter);
FilteredElementCollector collector = new FilteredElementCollector(doc);
collector.WherePasses(andFilter);
TaskDialog.Show("numbers", collector.ToElementIds().Count.ToString());
return Result.Succeeded ;
}
}

上面的代码获得了实例数量,当然你可以对其中的每一个对象进行遍历做你希望的操作。

编程获取Revit视图中的所有实例对象数量相关推荐

  1. python获取div标签的id_Python 获取div标签中的文字实例

    预备知识点 compile 函数 compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用. 语法格式为: re. ...

  2. 如何通过js获取html文本框中的值,js与jquery获取input输入框中的值实例讲解

    如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML 一.jquery获取input文本框中的值 通过 ...

  3. 【XML文件数据预处理】获取xml文件中所有标签名称及数量||提取某个特定标签的数量||生成包含某个标签的图片索引txt并复制图片到指定文件夹

    目录 1.获取xml文件中所有标签名称及数量 2.提取某个特定标签的数量 3.生成包含某个标签的图片索引txt并复制图片到指定文件夹 1.获取xml文件中所有标签名称及数量 [需求]自己标注的数据集, ...

  4. vue实例中调用外部js_js文件中引用vue实例对象

    原因 我使用了iView的框架,想要把表格的配置提取出来,但是表格里面的操作需要用到this,所以就需要在js文件中引用vue实例. 方法 utils - local-data.js // vue实例 ...

  5. 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | dex_file.cc 中创建 DexFile 实例对象的相关函数分析 )

    文章目录 前言 一.dalvik_system_DexFile.cc#CreateDexFile 函数分析 二.dex_file.cc#DexFile::Open 函数分析 三.dex_file.cc ...

  6. 【BIM入门实战】Revit视图中图元看不见的原因总结

    在Revit模型设计的过程中,有时会提示绘制的图元不可见,通常情况下,可以采用以下三种方法让隐藏的图元显示出来. 原因一:视图范围 平面视图的形成是由操作平面对三维进行 水平切割的俯视图,如果绘制的图 ...

  7. vb 根据pid获取句柄_C++中避免返回指向对象内部的句柄(handles)

    点蓝色字关注"CurryCoder的程序人生" 微信公众号:CurryCoder的程序人生 欢迎关注我,一起学习,一起进步! 1.问题的引入 假如你正在给一个应用写一个矩形类,这个 ...

  8. java模拟滑动事件_java - 以编程方式在Android视图中触发滑动动作事件 - SO中文参考 - www.soinside.com...

    我正在尝试以编程方式触发视图中的滑动.还有其他问题的答案,但他们没有为我工作.我还看到一些comments表示程序化的拖动/滚动因安全原因被禁用,这是真的吗?我很想找到一个明确的答案. 我尝试了以下方 ...

  9. android获取context的方法,Android编程获取全局Context的方法

    Android编程获取全局Context的方法 本文实例讲述了Android编程获取全局Context的方法.分享给大家供大家参考,具体如下: 有时,在处理业务逻辑的时候,需要Context对象,但在 ...

最新文章

  1. Spring中的Bean的生命周期
  2. java 字符串缓冲池 String缓冲池
  3. C语言算小数加减,C语言带小数加减乘除.doc
  4. .NET Core 2.1 正式发布
  5. 【高等数学】高等数学基础理论归纳
  6. 史上最全的并发编程学习目录
  7. layui报错 “Layui hint: 模块名 xxx 已被占用“ 的问题解决方案
  8. pip更新升级后Import Error:cannot import name main及pip安装包后出现环境错误拒绝访问...
  9. Java 8新特性探究(十一)Base64详解
  10. Eplan执行翻译操作详细教程
  11. 解决用U盘重装Mac系统中电脑无法识别U盘的问题
  12. 基于Qt的UDP传输文字聊天小软件实现
  13. mysql sid是什么_数据库名、数据库实例、全局数据库名、服务名、SID等的区别
  14. 前端 关于汇率的计算
  15. 使用Crucible和FishEye链接svn库时遇到尝试添加或索引存储库时出现错误-版本中不存在的问题
  16. Qt和PyQt中的组合键输入捕获处理
  17. 电脑饥荒服务器未响应,《饥荒》联机版常见问题及解决方法一览
  18. 贵州建筑施工劳务资质备案流程
  19. 不完全性定理 元数学和自然数_开读哥德尔原著第一章——哥德尔读后之十
  20. 2022陕西清北录取人数排名,西工大附中遥遥领先,高新一中40人

热门文章

  1. android获取mipmap路径,mipmap 目录和drawable 目录有什么区别
  2. 快速云:TOSCA和其他云标准化工作停滞不前
  3. TOSCA自动化测试工具--Log defect
  4. vue2过滤器《书山有路勤为径,学海无涯苦作舟》
  5. 思科CCNA第一学期第八章答案
  6. Python每日一练——第6天:判断有效括号
  7. 机器人运动学与动力学入门(一)自由度与连杆机构
  8. Win A free copy of the Oracle E-Business Suite R12 Integration and OA Framework Development Book
  9. 信用包信:数字钱包信用好有哪些?19年数字钱包信用排行榜
  10. 【洞见研报】研报速读:新国货研究院——巧克力品类报告(可可脂,健康,国货)