Экспорт параметра

Автор Тема: Экспорт параметра  (Прочитано 2820 раз)

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

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Экспорт параметра
« : 13-05-2019, 10:37:48 »
Как осуществить экспорт параметра проекта в файл общих параметров ?



Отмечено как Решение enot 13-05-2019, 13:44:25

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Экспорт параметра
« Ответ #1 : 13-05-2019, 11:20:06 »
1. получить DefinitionFile методом Application.OpenSharedParameterFile()
2. получить/создать группу общих параметров DefinitionGroup
3. создать общий параметр DefinitionGroup.Definitions.Create.

В последний метод передается ExternalDefinitionCreationOptions, там можете задать GUID, имя, тип

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Экспорт параметра
« Ответ #2 : 13-05-2019, 11:28:08 »
если говорить об экспорте всех параметров проекта, то мне нужно все ParameterBindings загнать в SharedParameterFile ?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Экспорт параметра
« Ответ #3 : 13-05-2019, 11:36:41 »
Ну все или не все - Вам лучше знать  ;D

А вообще, не все параметры проекта - общие, т.е. GUID есть. Ну и ещё, в файл общих параметров нельзя добавлять 2 с одинаковыми GUID или именем

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Экспорт параметра
« Ответ #4 : 13-05-2019, 11:44:31 »
А вообще, не все параметры проекта - общие, т.е. GUID есть.
если нет GUID (GUID=null), значит это параметр проекта?

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Экспорт параметра
« Ответ #5 : 13-05-2019, 11:51:57 »
Ну, немножко не так:

Код - C# [Выбрать]
  1. var iterator = doc.ParameterBindings.ForwardIterator();
  2.             while (iterator.MoveNext())
  3.             {
  4.                 var definition = (InternalDefinition)iterator.Key;
  5.  
  6.                 var sharedParameterElement = revitDocument.GetElement(definition.Id) as SharedParameterElement;
  7.  
  8.                 if (sharedParameterElement != null)
  9.                
  10.                 ...
  11.                 ... можем использовать sharedParameterElement.GuidValue
  12.                 ...
  13.  
  14.  

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

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Экспорт параметра
« Ответ #6 : 13-05-2019, 12:00:05 »
Спасибо, понял.
свойство GuidValue есть только у SharedParameterElement (в отличие от ParameterElement )