視頻連接http://v.bimcc.com/course/35/tasks
一、數(shù)據(jù)的讀取
Revit提供了兩種數(shù)據(jù)
Parameters和Parameters map

下面是幾種典型的方法
1.GetOrderedParameters
收集所有可見屬性,并直接按照屬性的順序排列(忽略屬性分組順序)
2.GetParameterFormatOptions
獲取數(shù)據(jù)格式
3.LookupParameter
一般用于版本語言切換后,查找自定義族中的自定義參數(shù)。
4.Parameter(Guid)
通過共享參數(shù)的特定Guid屬性來查找
5.Parameter(BuiltInParameter)
通過自帶參數(shù)的特定built in param屬性來查找
下面通過代碼來實現(xiàn)數(shù)據(jù)的讀取 一般用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;

墻的長度信息

點擊一面墻,即可獲得屬性
//其中l(wèi)ength1 length2對應不同單位下的數(shù)值
二、數(shù)據(jù)的修改
直接上步驟
比如這里要修改墻的底部偏移這個屬性

在墻的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里創(chuàng)建新事務
using (Transaction trans = new Transaction(doc, "修改墻的底部偏移"))
{
trans.Start();
para.Set( 1000 / 304.8);
trans.Commit();
}
return Result.Succeeded;

修改后的效果
其他的屬性可以參照api中的修改函數(shù),類似地修改