今天撸了下白马教程里面的代码,墙体的数据修改。具体操作有兴趣的同学可以查看相关视频。
using System;
using System.Collections.Generic;using System.Linq;
using System.Text;
using System.Threading.Tasks;
//引用revit二次开发的命名空间,标准套路
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
namespace RevitDevelopClass
{
//定义事务
[Transaction(TransactionMode.Manual)]
class 修改实例参数 : IExternalCommand
//继承外部接口
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
//传入revit的的数据库和UI库
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);
//将Transacation写到using里面
//(resouce里面写声明事务)
using (Transaction trans=new Transaction(doc,"修改墻的底部偏移"))
{
//事务启动
trans.Start();
//修改参数的代码段
para.Set(1000 / 304.8);
//事务结束
trans.Commit();
}
//外部接口类需要返回值
return Result.Succeeded;
}
}
}