using System; using System.Collections.Generic; using Autodesk.Revit.DB; namespace KGdev.BI3D.Revit.Common.Models { public class LinkedElementIdPath { public List ElementIds { get; private set; } = new List(); public LinkedElementIdPath(IList 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; } } }