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

ADN Club => Revit API => Тема начата: kuvon от 29-05-2020, 10:16:44

Название: Замена параметров в семействах
Отправлено: kuvon от 29-05-2020, 10:16:44
Форумчане, добрый день!

Мне по очереди необходимо открывать семейства по указанному пути и заменять определенные параметры в них.  Для удобства использую 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"

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

Название: Re: Замена параметров в семействах
Отправлено: Александр Ривилис от 29-05-2020, 10:22:03
kuvon,
Мне кажется, что не хватает:
Код - C# [Выбрать]
  1. replaceFamilyParametr.Start();
  2. // здесь fm.ReplaceParameter(fp, externalDefinition, paramGroup, fpIsIstanse);
  3. replaceFamilyParametr.Commit();
Название: Re: Замена параметров в семействах
Отправлено: Александр Игнатович от 29-05-2020, 10:33:52
Да, транзакции явно не хватает. Ещё можно использовать метод Application.OpenDocumentFile вместо UIApplication.OpenAndActivateDocument
Название: Re: Замена параметров в семействах
Отправлено: kuvon от 29-05-2020, 10:39:42
Александр Ривилис,досадная и глупая ошибка получилась.
Читая различные форумы ввел себя в заблуждение тем, что при использование Using выполнять start и commit не требуется. Большое спасибо!
Название: Re: Замена параметров в семействах
Отправлено: kuvon от 29-05-2020, 10:47:39
Александр Игнатович, спасибо за подсказку!