Combines the specified Revision with the next Revision.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 19.0.0.0 (19.1.0.0)
Since:
2015
Syntax
Return Value
The ids of all RevisionClouds that were reassigned to the next Revision.
Remarks
Examples
CopyC#
private bool CombineRevision(Document document, Revision revision)
{
bool combined = false;
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 (currentRevisionIndex >= 0 && currentRevisionIndex < revisionIds.Count - 1)
{
ElementId nextRevisionId = revisionIds[currentRevisionIndex + 1];
nextRevision = document.GetElement(nextRevisionId) as Revision;
}
return nextRevision;
}
CopyVB.NET
Private Function CombineRevision(document As Document, revision__1 As Revision) As Boolean
Dim combined As Boolean = False
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 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
See Also