Эта статья — интервью с Александром Пекшевым. В нём он расскажет, как стал писать плагины, с чем сталкивается при разработке и почему многопоточность в Ревите — глупость. Текст написал по итогам созвона, поэтому стиль речи не Александра, а переработанный Муратовым диалог.
Александр Пекшев — разработчик для Ревита, Автокада и Ренги. Наиболее известен как автор плагина ModPlus. Живёт и работает в Липецке, по образованию инженер-конструктор. На 2021 год его плагином пользуется 9000 человек.
![Александр Пекшев в 2021 году Александр Пекшев в 2021 году](https://muratovbim.pro/wp-content/uploads/2022/12/pub_6175800144e70b6ef8a4f760_617582c1ca7a3f4a9d61b4cf.png)
Как попал в строительную отрасль?
В школе у меня был очень классный учитель по информатике, он привил любовь к программированию. Хотел поступать в вуз на автоматизированные системы управления, но не получилось: завалили на диктанте по русскому языку. Апелляции не помогли.
Дед всю жизнь работал на стройке, он заслуженный строитель РФ, поэтому и пошёл в колледж на инженера-конструктора. После колледжа поступил в вуз на заочку, чтобы получить корочки, параллельно сразу начал работать в Липецкгражданпроекте.
Там я впервые познакомился с Автокадом. Ни о каком BIM в те годы (2006-2010) у нас не было и речи. Автокаду обучился быстро. В работе хватало своей рутины, поэтому стал искать, как бы упростить себе жизнь, любовь к программированию тут только помогла.
Как учился программировать?
В школе изучал Вижуал Бейсик, поэтому первые решения для Автокада писал именно на нём. Сделал себе макрос для расстановки железобетонных блоков. Потом пробовал язык программирования LISP.
Я не пытался учиться программировать, а пытался сразу написать готовые решения, и получалось всё в основном благодаря интернету: форумы, блоги, статьи, в них по кусочкам находил нужную информацию. Это плохой путь, так как приходится тратить много времени, прежде чем будет хоть какой-то результат. Правильнее сначала пройти обучение, в интернете полно платных и бесплатных курсов. Мне понравился курс на ITVDN по C#.
Почему бросил проектирование?
Потом грянул кризис 2008 года, следующие пару лет тоже были не особо хлебными. Платили мало, так что в 2011 сменил сферу, занимался ремонтом терминалов оплаты. На это время разработкой тоже не занимался, денег она не приносила, нужды по работе тоже не было. Первые плагины писал по вечерам в свободное время, это было больше хобби и дань старой любви к программированию.
К 2014 надоело возиться с терминалами. Платили чуть выше среднего по городу, а работа была разъездная, мог по двое суток мотаться по области. И тяжело, и просто надоело. Решил сменить работу, а раз из прошлого опыта было только проектирование, то к нему и вернулся.
Когда появился МодПлюс под Ревит?
Разъезды кончились, стало больше свободных вечеров. Ещё до перерыва была идея сделать продукт модульным, тогда же перешёл с Лиспа на Си Шарп, в Лиспе не хватало возможностей, чтобы реализовать мои задумки.
Переписал МодПлюс как модульное решение. Сделал новый сайт, так что история возрождённого МодПлюса начинается с августа 2014.
Примерно в это же время стал замечать, как в интернете просыпается интерес к Ревиту. На работе хватало Автокада, но всё равно были попытки хоть немного пощупать Ревит: создавал в нём модель офиса, чтобы прикинуть расстановку мебели после небольшого ремонта. Но по-настоящему поработать в Ревите так и не пришлось.
Уже не помню, как начал плотно работать над плагинами под Ревит. Изначально связываться с ними особо и не планировал. Общался в то время с Маркевичем, думали так: я добавлю поддержку Ревита в ядро МодПлюса, а Маркевич напишет плагины. В то время он уже проектировал и программировал. Но как-то в итоге не сложилось, и решил сам написать плагин.
Чтобы выбрать, какой плагин делать, залез на Autodesk App Store, посмотрел, что там в трендах. Это было копирование листов. Решил, что сделаю такой же, только круче. И получилось — на сегодня это один из самых покупаемых плагинов.
В Ревит 2022.1 добавили свои инструменты для копирования листов, но эти инструменты не перекрывают всех возможностей моего плагина, так как не позволяют дублировать листы пакетно. В плагине есть ещё различные опции: переименование листов/видов, копирование сразу по несколько штук, создание копий спек и много чего ещё.
![Плагин по дублированию листов Плагин по дублированию листов](https://muratovbim.pro/wp-content/uploads/2022/12/pub_6175800144e70b6ef8a4f760_6176cb782b1e3c13408afa7f.png)
Так и втянулся в плагины под Ревит. Со временем и пользователей под него стало больше, чем под Автокад, разработка для Ревита перспективнее.
Почему продаёшь так дёшево?
![Цена одного модуля меняется от 0 до 3000 рублей Цена одного модуля меняется от 0 до 3000 рублей](https://muratovbim.pro/wp-content/uploads/2022/12/pub_6175800144e70b6ef8a4f760_61759fc830e2c82f21fbe51a.png)
Изначально плагин был бесплатным. Сами пользователи говорили, что пора бы брать деньги, настолько хорошими были решения, например плагин для Автокада выбор по образцу.
Подумал и решил, что всё же любая работа должна оплачиваться, да и приходится тратить деньги на тот же хостинг сайта, модули для него и доменное имя, нужно оплачивать ПО, которое использую при разработке, а с 2021 довольно дорогие сервера Microsoft Azure. Решиться брать деньги за плагины было не так просто, из-за эффекта самозванца не могу по достоинству оценить свой труд.
Бесплатными модули делаю по трём причинам. Первая — это реклама, вторая — не беру плату за плагины, у которых уже есть бесплатные аналоги, третье — не прошу денег за совсем простенькие решения.
У МодПлюса две модели распространения. Есть подписка и есть разовая плата. Подписка позволяет получить доступ ко всем платным плагинам на определенный срок, а разовая плата дает доступ к одному плагину одной версии, но навсегда. Думаю, такой подход хорошо закрывает потребности людей.
Сколько времени уходит на разработку?
Время на разработку плагинов всегда разное, да и оно зависит от уровня разработчика. Нельзя сказать, сколько времени нужно на плагин. Свой плагин по армированию создавал полгода, при этом была заранее продумана структура и алгоритмы. Какие-то решения можно написать за вечер.
Если говорить конкретно про МодПлюс, то на разработку влияет ещё и оформление: если нужны окна в программе и интерфейс, то нужно больше времени на создание иконок и прочего визуала. Это занимает чуть ли не столько же времени, что и написание программного кода.
Из чего состоит разработка?
Цикл достаточно большой. За красивой кнопочкой кроется куча работы, для выпуска плагина мне нужно:
- Написать код и адаптировать плагины под разные версии ПО. Об этом у меня есть статья на Хабре. На сегодня мне достаточно пары дней, чтобы подготовить плагины к работе с очередной версией Ревита и Автокада. С последним проще, там АПИ уже давно не меняется.
- Создать иконки. Был опыт работы с дизайнером, но опыт очевидно неудачный. Не получилось найти того, кто делал бы так, как мне нужно.
- Сделать картинку для сайта и локализацию. Выпускаю плагины на двух языках: на русском и английском.
- Написать справку. Ненавижу это. Нужно и текст подготовить, и скриншоты нарезать определенным образом. Ещё и на английский перевести.
- Снять видеоролик про работу с модулем, смонтировать его и наложить музыку.
- Опубликовать новость на сайт и в соцсети. Текст отличается, это не просто копипаста, тоже занимает время.
- Поддерживать плагин, исправлять баги.
Что думаешь про пиратов?
Знаю форум, на котором выкладывают ломаную версию плагина. Слежу за тем, как народ пользуется пиратской версией программы. Да, я всё о вас знаю, ребята. Тикайте с городу. Таких пользователей немного, и они не получают обновлений и исправлений багов.
С учётом невысокой цены плагинов таких пользователей воспринимаю просто как дополнительный пиар МодПлюсу. Мало кто представляет себе труд разработчиков, я же прекрасно его представляю, поэтому плачу за ПО. Я один из тех странных парней, что купили лицензию на ВинРар.
Хватает ли обратной связи?
Обратной связи меньше, чем хотелось бы. С одной стороны, понимаю людей, я и сам не так часто пишу разработчикам, в то же время хочется, чтобы чаще писали, задавали вопросы, предлагали свои идеи да и просто благодарили, это стимулирует продолжать и не бросать. Чаще всего пишут про ошибки. Реже предлагают идеи. Пару раз просто писали спасибо, это было очень классно, такое сильно мотивирует.
- Муратов: Ребята, если вы пользуетесь или когда-то пользовались Модплюсом, и вам это реально помогало в работе, пожалуйста, не поленитесь, напишите пару слов благодарности Александру на почту cjmodis@gmail.com или в Телегу https://t.me/Pekshev
С Ревитом история особая. То, что ломается у одного, может нормально работать у другого. Сам Ревит может пропускать некоторые ошибки, отрисовывает геометрию, пользователю кажется, что всё в порядке. А плагин видит эти косяки и выдаёт предупреждения. Ещё в Ревите много взаимосвязей между элементами, предсказать все сценарии невозможно.
Очень частая ситуация: люди пишут об ошибке, прошу скинуть файл, но они отказываются. Кому-то запрещает работодатель, кому-то просто лень. Это при том, что в пользовательском соглашении МодПлюса, которое никто, конечно же, не читает, сказано о том, что вся информация строго конфиденциальна и никуда дальше не утечёт.
Некоторые — наоборот, активно включаются в решение проблемы, тестируют на своей стороне, помогают найти решение, в результате выпускаю обновления плагинов, делаю их лучше. Большая благодарность таким людям.
Самое грустное, что 90 % ошибок исправить не удаётся, потому что пользователи не присылают файлы, а воспроизвести ситуацию не получается. В Ревите зависимости бывают такими, что смотришь в одно место, а проблема совершенно в другом. Без файла, без геометрии пользователя невозможно найти ошибку. Иногда можно весь вечер потратить на её поиски и всё безрезультатно.
Что ещё поддерживается в МодПлюсе?
На сегодня только Ревит, Автокад и Ренга. Под другие системы что-то делать просто нет времени да и особого смысла. Большинство пользуется Ревитом и Автокадом. Насчёт Ренги общался с одним менеджером, он предложил сделать плагины и под их систему. Разработал под неё 4 плагина, они все бесплатные. Пока что АПИ Ренги довольно скудное, особо не разгуляешься. Зато я первый, кто что-то сделал.
![Программы и версии, с которыми работает МодПлюс Программы и версии, с которыми работает МодПлюс](https://muratovbim.pro/wp-content/uploads/2022/12/pub_6175800144e70b6ef8a4f760_6175a47a8d10825763673149.png)
![Плагины под Ренгу Плагины под Ренгу](https://muratovbim.pro/wp-content/uploads/2022/12/pub_6175800144e70b6ef8a4f760_6175a50691360846a7297e8b.png)
С какой платформой работать удобнее?
С Ревитом проще, поскольку в нём можно без перезагрузки программы менять код и перезапускать плагин. В Автокаде и Ренге такого нет.
Мне нравится движок Ренги, он шустрый, в нём нет такой взаимосвязи элементов, как в Ревите. Поэтому Ревит такой тяжёлый и медленный, а Ренга быстрая.
Можно ли написать «быстрый» Ревит?
Нельзя. В Ревите и так всё будет работать быстро, если соблюдать правила построения. Многие пользователи знают, как делать правильно, но всё равно используют методы, от которых программа тормозит. Например, IFC-арматура, километровые формулы в спецификациях, блокированные замочки, плоскости, куча групп.
Кто-то жалуется на то, что Ревит работает в однопоточном режиме. Но если подумать, то иначе ведь и нельзя. Представьте, что у вас две стены и плита, между ними есть зависимости. Вы меняете стену, начинается пересчёт зависимостей, и в это время вы меняете и вторую стену. Что будет, если программа сразу начнёт параллельно менять другие зависимости? Всё сломается, так что тут просто нет других вариантов, всё должно меняться последовательно.
Конечно, где-то параллельность помогла бы, но на сегодня очень вряд ли разработчики смогут переписать Ревит, это слишком большой проект. Много людей работает над проектом, кто-то уже давно ушёл и вполне возможно, что часть кода работает, но никто уже не знает, как именно, туда просто не полезут. Это обычная ситуация для такого размера программ.
Как проходит твой рабочий день?
Я обычный человек. Благодаря удалёнке могу вставать за полчаса до работы, график стандартный, с 9 до 18. После ужина под какой-нибудь сериальчик начинается вторая работа — МодПлюс. В конце статьи напишу сериалы, которые мне особенно понравились.
Бывают дни, когда сил нет, ничего не хочется, накапливается усталость, и тогда вечерами просто отдыхаю.
Сейчас разработка МодПлюса занимает почти всё свободное время, по сути работаю на двух работах, поэтому постоянно уставший. Иногда во время отдыха в голове свербит мысль, что напрасно трачу время, лучше бы сел и сделал что-то полезное. Так и живу.
Чем занимаешься на работе?
Сейчас работаю в Сигнале у Саши Попова. Пишу плагины для Ревита и Нэвисворкса, занимаюсь этим один, и мне это нравится. До этого был программистом в ПИКе. ПИК очень большой, всё происходит медленно и не факт, что твои решения реализуются, даже если они крутые.
Те идеи по армированию, которые не удалось пробить в ПИКе, я реализовал в МодПлюсе, и эти модули стали по сути главными разработками, визитной карточкой плагина и основной корпоративных покупок. Так что не жалею, что ушёл.
Хочешь заниматься только Модплюсом?
Врать не буду, мне бы хотелось бросить работу и заниматься только МодПлюсом. Но на сегодня это нереально, прибыли от МодПлюса недостаточно.
Сейчас МодПлюс приносит мне в месяц больше средней зарплаты в регионах, но меньше, чем я зарабатываю на основной работе. Тяжело спрогнозировать такого вида доход, поэтому отказаться от наемной работы не могу.
Если МодПлюс стабильно бы приносил чистыми в районе 100 тысяч, я бы был доволен и смог заниматься только им. Если больше — то ещё лучше. Однако плагины всё же не приносят достаточно прибыли, чтобы позволить себе нанять постоянную команду. Хотя очень хотелось бы единомышленников.
Что не нравится в разработке под Ревит?
Очень бесит, когда модели Ревита долго открываются.
Есть некоторые плагины, которые всё же требуют перезагрузки Ревита. И вот в такие моменты тупо сидеть и ждать, терять на этом время, очень не нравится.
А в целом — не только под Ревит — не нравится писать справку и заниматься локализацией.
Нужно ли проектировщику и БИМщику изучать программирование?
Нет. Каждый должен заниматься своим делом, иначе и там будет плохо, и там. БИМы продумывают логику работы, общаются с проектировщиками, собирают обратную связь, дают задание программистам, а те уже создают плагин. При совмещении качество будет серьезно страдать.
Когда я пришёл в ПИК и стал заниматься только программированием, мои навыки сразу резко пошли вверх. При совмещении этого добиться не удавалось. БИМщики могут работать в Динамо, делать простые алгоритмы в нём, если нужно что-то сложнее, этим должны заниматься отдельные специалисты.
Ссылка на МодПлюс
![BIM-люди: как появился плагин МодПлюс](https://muratovbim.pro/wp-content/uploads/2022/12/pub_6175800144e70b6ef8a4f760_6176d46317087b4e35ad7eee.png)
Где список сериалов?
Вот он. Без рейтинга, просто список.
- Доктор Хаус
- Миллиарды
- Игра в кальмара
- Хороший доктор
- Тьма
- Друзья
- Американский папа
- Основание
- Теория большого взрыва
- Кремниевая долина
- Декстер
- Чёрное зеркало
- Книжный магазинчик Блэка
- Бумажный дом
- Очень странные дела
- Мандалорец
- Пацаны
- Засланец из космоса
- Касл
- Ход королевы
- Чёрный список
- Загрузка
- Благие знамения
- Элементарно
- Компьютерщики
- Хранилище 13
- Эврика
- Взращенные волками
- Убивая Еву
- В пустыне смерти
- Вечность
Вам понравилось интервью?
Если да, то напишите в комментарии, о жизни какого человека из БИМ-отрасли хотели бы узнать чуточку больше.
Обновления статей удобно получать в Телеграм-канале «Блог Муратова про Revit MEP». Подписывайтесь и приглашайте коллег. Можно обсудить статью и задать вопросы в специальном чате канала.
Читайте методичку для проектировщиков: полезный материал, в котором последовательно рассказываю, как создавать модель.
Мини-курс по моделированию ОВ и ВК
В специальный плейлист на Ютубе выкладываю свои ролики по работе в Ревите. Этот курс записывал для студентов, разбираю базовые моменты по моделированию.