Pull to refresh

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

Reading time 4 min
Views 4.8K
image Revit — программный комплекс, реализующий принцип информационного моделирования зданий — BIM. Предназначен для архитекторов, конструкторов и инженеров.

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

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

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

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

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

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

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

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


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

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

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

Теория


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

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

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


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

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

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

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

Практика


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

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

image

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

image

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

image

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

image

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

Выводы


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

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

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

Articles