用户自己手动获取数据
1.当前文件中的内容
public Result Execute(ExternalCommandData commandData,ref string message,ElementSet elements)
{
UIDocument uidoc = commandData.Application.ActiveUIDocument;//需要和用户交互的接口内容,例如切换视图
Document doc = uidoc.Document; //不需要和用户交互的数据接口,例如利用数据创建墙
return Result.Succeeded;
}
2. 获取当前用户所选对象 Selection, 是管理着所有与用户选择有关的操作
using Autodesk.Revit.UI.Selection;
Selection sel = uidoc.Selection;
3. 利用lookup对元素进行查找,可获得当中的属性参数及操作方法。
Parameter parameter= duct.get_Parameter(BuiltInParameter.RBS_CURdouble //获取元素
area = parameter.AsDouble();VE_SURFACE_AREA);//获取元素面积
4. Revit中开始一个新操作需要修改模型中的数据时,需要新建事务,避免动作重复报错。
using (Transaction tr = new Transaction(doc, "demo1"))
{
tr.Start();
parameter.SetValueString("3000");
tr.Commit();
}
5.选中元素之后通过lookup查找该元素的parameters -想操作的属性-definition中可以看到相关的属性名称及方法名称。
后台自动获取数据
1.通过过滤器获取文档中的元素。
ofClass:通过元素的类名来过滤元素,用来获取界面已有的该类型的构件
ofCategary通过元素的Catagary来过滤元素,即使元素不在文件中,也会获取到该元素。
WherePasses(某一个过滤器,例如 new ElementClassFilter(Typeof(Duct)))
Revit二次开发学的就是API,学的是Revit开放给用户的接口方法