StorageType из SharedParameterElement

Автор Тема: StorageType из SharedParameterElement  (Прочитано 2450 раз)

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

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
StorageType из SharedParameterElement
« : 11-04-2022, 14:01:22 »
как получить StorageType из SharedParameterElement

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: StorageType из SharedParameterElement
« Ответ #1 : 11-04-2022, 15:03:28 »
StorageType есть только у Parameter-а + возможность получить для BuiltInParameter-ов. Возможно, тебе поможет InternalDefinition, возвращаемый методом GetDefinition(), там есть возможность получить GetDataType.

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: StorageType из SharedParameterElement
« Ответ #2 : 11-04-2022, 15:08:18 »
GetDataType это для 22 версии

Пробовал
doc.get_TypeOfStorage(SharedParameterElement.GetDefinition().BuiltInParameter), но там null где то возвращает

Такой вопрос ,  uidoc.Document и ViewSchedule.Document - это одно и тоже?
« Последнее редактирование: 11-04-2022, 16:08:42 от enot »

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: StorageType из SharedParameterElement
« Ответ #3 : 11-04-2022, 15:26:47 »
GetDataType это для 22 версии

Свойство UnitType тогда, смысл примерно тот же.

doc.get_TypeOfStorage(SharedParameterElement.GetDefinition().BuiltInParameter)

Ну так откуда там BuiltInParameter-у взяться?


Такой вопрос ,  uidoc.Document и ViewSchedule.Document - это одно и тоже?

да

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: StorageType из SharedParameterElement
« Ответ #4 : 11-04-2022, 15:49:50 »
StorageType есть только у Parameter-а
а Parameter есть только у Element-а )

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: StorageType из SharedParameterElement
« Ответ #5 : 11-04-2022, 15:53:59 »
А это что тогда?



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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: StorageType из SharedParameterElement
« Ответ #6 : 11-04-2022, 15:55:06 »
Пардон, да, криво прочитал.

Да, так и есть, только у Element-а. Ну щито поделать

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: StorageType из SharedParameterElement
« Ответ #7 : 11-04-2022, 15:57:21 »
взять первый элемент

Код - C# [Выбрать]
  1.  var schedule_first_elemen = new FilteredElementCollector(doc, schedule.Id)
  2.                 .First()
  3.  
  4. SchedulableField field = schedule.Definition.GetField(id).GetSchedulableField();
  5.  
  6. schedule_first_element.GetOrderedParameters().Where(x=>x.Id==(field.ParameterId)).FirstOrDefault() .StorageType

сейчас попробую...

не, такое не работает)

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: StorageType из SharedParameterElement
« Ответ #8 : 11-04-2022, 16:02:45 »
Ага, и с большой вероятностью упасть с null reference exception

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: StorageType из SharedParameterElement
« Ответ #9 : 11-04-2022, 16:03:27 »
Ага, и с большой вероятностью упасть с null reference exception
- что и вышло

Почему такое происходит? все элементы одной категории

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: StorageType из SharedParameterElement
« Ответ #10 : 11-04-2022, 16:45:50 »
Да тут целое минное поле, где может упасть...

Во-первых, в модели может и не быть элементов, попадающих в спецификацию или вообще не быть элементов с нужным параметром
Во-вторых, если речь о пользовательских семействах, то параметр может и не присутствовать в некоторых элементах спецификации
В-третьих, в спецификации могут быть элементы из связанных файлов, есть вероятность получить RevitLinkInstance в schedule_first_element
В-четвёртых, в спецификации может и не быть нужного столбца

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: StorageType из SharedParameterElement
« Ответ #11 : 11-04-2022, 16:55:09 »
Свойство UnitType тогда,
тогда уж лучше это