Принцип наследования в IFC.
Говоря о BIM-моделях как об объектно-ориентированных сущностях, нужно отдавать себе отчет, что под этим понимается. Поясним на принципах смежной области - объектно-ориентированном программировании (ООП). Рассмотрим принцип наследования. Согласно ему классы в IFC выстроены в четкую иерархию родителей и потомков.
✈️ Базовым корневым классом в IFC является IfcRoot. Остальные классы делятся на потомков класса IfcRoot и независимых от него.
✈️ Классы-потомки, представленные в модели, как правило, важны для пользователей. Такие сущности наследуют от "корня" атрибуты GlobalID, OwnerHistory, Name, Description.
GlobalID - обязательный атрибут для уникального идентификатора, обычно создаваемый автоматически в САПР. С помощью атрибутов GlobalID и Name пользователь может отслеживать классы в проекте.
✈️ Классы, не привязанные к ветке IfcRoot, используются для хранения данных, не нуждающихся в глобальном идентификаторе. Обычно такие классы играют вспомогательную или обслуживающую роль. Это могут быть типы геометрических представлений для объектов, цвета, материалы, внешняя информация, явно не представленная в модели (информация о классификации, метаданные внешних документов и так далее).
✈️ Способность наследования есть не только у ветки IfcRoot, но и у остальных веток. Для того, чтобы ввести общие атрибуты для всех потомков, в дерево зачастую вводятся обобщающие абстрактные классы, которые обычно не могут быть представлены в модели. Но в ряде случаев родители также могут быть назначены в модели. Тогда потомки наследуют не сами значения атрибутов родителя, а только способность иметь эти атрибуты.
✈️ Некоторые атрибуты обязательны для заполнения. Без них нарушается целостность файла. Если атрибут опциональный, то в структуре файла IFC на его месте ставится знак $.
Например:
Здесь у IfcProject заполнен только обязательный GlobalID, и две ссылки на другие сущности. Остальные опциональные атрибуты не заполнены.
#База
@ifc_ru
Говоря о BIM-моделях как об объектно-ориентированных сущностях, нужно отдавать себе отчет, что под этим понимается. Поясним на принципах смежной области - объектно-ориентированном программировании (ООП). Рассмотрим принцип наследования. Согласно ему классы в IFC выстроены в четкую иерархию родителей и потомков.
✈️ Базовым корневым классом в IFC является IfcRoot. Остальные классы делятся на потомков класса IfcRoot и независимых от него.
✈️ Классы-потомки, представленные в модели, как правило, важны для пользователей. Такие сущности наследуют от "корня" атрибуты GlobalID, OwnerHistory, Name, Description.
GlobalID - обязательный атрибут для уникального идентификатора, обычно создаваемый автоматически в САПР. С помощью атрибутов GlobalID и Name пользователь может отслеживать классы в проекте.
✈️ Классы, не привязанные к ветке IfcRoot, используются для хранения данных, не нуждающихся в глобальном идентификаторе. Обычно такие классы играют вспомогательную или обслуживающую роль. Это могут быть типы геометрических представлений для объектов, цвета, материалы, внешняя информация, явно не представленная в модели (информация о классификации, метаданные внешних документов и так далее).
✈️ Способность наследования есть не только у ветки IfcRoot, но и у остальных веток. Для того, чтобы ввести общие атрибуты для всех потомков, в дерево зачастую вводятся обобщающие абстрактные классы, которые обычно не могут быть представлены в модели. Но в ряде случаев родители также могут быть назначены в модели. Тогда потомки наследуют не сами значения атрибутов родителя, а только способность иметь эти атрибуты.
✈️ Некоторые атрибуты обязательны для заполнения. Без них нарушается целостность файла. Если атрибут опциональный, то в структуре файла IFC на его месте ставится знак $.
Например:
#28= IFCPROJECT('3fkehi1_vATQtuYaU0$Grr',$,$,$,$,$,$,(#5),#27);
Здесь у IfcProject заполнен только обязательный GlobalID, и две ссылки на другие сущности. Остальные опциональные атрибуты не заполнены.
#База
@ifc_ru