Найти тему
Закреплено автором
Revit API и автоматизация Revit с нуля
Создание и подключение плагина для Revit
2219 · 1 год назад
Revit API и автоматизация Revit с нуля
Каталог статей блога
236 · 1 год назад
Изменение Schema в Revit без потери данных
Когда уже умеешь программировать, то рассматриваешь всё только с позиции микроскопа. но иногда молоток тоже вполне себе решение (с) Конфуций, V в. до н.э. Всем привет! Сегодня расскажу про свою библиотеку для генерации кода, которая упрощает работу со схемами в Revit API, а так же позволяет их изменять. Да и вообще, упрощает работу со схемами почти до уровня обычного запроса к базе данных. И если с первыми двумя неудобствами можно смириться, то вот в третьим может возникнуть проблема. Допустим, мы написали плагин со схемой и выдали его в работу...
1 месяц назад
Генерация общих параметров в ФОП
Фоп-стоп, мы подошли из-за угла (с), гопник Коля, ПТУ #6, через неделю после неудачного гоп-стопа, когда ему выбили зубы Год назад я писал статью о том, как добавлять общие параметры, существующие в файле общих параметров, к категориям проекта. Рассказал как сделать привязку по типу, по экземпляру, настроить изменение значение среди групп. Но как оказалось — самое интересное я и не рассказал. Нам вообще не обязательно иметь общие параметры в ФОП, мы можем генерировать их самостоятельно. Перед генерацией...
3 месяца назад
Ресурсы (в том числе бесплатные), которые я использую для программирования
Работа программистом — не волк, работа — work, а walk — это прогулка (с) Джейсон Стейтем Всем привет! Задумал статью о том, что я использую во время работы, на что опираюсь, и где ищу информацию для развития. Сначала я думал, что статья получится маленькой и не особо интересной, но потом вспомнил, что таких ресурсов, в принципе, не мало, и мне есть что рассказать о них. Кроме того, вы всегда можете поделиться в комментариях, что используете вы, подняв ценность данной статьи для всего коммьюнити. Когда я начинал изучать C#, мой друг подарил мне на день рождения книгу об основах C#...
186 читали · 3 месяца назад
JetBrains Rider — теперь бесплатная IDE. Почему лучше выбрать его вместо Visual Studio
.Net-разработчики делятся на 2 типа: те, кто любят Rider, и те, кто ещё его не пробовал. (с) Конфуций, "Избранные цитаты из интернета", V век до н.э. Всем привет! Сегодня расскажу немного про свою любимую программу, в которой пишу код постоянно, однажды попробовав — JetBrains Rider. Совсем недавно мне дали бесплатную лицензию как open-source разработчику (правда, не без проблем, потому что я паспортом не вышел), но вскоре после этого Rider стал бесплатным для некоммерческой разработки — так что теперь и вы можете попробовать его...
642 читали · 3 месяца назад
WPF. Добавление анимаций к элементу. Стили
Самое важное в плагине для Revit — это анимации (с), Лао-цзы, VI в. до н.э. Всем привет! Сегодня расскажу, как добавить анимацию к кнопке WPF. Тема особо не касается Revit, да и многие её пренебрегают — ведь плагин без анимаций будет выполнять бизнес-задачу, а анимация без плагина никому не нужна, но почему бы и не рассказать о том, как сделать пользовательский интерфейс своего приложения более интересным. Сделаем так, чтобы наша кнопка при наведении увеличивалась на 5%, а её границы становились толстыми...
3 месяца назад
Dependency Injection с помощью контейнеров в десктопных приложениях на C#
Всем привет! Сегодня рассмотрим довольно интересную тему, которая является очевидной базой для веб-разработчиков, но для разработчиков десктопных приложений часто является чем-то непонятным. Так что давайте разбираться, что это за инъекция зависимостей (dependency injection, DI, внедрение зависимостей) и зачем она нужна. В целом, инъекция зависимостей — это паттерн проектирования ПО, в котором зависимости, используемые объектом, предоставляются ему извне, а не создаются самим объектом. Простейший...
4 месяца назад
Основы C#. Структуры данных. Массив, список, словарь, HashSet
Всем привет! Сегодня статья, не связанная с Revit. Поговорим о структурах данных, которые наиболее часто используются в языке C#. Дисклеймер: статья написана в основном для начинающих программистов под Revit на основе моего опыта. Если вы лучше меня знаете, что всё на самом деле не так или не совсем так, то делитесь подробностями в комментарии, или оставляйте там ссылки на свои блоги. При кажущейся простоте, тема сложная, и осветить прям все-все аспекты довольно тяжело. Когда я начинал программировать, я сначала немного изучил Python, а потом начал переходить на C#...
126 читали · 4 месяца назад
Бенчмарки. Измерение производительности и эффективности кода
Всем привет! Сегодня расскажу о новой для себя теме — бенчмарках, и как с их помощью измерять время выполнения и расход памяти. Что такое бенчмарк? Это специальная библиотека, а так же созданное с её помощью приложение. В этом приложении мы пишем некоторое количество бенчмарк-тестов, для которых хотим сравнить время выполнения и расход памяти. После чего мы запускаем его, приложение (с помощью добавленной в него библиотеки) запускает наши тесты много раз, измеряет среднее время выполнения, расход...
5 месяцев назад
Изменение правил сортировки элементов в C#
Всем привет! Сегодня расскажу о том, как решить довольно интересную задачу, которая возникла у меня однажды при работе с Revit. Впрочем, изложенные здесь вещи можно применить в любом C# приложении. У нас есть Revit-документ с некоторым количеством листов. Мы хотим создать окно, где пользователю будут представлены эти листы, отсортированные по номеру листа. Мы пишем код, пишем окно, делаем тестовый файл с 5 листами, всё отлично работает. Но потом к нам приходят пользователи и говорят "а почему листы отсортировались в порядке 1, 10, 11, 12 и т...
5 месяцев назад
Работа с предупреждениями в файле Revit
Всем привет! Сегодня расскажу, как через API посмотреть список предупреждений документа, а так же покажу, как можно избавиться от некоторых из них. Поехали! Это предупреждения, которые сами по себе не мешают работе, но могут замедлять работу файла при большом их количестве. Кроме того, некоторые из них предупреждают о грубых ошибках модели: например, "В одном и том же месте имеются идентичные экземпляры". Вот так выглядит окно с предупреждениями в интерфейсе Ревит: Давайте попробуем найти эту таблицу через Revit Lookup...
110 читали · 5 месяцев назад
Работа с помещениями. Создание пола по контуру помещения
Всем привет! Сегодня расскажу, как работать с помещениями, получать его контур разными способами, и превращать его в пол или перекрытие в Revit. Поехали. Для работы я буду использовать своё приложение для большого количества команд. В нём создам новый проект с WPF-окном. Пользователь будет выбирать тип пола и помещения, а затем плагин создаст полы для них. Я давно не писал статьи с полным описанием всех подробностей, и мои читатели могли пропустить что-либо среди других статей, поэтому сейчас некоторые вещи могут повторяться...
6 месяцев назад
Не получается добавить картинку к кнопке Revit — что делать?
И кто виноват. Об этом и расскажу в этой статье. Итак, задача простая, мы хотим добавить иконку к кнопке, скачиваем иконку, допустим, с icons8: Приводим её к размеру 32x32 и далее делаем всё по инструкции. Добавляем как ресурс к проекту, назначаем на PushButton. В общем, я именно так и делаю: И какой результат я получаю: Что ж, в этот раз ещё повезло: картинка хотя бы есть. Но выглядит она не так как надо, поместилось всего 3/4. В чём же дело? Оказывается, помимо размера 32х32 нам важно, чтобы dpi картинки было 96...
6 месяцев назад