Удаление и добавление общего параметра

Автор Тема: Удаление и добавление общего параметра  (Прочитано 4255 раз)

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

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

  • ADN OPEN
  • Сообщений: 11
  • Карма: 0
Добрый день,возникает ошибка в  следующей ситуации-удаление общего параметра у элемента при помощи doc.ParameterBindings.Remove(def), а потом снова добавление того же параметра, с тем же GUID и именем, из того же файла общих параметров тому же элементу. Меняю GUID-добавление происходит нормально. Возможно ли повторное добавление параметра после удаления или уже должен быть другой GUID обязательно?

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

  • Administrator
  • *****
  • Сообщений: 694
  • Карма: 111
  • Skype: chekalin-v
Анна, добрый день.

Нужен код, описание ошибки и на какой строке возникает ошибка.
Я сейчас попробовал на тестовом примере - все отлично удаляется и повторно вставляется. Revit 2016. Вот мой код:
Код - C# [Выбрать]
  1.                 public void SharedParameterReInsert()
  2.                 {
  3.                         var doc = ActiveUIDocument.Document;
  4.                        
  5.                         doc.Application.SharedParametersFilename = @"d:\adn-cis.txt";
  6.                        
  7.                         var defFile = doc.Application.OpenSharedParameterFile();
  8.                        
  9.                         var group = defFile.Groups.get_Item("adn-cis") as DefinitionGroup;
  10.                         var def = group.Definitions.get_Item("Test") as Definition;
  11.                        
  12.                         var bindingMap =
  13.                 doc.ParameterBindings;
  14.                        
  15.                         CategorySet categorySet =
  16.                     doc.Application
  17.                         .Create
  18.                         .NewCategorySet();
  19.  
  20.                         categorySet.Insert(Category.GetCategory(doc, BuiltInCategory.OST_Walls));
  21.            
  22.                         using (var t = new Transaction(doc, "Вставляем параметр"))
  23.                         {
  24.                                 t.Start();
  25.                         var binding =
  26.                             doc.Application
  27.                                 .Create
  28.                                 .NewTypeBinding(categorySet);
  29.                    
  30.                         bindingMap.Insert(def, binding);
  31.                        
  32.                         t.Commit();
  33.                         }
  34.                        
  35.                         using (var t = new Transaction(doc, "Удаляем параметр"))
  36.                         {
  37.                                 t.Start();                     
  38.                    
  39.                                 bindingMap.Remove(def);
  40.                        
  41.                         t.Commit();
  42.                         }
  43.                        
  44.                         using (var t = new Transaction(doc, "Снова вставляем параметр"))
  45.                         {
  46.                                 t.Start();
  47.                         var binding =
  48.                             doc.Application
  49.                                 .Create
  50.                                 .NewTypeBinding(categorySet);
  51.                    
  52.                         bindingMap.Insert(def, binding);
  53.                        
  54.                         t.Commit();
  55.                         }
  56.                 }

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

  • ADN OPEN
  • Сообщений: 11
  • Карма: 0
Спасибо большое! Буду разбираться сама пока. Если не получится - снова приду за помощью.