SetFailureHandlingOptions Method


Transaction Set Failure Handling Options Method

Sets options for handling failures to be used when the transaction is being committed or rolled back.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public void SetFailureHandlingOptions(
	FailureHandlingOptions options
)

Parameters

options FailureHandlingOptions
An instance of FailureHandlingOptions to be applied to the transaction
Exceptions
Exception Condition
ArgumentNullException A non-optional argument was null
Remarks
Options can be set at any time before the transaction is either committed or rolled back. See FailureHandlingOptions for details about available options. Once committed or rolled back, the transaction object will reset its options to their default values.
Example
// All and any transaction should be enclosed in a 'using'
// block or guarded within a try-catch-finally blocks
// to guarantee that a transaction does not out-live its scope.
using (Transaction transaction = new Transaction(doc))
{
   // Before we modify a document, we must start a transaction
   transaction.Start("Creating room");

   // obtain the current options and add failures preprocessor to it.
   // Note: preprocessor implements IFailuresProcessor and will receive 
   // a notification about failures eventually posted during the transaction.
   FailureHandlingOptions options = transaction.GetFailureHandlingOptions();
   options.SetFailuresPreprocessor(new RoomWarningSwallower());
   transaction.SetFailureHandlingOptions(options);

   // Modify the document and commit the transaction.
   if (null != doc.Create.NewRoom(level, UV.Zero))
   {
      // Now, before the the transaction is committed, if there happened to 
      // be any failure, the preprocessor would receive them first and would
      // have the option to analyze them, and ignore or re-qualify them.
      transaction.Commit();
   }
   else  // could not create the room; no need to commit the transaction
   {
      transaction.RollBack();
   }
}
See Also