其实就是过滤器的用法。这里想要找到同一楼层中的风管,不可行。
要用:duct.ReferenceLevel

//选择某一楼层上的墙
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
//[Journaling(JournalingMode.NoCommandData)]
public class SelectFloorObj : IExternalCommand
{
    public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
    {
        UIDocument uiDoc = commandData.Application.ActiveUIDocument;
        Selection selection = uiDoc.Selection;

//把标高1上的墙加入选择集
        FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
        collector.OfClass(typeof(Wall)).OfCategory(BuiltInCategory.OST_Walls);
        IList<Element> lists = collector.ToElements();

foreach (Element el in lists)
        {
            if (el.Level.Name == "标高 1")
                selection.Elements.Add(el);//添加到选择集
        }

//风管的Level属性为空,不能这样做。
        //FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
        //collector.OfClass(typeof(Duct)).OfCategory(BuiltInCategory.OST_DuctCurves);
        //IList<Element> lists = collector.ToElements();

//foreach (Element el in lists)
        //{
        //    Duct duct = el as Duct;
        //    MessageBox.Show(duct.LevelOffset.ToString());
        //    if (duct.Level != null)
        //    {
        //        if (duct.Level.Name == "标高 1")
        //        {
        //            selection.Elements.Add(duct);
        //        }
        //    }
        //}

return Result.Succeeded;
    }
}

from:http://revit.5d6d.com/thread-1076-1-3.html

Revit二次开发之“选择某一楼层的墙”相关推荐

  1. Revit二次开发选择模型面生成新的三维视图

    觉得自己做的一些Revit二次开发的项目经验需要找个地方保存下来,不然以后碰到类似的又得去冲浪捞人家的结晶再整合,所以从今天起开始写CSDN博客啦 选择模型面生成新的三维视图 废话不多说,直接上代码! ...

  2. Revit二次开发 - C#程序员的佳好选择

    虽然Revit的使用者和开发目前在中国都很少,但是这是个趋势. 未来Revit会在许多方面取代Autocad 做CAD二次开发的,在中国也很吃香. 但是使用C++难倒了许多人. 而Revit二次开发可 ...

  3. revit二次开发之程序调试

    欢迎加入BIM行业开发交流1群 群号:711844216(满),二群群号:1016453207 需要Revit二次开发全流程教学 的朋友可以联系我qq:1056295111 一.背景 小伙伴们在rev ...

  4. revit二次开发之多线程的正确使用

    欢迎加入BIM行业开发交流1群 群号:711844216(满),二群群号:1016453207 一.背景 小伙伴们为了加快revit程序运行速度, 可能会考虑使用多线程,但是我们必须首先搞清楚一个问题 ...

  5. Revit二次开发入门秘籍 01如何入门

    关于入门 我想在开始学习之前大家应该更需要知道如何入门,对比一下我们在学校的学习,我们需要书.老师-书上呢,是有所有的知识点,有重要的,有不重要的,而老师呢,会知道哪些是重点,也就是我们考试要考的,教 ...

  6. Revit二次开发之绘制钢筋

    第一次在博客园上写东西,也不知道该写些什么,我想就写点最近项目到遇到的问题吧. 最近在做一个小项目,具体需求大概是在一个revit模型中的对应的楼板位置绘制钢筋. 由于刚接触Revit二次开发,之前也 ...

  7. revit二次开发--异形柱翻模

    最近写了一个revit二次开发的异形柱翻模的功能,柱子翻模网上有很多插件可以用,我用的比较多的是红瓦,其中异形柱的翻模对于图纸的要求较高,有很多不准确的地方.很多异形柱,整体翻模出来是错误的,翻出来之 ...

  8. Revit二次开发入门捷径_升维学习、降维打击

    问题 入门Revit二次开发有捷径吗? 答案 量子力学:有也没有.(皮一下:叠加态) 没有:目的地只有一个,路只有一条,学习没有捷径. 有:虽然路只有一条,但我们可以借助交通工具,缩短时间就是捷径. ...

  9. Revit 二次开发前景

    大家也许已经嗅到了Revit发展势头.毫无疑问,Revit是建筑业设计利器.现在很多业主还不太懂设计工具与成本的关系,因为许多的业主是国家,机构等.他们只要人给设计出来,有关系,就可以中标.但是随着体 ...

最新文章

  1. 【云隐】STM32F103C8T6实现串口IAP方式升级固件
  2. 关于子网划分的几个捷径
  3. linux学习总结--linux100day(day2)
  4. UAC执行批处理,进行提示
  5. carry函数在C语言中用法,CArry的使用完整版.doc
  6. 我的2013——不平凡的第一次
  7. weka连接mysql数据库
  8. 机械硬盘的文件系统突然变成RAW了,如何保住盘上数据?
  9. 【SQL】SQL的基础语法
  10. wake-on-lan java_大神教你用Python实现Wake On Lan远程开机功能
  11. linux默认的分区是fat,linux下开机自动挂载FAT分区
  12. linux+软盘启动程序,怎样制作Linux启动软盘.
  13. 嵌入式Linux开发常用命令总结
  14. win7触摸板怎么关闭_笔记本fn键失灵怎么办?
  15. 计算机组装方案及分析,计算机组装与维护
  16. IT小盆友:注意20种习惯最耗元气
  17. 论文研究 | 机器视觉在无人机领域的发展
  18. 小红书是如何赚钱到翻车的?
  19. 可达性(tarjan)
  20. Python小白的自学笔记第四天

热门文章

  1. Ajax无刷新实现图片切换特效
  2. 控件的呈现方法(Rendering)的内核
  3. Windows启动文件
  4. 磁盘配额的wmi版本(C#)
  5. 写入和读取图片(c# asp.net sqlserver)
  6. 码农技术炒股之路——数据库管理器、正则表达式管理器
  7. 考研计算机专业课怎么复习,2016考研计算机专业课如何复习?
  8. java 泛型对象实例化_在java中实例化泛型类型
  9. Java多线程复习:5(sleep、yield方法和线程优先级)
  10. linux开发log示例,RH124-log Linux日志(示例代码)