Revit二次开发 事务标签值

Posted 挨踢老干部的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Revit二次开发 事务标签值相关的知识,希望对你有一定的参考价值。

Revit开发中,事务应用非常频繁,所有revit API提供了用户显式地指定标签值。来控制在revit的IExternalCommand中,是否使用事务,其使用的属性为TransactionMode。

如下:

[Autodesk.Revit. Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Automatic)]  
public class Classl: IExternalCommand  
{  
    public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)  
    {  
        return Result.Succeeded;  
    } 
}

TransactionMode分为Automatic、Manual和ReadOnly。这三种TransactionMode都只在活动文档范围内有效

①TransactionMode.Automatic: 
Revit会在调用外部命令之前自动创建一个Transaction,并且该Transaction会在外面命令结朿时提交或者回滚。如果外部命令执行成功,则提交Transaction;如果有异常,则回滚。在该模式下,外部命令不能再创建自己的Transaction,但是可以创建 SubTransactions。
②TransactionMode.Manual:
此模式表示Revit不会自动创建一个Transaction。如果用户需要修改Revit摸型,则需要自行创建Transaction,并且自行管理这个Transaction提交还是回滚。
③TransactionMode.ReadOnly:
在该模式下,外部命令不能有任何的Transaction,否则在创建Transaction或者修改 Revit文档都会抛出异常。

以上是关于Revit二次开发 事务标签值的主要内容,如果未能解决你的问题,请参考以下文章

Revit二次开发-自动化批量打印崩溃问题

在Revit二次开发里,如何在代码实现获得Revit里 所有的族的类别?

Revit API二次开发入门,完整学习流程,附源码

revit 二次开发之读取参数

Revit二次开发_外部事件

revit文件发生不可恢复的错误(二次开发)