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 方法中,我们手动启动了一个事务,并在其中执行了我们的操作。