Files
KGdev.BI3D.Revit.Addin/KGdev.BI3D.Revit.Common/Models/LinkedElementIdPath.cs
2024-01-08 09:30:50 +08:00

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;
}
}
}