数据读取与修改
视频连接http://v.bimcc.com/course/35/tasks
一、数据的读取
Revit提供了两种数据
文章图片
Parameters和Parameters map
一般常用的是Parameters
文章图片
下面是几种典型的方法
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;
文章图片
墙的长度信息
文章图片
点击一面墙,即可获得属性
//其中length1 length2对应不同单位下的数值
二、数据的修改 直接上步骤
比如这里要修改墙的底部偏移这个属性
文章图片
在墙的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;
文章图片
修改后的效果
【数据读取与修改】其他的属性可以参照api中的修改函数,类似地修改
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- 我和你之前距离
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 原生家庭之痛与超越