如何读写共享参数的值?

来源:互联网 发布:卓知中华好字通价格 编辑:程序博客网 时间:2024/05/17 22:49


前面发了一篇博客谈到如何创建自己的共享参数(扩展参数可能更容易理解下)。

编程创建共享参数(完整代码演示)


一个朋友追问如何修改扩展参数的值?


这里统一说下Revit里面的参数值的访问。无论参数是共享参数还是Revit出厂自带参数的读取和修改都是相同的,使用Parameter类下面的函数。

读取参数信息用下面这几个函数,根据函数名称一目了然的知道每一个函数的功用。

Parameter.AsDouble()

Parameter.AsInteger()

Parameter.AsString()

Parameter.AsElementId().

Parameter.AsValueString() 这个函数返回的字符串是带单位的, 比如 "5 mm"


给参数赋值则更简单,无论什么类型的赋值操作均使用Parameter.Set();

例如: 

para.Set(1)

para.Set("1")

para.Set(ElementId);


在获取参数的操作上,有相同之处,也有不同之处。

相同之处:

可以用参数名称字符串直接获得目标参数对象,内置参数和共享参数都可以以此获得。。 比如:  

Parameter para = elem.get_Parameter("MyParameterName").

共享参数主要用这种方法来快速获取。


不同之处:

内置参数可以用参数的内置枚举类型BuiltInParameter的成员来获得,而共享参数没有对应的枚举类型。

例如: Parameter para = mywall.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH);  //获取墙的长度参数


综上所述,下面一段代码来获取墙上的共享参数“涂料名称”,并修改参数值为“立邦外墙面漆”. 如果已经是“立邦外墙面漆”, 则无需修改。


//条件,myWall 已经具有共享参数“涂料名称”。 下面代码在事务中。

Parameter param = myWall.get_Parameter("“涂料名称”);

string paintName = para.AsString();

if(paintName.Equal("立邦外墙面漆") == false)

{

para.Set("立邦外墙面漆");

}

//提交事务


转载请复制以下信息:
原文链接: http://blog.csdn.net/joexiongjin/article/details/8123707
作者:  叶雄进 , Autodesk ADN



原创粉丝点击