Новости и статьи АСПРО: Инжиниринговая компания

Загружаем IFC-КМ в Renga. Отметки

На данный момент времени часть разделов загружаются через IFC в Renga для дальнейшей работы. Особенно распространено это с металлоконструкциями, которые зачастую разрабатываются в Tekla. На днях в чате пользователей Renga возник интересный вопрос: загрузили КМ, а как теперь отфильтровать элементы, находящиеся выше определенной отметки? И действительно: родные свойства "относительная высота верха/низа объекта" для импортированных элементов недоступны. Решение есть, во всяком случае на моем импортированном примере сработало, так что рассказываю, как быть.

Получение отметки низа/верха IFC объекта

Сначала нужно понять, какие свойства нам пришли. В моем случае, есть все необходимое: определение типа объекта в ifcEntityType, отметка низа объекта в Bottom elevation и отметка верха объекта в Top elevation. Т.е. мы можем вычислить хоть отметку верха объекта, хоть низа объекта. Рассмотрим создание свойств и формул на примере отметки низа объекта.

Чтобы работать нам нужно решить проблему, как программе объяснить, по каким правилам вычислять отметку элемента. Мы хотим, чтобы у стандартных элементов она бралась как "Относительная высота низа объекта", а для импортированных элементов просто считывалась со свойства Bottom elevation. Мне кажется, наиболее быстрым будет добавить булевое свойство "Импортированный элемент", затем с зажатым shiftом выделить импортированные через ifc объекты и переставить значение на "да".
Добавление булевого свойства

Данную операцию по добавлению свойства нужно будет выполнить для балок, колонн и пластин с той разницей, что первый раз мы создаем новое свойство, а затем уже добавляем существующее. Также необходимо проверить, что все импортированные элементы выполнены только с использованием данных сущностей. Например, в моем примере косоуры у лестниц и связи экспортировались как "элемент", поэтому я добавила еще и в элементы это свойство.
Назначение всем импортированным элементам одинакового значение в свойстве "импортированный элемент"

Теперь создадим новое свойство: Отметка низа объекта, тип данных действительное число.
И добавим в него следующую формулу:

Импортированный элемент?Bottom elevation:Относительная высота низа объекта
Если мы будем говорить об отметке верха, то формула приобретет следующий вид:

Импортированный элемент?Top elevation:Относительная высота верха объекта

Как можно использовать полученную отметку?

1. Самое очевидное, можно создать маркер для проставления отметок на плане.

Инструменты-обозначения-маркер-другой
Затем добавляем новый стиль маркера - добавляем параметр балки Отметка низа объекта. К слову, работать он будет и на колоннах и на пластинах и на всех элементах, которым мы добавили это свойство.
Т.к. обычно отметки указываются в формате +3,000, то укажем 3 дробных знака. Дальше выберем формат в рамке и конец строки назначим "да"
После установки маркеров на объектах модели получим вот такую картинку. Для примера рядом с металлической связью, колонной и стойкой фахверка из IFC я поставила родную ренговскую жб колонну. Маркер работает на всех элементах.
2. Теперь можно фильтровать объекты по высоте их расположения (помним о том, что IFC вставляется на один уровень и по уровню их не отфильтровать).

3. Если импортированные элементы мы надумаем переместить по вертикали, то вписанные отметки Botton elevation и Top elevation не изменятся, т.к. они просто назначены элементам и не имеют динамической привязки. А если чуть-чуть подредактировать нашу формулу, то при перемещении импортированных элементов по высоте за счет смещения по высоте уже можно получить динамическую отметку. Как?

Для примера сместим стальные колонны на 100мм вверх вместе со связями, а фахверк трогать не будем. Как я уже выше сказала, перемещать будем инструментом ренги "смещение по высоте". По чему именно так? Потому что до этого параметра можно добраться из свойств элемента и использовать его в формуле.
Теперь увидим, что отметки не изменились. Но не отчаиваемся, заходим в редактор свойств и изменяем формулу в свойстве "Отметка низа объекта" на следующую:

Импортированный элемент?(Bottom elevation+Смещение по вертикали/1000):Относительная высота низа объекта
Здесь нужно помнить, что смещения по высоте задается в миллиметрах, а отметки из Tekla, например, мы получаем в метрах. Соответственно нужно держать в голове, что если хотим все также в метрах, то смещение по вертикали стоит разделить на 1000 для получения корректного значения.

Формулу изменить нужно во всех свойствах элементов (балки, колонны, пластины, элементы).

Теперь можем проверять результат.
Все получилось: стальная колонна и связь поднялись на 100мм выше, а фахверковую стойку мы не трогали, она так и осталась на 0,000.

Наверное, можно придумать еще много вариантов использования полученных отметок, но я на этом остановлюсь, а свои варианты вы можете оставить в комментариях, там же (или в телеграмме) можно задать уточняющие вопросы, помогу чем смогу.