Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Vladislav от 21-08-2019, 13:18:37

Название: Определение типа объекта
Отправлено: Vladislav от 21-08-2019, 13:18:37
Добрый день. Возник следующий вопрос.
Есть массив в коде на C#.
Код - C# [Выбрать]
  1.  
  2. FilteredElementCollector ElCol = null;
  3. ElCol = new FilteredElementCollector(doc);
  4. RoomList = ElCol.OfClass(typeof(SpatialElement)).ToElements();
  5.  

Подскажите пожалуйста, как из кода на C++/CLI узнать, является ли конкретный элемент этого массива
элементом класса Room или нет?
Благодарю за информацию.
Название: Re: Определение типа объекта
Отправлено: Александр Пекшев aka Modis от 21-08-2019, 13:20:55
Код - C# [Выбрать]
  1. .Where(e => e is Room)
Название: Re: Определение типа объекта
Отправлено: Александр Игнатович от 21-08-2019, 13:26:44
Добавить еще:

Код - C# [Выбрать]
  1. .OfClass(...).OfCategory(BuiltInCategory.OST_Rooms)

и тогда не надо будет определять :-).

Альтернатива вместо .Where(... как предложил Александр писать .OfType<Room>()

Вообще посмотрите LINQ методы, там есть прекрасные вещи, .Cast, .OfType и т.д. для работы с коллекциями