转载请复制以下信息:
原文链接: 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. 公共资源情报(OSINT)工具Automater
  2. 成功解决absl.flags._exceptions.IllegalFlagValueError: flag --train_size=inf: Expect argument to be a str
  3. 看完这篇,你还不能理解 ‘数据库架构’?趁早回家吧
  4. mysql 5.6 分区_Mysql5.6—分区表及独享表空间
  5. Spring的refresh()方法调用过程
  6. 修理牧场(哈夫曼树 )
  7. 软件工程-团队作业1
  8. 网易《社会心理学》笔记(不定时更新)
  9. Redhat linux AS4 环境下iSCSI协议配置
  10. V8声卡软件调试教程
  11. QQ邮箱文件中转站低调升级:取消续期功能
  12. img pdf 展示_vue中如何实现pdf文件预览的方法
  13. cadence Virtuoso ADE原理图AnalogLib库中的switch使用
  14. 微信小程序 首页弹出广告的demo
  15. DNS分类与区别-权威DNS、递归DNS、转发DNS
  16. linux 内核udp编程,[求助]linux内核代码udp_recvmsg()函数中的代码绕过问题。
  17. Java实现Excel导入导出(附Demo)
  18. c语言案例六 速算24,参阅:C语言速算24数据结构课程设计最终版
  19. 软著代办一般需要多少钱?
  20. 树模型(1)-入门指南

热门文章

  1. python中sample怎么用_python – 在Keras中使用sample_weight进行序列标记
  2. 6-1 客户机类 (10 分)
  3. 软件工程软考题目总结
  4. win32消息映射13-子类化和超类化
  5. 一番实验后,有关Batch Size的玄学被打破了
  6. 快速制作一款高逼格词云图
  7. C语言:实验3-6 计算个人所得税.2021-07-19
  8. 如何设置笔记本电脑充电到70%就停止充电_笔记本电脑电池保护如何设置_win10设置电池保护_win10设置电池70%电量就停止充电
  9. 企业怎样才能成功推行精益生产?
  10. U8 业务单据SQL及表