Найти в Дзене

Как мы наклонили Revit: автоматизация высотных отметок для метрополитена

Проектирование метрополитена в Revit требует учета специфических требований, таких как продольный уклон линий. В этой статье описан кейс координации проекта станции метро, где стандартные инструменты Revit не позволяли точно отображать высотные отметки относительно уровня головок рельсов. Мы рассмотрим проблему, предложенное решение и его влияние на процесс проектирования. Метрополитен — это подземный мир, где привычные правила проектирования не всегда работают. Согласно ГОСТ 23961-80, нулевая отметка высот в проекте метро — это верх головок рельсов, а не стандартный уровень чистого пола. Добавьте к этому требование СП 120.13330.2022: "продольный уклон линий должен составлять 3‰", то есть 3 мм на каждый метр. Для станции длиной 400 м перепад высот достигает 1,2 м (400 × 0,003). Это не мелочь, которую можно проигнорировать, — такие отклонения влияют на все высотные отметки в проектной и рабочей документации. Учет уклона в Revit возможен двумя способами: Первый вариант оказался слишком
Оглавление

Введение.

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

Проблема

Метрополитен — это подземный мир, где привычные правила проектирования не всегда работают. Согласно ГОСТ 23961-80, нулевая отметка высот в проекте метро — это верх головок рельсов, а не стандартный уровень чистого пола. Добавьте к этому требование СП 120.13330.2022: "продольный уклон линий должен составлять 3‰", то есть 3 мм на каждый метр. Для станции длиной 400 м перепад высот достигает 1,2 м (400 × 0,003). Это не мелочь, которую можно проигнорировать, — такие отклонения влияют на все высотные отметки в проектной и рабочей документации.

Условия

Учет уклона в Revit возможен двумя способами:

  1. Моделировать станцию под наклоном, чтобы уровень в Revit совпадал с проектным нулем (головками рельсов). Но тогда горизонт в модели "заваливается", и все вертикальные элементы — колонны, стены, трубы — нужно проектировать с учетом этого уклона. Это создает массу проблем на этапе координации и чертежей.
  2. Моделировать в стандартной горизонтальной плоскости, но пересчитывать все высотные отметки относительно проектного нуля. Это проще, но Revit по умолчанию показывает отметки от своего уровня, и каждую нужно корректировать вручную.

Первый вариант оказался слишком сложным — попробуйте объяснить подрядчику, почему все ваши чертежи "косые". Поэтому мы выбрали второй подход, но он требовал постоянных пересчетов. Ручная корректировка сотен отметок — это не только долго, но и чревато ошибками.

Вот схема, чтобы было понятнее: черным обозначен уровень Revit, красным — проектный нуль (головки рельсов).
Вот схема, чтобы было понятнее: черным обозначен уровень Revit, красным — проектный нуль (головки рельсов).

Расчет корректной отметки

Сама формула для пересчета отметок проста, как школьная математика:

  • H — высота элемента относительно нуля Revit (берем из модели).
  • L — расстояние по горизонтали от точки пересечения проектного нуля с нулем Revit.
  • h — высота проектного нуля над нулем Revit, равная ( L * 0,003 ).
  • Итоговая отметка: H - (L * 0,003)
-3

Например, если элемент находится на высоте 5 м в Revit, а расстояние ( L ) до точки пересечения — 100 м, то проектная отметка: 5 - (100 * 0,003) = 4,7м. Казалось бы, ничего сложного. Но когда таких элементов сотни, а модель постоянно обновляется, ручной пересчет превращается в кошмар. До нашего решения проектировщики вносили эти значения как текстовые аннотации, тратя часы и рискуя ошибиться.

Автоматизация размещения отметок

Мы понимали, что ручной метод — это тупик. Нужно было автоматизировать процесс, но рабочий способ был найден не сразу.

Изначально мы продумывали два подхода, которые казались логичными:

1.Текстовые аннотации. Просто вставить рассчитанные отметки как текст на чертежах. Но текст в Revit не привязан к элементам. Если колонна или балка перемещается, аннотация "зависает" на старом месте. Плюс, когда на чертеже десятки текстовых меток, понять, к чему они относятся, — та еще головоломка. Этот метод оказался слишком примитивным и ненадежным.

2. Параметры и марки. Идея была такая: добавить каждому элементу параметр с рассчитанной отметкой и отображать его через марку (тег). Но тут начались сложности. Во-первых, разные элементы маркируются по-разному: колонны — по низу или верху, трубы — по центру. Во-вторых, длинные элементы (например, балки), расположенные под углом к проектному нулю, имеют разные отметки на концах. Создавать для каждого случая отдельный параметр? Это безумие. В итоге проектировщикам пришлось бы постоянно следить за актуальностью параметров и марок, что почти так же трудоемко, как ручной метод.

Оба подхода требовали слишком много контроля и не решали проблему автоматизации. Нужно было что-то принципиально новое.

Решение: семейство высотной отметки

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

Настройка семейства отметки

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

  1. Изменили формат единиц в семействе: установили максимальное округление (900 млрд), отключили знаки и пробелы между префиксом и числом.
-4

2. В результате оригинальное значение отметки стало отображаться как "0" (из-за огромного округления).

-5

3. В префикс мы теперь можем записать любое рассчитанное значение, и оно выглядит как основное.

-6

Например, если рассчитанная отметка — 10 метров, мы записываем "+10.00" в префикс, и на чертеже отображается "+10.000". Да, в конце всегда висит этот нуль, но после обсуждения с командой мы решили, что округление до 10 мм всех устраивает. Если есть способ убрать этот нуль, я его не нашел, но наш вариант работает отлично.

Автоматизация через Dynamo

Когда формула и семейство были готовы, оставалось автоматизировать процесс. Для этого мы написали скрипт на Dynamo. Принцип его работы простой, но эффективный:

  1. Собираем все высотные отметки нашего специального семейства в модели
  2. Для каждой отметки извлекаем координаты (свойство Origin): X — для расчета ( L ), Z — для ( H ).
  3. Вычисляем проектную отметку по формуле H - (L *0,003) .
  4. Записываем результат в префикс отметки.
-7

Скрипт обрабатывает все отметки в проекте за считанные секунды, обновляя существующие и заполняя новые. Он также формирует отчет: сколько отметок обновлено, где были расхождения. Это помогает проконтролировать его работу.

Как проектировщики работают с отметками

Мы передали решение команде, и вот как они его используют:

  1. Проектировщик размещает наши специальные высотные отметки на нужные элементы (колонны, балки, трубы). При этом стандартные отметки Revit можно использовать параллельно — они не конфликтуют.
  2. Когда модель готова или обновлена, запускается скрипт Dynamo. Он автоматически пересчитывает и заполняет все отметки.
  3. После выполнения скрипт выдает отчет, чтобы команда могла проверить изменения.

Этот процесс сократил время на оформление документации в разы. Раньше на пересчет и проверку уходили дни, теперь — пара кликов.

-8

Заключение

Когда мы показали решение инженерам и архитекторам, они сказали: "Это то, что нам было нужно!" Оно не просто решает техническую задачу, но и делает работу удобной, исключая рутинные действия. Теперь это один из ключевых инструментов в наших проектах метро. Я искал аналоги такого подхода, но ничего похожего не нашел. Если вы знаете другие способы, напишите в комментариях — будет интересно обсудить. А если вы столкнулись с подобной задачей, надеюсь, наш опыт поможет вам найти решение или хотя бы подскажет направление.

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

Использованные версии: Revit 2022, Dynamo 2.12.

Скрипт с примером проекта опубликовал в свой телеграмм канал:

BIM.Kuznetsov