AssemblyInstanceCompareAssemblyInstances Method |
Compares two assembly instances and returns a result with details about the differences
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 27.0.4.0 (27.0.4.0)
Syntaxpublic static AssemblyDifference CompareAssemblyInstances(
AssemblyInstance instance1,
AssemblyInstance instance2
)
Public Shared Function CompareAssemblyInstances (
instance1 As AssemblyInstance,
instance2 As AssemblyInstance
) As AssemblyDifference
public:
static AssemblyDifference^ CompareAssemblyInstances(
AssemblyInstance^ instance1,
AssemblyInstance^ instance2
)
static member CompareAssemblyInstances :
instance1 : AssemblyInstance *
instance2 : AssemblyInstance -> AssemblyDifference Parameters
- instance1 AssemblyInstance
-
The first assembly instance to compare
- instance2 AssemblyInstance
-
the second assembly instance to compare
Return Value
AssemblyDifference
An object describing the difference between the two instances
Exceptions
Remarks
Only the first found difference is returned.
If the instances are identical, AssemblyDifferenceNone will be returned.
Example
void FindAssemblyDifferences(AssemblyInstance instance1, AssemblyInstance instance2)
{
Autodesk.Revit.DB.Document doc = instance1.Document;
AssemblyDifference difference = AssemblyInstance.CompareAssemblyInstances(instance1, instance2);
AssemblyDifferenceNone diffNone = difference as AssemblyDifferenceNone;
if (diffNone != null)
{
TaskDialog.Show("Revit", "Assemblies are identical");
return;
}
AssemblyDifferenceConfiguration diffConfig = difference as AssemblyDifferenceConfiguration;
if (diffConfig != null)
{
TaskDialog.Show("Revit", "Elements are not arranged in space relative to each other in the same way");
return;
}
AssemblyDifferenceMemberCount diffMemberCount = difference as AssemblyDifferenceMemberCount;
if (diffMemberCount != null)
{
TaskDialog.Show("Revit", "Elements counts differ: " + diffMemberCount.Count1 + " & " + diffMemberCount.Count2);
return;
}
AssemblyDifferenceNamingCategory diffNameCat = difference as AssemblyDifferenceNamingCategory;
if (diffNameCat != null)
{
TaskDialog.Show("Revit", "Naming categories differ: " +
Category.GetCategory(doc, diffNameCat.NamingCategoryId1).Name + " & " +
Category.GetCategory(doc, diffNameCat.NamingCategoryId2).Name);
return;
}
AssemblyDifferenceMemberDifference memberDifference = difference as AssemblyDifferenceMemberDifference;
if (memberDifference != null)
{
AssemblyMemberDifference assemblyMemberDifference = memberDifference.MemberDifference as AssemblyMemberDifference;
AssemblyMemberDifferentCategory differentCategory = assemblyMemberDifference as AssemblyMemberDifferentCategory;
if (differentCategory != null)
{
TaskDialog.Show("Revit", "Element categories differ: " +
Category.GetCategory(doc, diffNameCat.NamingCategoryId1).Name + " & " +
Category.GetCategory(doc, diffNameCat.NamingCategoryId2).Name);
return;
}
AssemblyMemberDifferentGeometry differentGeometry = assemblyMemberDifference as AssemblyMemberDifferentGeometry;
if (differentGeometry != null)
{
TaskDialog.Show("Revit", "Member geometry differs");
return;
}
AssemblyMemberDifferentParameters differentParameters = assemblyMemberDifference as AssemblyMemberDifferentParameters;
if (differentParameters != null)
{
TaskDialog.Show("Revit", "Member parameters differs");
return;
}
AssemblyMemberDifferentType differentType = assemblyMemberDifference as AssemblyMemberDifferentType;
if (differentType != null)
{
TaskDialog.Show("Revit", "Element types differ: " + doc.GetElement(differentType.TypeId1).Name + " & " + doc.GetElement(differentType.TypeId2).Name);
return;
}
}
return;
}
See Also