Combines the specified Revision with the next Revision.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 21.0.0.0 (21.1.1.109)
Since: 2015
Syntax
C# |
---|
public static ISet<ElementId> CombineWithNext( Document document, ElementId revisionId ) |
Visual Basic |
---|
Public Shared Function CombineWithNext ( _ document As Document, _ revisionId As ElementId _ ) As ISet(Of ElementId) |
Visual C++ |
---|
public: static ISet<ElementId^>^ CombineWithNext( Document^ document, ElementId^ revisionId ) |
Parameters
- document
- Type: Autodesk.Revit.DB..::..Document
The Document containing the Revisions.
- revisionId
- Type: Autodesk.Revit.DB..::..ElementId
The Revision that should have its clouds and tags associated with the next Revision.
Return Value
The ids of all RevisionClouds that were reassigned to the next Revision.
Remarks
All RevisionClouds and tags associated with the specified Revision will be reassigned
to the next Revision in the model and the specified Revision will be deleted from
the model. The operation can only be performed if both the specified Revision and the
next one are unissued.
Examples

private bool CombineRevision(Document document, Revision revision) { bool combined = false; // Can only combine two revisions if neither have been issued if (revision.Issued == false) { ElementId revisionId = revision.Id; Revision nextRevsion = GetNextRevision(document, revisionId); if (nextRevsion != null && nextRevsion.Issued == false) { ISet<ElementId> revisionCloudIds = Revision.CombineWithNext(document, revisionId); combined = true; int movedClouds = revisionCloudIds.Count; if (movedClouds > 0) { RevisionCloud cloud = document.GetElement(revisionCloudIds.ElementAt(0)) as RevisionCloud; if (cloud != null) { string msg = string.Format("Revision {0} deleted and {1} revision clouds were added to Revsion {2}", revisionId.ToString(), movedClouds, cloud.RevisionId.ToString()); TaskDialog.Show("Revision Combined", msg); } } } } return combined; } private Revision GetNextRevision(Document document, ElementId currentRevisionId) { Revision nextRevision = null; IList<ElementId> revisionIds = Revision.GetAllRevisionIds(document); int currentRevisionIndex = -1; for (int n = 0; n < revisionIds.Count; n++) { if (revisionIds[n] == currentRevisionId) { currentRevisionIndex = n; break; } } // if the current revision id was found and is not the last index if (currentRevisionIndex >= 0 && currentRevisionIndex < revisionIds.Count - 1) { ElementId nextRevisionId = revisionIds[currentRevisionIndex + 1]; nextRevision = document.GetElement(nextRevisionId) as Revision; } return nextRevision; }

Private Function CombineRevision(document As Document, revision__1 As Revision) As Boolean Dim combined As Boolean = False ' Can only combine two revisions if neither have been issued If revision__1.Issued = False Then Dim revisionId As ElementId = revision__1.Id Dim nextRevsion As Revision = GetNextRevision(document, revisionId) If nextRevsion IsNot Nothing AndAlso nextRevsion.Issued = False Then Dim revisionCloudIds As ISet(Of ElementId) = Revision.CombineWithNext(document, revisionId) combined = True Dim movedClouds As Integer = revisionCloudIds.Count If movedClouds > 0 Then Dim cloud As RevisionCloud = TryCast(document.GetElement(revisionCloudIds.ElementAt(0)), RevisionCloud) If cloud IsNot Nothing Then Dim msg As String = String.Format("Revision {0} deleted and {1} revision clouds were added to Revsion {2}", revisionId.ToString(), movedClouds, cloud.RevisionId.ToString()) TaskDialog.Show("Revision Combined", msg) End If End If End If End If Return combined End Function Private Function GetNextRevision(document As Document, currentRevisionId As ElementId) As Revision Dim nextRevision As Revision = Nothing Dim revisionIds As IList(Of ElementId) = Revision.GetAllRevisionIds(document) Dim currentRevisionIndex As Integer = -1 For n As Integer = 0 To revisionIds.Count - 1 If revisionIds(n) = currentRevisionId Then currentRevisionIndex = n Exit For End If Next ' if the current revision id was found and is not the last index If currentRevisionIndex >= 0 AndAlso currentRevisionIndex < revisionIds.Count - 1 Then Dim nextRevisionId As ElementId = revisionIds(currentRevisionIndex + 1) nextRevision = TryCast(document.GetElement(nextRevisionId), Revision) End If Return nextRevision End Function
Exceptions
Exception | Condition |
---|---|
Autodesk.Revit.Exceptions..::..ArgumentException | revisionId is not a valid Revision. -or- This operation cannot be performed because revisionId is an issued Revision. -or- revisionId cannot be combined with the next Revision because either revisionId is the last Revision or the next Revision has already been issued. |
Autodesk.Revit.Exceptions..::..ArgumentNullException | A non-optional argument was NULL |