// View Updates private IEnumerable <IEncounterable> SearchDatabase() { var settings = GetSearchSettings(); var moves = settings.Moves.ToArray(); // If nothing is specified, instead of just returning all possible encounters, just return nothing. if (settings.Species <= 0 && moves.Length == 0) { return(Array.Empty <IEncounterable>()); } var pk = SAV.BlankPKM; var species = settings.Species <= 0 ? Enumerable.Range(1, SAV.MaxSpeciesID) : new[] { settings.Species }; var versions = settings.GetVersions(SAV); var results = species.SelectMany(z => GetEncounters(z, moves, pk, versions)); if (settings.SearchEgg != null) { results = results.Where(z => z.EggEncounter == settings.SearchEgg); } // return filtered results var comparer = new ReferenceComparer <IEncounterable>(); results = results.Distinct(comparer); // only distinct objects // when all sprites in new size are available, remove this filter results = SAV is SAV8SWSH ? results.Where(z => ((PersonalInfoSWSH)PersonalTable.SWSH.GetFormeEntry(z.Species, z.Form)).IsPresentInGame) : results.Where(z => z.Generation <= 7); return(results); }
// View Updates private IEnumerable <IEncounterable> SearchDatabase() { var settings = GetSearchSettings(); var moves = settings.Moves.ToArray(); var pk = SAV.BlankPKM; var species = settings.Species <= 0 ? Enumerable.Range(1, SAV.MaxSpeciesID) : new[] { settings.Species }; var versions = settings.GetVersions(SAV); var results = species.SelectMany(z => GetEncounters(z, moves, pk, versions)); if (settings.SearchEgg != null) { results = results.Where(z => z.EggEncounter == settings.SearchEgg); } // return filtered results var comparer = new ReferenceComparer <IEncounterable>(); results = results.Distinct(comparer); // only distinct objects // when PK7->PK8 conversion is possible (and sprites in new size are available, remove this filter) results = SAV is SAV8SWSH ? results.Where(z => !(z is IGeneration g) || g.Generation == 8) : results.Where(z => !(z is IGeneration g) || g.Generation <= 7); return(results); }
/// <summary> /// Determine walls in linked file intersecting pipe /// </summary> public void GetWalls(UIDocument uidoc) { Document doc = uidoc.Document; Reference pipeRef = uidoc.Selection.PickObject( ObjectType.Element); Element pipeElem = doc.GetElement(pipeRef); LocationCurve lc = pipeElem.Location as LocationCurve; Curve curve = lc.Curve; ReferenceComparer reference1 = new ReferenceComparer(); ElementFilter filter = new ElementCategoryFilter( BuiltInCategory.OST_Walls); FilteredElementCollector collector = new FilteredElementCollector(doc); Func <View3D, bool> isNotTemplate = v3 => !(v3.IsTemplate); View3D view3D = collector .OfClass(typeof(View3D)) .Cast <View3D>() .First <View3D>(isNotTemplate); ReferenceIntersector refIntersector = new ReferenceIntersector( filter, FindReferenceTarget.Element, view3D); refIntersector.FindReferencesInRevitLinks = true; IList <ReferenceWithContext> referenceWithContext = refIntersector.Find( curve.GetEndPoint(0), (curve as Line).Direction); IList <Reference> references = referenceWithContext .Select(p => p.GetReference()) .Distinct(reference1) .Where(p => p.GlobalPoint.DistanceTo( curve.GetEndPoint(0)) < curve.Length) .ToList(); IList <Element> walls = new List <Element>(); foreach (Reference reference in references) { RevitLinkInstance instance = doc.GetElement(reference) as RevitLinkInstance; Document linkDoc = instance.GetLinkDocument(); Element element = linkDoc.GetElement(reference.LinkedElementId); walls.Add(element); } TaskDialog.Show("Count of wall", walls.Count.ToString()); }
private void SortFiles() { CollectionToArray(); ReferenceComparer comparer = new ReferenceComparer(); if (_assemblyReferences != null) { Array.Sort(_assemblyReferences, comparer); } if (_fileReferences != null) { Array.Sort(_fileReferences, comparer); } }
public static Node <T> DetectLoop <T>(Node <T> head) { ReferenceComparer <Node <T> > comparer = new ReferenceComparer <Node <T> >(); Dictionary <Node <T>, int> dic = new Dictionary <Node <T>, int>(comparer); while (head != null) { if (dic.ContainsKey(head)) { return(head); } else { dic.Add(head, 1); } head = head.Next; } return(null); }
// View Updates private IEnumerable <IEncounterable> SearchDatabase() { var settings = GetSearchSettings(); var moves = settings.Moves.ToArray(); var pk = SAV.BlankPKM; var species = settings.Species <= 0 ? Enumerable.Range(1, SAV.MaxSpeciesID) : new[] { settings.Species }; var versions = settings.GetVersions(SAV); var results = species.SelectMany(z => GetEncounters(z, moves, pk, versions)); if (settings.SearchEgg != null) { results = results.Where(z => z.EggEncounter == settings.SearchEgg); } // return filtered results var comparer = new ReferenceComparer <IEncounterable>(); return(results.Distinct(comparer)); // only distinct objects }
public static IList<ReferenceEntity> GetAllReferences(string content, int reportId) { IList<ReferenceEntity> results = new List<ReferenceEntity>(); if (content == null) { return results; } string pattern = "{(?!IMG-[0-9]*)[^}]+}"; MatchCollection matches; Regex referenceRegex = new Regex(pattern); matches = referenceRegex.Matches(content); ARTService service = new ARTService(); foreach (Match match in matches) { ReferenceEntity reference = service.GetReferenceByShortName(reportId, match.Value.Substring(1, match.Value.Length - 2)); ReferenceComparer comparer = new ReferenceComparer(); if (reference != null && reference.ReferenceId != 0 && !results.Contains(reference, comparer)) { results.Add(reference); } } return results; }
static ReferenceComparer() { Instance = new ReferenceComparer <T> (); }
public ObjectDumper() { ReferenceComparer refComparer = new ReferenceComparer(); this.objects = new Hashtable(refComparer); }
private void SortFiles() { this.CollectionToArray(); ReferenceComparer comparer = new ReferenceComparer(); if (this.assemblyReferences != null) { Array.Sort(this.assemblyReferences, comparer); } if (this.fileReferences != null) { Array.Sort(this.fileReferences, comparer); } }
private void SortFiles() { CollectionToArray(); ReferenceComparer comparer = new ReferenceComparer(); if (_assemblyReferences != null) Array.Sort(_assemblyReferences, comparer); if (_fileReferences != null) Array.Sort(_fileReferences, comparer); }