视频连接http://v.bimcc.com/course/35/tasks
一、数据的读取
Revit提供了两种数据![](https://img.haomeiwen.com/i7445066/9933ee7ba21439c4.png)
Parameters和Parameters map
![](https://img.haomeiwen.com/i7445066/f0db4d1848e00e0a.png)
下面是几种典型的方法
1.GetOrderedParameters
收集所有可见属性,并直接按照属性的顺序排列(忽略属性分组顺序)
2.GetParameterFormatOptions
获取数据格式
3.LookupParameter
一般用于版本语言切换后,查找自定义族中的自定义参数。
4.Parameter(Guid)
通过共享参数的特定Guid属性来查找
5.Parameter(BuiltInParameter)
通过自带参数的特定built in param属性来查找
下面通过代码来实现数据的读取 一般用LookupParameter和get_Parameter两个方法
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
Reference refer = uidoc.Selection.PickObject(ObjectType.Element, "请选择墙");
Wall awall = doc.GetElement(refer) as Wall;
//Parameter para = awall.get_Parameter(BuiltInParameter.CURVE_ELEM_LENGTH);//方式一
Parameter para = awall.LookupParameter("长度");//方式二
double lenght1 = para.AsDouble(); //as..获取值
string length2 = para.AsValueString();
TaskDialog.Show("长度", lenght1.ToString() + "\r\n" +length2);
return Result.Succeeded;
![](https://img.haomeiwen.com/i7445066/06011e6605eef2eb.png)
![](https://img.haomeiwen.com/i7445066/f3025c7945873f80.png)
//其中length1 length2对应不同单位下的数值
二、数据的修改
直接上步骤
比如这里要修改墙的底部偏移这个属性
![](https://img.haomeiwen.com/i7445066/72e0832ddff42de4.png)
在墙的parameter属性中 找到definition 点进去找到built in parameter 复制
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
Reference refer = uidoc.Selection.PickObject(ObjectType.Element, "请选择墙");
Wall awall = doc.GetElement(refer) as Wall;
Parameter para = awall.get_Parameter(BuiltInParameter.WALL_BASE_OFFSET);
//一般在using里创建新事务
using (Transaction trans = new Transaction(doc, "修改墙的底部偏移"))
{
trans.Start();
para.Set( 1000 / 304.8);
trans.Commit();
}
return Result.Succeeded;
![](https://img.haomeiwen.com/i7445066/647f1bcfbe1a6403.png)
其他的属性可以参照api中的修改函数,类似地修改
网友评论