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

  • Tutorial
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 в Ревит позволяет видам, предназначенным для выдачи или печати, быть актуальными и аккуратно оформленными в любой момент времени.
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 17

    +1
    [sarcasm on]
    Как хорошо, что хоть кто-то рассказал, что такое MVC. Ведь этого же никто не знает!
    Совсем другое дело Revit, про него знают абсолютно все, ведь это же как фотошоп или ворд.
    Если, не дай бог, упомянуть что это такое и зачем это нужно и тем более до ката, то это всё равно, что сообщить о невежестве и дремучести читателя через громкоговоритель переполненного стадиона.
    [sarcasm off]
    Ну не ужели так трудно добавить пару слов до ката о том, что такое ревит. Сэкономьте десяток минут читателю, чтобы он мог сразу знать, что в этой статье для него нет ни чего интересного.
    А вообще, mvc здесь притянут за уши, хотя бы потому, что контроллер недоступен. В этом смысле ревит не отличается от любой админки cms. Хватило бы инструкции: «если нажимать сюда и сюда, то получится то-то»
      +1
      Вообще-то статья располагается в в хабе CAD/CAM, в котором читатели должны знать ключевые продукты Autodesk.
        0
        А как вам такая статья: «MVC-шаблон программирования как способ реализации процесса проектирования в Автокад»? M — пространство модели, V — пространство листа, C — пользователь. (сарказм)
          0
          Хорошо, что в статью внесли необходимые изменения, но думаю не будет лишним объяснить почему было важно рассказать о Ревит с самого начала.
          Я подписан на хаб CAD/CAM, потому что меня интересует Open Source решения в этой области, а ещё проектирование радио-схем, а ещё на предприятии имеются закупленные SolidWorks, NanoCAD, Компас и в ближайшее время не планируется ни чего другого покупать, поэтому другие варианты даже не рассматриваются. Но при этом, я не имею ни какого отношения к архитектуре.
          Число хабов на которые я подписан больше полусотни. Поэтому увидев заголовок «MVC и что-то там» я в последнюю очередь смотрю на хаб, так как тема MVC мне интересна. А расположение в хабе «CAD/CAM» ни как не поможет мне от потери времени, которое я потрачу на то чтобы понять, что Ревит ни как не пересекается ни с одной областей которые мне интересны, в отличии от абзаца, которое теперь есть в начале статьи.
            0
            Хорошо, я нахожу Ваше замечание справедливым, ведь мне, надеюсь, есть еще много о чем написать. Думаю, последующие статьи будут привлекать целевую аудиторию с самого начала.
        0
        Вы предлагаете делать то же самое для разрезов, 3D видов и фасадов? В статье нет ни слова про проектирование (что обещаете в заголовке), вы описываете моделирование.
          +1
          Да, тоже самое надо делать и для разрезов, фасадов. Для 3D видов тоже, если возникнет необходимость оформлять их для документации. Моделирование, оформление модели в документацию для печати, ведь и есть часть процесса проектирования.
            0
            Моделирование это не обязательная часть процесса проектирования. Гораздо важнее грамотные проектные решения, соблюдение действующих норм (а в строительстве их очень даже много), уложиться в сроки и бюджет, учесть хотелки заказчика, отстоять свои решения в экспертизе. А выбор инструмента это дело десятое.

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

            -Да, тоже самое надо делать и для разрезов, фасадов
            Вы похоже не знаете что через «организацию диспетчера проектов» можно настроить свою организацию по свойствам с фильтром по шаблонам вида вместо того что бы плодить кучу папок.
              0
              Про оформление модели в документацию для печати...
              Так ведь и статья не об этом.

              Для видов, предназначенных, для разных целей (одни виды, к примеру, оформляются для печати, другие предназначены для работы), должен быть назначен свой шаблон вида, который не меняется в последствии. Это главное. Что, к сожалению, упускают начинающие ревитчики. Каким способом при этом будет организован Диспетчер видов, неважно.
          0
          Любой опубликованный материал укладывается в MVC
          Модель — что хотел сказать
          Вид — что получилось увидеть
          Контроллер — благодарные читатели
            0
            Каюсь, шаблон MVC в данной теме выглядит притянутым за уши. Но он показался мне таким подходящим, что не смог себе отказать в сравнении с ним.
            0
            Самое главное, чтоб эту статью не прочитали BIM менеджеры))). Прежде чем приводить пример работы в Revit, хорошо бы для начала самому понять как происходить процесс проектирования в этой программе. Ваш метод устарел года на 4-5. Для того чтоб не плодить ненужные папки «Для работы» есть штатная возможность «применение временного шаблона на вид». Revit — командная система, в ней одновременно сидит и работает КУЧА людей, и у каждого своё представление о том, как должен выглядеть шаблон «Для работы». Ваша система заставит их создавать папки вида: «Папка для работы — Вася, Папка для работы — Петя, Папка для работы — Аня, и т.д.». В моём проекте сейчас одновременно (в одном файле) сидит 15 чел… Вы представляете какой хаос может начаться только из-за создания таких папок… На самом деле шаблоны нужны, но использовать их нужно совсем по другому.
              0
              Я на самом деле не поднимаю тему командной работы, это совсем другая тема.
              «Папка для работы» может быть одна (и наверное должна быть одна) на весть коллектив. У всех должно быть одинаковое представление, о том как выглядит шаблон для работы и для оформления, на то это и коллектив.

              Менять шаблоны на один и тот же вид — непродуктивно. Я, для работы на виде, могу размещать кучу дополнительных штриховок, заданий смежников в виде dwg подложек, создать кучу временных размеров. Часть этих элементов нельзя скрыть шаблонами видов, но эти элементы помогают делать проект. Все это должно храниться на отдельном виде, предназначенном для работы, а для оформления должен быть другой вид.
                0
                Как раз временные шаблоны и есть самый продуктивный метод проектирования здания. Есть такая шутка: «Сколько архитекторов — столько и мнений» за свою 16 летнюю карьеру архитектором и 10 летний опыт создания единой BIM-структуры коллектива, я в этом окончательно убедился. Штриховки которые не контролируются шаблонами используются только на видах для печати. Если вы их используете на любых других видах — значит мы говорим сейчас не о моделировании и тем более не о BIM моделировании. Все временные размеры исчезают сами собой (по снятию выделения элемента). То что не исчезло — нужные (не временные) размеры и удалять их не надо, а если и появилась такая необходимость, работать с ними нужно через «опорные плоскости», есть такой метод работы. Подложки тоже легко управляются временными шаблонами.
                  0
                  Давайте я не буду рассказывать сколько я работаю архитектором и когда начал изучать Ревит. Мы же не мерятся сюда пришли.

                  Разделяй и властвуй — этот принцип тысячи лет не устаревает. То, что я здесь предлагаю. Когда мы поднимаем модель с нуля, у нас есть куча исходных данных в 2Д. Часть из них я вношу виде текста прямо на видах, какие-то схемы удобно набросать просто штриховками. Что то я образмериваю постоянными размерами, мне так удобно, но при печати они не нужны. И вот из такой кучи-малы мне нужно подготовить вид на печать. Что, мне нужно применить временный шаблон, а все что лишнее удалить?

                  Я предпочитаю для этого сделать дополнительный вид со своим шаблоном, на котором я лишнее удалю, но служебная информация останется на другом виде. Если Вам не нравится такой способ, это не повод говорить, что мой метод устарел, и вообще эту статью не должны читать Бим-менеджеры.

                  Да, метод «разделяй и властвуй» не всегда подойдет конструкторам и инженерам. И они нацелены на решение других задач.
                    0
                    К сожалению у нас с Вами разные взгляды на производство проектных работ ). На прощанье хочу сказать, что есть метод для работы быстрее за счёт именно BIM подхода уже при проектировании. А именно: в BIM нет штриховок(они нужны только для оформления), нет размеров которые нужно удалять при печати(есть временные размеры и размеры на опорных плоскостях), подложки должны быть только xRef и не в коем случаи не импорт(тогда Вы сможете управлять ими), и в BIM нет места мышлению вида: «Мне так удобно». И есть продуманные, заранее обозначенные области проектного дерева где каждый элемент находиться на своём месте; не дублируется, не скрывается «по элементу» и не зависит от желания одного участника проекта. Желаю Вам успехов в работе.
                      0
                      Мне кажется наши подходы совпадают на 90%. Кроме одного небольшого момента. Я считаю, что для специальных задач моделирования лучше использовать отдельные виды, Вы — лучше развивать шаблоны. Право же, я теперь думаю — это дело вкуса :-) Желаю Вам успехов, в развитии Ваших шаблонов.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.