FabricationPart -> PartType

Автор Тема: FabricationPart -> PartType  (Прочитано 1239 раз)

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

Оффлайн Алексей КузинАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 116
  • Карма: 8
FabricationPart -> PartType
« : 10-09-2019, 18:05:34 »
Доброго всем дня.
Столкнулся с такой задачей - имею документ в котором есть объекты FabricationPart.
необходимо получить информацию объектах, а именно вытащить тип парта, по аналогии с тем как это делается для DuctFitting

Код - C# [Выбрать]
  1. if (element is FamilyInstance fi)
  2. {
  3.     if (fi.MEPModel is MechanicalFitting mepModel)
  4.         return mepModel.PartType;
  5. }

Я верю в то, что где то в описании FabricationPart есть что то подобное PartType как для MechanicalFitting.
Пока есть мысли получить FabricationPartType и по имени FamilyName сделать сопоставление, но я не уверен, что имена будут всегда одинаковыми. Вообще с этими партами мало работал, может есть человек который может проконсультировать.


           
Код - C# [Выбрать]
  1.  if (element is Autodesk.Revit.DB.FabricationPart fabPart)
  2.             {
  3.                 var famId = fabPart.GetTypeId();
  4.                 if (famId != ElementId.InvalidElementId)
  5.                 {
  6.                     var partType = document.GetElement(famId) as FabricationPartType;
  7.                     if (partType != null)
  8.                     {
  9.                         var fn = partType.FamilyName;
  10.                         //TODO ...
  11.                     }
  12.                 }
  13.             }


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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: FabricationPart -> PartType
« Ответ #1 : 10-09-2019, 18:24:57 »
Честно скажу, особо с ними пока работать не приходилось.

Подсмотрел в SDK методы самого FabricationPart-а: там есть IsAHanger, IsAStraight, IsATap, вроде бы как раз то, что нужно. Есть ещё IsTheSameAs для их сравнения. Плюсом для идентификации можно использовать связку значений свойств ServiceId и ItemCustomId

Оффлайн Алексей КузинАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 116
  • Карма: 8
Re: FabricationPart -> PartType
« Ответ #2 : 10-09-2019, 18:45:26 »
Цитировать
IsAHanger, IsAStraight, IsATap
Да я видел эти вещи, но этого мало.   Как вариант ещё анализировать расположение коннекторов и их количество чтобы определить типы хотя бы примерно. Но это всё такое...
Например задача распознать Tee и Pants. Я понимаю что у этих объектов могут быть отличные типы, но хотя бы что то...