Замена параметров в семействах

Автор Тема: Замена параметров в семействах  (Прочитано 2055 раз)

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

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

  • ADN OPEN
  • Сообщений: 12
  • Карма: 0
Форумчане, добрый день!

Мне по очереди необходимо открывать семейства по указанному пути и заменять определенные параметры в них.  Для удобства использую Win form, в которой отображаются найденные семейства и их параметры. Тут же пользователь выбирает какие из параметров под замену.

Насколько мне известно без открытия семейства внести изменения в него не выйдет, поэтому по очереди пытаюсь открыть семейство, найти выбранный параметр и выполнить замену (не самый оптимальный путь, но пока так).

Открытие семейства выполняю с помощью
Код - C# [Выбрать]
  1. commandData.Application.OpenAndActivateDocument(fToOpen);
Далее пытаюсь заменить параметр семейства
Код - C# [Выбрать]
  1. using (Transaction replaceFamilyParametr = new Transaction(doc,"ReplaceParam"))
  2.     {
  3.         fm.ReplaceParameter(fp, externalDefinition, paramGroup, fpIsIstanse);
  4.     }
  5.  
И вот при первой же попытке замены получаю сообщение "A sub-transaction can only be active inside an open Transaction"

Собственно вопрос как сделать, чтобы заработало?)


Отмечено как Решение kuvon 29-05-2020, 10:39:47

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Замена параметров в семействах
« Ответ #1 : 29-05-2020, 10:22:03 »
kuvon,
Мне кажется, что не хватает:
Код - C# [Выбрать]
  1. replaceFamilyParametr.Start();
  2. // здесь fm.ReplaceParameter(fp, externalDefinition, paramGroup, fpIsIstanse);
  3. replaceFamilyParametr.Commit();
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Замена параметров в семействах
« Ответ #2 : 29-05-2020, 10:33:52 »
Да, транзакции явно не хватает. Ещё можно использовать метод Application.OpenDocumentFile вместо UIApplication.OpenAndActivateDocument

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

  • ADN OPEN
  • Сообщений: 12
  • Карма: 0
Re: Замена параметров в семействах
« Ответ #3 : 29-05-2020, 10:39:42 »
Александр Ривилис,досадная и глупая ошибка получилась.
Читая различные форумы ввел себя в заблуждение тем, что при использование Using выполнять start и commit не требуется. Большое спасибо!

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

  • ADN OPEN
  • Сообщений: 12
  • Карма: 0
Re: Замена параметров в семействах
« Ответ #4 : 29-05-2020, 10:47:39 »
Александр Игнатович, спасибо за подсказку!