Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Пашин Евгений от 15-04-2016, 13:55:40

Название: Как добавить экземпляру семейства параметр из файла общих?
Отправлено: Пашин Евгений от 15-04-2016, 13:55:40
Здравствуйте, коллеги!

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

Спасибо, заранее.
Название: Re: Как добавить экземпляру семейства параметр из файла общих?
Отправлено: Александр Игнатович от 15-04-2016, 13:58:39
Да, для этого существуют параметры проекта, открыть проект, вкладка "Управление", кнопка "Параметры проекта"
Название: Re: Как добавить экземпляру семейства параметр из файла общих?
Отправлено: Пашин Евгений от 15-04-2016, 14:25:50
Окей, значит теоретически это возможно )
Название: Re: Как добавить экземпляру семейства параметр из файла общих?
Отправлено: Александр Игнатович от 15-04-2016, 14:26:46
Так и практически проблем больших не представляет  ;D
Название: Re: Как добавить экземпляру семейства параметр из файла общих?
Отправлено: Виктор Чекалин от 18-04-2016, 10:29:29
можно ли
Можно:)
Название: Re: Как добавить экземпляру семейства параметр из файла общих?
Отправлено: Виктор Чекалин от 18-04-2016, 10:36:15
Евгений,
Сначала открываешь файл общих параметров с помощью 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. }
Название: Re: Как добавить экземпляру семейства параметр из файла общих?
Отправлено: Пашин Евгений от 18-04-2016, 12:15:54
Шикарно!!! Допилю на своём кривом языке и выложу )))