/// <summary> /// Gets intersect element list. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="room"></param> /// <param name="doc"></param> /// <returns></returns> public static List <T> GetIntersectElements <T>(this SpatialElement room, Document doc) where T : Element { if (room == null) { throw new ArgumentNullException(nameof(room)); } if (doc == null) { throw new ArgumentNullException(nameof(doc)); } var results = new List <T>(); var elms = room.GetIntersectElements(doc); foreach (var elm in elms) { if (elm is T t) { results.Add(t); } } return(results); }
/// <summary> /// Gets intersect element list. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="room"></param> /// <param name="doc"></param> /// <returns></returns> public static List <T> GetIntersectElements <T>(this SpatialElement room, Document doc) where T : Element { if (room is null) { throw new ArgumentNullException(nameof(room)); } if (doc is null) { throw new ArgumentNullException(nameof(doc)); } return(room.GetIntersectElements(doc).Where(w => w is T).Cast <T>().ToList()); }