老版本API的方法:

if (material is MaterialSteel)
新版本API的方法:

Parameter curPara = material.get_Parameter(BuiltInParameter.PHY_MATERIAL_PARAM_CLASS);

if (curPara.AsInteger()==(int)StructuralMaterialType.Steel)
全部代码如下:

[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class cmdMaterial : IExternalCommand
{
    public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)
    {
        UIDocument uiDoc = cmdData.Application.ActiveUIDocument;
        FilteredElementCollector collector = new FilteredElementCollector(uiDoc.Document);
        collector.OfClass(typeof(Material));
        FilteredElementIterator materialItr = collector.GetElementIterator();
        materialItr.Reset();
        int i = 0;
        #region 新方法
        while (materialItr.MoveNext())
        {
            Material material = materialItr.Current as Material;
            Parameter curPara = material.get_Parameter(BuiltInParameter.PHY_MATERIAL_PARAM_CLASS);
            switch (curPara.AsInteger())
            {
                case (int)StructuralMaterialType.Steel:
                    TaskDialog.Show("新方法", material.Name);
                    break;
            }
        }
        #endregion
        #region 过时的方法
        materialItr.Reset();
        while (materialItr.MoveNext())
        {
            i = i + 1;
            Material material = materialItr.Current as Material;

if (material is MaterialSteel)//steel金属
            {
                MaterialSteel steelMa = material as MaterialSteel;
                TaskDialog.Show("steel", steelMa.Name);
            }
        }
        #endregion
        TaskDialog.Show("count", i + "");

return Result.Succeeded;
    }
}

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

转载于:https://www.cnblogs.com/greatverve/archive/2011/09/19/revit-api-material.html

Revit二次开发之“遍历材质判断材质类别的新方法”BuiltInParameter.PHY_MATERIAL_PARAM_CLASS...相关推荐

  1. Revit二次开发之获取参数绑定的类别【比目鱼原创】

    项目参数保存在Revit 里,所以删除共享参数或者共享参数文件,都不会对项目参数产生影响,哪怕项目参数是通过共享参数创建的.项目参数在创建的时候,就已经和类别绑定了.也就是说和类别对应的元素都加上了新 ...

  2. Revit二次开发_1.过滤器笔记篇

    Revit二次开发_1.过滤器笔记篇 前言 对象分类 过滤方法 前言 最近在用过滤器功能,先按照教程做了筛选墙,再自己做了筛选常规模型的功能,发现有点不一样,问题在于筛选这些Elements的时候没弄 ...

  3. Revit二次开发_轴网快速标注

    通过Revit二次开发实现对平行轴网的快速标注.交互操作是框选轴网->点选尺寸标注出现的位置->生成两道尺寸标注. 要达到设想的结果一些地方需要特殊考虑: 框选操作容易误选轴网,起码要把与 ...

  4. Revit二次开发之按照标高过滤元素

    Revit二次开发之按照标高过滤元素 之前群里有朋友问怎么过滤特定标高的元素,当时有人回答先都过滤出来,然后遍历判断相应的标高参数来找出特定标高的元素.今天在看书的时候看到了一个可以过滤特定标高元素的 ...

  5. Revit二次开发——扩展存储

    Revit二次开发--扩展存储 ​  在revitAPI中,提供了Extensible Storage framework,可以使开发者将需要存储的数据存到Revit的rvt文件中, 扩展的数据始终跟 ...

  6. Revit二次开发之批量修改族名称及族类型名称

    昨天是参加工作整一年的好日子,在这一年中逐步开始接触C#和Revit二次开发,困扰和BUG伴随着整个学习过程.由于Revit二次开发的资料和课程不多,很多情况下都是依靠博客.技术贴和QQ群里的大神等方 ...

  7. Revit二次开发——结构模型构件自动扣减

    **Revit二次开发实例--模型自动扣减** 本文章来源于微信公众号 '有福BIM' 有福BIM的第四篇原创文章! 阅读前望知悉: 我晓得各位读者和粉丝中不乏C#二开大佬 有福作为一个二开新手(编程 ...

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

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

  9. Revit二次开发从入门到精通学习之路, (含Revit二次开发教程下载)

    Revit二次开发从入门到精通学习之路 Autodesk Joe Ye叶雄进 2. 18 2014    yexiongjin@hotmail.com Revit在国内的应用越来越广泛, Revit ...

最新文章

  1. Hadoop集群的基本操作(三:HBase的基本操作)
  2. 面试官:连框架都没用熟练,就这还来面试?
  3. 【 FPGA 】Vivado中常用的5个Tcl命令
  4. MultiRow发现之旅(二)- 详解属性管理器
  5. 日期代码的js 中将2012年显示成了112年
  6. Android Service下载文件并自定义通知提示下载
  7. 天哪!原来PWM这么简单
  8. c#winform演练 ktv项目 通过下标选中歌曲并且列表高亮
  9. ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)
  10. MySQL5.7 编译安装
  11. 分布式数据库中全局唯一主键
  12. ubuntu 分区_系统小技巧:迁移通过Wubi方式安装的Ubuntu系统
  13. 国内有哪些做H5走心的外包服务团队或公司?
  14. w10系统服务器管理器,Win10如何打开服务管理器
  15. RMAN传输表空间迁移数据
  16. 制作带边框的圆形头像
  17. 《7、8班课后作业千帆竞发图》
  18. spring boot 配置文件properties,yml语法学习及属性获取@ConfigurationProperties和@Value
  19. 人工智能:智慧环保(上海AI智慧环保,绿色新时代)
  20. 在Qt中使用OpenGL(四)

热门文章

  1. 浅谈android的selector,背景选择器
  2. Play 1.x框架学习之六:未登陆拦截机制 (Not Login intercept In play framework)
  3. ASP.NET 2.0 - 如何把上传的文件保存到数据库字段 (转自章立民CnBlogs)
  4. 软硬件融合加速技术系列文章
  5. OpenYurt — Overview
  6. linux系统巡检脚本
  7. 2019年企业云呈现五大技术发展趋势
  8. java - 把日志生成到指定目录
  9. 基于 Laravel、Vue.js开发的全新社交系统----ThinkSNS+
  10. ASM 磁盘、目录的管理