Получение FamilyInstance

Автор Тема: Получение FamilyInstance  (Прочитано 4216 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн asiaАвтор темы

  • ADN OPEN
  • Сообщений: 27
  • Карма: 0
Получение FamilyInstance
« : 04-11-2020, 10:54:34 »
Добрый день!
Столкнулся с такой проблемой: мне нужно разбить FamilyInstance на компоненты. В классе IExternalCommand делаю так:
Код - C# [Выбрать]
  1. Reference pickedObj = uidoc.Selection.PickObject(Autodesk.Revit.UI.Selection.ObjectType.Element);
  2. if (pickedObj != null)
  3. {
  4.      ElementId elementId = pickedObj.ElementId;
  5.      Element element = doc.GetElement(elementId);
  6.      familyInstance = element as FamilyInstance;
  7.      ICollection<ElementId> subElementsSet = familyInstance.GetSubComponentIds();
  8. }
Все работает,
но, когда я передаю имя FamilyInstance в другой класс
Код - C# [Выбрать]
  1. public static string FamName;
  2. FamName = familyInstance.Name;
и уже в этом классе пытаюсь получить FamilyInstance, используя имя,
Код - C# [Выбрать]
  1. string getName;
  2. getName = FamilyWeight.FamName;
  3. Element element = new FilteredElementCollector(doc).WhereElementIsNotElementType().ToElements().Where(o => o.Name.Equals(getName)).First();
  4. FamilyInstance fi = element as FamilyInstance;
получаю ошибку System.NullReferenceException, получить FamilyInstance не удается.

Подскажите, пожалуйста, в чем может быть проблема?

Отмечено как Решение asia 05-11-2020, 11:16:57

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Получение FamilyInstance
« Ответ #1 : 05-11-2020, 10:54:36 »
Совет №1. погуглить немного о поиске в модели Revit, т.е. об использовании FilteredElementCollector.

Ты шерстишь всю модель и пытаешься найти элементы по имени, судя по тому, что ты не получил InvalidOperationException с сообщением "The source sequence is empty.", то найденный элемент у тебя не инстанс семейства, а что-то другое. Отсюда

Совет №2. используй отладчик, ты бы сам увидел проблему.

Оффлайн asiaАвтор темы

  • ADN OPEN
  • Сообщений: 27
  • Карма: 0
Re: Получение FamilyInstance
« Ответ #2 : 05-11-2020, 11:16:54 »
Невнимательно писал :-\ . Спасибо!