Autodesk.Revit.Attributes.TransactionMode
是 Revit API 中用于控制事务模式的枚举类型。它定义了在操作 Revit 文档时所需的事务模式,包括自动事务、手动事务和跟随调用者的事务。
Automatic
: 表示操作将在一个自动事务中完成。自动事务是在每个 API 方法调用中自动启动和提交的事务。Manual
: 表示操作需要在手动事务中完成。手动事务需要通过代码显式地启动和提交。ReadOnly
: 表示操作将在只读模式下完成。只读模式允许对 Revit 文档进行查询,但不能修改任何内容。Follow
: 表示操作将跟随调用者的事务模式。[Transaction(TransactionMode.Manual)]
public class MyCommand : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
Document doc = commandData.Application.ActiveUIDocument.Document;
// 手动启动事务
using (Transaction trans = new Transaction(doc, "My transaction"))
{
trans.Start();
// 执行操作
// ...
// 提交事务
trans.Commit();
}
return Result.Succeeded;
}
}
以上示例中,TransactionMode.Manual
指示 MyCommand
类需要在手动事务中执行。在 Execute
方法中,我们手动启动了一个事务,并在其中执行了我们的操作。