编程获取Revit视图中的所有实例对象数量
转载请复制以下信息:
原文链接: 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视图中的所有实例对象数量相关推荐
- python获取div标签的id_Python 获取div标签中的文字实例
预备知识点 compile 函数 compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用. 语法格式为: re. ...
- 如何通过js获取html文本框中的值,js与jquery获取input输入框中的值实例讲解
如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML 一.jquery获取input文本框中的值 通过 ...
- 【XML文件数据预处理】获取xml文件中所有标签名称及数量||提取某个特定标签的数量||生成包含某个标签的图片索引txt并复制图片到指定文件夹
目录 1.获取xml文件中所有标签名称及数量 2.提取某个特定标签的数量 3.生成包含某个标签的图片索引txt并复制图片到指定文件夹 1.获取xml文件中所有标签名称及数量 [需求]自己标注的数据集, ...
- vue实例中调用外部js_js文件中引用vue实例对象
原因 我使用了iView的框架,想要把表格的配置提取出来,但是表格里面的操作需要用到this,所以就需要在js文件中引用vue实例. 方法 utils - local-data.js // vue实例 ...
- 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | dex_file.cc 中创建 DexFile 实例对象的相关函数分析 )
文章目录 前言 一.dalvik_system_DexFile.cc#CreateDexFile 函数分析 二.dex_file.cc#DexFile::Open 函数分析 三.dex_file.cc ...
- 【BIM入门实战】Revit视图中图元看不见的原因总结
在Revit模型设计的过程中,有时会提示绘制的图元不可见,通常情况下,可以采用以下三种方法让隐藏的图元显示出来. 原因一:视图范围 平面视图的形成是由操作平面对三维进行 水平切割的俯视图,如果绘制的图 ...
- vb 根据pid获取句柄_C++中避免返回指向对象内部的句柄(handles)
点蓝色字关注"CurryCoder的程序人生" 微信公众号:CurryCoder的程序人生 欢迎关注我,一起学习,一起进步! 1.问题的引入 假如你正在给一个应用写一个矩形类,这个 ...
- java模拟滑动事件_java - 以编程方式在Android视图中触发滑动动作事件 - SO中文参考 - www.soinside.com...
我正在尝试以编程方式触发视图中的滑动.还有其他问题的答案,但他们没有为我工作.我还看到一些comments表示程序化的拖动/滚动因安全原因被禁用,这是真的吗?我很想找到一个明确的答案. 我尝试了以下方 ...
- android获取context的方法,Android编程获取全局Context的方法
Android编程获取全局Context的方法 本文实例讲述了Android编程获取全局Context的方法.分享给大家供大家参考,具体如下: 有时,在处理业务逻辑的时候,需要Context对象,但在 ...
最新文章
- Spring中的Bean的生命周期
- java 字符串缓冲池 String缓冲池
- C语言算小数加减,C语言带小数加减乘除.doc
- .NET Core 2.1 正式发布
- 【高等数学】高等数学基础理论归纳
- 史上最全的并发编程学习目录
- layui报错 “Layui hint: 模块名 xxx 已被占用“ 的问题解决方案
- pip更新升级后Import Error:cannot import name main及pip安装包后出现环境错误拒绝访问...
- Java 8新特性探究(十一)Base64详解
- Eplan执行翻译操作详细教程
- 解决用U盘重装Mac系统中电脑无法识别U盘的问题
- 基于Qt的UDP传输文字聊天小软件实现
- mysql sid是什么_数据库名、数据库实例、全局数据库名、服务名、SID等的区别
- 前端 关于汇率的计算
- 使用Crucible和FishEye链接svn库时遇到尝试添加或索引存储库时出现错误-版本中不存在的问题
- Qt和PyQt中的组合键输入捕获处理
- 电脑饥荒服务器未响应,《饥荒》联机版常见问题及解决方法一览
- 贵州建筑施工劳务资质备案流程
- 不完全性定理 元数学和自然数_开读哥德尔原著第一章——哥德尔读后之十
- 2022陕西清北录取人数排名,西工大附中遥遥领先,高新一中40人
热门文章
- android获取mipmap路径,mipmap 目录和drawable 目录有什么区别
- 快速云:TOSCA和其他云标准化工作停滞不前
- TOSCA自动化测试工具--Log defect
- vue2过滤器《书山有路勤为径,学海无涯苦作舟》
- 思科CCNA第一学期第八章答案
- Python每日一练——第6天:判断有效括号
- 机器人运动学与动力学入门(一)自由度与连杆机构
- Win A free copy of the Oracle E-Business Suite R12 Integration and OA Framework Development Book
- 信用包信:数字钱包信用好有哪些?19年数字钱包信用排行榜
- 【洞见研报】研报速读:新国货研究院——巧克力品类报告(可可脂,健康,国货)