数据读取与修改

视频连接http://v.bimcc.com/course/35/tasks


一、数据的读取

Revit提供了两种数据
数据读取与修改_第1张图片

Parameters和Parameters map

一般常用的是Parameters
数据读取与修改_第2张图片

下面是几种典型的方法

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;
数据读取与修改_第3张图片
墙的长度信息

数据读取与修改_第4张图片
点击一面墙,即可获得属性

//其中length1 length2对应不同单位下的数值


二、数据的修改

直接上步骤
比如这里要修改墙的底部偏移这个属性


数据读取与修改_第5张图片

在墙的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;

数据读取与修改_第6张图片
修改后的效果

其他的属性可以参照api中的修改函数,类似地修改

你可能感兴趣的:(数据读取与修改)