Skip to main content

revit-failure-handling

Suppress expected Autodesk Revit warnings and failures during a bounded API operation with Nice3point.Revit.Toolkit RevitApiContext. USE FOR: auto-resolving or auto-cancelling a known failure that would otherwise block opening a document, loading a family, or committing a transaction. DO NOT USE FOR: suppressing UI dialogs that are not failures (use RevitContext.BeginDialogSuppressionScope), or running API work from outside the Revit API context (use a Toolkit external event).

Zur Installation springen

Quellinformationen

Repository
Nice3point/revit-skills
Letzte Quellaktivität
23. Juli 2026 um 12:21
Erkannte Sprache von SKILL.md
Englisch
Sterne
13
Forks
3

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
revit-failure-handling
description
Suppress expected Autodesk Revit warnings and failures during a bounded API operation with Nice3point.Revit.Toolkit RevitApiContext. USE FOR: auto-resolving or auto-cancelling a known failure that would otherwise block opening a document, loading a family, or committing a transaction. DO NOT USE FOR: suppressing UI dialogs that are not failures (use RevitContext.BeginDialogSuppressionScope), or running API work from outside the Revit API context (use a Toolkit external event).
license
MIT
# Revit Failure Handling `RevitApiContext.BeginFailureSuppressionScope` returns a disposable scope that resolves or cancels Revit failures. Use it only for a known failure the operation can safely handle — never to make an unknown failure appear successful. ## When to use - A predictable warning or recoverable error blocks a headless operation (opening, family load, transaction commit). - Reviewing that suppression is bounded to the operation that raises the failure. ## When not to use - The interruption is a UI dialog, not a failure — use `RevitContext.BeginDialogSuppressionScope`. - The API is being called from outside the API context — dispatch the work through a Toolkit external event. ## Workflow ### Step 1: Bound the suppression scope Wrap only the operation that owns the expected failure; leave unrelated work outside the scope. The scope hooks the application-level `FailuresProcessing` event; it covers both a transaction commit and a document open. ```csharp using (RevitApiContext.BeginFailureSuppressionScope()) { using var transaction = new Transaction(document, "Operation"); transaction.Start(); // ... operation that raises the expected failure transaction.Commit(); } ``` Opening a file can raise the same recoverable warnings. In an unattended or headless host (for example Autodesk Design Automation) no user can dismiss the warning; open the document inside the scope: ```csharp using (RevitApiContext.BeginFailureSuppressionScope()) { var document = RevitApiContext.Application.OpenDocumentFile(path); } ``` ### Step 2: Choose resolve or cancel The default resolves resolvable failures. Pass `resolveErrors: false` when the caller must observe unresolved errors, not auto-resolve them. ### Step 3: Verify Assert the resulting document or artifact is valid, and confirm an unrelated failure still reaches the normal error boundary. ## Validation - [ ] The suppressed failure is known and expected. - [ ] The scope covers one bounded operation, not unrelated work. - [ ] The resulting model or file remains valid. - [ ] Unrelated failures remain observable. ## Common Pitfalls | Pitfall | Correct approach | |----------------------------------------------------------|-----------------------------------------------------------------------| | Wrapping a whole pipeline to hide any failure | Scope suppression to the one operation that raises the known failure. | | Suppressing a UI dialog with a failure scope | Use `RevitContext.BeginDialogSuppressionScope`. | | Auto-resolving errors the caller must process manually | Pass `resolveErrors: false`. | | `RevitApiContext` not found | The `Nice3point.Revit.Toolkit` package is not referenced. |
Auf GitHub ansehen