前面发了一篇博客谈到如何创建自己的共享参数(扩展参数可能更容易理解下)。
一个朋友追问如何修改扩展参数的值?
这里统一说下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