Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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());
        }