ADN Club => Revit API => Тема начата: Антон Останин от 21-04-2015, 12:30:49
Название: ReplaceParameter
Отправлено: Антон Останин от 21-04-2015, 12:30:49
Здравствуйте, подскажите, пожалуйста, как изменить значение BuiltInParameterGroup у параметра? Я использовал метод: (https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fs7.postimg.org%2Ftj8nszht3%2F6666.jpg&hash=70cb7ffd8c34b120ca5307813bb97ea6) (http://postimg.org/image/tj8nszht3/) mgr.ReplaceParameter(mgr.get_Parameter(parameter), mgr.get_Parameter(parameter).Definition.Name, builtGroup, true); Выдает исключение: Cannot replace a family parameter with another family parameter, use RenameParameter() instead. С переименованием параметра у меня не возникает проблем, но мне нужно изменить группу.
Название: Re: ReplaceParameter
Отправлено: Александр Игнатович от 22-04-2015, 07:00:33
День добрый. Из описания метода в SDK:
Цитировать
Replace a shared family parameter with a new non-shared family parameter.
т.е. второй параметр должен быть новым, mgr.get_Parameter(parameter).Definition.Name возвращает существующий. Кроме того, насколько я понял из SDK заменять параметры можно shared - non-shared или наоборот, я, конечно, не знаю Вашу задачу, но что-то мне подсказывает, что с этим возможны проблемы.
Наверное, Вам проще будет удалить и пересоздать параметр семейства с нужной группой
Название: Re: ReplaceParameter
Отправлено: Антон Останин от 22-04-2015, 10:28:13
Название: Re: ReplaceParameter
Отправлено: Виктор Чекалин от 22-04-2015, 10:39:31
Антон Останин, добырый день.
В интерфесе это сделать можно, а, значит, и велика вероятность, что это можно сделать и через API.
Нужно копать в сторону метода BindingMap.ReInsert.
Попробовать реализацию смогу позже, а пока, попытайтесь сами. Вот эта (http://adn-cis.org/dostup-k-opredeleniyam-obshhix-parametrov-proekta.html) статья может помочь вам понять, как добраться до определений уже существующих параметров.
Название: Re: ReplaceParameter
Отправлено: Антон Останин от 22-04-2015, 10:48:13
Благодарю, Виктор.
Название: Re: ReplaceParameter
Отправлено: Виктор Чекалин от 23-04-2015, 17:00:29
Проверил. Предложенный мною метод не работает в реадкторе семейств. Выходит решение только одно - создание нового параметра с нужной группой.