public static T Find <T>(Document document, IntegerId integerId, double min = Tolerance.Distance, double max = Tolerance.MacroDistance) where T : Element { if (document == null || integerId == null) { return(null); } T result = Core.Revit.Query.Element <T>(document, integerId); if (result != null) { return(result); } if (!integerId.TryGetValue(RevitIdParameter.Location, out ISAMGeometry3D sAMGeometry)) { return(null); } List <Element> elements = null; if (integerId.TryGetValue(Core.Revit.RevitIdParameter.CategoryId, out int categoryId) && categoryId != -1) { BuiltInCategory builtInCategory = (BuiltInCategory)categoryId; elements = new FilteredElementCollector(document).OfCategory(builtInCategory).ToList(); } return(Find <T>(elements, sAMGeometry, min, max)); }
public static T Element <T>(this Document document, IntegerId integerId, bool includeName = false) where T : Element { if (integerId == null || document == null) { return(null); } T result = null; ElementId elementId = integerId.ElementId(); if (elementId != null && elementId != Autodesk.Revit.DB.ElementId.InvalidElementId) { result = document.GetElement(elementId) as T; } if (result == null) { string uniqueId = integerId.UniqueId(); if (!string.IsNullOrWhiteSpace(uniqueId)) { result = document.GetElement(uniqueId) as T; } } if (result == null && includeName) { if (integerId.TryGetValue(RevitIdParameter.FullName, out string fullName) && !string.IsNullOrWhiteSpace(fullName)) { BuiltInCategory?builtInCategory = integerId.BuiltInCategory(); if (builtInCategory != null && builtInCategory.HasValue && builtInCategory.Value != Autodesk.Revit.DB.BuiltInCategory.INVALID) { List <Element> elements = new FilteredElementCollector(document).OfCategory(builtInCategory.Value).ToList(); if (elements != null) { foreach (Element element in elements) { T t = element as T; if (t == null) { continue; } string fullName_Element = FullName(t); if (fullName.Equals(fullName_Element)) { return(t); } } } } } } return(result); }
public static string UniqueId(this IntegerId integerId) { if (integerId == null) { return(null); } if (!integerId.TryGetValue(RevitIdParameter.UniqueId, out string result)) { return(null); } return(result); }