Комбинирование параметров

Автор Тема: Комбинирование параметров  (Прочитано 1647 раз)

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

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Здравствуйте!
Пытаюсь объединить два параметра.
В справке нашел метод, который позволяет, вроде как, это сделать http://www.revitapidocs.com/2018.1/9888db7d-00d0-4fd7-a1a9-cdd1fb5fce16.htm
Но никак не получается.
Вот что я пытаюсь сделать:
Код - C# [Выбрать]
  1.                         UIDocument uidoc = this.ActiveUIDocument;
  2.                         Document doc = uidoc.Document;
  3.                         ICollection<ElementId> selView = uidoc.Selection.GetElementIds();
  4.                         ViewSchedule schedule = doc.GetElement(selView.First()) as ViewSchedule;
  5.                         ScheduleDefinition definition = schedule.Definition;
  6.                         SchedulableField schedField1 = definition.GetSchedulableFields().First();
  7.                        
  8.                         using (Transaction tr = new Transaction(doc)) {
  9.                                 tr.Start("AddField");
  10.                                 ScheduleField addPar = definition.AddField(ScheduleFieldType.CombinedParameter, schedField1.ParameterId);
  11.                                
  12.                                 tr.Commit();
  13.                         }
  14.  

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Комбинирование параметров
« Ответ #1 : 28-05-2018, 15:40:10 »
День добрый!

Вот пример создания такого параметра:
Код - C# [Выбрать]
  1. var definition = viewSchedule.Definition;
  2.  
  3. using (var transaction = new Transaction(doc, "create combined field"))
  4. {
  5.         transaction.Start();
  6.  
  7.         var r1 = TableCellCombinedParameterData.Create();
  8.         r1.ParamId = new ElementId(BuiltInParameter.ALL_MODEL_MARK);
  9.  
  10.         var r2 = TableCellCombinedParameterData.Create();
  11.         r2.ParamId = new ElementId(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS);
  12.  
  13.         var table = new List<TableCellCombinedParameterData>
  14.                 {
  15.                         r1,
  16.                         r2
  17.                 };
  18.  
  19.         definition.InsertCombinedParameterField(table, "my combined field", 0);
  20.  
  21.         transaction.Commit();
  22. }

Важный момент - первый параметр метода InsertCombinedParameterField (IList<TableCellCombinedParameterData> data) должен содержать минимум 2 TableCellCombinedParameterData, иначе выдает ошибку. В UI, в принципе, работает так же, если выбран только 1 параметр, то кнопка "ОК" не доступна

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Re: Комбинирование параметров
« Ответ #2 : 28-05-2018, 15:56:00 »
Большое спасибо!)