protected bool Equals(RevitElement other)
 {
     return(string.Equals(Name, other.Name) &&
            string.Equals(Category, other.Category) &&
            string.Equals(Level, other.Level) &&
            string.Equals(Parameters, other.Parameters) &&
            string.Equals(SharedParameters, other.Parameters) && //we dont compare worksetId
            string.Equals(Location, other.Location) &&
            string.Equals(BoundingBox, other.BoundingBox) &&
            string.Equals(Centroid, other.Centroid) &&
            string.Equals(Volume, other.Volume) &&
            string.Equals(TypeId, other.TypeId));
 }
 public RevitElement(RevitElement project, RevitElement model, List <History> history)
 {
     Id                 = project.Id;
     VersionId          = project.VersionId;
     Guid               = project.Guid;
     Name               = model.Name;
     ElementId          = model.ElementId;
     Category           = model.Category;
     Level              = model.Level;
     Parameters         = model.Parameters;
     GeometryParameters = model.GeometryParameters;
     SharedParameters   = model.SharedParameters;
     WorksetId          = model.WorksetId;
     Location           = model.Location;
     BoundingBox        = model.BoundingBox;
     Centroid           = model.Centroid;
     TypeId             = model.TypeId;
     Volume             = model.Volume;
 }