61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Autodesk.Revit.DB;
|
|
|
|
namespace KGdev.BI3D.Revit.Common.Models
|
|
{
|
|
public class LinkedElementIdPath
|
|
{
|
|
public List<ElementId> ElementIds { get; private set; } = new List<ElementId>();
|
|
|
|
public LinkedElementIdPath(IList<ElementId> elementIds)
|
|
{
|
|
this.ElementIds.AddRange(elementIds);
|
|
}
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
LinkedElementIdPath linkedElementIdPath = obj as LinkedElementIdPath;
|
|
bool flag = linkedElementIdPath == null;
|
|
bool flag2;
|
|
if (flag)
|
|
{
|
|
flag2 = false;
|
|
}
|
|
else
|
|
{
|
|
bool flag3 = this.ElementIds.Count != linkedElementIdPath.ElementIds.Count;
|
|
if (flag3)
|
|
{
|
|
flag2 = false;
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < this.ElementIds.Count; i++)
|
|
{
|
|
int integerValue = this.ElementIds[i].IntegerValue;
|
|
int integerValue2 = linkedElementIdPath.ElementIds[i].IntegerValue;
|
|
bool flag4 = integerValue != integerValue2;
|
|
if (flag4)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
flag2 = true;
|
|
}
|
|
}
|
|
return flag2;
|
|
}
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
int num = this.ElementIds.Count.GetHashCode();
|
|
foreach (ElementId elementId in this.ElementIds)
|
|
{
|
|
num ^= elementId.IntegerValue.GetHashCode();
|
|
}
|
|
return num;
|
|
}
|
|
}
|
|
}
|