Введение

Формат файла обмена данными CAD Industry Foundation Classes (IFC) – это схема обмена данными CAD, предназначенная для описания данных архитектурной, строительной и проектной отраслей. Это спецификация схемы открытых данных, не зависящая от платформы и не контролируемая одним поставщиком или группой поставщиков. Это объектно-ориентированная схема данных с моделью данных, разработанной buildingSMART (ранее Международным альянсом по взаимодействию, IAI) для обеспечения совместимости в индустрии архитектуры, инженерии и строительства (AEC) и являющаяся широко используемым форматом для совместной работы в проектах, основанных на информационном моделировании зданий (BIM). Спецификация модели IFC является открытой и общедоступной. Она зарегистрирована в ISO и является официальным международным стандартом ISO 16739-1:2018. Благодаря своей направленности на совместимость, правительство Дании в 2010 году сделало обязательным использование формата(ов) IFC для строительных проектов, получающих государственное финансирование. В 2017 году финская государственная компания по управлению недвижимостью Senate Properties начала требовать использования программного обеспечения, совместимого с IFC, и BIM во всех своих проектах. Кроме того, правительство Норвегии, организации в сфере здравоохранения и обороны требуют использования IFC BIM во всех проектах, а также многие муниципалитеты, частные заказчики, подрядчики и проектировщики внедрили IFC BIM в свою деятельность. Популярность схемы данных IFC в строительстве продолжает расти, главным образом для обмена геометрическими данными.

История

Инициатива IFC началась в 1994 году, когда Autodesk создал отраслевой консорциум для консультирования компании по разработке набора классов C++, способных поддерживать интегрированную разработку приложений. В консорциум вошли двенадцать американских компаний, включая AT&T, HOK Architects, Honeywell, Carrier, Tishman и Butler Manufacturing. Изначально названный Альянсом промышленности по вопросам совместимости, альянс открыл членство для всех заинтересованных сторон в сентябре 1995 года и в 1997 году изменил свое название на Международный альянс по вопросам совместимости. Новый альянс был реорганизован как некоммерческая организация, управляемая отраслью, с целью публикации класса Industry Foundation (IFC) как нейтральной модели продукта AEC, отвечающей жизненному циклу здания в сфере AEC. В 2005 году произошло еще одно изменение названия, и теперь спецификация IFC разрабатывается и поддерживается buildingSMART.

Определение ifcObject

IfcObjectDefinition разделен на экземпляры объектов и типы объектов. IfcObject отражает экземпляры объектов, такие как установка изделия, имеющая серийный номер и физическое размещение. IfcTypeObject отражает определения типов (или шаблоны), такие как тип изделия, имеющий определенный номер модели и общую форму. Экземпляры и типы далее подразделяются на шесть фундаментальных понятий: действующие лица ("кто"), элементы управления ("почему"), группы ("что"), изделия ("где"), процессы ("когда") и ресурсы ("как"). IfcActor представляет людей или организации. IfcControl представляет правила, контролирующие время, стоимость или объем работ, такие как производственные задания. IfcGroup представляет собой коллекции объектов для определенной цели, например, электрические цепи. IfcProduct представляет собой экземпляры в пространстве, такие как физические элементы здания и пространственные местоположения. IfcProcess представляет собой события во времени, такие как задачи, события и процедуры. IfcResource представляет использование чего-либо с ограниченной доступностью, например, материалов, рабочей силы и оборудования.

Отношения

IfcRelationship отражает связи между объектами. Существует пять основных типов связей: состав, назначение, соединение, ассоциация и определение. IfcRelDecomposes описывает отношение "целое-часть" с исключительным включением, например, разделение здания на этажи и помещения или стены на стойки и облицовку. IfcRelAssigns отражает отношения назначения, когда один объект использует ресурсы другого объекта, например, трудовой ресурс, назначенный задаче, или задача, назначенная элементу здания. IfcRelConnects указывает на соединение между объектами, например, плиту перекрытия, соединенную с балкой, или трубу, соединенную с мойкой. IfcRelAssociates указывает внешние ссылки для объекта, например, внешний файл библиотеки IFC, в котором объект определен. IfcRelDefines указывает на экземпляр связи, например, сегмент трубы, являющийся определенным типом.

IfcPropertyDefinition (Определение свойства)

IfcPropertyDefinition определяет динамически расширяемые наборы свойств. Набор свойств содержит одно или несколько свойств, которые могут представлять собой одно значение (например, строку, число, единицу измерения), ограниченное значение (имеющее минимальное и максимальное значения), перечисление, список значений, таблицу значений или структуру данных. В то время как IFC определяет несколько сотен наборов свойств для определенных типов, пользовательские наборы свойств могут быть определены разработчиками приложений или конечными пользователями. IfcPropertySet представляет собой набор свойств, связанных с экземпляром объекта или типом объекта. IfcPropertySetTemplate [IFC2x4] определяет определения свойств и их типы данных.

Продукты

IfcProduct – базовый класс для всех физических объектов и подразделяется на пространственные элементы, строительные элементы, элементы структурного анализа и другие понятия. Продукты могут иметь связанные материалы, представления формы и размещение в пространстве. Пространственные элементы включают IfcSite, IfcBuilding, IfcBuildingStorey и IfcSpace. Строительные элементы включают IfcWall, IfcBeam, IfcDoor, IfcWindow, IfcStair и т. д. Распределительные системы (ОВКВ, электрооборудование, сантехника) имеют понятие портов, к которым элементы могут иметь специальные соединения для различных инженерных сетей и соединяются между собой кабелями, трубами или воздуховодами для формирования системы. Для строительных элементов используются различные связи, например, стены с проемами, заполненными дверями или окнами. Материалы могут быть определены для продуктов в целом или в виде слоев, профилей или компонентов для определенных частей. IfcMaterial указывает конкретный материал с необязательными свойствами (например, механическими, тепловыми) и стилями (например, цветами, текстурами). IfcMaterialLayerSet содержит список слоев, каждый из которых указывает материал заданной толщины. IfcMaterialProfileSet [IFC2x4] содержит набор профилей, каждый из которых указывает материал с определенным поперечным сечением. IfcMaterialConstituentSet [IFC2x4] содержит набор компонентов, каждый из которых указывает материал, используемый в определенной форме. Представления могут быть определены для явной 3D-формы и, опционально, как параметрические ограничения. Каждое представление идентифицируется с помощью IfcShapeRepresentation с известным именем. 'Body' (Тело) указывает 3D-форму, которая может быть представлена в формате B-Rep, NURBS, конструктивной твердотельной геометрии (CSG) или на основе профилей. Она может быть определена напрямую или получена путем применения определений материалов к другим представлениям. 'Axis' (Ось) указывает путь для линейных элементов (например, стены, балки, трубы), вдоль которого выравниваются профили или слои материалов. 'FootPrint' (След) указывает границу для плоских элементов (например, плиты, лестницы), ограничивающую слои материалов. 'Profile' (Профиль) указывает боковой профиль для проемных элементов (например, двери, окна), ограничивающий компоненты материалов. 'SurveyPoints' (Геодезические точки) указывает набор точек для поверхностных элементов (например, участка) для описания контуров. Размещение может указывать положение, вертикальный угол и горизонтальный угол. IfcLocalPlacement указывает размещение относительно иерархии окружающих элементов. IfcGridPlacement указывает размещение относительно сетки с осями, заданными пользователем. Количества могут быть определены для сметных расчетов, такие как общая площадь, общий объем, общий вес, нетто-вес и т. д. IFC определяет различные количества, специфичные для каждого типа элемента, и метод расчета в соответствии с геометрией и связями.

Процессы

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

Ресурсы

IfcResource — базовый класс для ресурсов, который подразделяется на материалы, трудовые ресурсы, оборудование, субподряды, бригады и другие типы. Ресурсы могут иметь различные виды затрат и календари доступности. Ресурсы могут быть детализированы до подресурсов для более точного распределения. Ресурсы могут быть назначены процессам, указывающим на выполняемые задачи.

Контексты

IfcProject инкапсулирует информацию об общем проекте, включая название проекта, описание, единицы измерения по умолчанию, валюту, систему координат и другие контекстные данные. Действительный IFC-файл всегда должен содержать ровно один экземпляр IfcProject, к которому все остальные объекты относятся напрямую или косвенно. Проект может включать в себя несколько зданий, участников и/или этапов в зависимости от конкретного назначения. Помимо информации, специфичной для проекта, IfcProject может также ссылаться на внешние проекты, из которых могут быть импортированы общие определения, такие как типы изделий. Каждый внешний проект инкапсулируется с помощью IfcProjectLibrary [IFC2x4] вместе с IfcRelAssociatesLibrary и IfcLibraryInformation для идентификации конкретной редакции импортированной библиотеки проекта. Проекты поддерживают контроль версий, при котором каждая сущность, основанная на IfcRoot, имеет уникальный идентификатор и может быть помечена как добавленная, измененная, удаленная или не измененная. Эта возможность позволяет детерминированно объединять несколько IFC-файлов, обеспечивая целостность данных без участия человека.