关注公众号及时获取文章更新

注:本文转自公众号:BIMCoder梁老师

一、前言

在Revit二次开发中,参数是非常重要的组成部分,那么我们该如何从构件获取参数并修改该参数。

二、方法

首先得到一个Element后,有如下几个获取参数的方法:

1. e.Parameters

2. e.GetParameters(string name)

3. e.get_Parameter(BuiltInParameter parameterId)

4. e.LookupParameter(string name)

我们面对这么多获取Parameter的方法该如何选择呢?

首先第三种方式是最保险的,根据BuiltInParameter枚举来获取。

根据名字来获取的方式次之,就像一个班级里叫小明的有好几个,但是学号却是唯一的。注意并不是所有参数都是BuiltInParameter,我们最好在获取参数之前用LookUp查看一下。

我们以一堵墙为例

双击Parameters (Lookup此处用的就是e.Parameters来获取该Element所有参数)

选择你想获取的参数,然后点击Definition,可以看到此Built in param 为WALL_BASE_OFFSET。既然这该参数为BuiltInParameter,那么:

e.get_Parameter(BuiltInParameter.WALL_BASE_OFFSET)

使用e.GetParameters(string name)或者e.LookupParameter(string name)一定要注意检查是否为null。

var ps = e.GetParameters("参数1");

因为名称叫“参数1”的参数可能没有(即为null),也可能有多个。

当该参数不是BuiltInParameter,你又不确定叫“参数1”的参数有几个时果断选择e.GetParameters("参数1");

var p = e.LookupParameter("参数1");

p也要检查是否为null.

*************************************************************************************

当我们获取到参数p,即Parameter对象时该如何获取其参数值呢?

这时候需要先判断该parameter的StorageType,即存储类型。

该属性是一个枚举类型

举例:

if(p.StorageType == StorageType.Integer)

{

var pvalue = p.AsInteger();

}

*************************************************************************************

该如何写入参数:

  1. 判断该参数是否是ReadOnly (p.IsReadOnly)

  2. 判断该参数交互时是否可修改(p.UserModifiable)

  3. 判断该参数的StorageType

  4. 将要写入该参数的值转换为相应的数据类型,然后Set().

简单示例:pvalue假设是一个string

Revit二次开发—参数的读取与写入相关推荐

  1. revit二次开发——基于teigha读取CAD几何与文字(提供源码、引用包与异常解决)

    一.基于Teigha的开源dll,详细说明见以下博客: Revit二次开发--读取cad中的文字信息_niuge No.1的博客-CSDN博客 二.使用注意事项: 1.下载64位Teigha完整包: ...

  2. revit 二次开发 模型线读取

    目前只能读取模型线长度,闭合的区域读不到面积 UIApplication uiapp = commandData.Application;UIDocument uidoc = uiapp.Active ...

  3. revit 二次开发 填充区域读取

    读取填充区域的面积和周长 UIApplication uiapp = commandData.Application;UIDocument uidoc = uiapp.ActiveUIDocument ...

  4. Revit二次开发 如何获得链接CAD中所有的多段线PolyLine?

    项目场景: 最近做的这个项目,涉及到提取链接CAD中的所有多段线,并根据这些多段线的几何信息做一些分析,但是产生了一些意想不到的问题. 问题描述 通过网上流传的提取手段,并不能完全提取CAD中的所有多 ...

  5. Revit二次开发之使用外部程序集DT_Mgd读取CAD图遇到的问题

    Revit二次开发学习笔记(一) 最近学习在revit中读取链接的CAD图纸信息(包括文字.图层.各种线型),由于小白也是初学者,遇到了一些问题,如图所示: 通过大量查阅参考资料发现,问题是:在类库项 ...

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

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

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

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

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

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

  9. Revit二次开发案例一(第1讲)

    这期起,将为大家带来二次开发的小案例讲解,通过借助Revit建模与二次开发,帮助大家快速提高开发水平,快快参加吧!!! 族实例是通过族类型创建的,而创建族实例是Revit二次开发尤其重要的,因此小伙伴 ...

最新文章

  1. 使用Fiddler进行HTTP流量分析
  2. 滴滴联合比亚迪:首款定制网约车D1发布
  3. Spring-依赖注入
  4. 2021中青杯数学建模A题 汽车组装车间流水线物料配送问题
  5. php strpos与strrpos,PHP开发之 strpos stripos strrpos strripos的区别
  6. amos看拟合度在哪里看_360度看佛山战“疫”
  7. 求$N^N$的首位数字
  8. main函数结束后的调用
  9. 毕设-基于SSM仓库管理系统
  10. 从微软下载Vista Ultimate 中文旗舰版
  11. 全基因组关联分析(GWAS)常见问题(工具,概念,脚本)
  12. ff14优雷卡补正什么意思_禁地优雷卡 | 新大陆见闻录 - 《最终幻想14》萌新指导手册...
  13. 教你如何写初/高级前端简历【全新web前端入门视频教程】
  14. 梦回大明湖畔遇见情窦初开的数据库,寻梦的开始,大明湖畔的夏雨荷-你在哪呢?
  15. 你有旧iPhone吗?快来瓜分苹果1800万赔偿款!
  16. uni-app 加入logo.png
  17. JAVA 操作BLOB
  18. 数字转换为壹仟贰佰叁拾肆的Java方法
  19. vue路由传参到底有几种方式
  20. 简单理解钽电容和电解电容的区别

热门文章

  1. 娱乐头条-03spider
  2. Radeon Gpu源码分析
  3. 第七周 手机摄影——用手机怎样拍会更好
  4. Ni Multisim 101序列检测器实验报告
  5. spring在项目启动时就执行特定方法
  6. JSP/JAVAWEB/SSM/J2EE高考志愿填报推荐系统的开发
  7. ITK 2D图像刚性配准
  8. ROS自学实践(11):利用map_server功能包创建自己的地图
  9. 上海亚商投顾:三大指数均涨超1% 芯片板块集体大涨
  10. 很不错的两款Bootstrap Icon图标选择组件