Как добавить экземпляру семейства параметр из файла общих?

Автор Тема: Как добавить экземпляру семейства параметр из файла общих?  (Прочитано 7856 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Здравствуйте, коллеги!

Интересует ответ на вопрос: можно ли добавлять параметры экземпляру семейства из файла общих параметров, но не к самому семейству???

Спасибо, заранее.

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Да, для этого существуют параметры проекта, открыть проект, вкладка "Управление", кнопка "Параметры проекта"

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

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Окей, значит теоретически это возможно )

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Так и практически проблем больших не представляет  ;D

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v

Отмечено как Решение Пашин Евгений 18-04-2016, 12:15:59

Оффлайн Виктор Чекалин

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Евгений,
Сначала открываешь файл общих параметров с помощью Applicaion.OpenSharedParameterFile. Перед этим нужно указать путь к файлу  с помощью Application.SharedParametersFilename. В файле ищешь нужный параметр и ивлекаешь из него Definition.
После этого нужно привязать этот параметр к определенным категориям. Это делается с помощью класса BindingMap.

Вот пример кода из файла справки класса InstanceBinding:
Код - C# [Выбрать]
  1. public bool SetNewParameterToInstanceWall(UIApplication app, DefinitionFile myDefinitionFile)
  2. {
  3.     // create a new group in the shared parameters file
  4.     DefinitionGroups myGroups = myDefinitionFile.Groups;
  5.     DefinitionGroup myGroup = myGroups.Create("MyParameters1");
  6.  
  7.     // create an instance definition in definition group MyParameters
  8.     ExternalDefinitionCreationOptions option = new ExternalDefinitionCreationOptions("Instance_ProductDate", ParameterType.Text);
  9.     // Don't let the user modify the value, only the API
  10.     option.UserModifiable = false;
  11.     // Set tooltip
  12.     option.Description = "Wall product date";
  13.     Definition myDefinition_ProductDate = myGroup.Definitions.Create(option);
  14.  
  15.     // create a category set and insert category of wall to it
  16.     CategorySet myCategories = app.Application.Create.NewCategorySet();
  17.     // use BuiltInCategory to get category of wall
  18.     Category myCategory = app.ActiveUIDocument.Document.Settings.Categories.get_Item(
  19.                                 BuiltInCategory.OST_Walls);
  20.     myCategories.Insert(myCategory);
  21.  
  22.     //Create an instance of InstanceBinding
  23.     InstanceBinding instanceBinding = app.Application.Create.NewInstanceBinding(myCategories);
  24.  
  25.     // Get the BingdingMap of current document.
  26.     BindingMap bindingMap = app.ActiveUIDocument.Document.ParameterBindings;
  27.  
  28.     // Bind the definitions to the document
  29.     bool instanceBindOK = bindingMap.Insert(myDefinition_ProductDate,
  30.                                     instanceBinding, BuiltInParameterGroup.PG_TEXT);
  31.     return instanceBindOK;
  32. }
« Последнее редактирование: 18-04-2016, 12:58:59 от Виктор Чекалин »

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

  • ADN PRO
  • *
  • Сообщений: 662
  • Карма: 12
  • Skype: pashin.evgeniy
Шикарно!!! Допилю на своём кривом языке и выложу )))