MVC шаблон программирования как способ реализации процесса проектирования в Ревит

|  Revit-трюки

Шаблон MVC широко применяется в программировании. Он реализован и в архитектуре Ревит. Принципы применения этого шаблона можно использовать и при создании проекта в Ревит. На основании своего опыта работы в Ревит, я пришел к определённой реализации этого шаблона, которые позволяют сделать работу более комфортной, получить больше контроля над объектами и действиями при проектировании. Эти способы работы условно я условно называю шаблоном MVC, так как внешне они очень похожи на данный шаблон программирования.

Прежде, чем разбираться, как же мы будем применять шаблон программирования при создании модели и оформлении документации в Ревит, нужно разобраться, что такое шаблон программирования MVC. Википедия говорит нам, что:

Model- View-Controller ("Модель-Представление-Контроллер") - схема разделения данных приложения, интерфейса и логики на три отдельных элемента: модель, представление и контроллер. Модификация каждого компонента осуществляется независимо.

  • Модель (Model) предоставляет данные и реагирует на команды контроллера, изменяя свое состояние.
  • Представление (View) отвечает за отображение данных модели пользователю, реагируя на изменения модели.
  • Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений.

К слову этот шаблон впервые был описан в 1978 году. 

Теперь разберемся, что есть что в Ревит, согласно моей реализации работы по этому шаблону.

  • Модель - состоит 3d и 2d элементов. Модель отображается на видах в Ревит.
  • Представление - конкретная настройка для вида. Настройка может храниться в шаблоне вида или вид просто содержит собственные уникальные настройки видимости элементов, не сохраненные в шаблон.
  • Контроллер - интерфейс Ревит.

В моей реализации шаблона MVC для работы в Ревит, каждая Модель ссылается на соответствующее Представление (которое лучше хранить в шаблоне видов, для многократного применения). Модель не может менять Представление в процессе работы. Пока, может быть непонятно, но пока просто запомните это.

Типичная работа

Типичная работа в Ревит выглядит так. Работник начинает создавать модель на каком либо виде, переопределяет видимость графики для своего удобства, к примеру несущие стены у него оранжевые, противопожарные - красные и т.д.

Далее он получает задачу оформить данный вид для печати и выдачи задания смежникам. Работник снова переопределяет видимость графики, делает несущие стены со штриховкой по ГОСТ и т.д. Но после выдачи задания, нужно продолжать моделировать, и процесс переопределения графики начинается заново. Это жутко непроизводительно. А продолжать моделировать на виде, настроенном для печати, неудобно.

Продвинутые пользователи Ревит создают разные шаблоны, отражающие видимости графики, и меняют их. Для моделирования применяют шаблон "Шаблон для моделирования", для выдачи заданий у них есть шаблон "Шаблон для выдачи". Но этот подход также не является оптимальным. У нас всегда останется куча элементов 2d (размеры, области маскировки, 2d линии), которые будут мешать модификации 3d модели на данном виде.

Теория

Не нужно стремиться использовать один и тоже вид (Модель) для разных представлений, меняя их посредством шаблонов (или не используя шаблоны, это уже не важно). Этот подход смешивает в кучу разные Модели и Представления по моей концепции MVC.

Нужно для каждой конкретной Модели (вида), состоящей из 3д и 2d элементов на виде, создавать свое конкретное Представление (шаблон вида).

Менять Представление (шаблон вида) для Модели (определенного вида) запрещается!

У нас должна быть отдельная Модель (вид) для редактирования 3d элементов, с настроенным для нее Представлением (шаблоном вида).

У нас должна отдельная Модель (вид) для выдачи задания смежникам, с настроенным для нее своим Представлением (шаблоном вида).

Напоминаю, что под Моделью принимается совокупность 3d элементов (они общие для проекта) и 2d элементов размещенные на конкретном виде.

Представление - это конкретный настроенный шаблон вида (или просто настройка вида, без шаблона, в исключительном случае) для правильного отображения Модели.

Практика

На практике это выглядит так. Создаем папку в Диспетчере проекта "Редактирование модели". Сюда складываем копии видов для моделирования. Создаем папку "Оформление задания". Сюда складываем копии видов для оформления.

Для папки "Редактирование модели" указываем шаблон применяемый к новым видам "Шаблон для моделирования".

Для папки "Оформление задания" указываем шаблон применяемый к новым видам "Шаблон для выдачи".

Теперь с видами в папке "Редактирование модели" делаем что угодно. Добавляем новые рабочие плоскости, фильтры, области штриховки, временные размеры и вообще что угодно. Отображение элементов и их внешний вид в папке "Редактирование модели" контролирует шаблон "Шаблон для моделирования". Можем в некоторых видах в папке "Редактирование модели" вообще отказаться от применения шаблона и перенастраивать параметры видимости отдельных элементов.

Переходим к видам в папке "Оформление задания". Никаких лишних маркировок разрезов, размеров в них уже не будет, так как они контролируются шаблоном "Шаблон для выдачи". Кроме того нам не придется удалять 2d вспомогательные линии построения, штриховки и прочее, так как они будут только на видах в папке "Редактирование модели".  Виды из папки "Оформление задания" предназначены только для оформления на печать. Убирать шаблоны с настроек видов из папки "Оформление задания" нельзя. 

Переключение между видами для 3d моделирования и для оформления задания происходит одним кликом.

Выводы

Применение шаблона MVC в работе с Ревит позволяет сэкономить много времени, ускорить работу по созданию 3d модели модели, хранить вспомогательную информацию (которая нужна была для построения модели) прямо в проекте.

Мы всегда имеем под рукой виды для моделирования, на которых можем делать все что угодно: вставлять в них задания смежников, создавать вспомогательные разрезы, плоскости, линии, штриховки и прочее. Ничего этого не будет видно на видах для печати.

Моя реализация шаблона MVC в Ревит позволяет видам, предназначенным для выдачи или печати, быть актуальными и аккуратно оформленными в любой момент времени.

Поддержите мои бесплатные приложения для Revit. Нажмайте "Нравится"!

Узнавайте о новых расширениях для Revit подписавшись на страницу BIM3D в Твиттере!

Извините за предствленные неудобства. Всплывающее окно не побеспокоит Вас в ближайшее время!

Связанные новости ►

Назад