Копирование значения параметров из одного элемента в другой
Главная › Форумы › Задать вопрос › Копирование значения параметров из одного элемента в другой
- В этой теме 39 ответов, 7 участников, последнее обновление 6 лет, 4 месяца назад сделано JON73.
-
АвторСообщения
-
Всем привет. Прошу помощи в написании скрипта dynamo. Хочу копировать значения пары параметров из одного элемента в другой, соседний (контекст: в системе ОВ УЖЕ проставлены значения параметрам, при вставке регулирующей арматуры нужно сразу вбивать вставленному элементу те же значения, что и у соседнего). Попытался кое-что изобразить, но оно плохо работает. Получившийся скрипт может записать значение в параметр по два раза, если выделить не два, а больше элементов и я не знаю, как сделать предварительное обнуление. Да и вообще, наверняка вся конструкция сомнительна. Как его можно улучшить или переделать? Спасибо
Вопросы:
- Каким образом будете элементы выбирать? Вручную? Тогда задача очень простая
Слишком много движений мышкой. Хочу выбирать элементы за одно движение через ElementS и в скрипте автоматически выбирать исходный и целевой (или целевые). А еще лучше выбирать не этим нодом, тк он не позволяет использовать Ctrl и Shift, а просто выбрать в ревит любыми способами и нажать кнопку Запуск. Прогресс уже разработал такую фишку?
Семен, не совсем понял, что и куда надо вставлять и откуда это брать. нужна ли последовательность? или просто в соседние надо скопировать?
можете скинуть часть модели и на скрине показать основные действия, которые должен делать скрипт?Поясню еще разок, какую последовательность действий человека я жажду автоматизировать:
- Выбрать исходный Элемент_А;
- Скопировать значение Параметра_1;
- Выбрать целевой Элемент_Б;
- Вставить скопированное значение в Параметр_1 целевого Элемента_Б;
- Снова выбрать исходный Элемент_А;
- Скопировать значение Параметра_2;
- Снова выбрать целевой Элемент_Б;
- Вставить скопированное значение в Параметр_2 целевого Элемента_Б.
элемент А от Б отличается? элементы А и Б идут друг за другом, пересекаются(соединяются)?
Элемент_А это воздуховод, в котором проставлены значения параметров 1 и 2. Я вставляю в этот воздуховод Элемент_Б – клапан, в котором значения параметров 1 и 2 пустые.
Автоматизировать задачу возможно.
для себя формулирую задачу:
1. Найти все клапаны в проекте
2. Найти все воздуховоды в проекте
3. Определить пару: ближайший воздуховод и ближайший клапан
4. Сделать “обмен” параметрами в паре.Задача для первого скрипта в Динамо сложная. Тут без знаний питона не обойтись.
п.3 решается сравниванием координат коннекторов воздуховодов и фитингов. На реализацию скрипта пошагово с Вашей подготовкой уйдет минимум неделя. Надо будет перечитать RevitApi, разобраться в Питоне, понять как работает ДотНет. Готовы на такое?
Если да, то для начала получите все воздуховоды и все коннекторы этих воздуховодов.Полистал РевитАпи. Можно воспользоваться методом IsConnectedTo.
Т.е. найти все фитинги. Найти коннекторы фитингов.
Для первого попавшегося фитинга найти к какому коннектору воздуховода он подключен методом Connector.Owner. Получаем пару фитинг-воздуховод и идем в простой пункт 4.Можно решить эту задачу стандартными нодами
1 и 2 пункт выполняются выбором по категории всех элементов
3 пункт решается определением пересечений геометрий
4 пункт дело техникиссылка на файл и скрипт
Спасибо вам за помощь! Всё работает хорошо в современном динамо. Но эта конструкция на работает в 0,9 версии динамо. Можно ее как-нибудь заменить?
а зачем менять, если эти 2 версии могут существовать вместе?
Нынешний проект в ревит 2015, а на него новые версии не устанавливаются
версия 1.2 прекрасно работает, можно её поставить
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.