Как получить список путей вложенных семейств?

Автор Тема: Как получить список путей вложенных семейств?  (Прочитано 4455 раз)

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

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Добрый день, подскажите как можно получить список всех путей вложенных семейств?

В Revit LookUp это находится в Family Document, но в самом Revit-e я не смог найти это объект.
Подскажите как связаться с этим объектом.

Отмечено как Решение Пашин Евгений 16-12-2015, 11:49:10

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
День добрый.

Можно получить документ семейства из проекта:
Код - C# [Выбрать]
  1. document.EditFamily(family)

Но, возможно, будет правильнее, получив экземпляр семейства - FamilyInstance, вызвать метод
Код - C# [Выбрать]
  1. familyInstance.GetSubComponentIds()

Оффлайн Пашин ЕвгенийАвтор темы

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Спасибо, попробую и отпишусь!

Александр Игнатович, спасибо за направление!
Всё получилось!

Код - vb.net [Выбрать]
  1.     Public Sub Get_Families_Pathname(commandData As ExternalCommandData)
  2.         Dim uiDoc As UIDocument = commandData.Application.ActiveUIDocument
  3.         Dim Doc As Document = uiDoc.Document
  4.  
  5.         Dim collector As FilteredElementCollector = New FilteredElementCollector(Doc).OfClass(GetType(Family))
  6.         For Each fam As Family In collector
  7.             Try
  8.                 ' Получаем документ семейства
  9.                 Dim familyDoc As Document = Doc.EditFamily(fam)
  10.                 If familyDoc IsNot Nothing AndAlso familyDoc.IsFamilyDocument = True Then
  11.                     MsgBox(familyDoc.Title.ToString & ";" & familyDoc.PathName.ToString)
  12.                 End If
  13.             Catch ex As Exception
  14.             End Try
  15.         Next
  16.     End Sub
  17.  
« Последнее редактирование: 16-12-2015, 11:49:02 от Пашин Евгений »