Найти в Дзене
Поддержите автораПеревод на любую сумму
Как сделать окна плагина Revit отзывчивыми: от зависаний к асинхронности
Год назад у меня была простая мечта: сделать так, чтобы мой плагин для Revit выглядел и ощущался как современное приложение. Я хотел красивые окна, работающие шкалы прогресса и возможность отменить операцию, если что-то пошло не так. Но я тогда столкнулся с непостижимой для меня проблемой: я нажимаю кнопку — и интерфейс замирает. Окно «застывает», курсор начинает крутиться, и пользователь сидит в неведении: «Оно работает или зависло?». Тогда я еще плохо разбирался в тонкостях C#, WPF и программирования...
1 неделю назад
Настраиваем мультиверсионность для Revit API. Как писать под любую версию Revit.
В прошлом посте мы разобрали агрегатор для независимых плагинов. Теперь — как собирать их под все версии Revit (2019–2027) без копипасты проектов. Особенно больно нам становится при переходе с .NET 4.8 (Revit 2024) на .NET 8 (Revit 2025). Решение — Directory.Build.props. Файл, который MSBuild автоматически подхватывает для всех проектов. В него выносим: Результат: .csproj остаётся чистым, а версионность управляется в одном месте. Создайте файл Directory.Build.props в корне решения: Давайте разберем, что тут написано...
1 месяц назад
Как я навел порядок в плагинах для Revit, часть 1: разделение на части.
Раньше у меня все плагины жили в одном проекте. Удобно? Поначалу да. Но когда плагинов становится больше, начинается хаос: меняешь код в одном — случайно ломаешь другой, ведение гита вообще превращается...
1 месяц назад
Интерфейсы в C#: что такое контракт и как он позволяет быть мобильнее
Краткое содержание: Вы написали плагин, настройки хранятся в JSON. Через месяц инженеры просят хранить настройки в проекте Revit. Ещё через неделю — вернуть обратно. Если код завязан на конкретную реализацию, каждое изменение превращается в переписывание...
1 месяц назад