Канал Вадима Муратова про рабочие будни в Ревите. Уведомления о статьях блога и новинках магазина отслеживайте на основном канале @revitblog
Сайт Муратова: muratovbim.pro
Post #419
550
Forwarded from Блог Муратова про Revit MEP

НАВАЙБКОДИЛ ИНТЕРЕСНЫЙ СКРИПТ ДИНАМО
Сегодня утром я проснулся с мыслью: можно сделать скрипт, который будет подключать выбранный фитинг ко всем выбранным коллекторам.
То есть представьте, вам не надо размещать на виде кучу фитингов, потом МодПлюсом протыкивать их каждый и указывать выходы коллектора. Вы выделяете в модели коллектор, указываете семейство фитинга, нажимаете кнопку и все подходящие выходы подключаются сами.
Естественно, я не настолько шарю в программировании, чтобы вот так сесть и написать с нуля. Ну и что мне делать? Я пошёл в Чат ЖПТ, сделал запрос. Он написал какую-то сложновыдуманную композицию из кода. Ладно, закинул в Квен. Квен выдал меньше строк, с большим количеством комментариев. Мне легче было ориентироваться по Квену.
Я не так чтобы совсем тупой вайбкодер, я кое-чего всё же понимаю. Поэтому ИИ я использовал не для получения готового продукта, а для того, чтобы посмотреть, научиться делать ту часть кода, что мне была нужна. Конкретно — это то, как сравнить направления соединителей и правильно развернуть элементы, чтобы их подключить.
В итоге обе нейросети выдали код, который не работал. Я сел и стал построчно анализировать, чего они там написали. Обе нейросети не в курсе, что через Питон нельзя получить имя с ФэмилиСимвола, хотя в АПИ оно есть. Переделал, не виню.
Потом были ещё ошибки, потом не работала та самая ориентация соединителей правильным образом. Всё это методом проб и ошибок, я поправил. Ушло на это у меня часов 5, крепко засел, хотя надо бы другое делать. В итоге у меня всё равно не уверенности, что скрипт будет идеально отрабатывать для всех случаев. Но на тех случаях, что я пробовал, вроде работает.
Итак, чего оно делает:
1. Выделяем в модели нужные коллекторы. Например, хотите подключить три коллектора отопления евроконусами с переходом на сшитик 16 мм.
2. В выпадающей менюшке указываете семейство и тип. Это стандартная менюшка в Динамо, работает она погано, конечно, но это наверное попроще, чем руками вбивать имя и тип семейства.
Выбирать вместе с коллекторами не получится, так как всё выделенное в модели скрипт считает элементами, к которым надо подключаться. Можно намутить проверки категорий и всё такое, но что будет, если и коллектор, и фитинг будут в одной категории? Тут удобного интерфейса нету, но в выпадающей менюшке можно вбивать первые буквы семейства, чтобы упростить поиск.
3. Запускаем скрипт. Он берёт указанное семейство, находит все точки подключения у коллекторов, с которыми совпадают диаметры, и подключает их. Конечно, могут быть сложности, если у коллектора диаметр выходов и диаметр самого коллектора равны. В этом случае лучше сначала подключить сам коллектор, а выходы оставлять напоследок.
Ну и если у фитинга оба диаметра одинаковые, например переход на тот же сшитик 20 мм, то получится, что у нас у коллектор выходы 3/4", то есть 20 мм, у фитинга с обеих сторон тоже 20 мм, тогда будет подключать их по сути рандомно. Это можно обойти, но тут уже многое зависит от того, каким способом делать проверку соединителей, то есть надо семейства под это затачивать уже. Я таким пока не занимался.
Если же у фитинга только один диаметр соединителя совпадает с выходами коллектора, то именно эта сторона фитинга и подключится. Выглядит прикольно, конечно. Но надо тестировать, проверять нюансы. Коллекторы на картинке — это 7 выходов, всего 6 коллекторов, получается тут 7 × 2 × 6 = 84 фитингов, подключились где-то за 5 секунд. На видео постом выше как раз это видно.
Я думаю, что добавлю этот скрипт в свои библиотеки коллекторов водоснабжения и отопления. Непонятно, надо ли выкладывать его отдельно в магазин. Если вам такое интересно, напишите, выложу. Потому что делать релизы библиотек коллекторов только из-за одного скрипта мне не хочется. Так что добавлю как-нибудь, когда доберутся руки до этих библиотек.
Сегодня утром я проснулся с мыслью: можно сделать скрипт, который будет подключать выбранный фитинг ко всем выбранным коллекторам.
То есть представьте, вам не надо размещать на виде кучу фитингов, потом МодПлюсом протыкивать их каждый и указывать выходы коллектора. Вы выделяете в модели коллектор, указываете семейство фитинга, нажимаете кнопку и все подходящие выходы подключаются сами.
Естественно, я не настолько шарю в программировании, чтобы вот так сесть и написать с нуля. Ну и что мне делать? Я пошёл в Чат ЖПТ, сделал запрос. Он написал какую-то сложновыдуманную композицию из кода. Ладно, закинул в Квен. Квен выдал меньше строк, с большим количеством комментариев. Мне легче было ориентироваться по Квену.
Я не так чтобы совсем тупой вайбкодер, я кое-чего всё же понимаю. Поэтому ИИ я использовал не для получения готового продукта, а для того, чтобы посмотреть, научиться делать ту часть кода, что мне была нужна. Конкретно — это то, как сравнить направления соединителей и правильно развернуть элементы, чтобы их подключить.
В итоге обе нейросети выдали код, который не работал. Я сел и стал построчно анализировать, чего они там написали. Обе нейросети не в курсе, что через Питон нельзя получить имя с ФэмилиСимвола, хотя в АПИ оно есть. Переделал, не виню.
Потом были ещё ошибки, потом не работала та самая ориентация соединителей правильным образом. Всё это методом проб и ошибок, я поправил. Ушло на это у меня часов 5, крепко засел, хотя надо бы другое делать. В итоге у меня всё равно не уверенности, что скрипт будет идеально отрабатывать для всех случаев. Но на тех случаях, что я пробовал, вроде работает.
Итак, чего оно делает:
1. Выделяем в модели нужные коллекторы. Например, хотите подключить три коллектора отопления евроконусами с переходом на сшитик 16 мм.
2. В выпадающей менюшке указываете семейство и тип. Это стандартная менюшка в Динамо, работает она погано, конечно, но это наверное попроще, чем руками вбивать имя и тип семейства.
Выбирать вместе с коллекторами не получится, так как всё выделенное в модели скрипт считает элементами, к которым надо подключаться. Можно намутить проверки категорий и всё такое, но что будет, если и коллектор, и фитинг будут в одной категории? Тут удобного интерфейса нету, но в выпадающей менюшке можно вбивать первые буквы семейства, чтобы упростить поиск.
3. Запускаем скрипт. Он берёт указанное семейство, находит все точки подключения у коллекторов, с которыми совпадают диаметры, и подключает их. Конечно, могут быть сложности, если у коллектора диаметр выходов и диаметр самого коллектора равны. В этом случае лучше сначала подключить сам коллектор, а выходы оставлять напоследок.
Ну и если у фитинга оба диаметра одинаковые, например переход на тот же сшитик 20 мм, то получится, что у нас у коллектор выходы 3/4", то есть 20 мм, у фитинга с обеих сторон тоже 20 мм, тогда будет подключать их по сути рандомно. Это можно обойти, но тут уже многое зависит от того, каким способом делать проверку соединителей, то есть надо семейства под это затачивать уже. Я таким пока не занимался.
Если же у фитинга только один диаметр соединителя совпадает с выходами коллектора, то именно эта сторона фитинга и подключится. Выглядит прикольно, конечно. Но надо тестировать, проверять нюансы. Коллекторы на картинке — это 7 выходов, всего 6 коллекторов, получается тут 7 × 2 × 6 = 84 фитингов, подключились где-то за 5 секунд. На видео постом выше как раз это видно.
Я думаю, что добавлю этот скрипт в свои библиотеки коллекторов водоснабжения и отопления. Непонятно, надо ли выкладывать его отдельно в магазин. Если вам такое интересно, напишите, выложу. Потому что делать релизы библиотек коллекторов только из-за одного скрипта мне не хочется. Так что добавлю как-нибудь, когда доберутся руки до этих библиотек.
- 🔥 10
- ❤ 1









