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