RevisionCombineWithNext Method |
Combines the specified Revision with the next Revision.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntaxpublic static ISet<ElementId> CombineWithNext(
Document document,
ElementId revisionId
)
Public Shared Function CombineWithNext (
document As Document,
revisionId As ElementId
) As ISet(Of ElementId)
public:
static ISet<ElementId^>^ CombineWithNext(
Document^ document,
ElementId^ revisionId
)
static member CombineWithNext :
document : Document *
revisionId : ElementId -> ISet<ElementId>
Parameters
- document Document
-
The Document containing the Revisions.
- revisionId ElementId
-
The Revision that should have its clouds and tags associated with the next Revision.
Return Value
ISetElementId
The ids of all RevisionClouds that were reassigned to the next Revision.
ExceptionsException | Condition |
---|
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.
|
ArgumentNullException |
A non-optional argument was null
|
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.
Exampleprivate 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;
}
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
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also