トランザクションは Revit モデルに対する変更をカプセル化する、コンテキストに似たオブジェクトです。ドキュメントへの変更は、そのドキュメントに対して開いているアクティブなドキュメントがある場合にのみ行えます。トランザクション外のドキュメントを変更しようとすると、例外がスローされます。変更は、アクティブなトランザクションがコミットされるまで、モデルの一部にはなりません。したがって、トランザクションで行ったすべての変更を明示的または暗示的に(ディストラクタで)ロールバックできます。いつでも開くことができるのは、ドキュメントごとに 1 つのトランザクションのみです。トランザクションは、1 つ以上の操作で構成される場合があります。
Revit API には、トランザクションに関連する 3 つのメイン クラスがあります。
トランザクション
サブトランザクション
トランザクション グループ
このセクションでは、これらのクラスについてそれぞれ詳しく説明します。ドキュメントを変更するには、Transaction クラスのみが必要です。その他のクラスを使用して、変更をうまく管理することができます。IExternalCommand 定義に適用される TransactionMode 属性は、コマンドが起動された場合に Revit がトランザクションを処理する方法に影響します。詳細は、「TransactionAttribute」を確認してください。