Главная // Актуальные документы // ГОСТ Р (Государственный стандарт)
СПРАВКА
Источник публикации
М.: ФГБУ "Институт стандартизации", 2024
Примечание к документу
Документ введен в действие с 01.06.2024.
Название документа
"ГОСТ Р ИСО 10303-216-2023. Национальный стандарт Российской Федерации. Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 216. Прикладной протокол. Данные о форме обводов корпуса судна"
(утв. и введен в действие Приказом Росстандарта от 29.11.2023 N 1498-ст)

"ГОСТ Р ИСО 10303-216-2023. Национальный стандарт Российской Федерации. Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 216. Прикладной протокол. Данные о форме обводов корпуса судна"
(утв. и введен в действие Приказом Росстандарта от 29.11.2023 N 1498-ст)


Содержание


Утвержден и введен в действие
Приказом Федерального агентства
по техническому регулированию
и метрологии
от 29 ноября 2023 г. N 1498-ст
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
СИСТЕМЫ АВТОМАТИЗАЦИИ ПРОИЗВОДСТВА И ИХ ИНТЕГРАЦИЯ
ПРЕДСТАВЛЕНИЕ ДАННЫХ ОБ ИЗДЕЛИИ И ОБМЕН ЭТИМИ ДАННЫМИ
ЧАСТЬ 216
ПРИКЛАДНОЙ ПРОТОКОЛ. ДАННЫЕ О ФОРМЕ ОБВОДОВ КОРПУСА СУДНА
Industrial automation systems and integration. Product data
representation and exchange. Part 216. Application protocol.
Ship moulded forms
(ISO 10303-216:2003 + Cor.1:2008, IDT)
ГОСТ Р ИСО 10303-216-2023
ОКС 25.040.40
47.020.10
Дата введения
1 июня 2024 года
Предисловие
1 ПОДГОТОВЛЕН Научно-исследовательским институтом по стандартизации и сертификации "Лот" Федерального государственного унитарного предприятия "Крыловский государственный научный центр" (НИИ "Лот" ФГУП "Крыловский государственный научный центр") на основе собственного перевода на русский язык англоязычной версии стандарта, указанного в пункте 4
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 005 "Судостроение"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 29 ноября 2023 г. N 1498-ст
4 Настоящий стандарт идентичен международному стандарту ИСО 10303-216:2003 "Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 216. Прикладной протокол. Данные о форме обводов корпуса судна" (ISO 10303-216:2003 "Industrial automation systems and integration - Product data representation and exchange - Part 216: Application protocol: Ship moulded forms", IDT), включая техническую поправку Cor.1:2008.
Техническая поправка к указанному международному стандарту, принятая после его официальной публикации, внесена в текст настоящего стандарта, а информация о ее учете приведена в дополнительном приложении ДА.
При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов и документов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном приложении ДБ.
Дополнительные сноски в тексте стандарта, выделенные курсивом, приведены для пояснения текста оригинала
5 ВВЕДЕН ВПЕРВЫЕ
Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.rst.gov.ru)
Введение
Стандарты серии ИСО 10303 распространяются на компьютерное представление информации об изделиях и обмен данными об изделиях. Целью данных стандартов является обеспечение нейтрального механизма, способного описывать изделия на всем протяжении их жизненного цикла. Этот механизм применим не только для нейтрального обмена файлами, но является также основой для реализации и совместного доступа к базам данных об изделиях и организации архивирования.
Настоящий стандарт входит в группу прикладных протоколов (ПП). Настоящий стандарт устанавливает ПП для теоретических обводов судов и связанных с ними гидростатических характеристик.
Настоящий стандарт входит в серию ПП для судостроения, которые предназначены для создания интегрированной компьютерной интерпретируемой модели судна.
Серия ПП для судостроения предполагает, что модель судна может быть разделена на отдельные судовые элементы на протяжении всего их жизненного цикла. Этими элементами являются: теоретические обводы судна, судовые устройства, судовые конструкции, судовые системы, оснащение и обстановка судна. Каждый отдельный элемент описывается одним или несколькими ПП. Вся серия ПП для судостроения показана на рисунке 1. Аспекты модели изделия судна, являющиеся общими для каждого ПП для судостроения, описываются последовательно и идентично в каждом ПП. Дополнительная информация о ПП и их элементах для судостроения, а также информация об общих данных ПП для судостроения приведены в приложении L.
Рисунок 1 - Прикладные протоколы для судостроения
В составе серии ПП для судостроения настоящий стандарт подробно описывает геометрию теоретических обводов судна.
Теоретический обвод - это графическое изображение (контур) теоретической поверхности и набор проектных параметров различных частей судна, не включающий информацию о толщине материала, из которого они изготовлены. Теоретический обвод может описывать корпус судна, гребной винт, руль, выступающую часть, палубу или конструктивный элемент судна, например переборку. Особый интерес представляет теоретический обвод, являющийся корпусом судна и называемый теоретическим обводом корпуса. Теоретический обвод корпуса является предметом обмена между организациями судостроительной промышленности во время эскизного проектирования и основой гидростатических расчетов.
В настоящем стандарте представлены все теоретические обводы, при этом набор теоретических обводов, описывающих судно в целом, называется теоретическим обводом судна.
Данный ПП отвечает требованиям промышленности в части сокращения времени, необходимого для проектирования формы корпуса, прогнозирования производительности и проектирования конструкции судна, за счет осуществления реализации обмена геометрией теоретического обвода корпуса и гидростатическими данными в электронном виде между различными организациями. Кроме того, он удовлетворяет потребность отдельных промышленных предприятий в интеграции компьютерных приложений за счет обеспечения в электронном формате общего вида корпуса и внутренней геометрии судна для проектирования и постройки судов.
Основные принципы теоретических обводов судна:
- теоретический обвод судна и теоретический обвод каждой его части имеет определение;
- определения утверждаются и являются версионизированными;
- теоретический обвод судна состоит из теоретических обводов его частей;
- теоретический обвод обеспечивает геометрическое представление судна.
Описываемые представления отражают различные возможности ввода и вывода данных CAD, CAM и других программных систем, обычно используемых в судостроении.
Поддерживаемые геометрические представления перечислены ниже:
- представление таблицы ординат теоретического чертежа;
- представление каркаса;
- представление поверхности.
Все геометрические представления предполагают отсутствие информации о толщине теоретических обводов судна. Все измерения основаны на одном наборе единиц, определенных для судна. Геометрические представления используют для описания теоретического обвода поверхности корпуса или других теоретических обводов судна.
Гидростатические характеристики определяют жизненный цикл теоретического обвода судна. Гидростатические характеристики - это характеристики неповрежденного корпуса, зависящие от осадки судна, такие как водоизмещение, центр величины и центр тяжести площади грузовой ватерлинии.
Настоящий ПП не описывает информацию о разделении судна на отсеки, так как остойчивость в поврежденном состоянии в настоящем стандарте не рассматривается.
Примечание - Для представления данных об остойчивости в поврежденном состоянии допускается применять ИСО 10303-215.
Настоящий ПП определяет контекст, объем и требования к информации для обмена определениями теоретического обвода судна, геометрическими представлениями, соответствующими гидростатическими характеристиками и определяет интегрированные ресурсы, необходимые для удовлетворения этих требований.
ПП обеспечивают основу для разработки реализаций стандартов серии ИСО 10303 и комплектов абстрактных тестов для аттестационного тестирования реализации ПП.
В разделе 1 определена область применения ПП и резюмированы его функциональность и охватываемые им данные. Термины и определения, применяемые в настоящем стандарте, приведены в разделе 3. Прикладная функциональная модель, которая является основой для определения области применения ПП, приведена в приложении F. Информационные требования приложения представлены в разделе 4 с использованием терминологии, соответствующей данному приложению. Графическое представление информационных требований, называемое прикладной эталонной моделью, приведено в приложении G.
Конструкции ресурсов интерпретируются так, чтобы соответствовать этим информационным требованиям. Интерпретация создает прикладную интерпретированную модель (ПИМ). Интерпретация, приведенная в 5.1, демонстрирует связь между информационными требованиями и ПИМ. Сокращенный листинг ПИМ, в котором определен интерфейс с интегрированными ресурсами, приведен в 5.2. Определения и фрагменты языка EXPRESS, представленные в интегрированных ресурсах для конструкций, используемых в ПИМ, могут включать элементы списка выбора и подтипы, которые не импортируются в ПИМ. Расширенный листинг, приведенный в приложении A, содержит полный текст ПИМ на языке EXPRESS без пояснений. Графическое представление ПИМ приведено в приложении H. Дополнительные требования к конкретным методам реализации приведены в приложении C.
Модель планирования данных, обеспечивающая высокоуровневое описание требований для данного ПП, представлена на рисунке 2. Данная модель планирования создана на основе данных из функций прикладной функциональной модели и сгруппирована в логические функциональные единицы. Эту модель планирования используют в качестве руководства при разработке прикладной эталонной модели.
Рисунок 2 - Модель планирования данных
1 Область применения
Настоящий стандарт определяет объем и требования к информации для обмена определениями теоретических обводов судов, геометрических представлений и соответствующих гидростатических характеристик (данных о форме обводов корпуса судна).
Примечание 1 - Область применения настоящего стандарта уточняется в прикладной функциональной модели, приведенной в приложении F.
Примечание 2 - Обзор ПП теоретического обвода судна приведен на рисунке 3.
Рисунок 3 - Обзор теоретических обводов судна
Настоящий стандарт распространяется:
- на определение геометрии теоретических обводов судов;
- определение геометрии теоретического обвода судна на этапах его жизненного цикла: технический проект, рабочий проект и производство;
- определение геометрии теоретического обвода, которая описывает теоретический обвод корпуса судна, включая однокорпусные обводы, многокорпусные обводы, бульбовую носовую оконечность, транцевую корму, трубы носовых подруливающих устройств, а также дополнительные выступающие части.
Пример 1 - К геометрии теоретического обвода судна относятся скуловой киль, брызгоотражатели, кронштейны гребного вала и выкружки гребного вала, составляющие окончательный теоретический обвод корпуса судна;
- определение геометрии теоретических обводов, описывающей теоретические обводы гребных винтов и рулей;
- определение геометрии теоретических обводов, описывающей теоретические обводы палуб, включая погибь и седловатость палубы;
- определение геометрии теоретических обводов внутренних границ отсеков судна и геометрии теоретических обводов несущих и ненесущих элементов конструкции судна.
Пример 2 - К геометрии теоретических обводов несущих элементов конструкции судна относятся переборки, балки и профили;
- определение общих характеристик.
Пример 3 - К общим характеристикам судна относятся главные размеры, данные о типе судна, судостроительном заводе, владельце судна, а также классификационные данные;
- определение проектных параметров корпуса судна, носовой бульб, гребной винт, руль и выступающие части, необходимые для описания теоретических обводов, а также требующиеся для расчета гидростатических характеристик;
- определение гидростатических характеристик теоретических обводов судна, зависящих от осадки судна.
Пример 4 - Гидростатическими характеристиками являются водоизмещение, центр величины, центр тяжести площади грузовой ватерлинии, метацентрическая высота, а также интерполяционные кривые остойчивости;
- определение систем координат и таблиц расстояний, используемых в судостроении;
- определение формы теоретических обводов судна, в которых используется один из следующих заданных типов геометрического представления:
- представление таблицы ординат теоретического чертежа;
- представления каркасной модели;
- представления поверхности;
- геометрическое представление, содержащее геометрические элементы, используемые в судостроении.
Пример 5 - К геометрическим представлениям относятся, например, ватерлинии и батоксы;
- контроль версий и утверждение теоретических обводов и соответствующей гидростатики.
Настоящий стандарт не распространяется:
- на данные определения изделия, относящиеся к обшивке корпуса, определенной в теоретических обводах;
- данные определения изделия, относящиеся к делению судна на отсеки и общему расположению судна.
Примечание 3 - ИСО 10303-215 допускается использовать для представления данных деления на отсеки и общего расположения судна;
- данные определения изделия, относящиеся к конструкциям судна и комплектным узлам судна.
Примечание 4 - ИСО 10303-218 допускается использовать для представления судовых конструкций;
- данные определения изделия, относящиеся к судовым машинам, механизмам и судовым надстройкам;
- судовые энергетические установки и материалы гребных винтов, рулей и (рулевых) органов управления;
- данные определения изделия на этапе утилизации в рамках жизненного цикла судна;
- гидромеханические характеристики судна;
- характеристики остойчивости поврежденного судна.
Примечание 5 - ISO 10303-215 [3] допускается использовать для представления данных остойчивости поврежденного судна;
- общую продольную прочность судна.
2 Нормативные ссылки
В настоящем стандарте использованы нормативные ссылки на следующие документы [для датированных ссылок применяют только указанное издание ссылочного документа, для тиражированных - последнее издание (включая все изменения)]:
ISO 31 (all parts) Quantities and units (Величины и единицы измерения, все части)
ISO 1000:1992 SI units and recommendations for the use of their multiples and of certain other units (Единицы системы измерения и рекомендации по применению кратных и дольных от них и некоторых других единиц)
ISO 10303-1:1994 Industrial automation systems and integration - Product data representation and exchange - Part 1: Overview and fundamental principles (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 1. Общие представления и основополагающие принципы)
ISO/IEC 8824-1:1998 Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation (Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 1. Спецификация основной нотации)
ISO 10303-11:1994 <1> Industrial automation systems and integration - Product data representation and exchange - Part 11: Description methods: The EXPRESS language reference manual (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS)
--------------------------------
<1> Заменен на ISO 10303-11:2004. Однако для однозначного соблюдения требования настоящего стандарта, выраженного в датированной ссылке, рекомендуется использовать только указанное в этой ссылке издание.
ISO 10303-21:2002 Industrial automation systems and integration - Product data representation and exchange - Part 21: Implementation methods: Clear text encoding of the exchange structure (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 21. Методы реализации. Кодирование открытым текстом структуры обмена)
ISO 10303-22:1998 Industrial automation systems and integration - Product data representation and exchange - Part 22: Implementation methods: Standard data access interface (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 22. Методы реализации. Стандартный интерфейс доступа к данным)
ISO/TS 10303-28 Industrial automation systems and integration - Product data representation and exchange - Part 28: Implementation methods: XML representation of EXPRESS schemas and data (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 28. Методы реализации. Представление схем XML и данных EXPRESS с использованием схемы XML)
ISO 10303-31:1994 Industrial automation systems and integration - Product data representation and exchange - Part 31: Conformance testing methodology and framework: General concepts (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 31. Методология и основы аттестационного тестирования. Общие положения)
ISO 10303-41:2000 Industrial automation systems and integration - Product data representation and exchange - Part 41: Integrated generic resource: Fundamentals of product description and support (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 41. Интегрированный обобщенный ресурс. Основы описания и поддержки изделий)
ISO 10303-42:2000 Industrial automation systems and integration - Product data representation and exchange - Part 42: Integrated generic resource: Geometric and topological representation (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 42. Интегрированный обобщенный ресурс. Геометрическое и топологическое представление)
ISO 10303-43:2000 Industrial automation systems and integration - Product data representation and exchange - Part 43: Integrated generic resource: Representation structures (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 43. Интегрированный обобщенный ресурс. Структуры представления)
ISO 10303-45:1998 Industrial automation systems and integration - Product data representation and exchange - Part 45: Integrated generic resource: Materials (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 45. Интегрированный обобщенный ресурс. Материалы)
ISO 10303-501:2000 Industrial automation systems and integration - Product data representation and exchange - Part 501: Application interpreted construct: Edge-based wireframe (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 501. Прикладная интерпретированная конструкция. Каркасное представление формы на основе ребер)
ISO 10303-508:2001 Industrial automation systems and integration - Product data representation and exchange - Part 508: Application interpreted construct: Non-manifold surface (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 508. Прикладная интерпретированная конструкция. Многосвязная поверхность)
ISO 10303-511:2001 Industrial automation systems and integration - Product data representation and exchange - Part 511: Application interpreted construct: Topologically bounded surface (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 511. Прикладная интерпретированная конструкция. Топологически ограниченная поверхность)
RFC 2396:1998 Uniform Resources Identifiers (URI): Generic Syntax (Идентификаторы единообразных ресурсов. Обобщенный синтаксис)
3 Термины, определения и сокращения
3.1 Термины, определенные в ИСО 10303-1
В настоящем стандарте применены следующие термины:
- приложение (application);
- прикладная функциональная модель (application activity model);
- прикладной контекст (application context);
- прикладная интерпретированная модель (application interpreted model);
- прикладной объект (application object);
- прикладной протокол (application protocol);
- прикладная эталонная модель (application reference model);
- класс соответствия (conformance class);
- требование соответствия (conformance requirement);
- данные (data);
- обмен данными (data exchange);
- метод реализации (implementation method);
- информация (information);
- интегрированный ресурс (integrated resource);
- интерпретация (interpretation);
- форма ЗСРП (PICS proforma);
- изделие (product);
- данные об изделии (product data);
- функциональная единица; ФЕ (unit of functionality; UoF).
3.2 Термины, определенные в ИСО 10303-31
В настоящем стандарте применены следующие термины:
- аттестационное тестирование (conformance testing);
- постпроцессор (postprocessor);
- препроцессор (preprocessor).
3.3 Термины, определенные в ИСО 10303-42
В настоящем стандарте применены следующие термины:
- граница (boundary);
- связанный (connected);
- кривая (curve).
3.4 Прочие термины и определения
В настоящем стандарте применены термины по [10], а также следующие термины с соответствующими определениями:
3.4.1 кормовой перпендикуляр судна; КП (after perpendicular; aft perpendicular): Линия пересечения диаметральной плоскости судна с вертикальной поперечной плоскостью, проходящей через точку пересечения оси поворота руля, или транцем с плоскостью конструктивной ватерлинии.
Примечание - Для судна с транцевой кормой - пересечение конструктивной ватерлинии с транцем.
3.4.2 плоскость мидель-шпангоута судна (amidships; midship): Вертикальная плоскость посередине длины судна, расположенная поперечно в направлении (y, z) глобальной системы координат.
Примечание - Линия пересечения плоскости мидель-шпангоута с теоретической поверхностью корпуса судна называется мидель-шпангоут.
3.4.3 выступающая часть (appendage): Наружное присоединение, навес или узел, прилегающий к корпусу судна.
3.4.4 основная плоскость судна; ОП (baseline): Главная горизонтальная плоскость, проходящая через нижнюю точку поверхности корпуса судна в плоскости мидель-шпангоута, от которой измеряются высоты при проектировании и производстве.
Примечание - Основная плоскость равна нулю по вертикали.
3.4.5 скула (bilge): Часть обшивки корпуса судна, соединяющая днище с бортами.
3.4.6 скуловой киль (bilge keel): Крыло для уменьшения бортовой качки.
3.4.7 наибольшая ширина судна (breadth): Наибольшее расстояние, измеренное в поперечном направлении от одного борта корпуса судна до другого, без учета толщины обшивки корпуса.
Примечание - Наибольшая ширина является самым широким теоретическим главным размерением теоретической поверхности корпуса судна, без учета, возможно, более широкой конструкции в надстройке судна.
3.4.8 переборка (bulkhead): Вертикальная стена или перегородка внутри судна.
Примечание - Переборки часто определяются по их местоположению, использованию, типу материала или методу изготовления.
3.4.9 батокс; БТ (buttock line): Любая продольная линия, параллельная диаметральной плоскости судна.
Примечание - Элемент формы корпуса, представляющий собой пересечение вертикальной продольной плоскости с теоретической поверхностью корпуса судна.
3.4.10 погибь палубы (camber): Плоская кривая поперечного сечения палубы, направленная выпуклостью вверх. Палубы изготавливают с погибью с тем, чтобы обеспечить скат дождевой или забортной воды.
Примечание - Положительное значение погиби палубы будет означать, что палуба по борту ниже, чем палуба диаметральной плоскости.
3.4.11 центральная линия (centreline): Воображаемая линия, получающаяся при пересечении диаметральной плоскости с теоретическим обводом.
Примечание - Является главной опорной базисной линией, используемой при проектировании и производстве, от которой выполняются все поперечные измерения.
3.4.12 диаметральная плоскость; ДП (centreplane): Вертикальная плоскость, представляющая плоскость симметрии судна, расположенная продольно в направлении (x, z) глобальной системы координат.
Примечание - ДП используют при проектировании и производстве, от которой выполняют все поперечные измерения, и делит судно от носа до кормы на левый и правый борта.
3.4.13 центр объема (centroid): Центр предмета, площади или объема, измеренный по отношению к некоторому определенному местоположению.
3.4.14 классификация (classification): Процесс, в ходе которого проводят оценку конструкции и состояния судна для определения соответствия правилам и стандартам, разработанным классификационным обществом, ответственным за его классификацию.
3.4.15 классификационное общество (classification society): Организация, которая устанавливает и контролирует соблюдение нормативно-технических требований при проектировании, строительстве и эксплуатации судов и морских/речных сооружений в течение их жизненного цикла.
3.4.16 управление конфигурацией (configuration management): Контроль версий, статусом одобрения проектной организацией и классификационным обществом, а также управление изменениями модели изделия в части данных модели изделия судна.
3.4.17 система координат (coordinate system; co_ordinate_system; co ordinate system): Величины, определяющие положение точки в n-мерном пространстве.
3.4.18 палуба (deck): Горизонтальное перекрытие в корпусе или надстройках, опирающиеся на борта, переборки и пиллерсы (при их наличии), либо только на переборки, разделяющие корпус судна на помещения по вертикали.
Примечание - Палуба может проходить целиком или только частично поперек судна. Точно так же она может проходить по всей длине судна или над выборочными частями этой длины. Назначение палубы часто определяется исходя из ее местоположения или функционального назначения.
3.4.19 рубка (deck house): Закрытое палубой сооружение на верхней палубе или палубе надстройки, отстоящее хотя бы от одного из бортов на расстоянии более 4% ширины судна.
Примечание - Обычно состоит из помещений, которые используют для размещения экипажа и управления судном.
3.4.20 высота (depth): Расстояние по вертикали между основной плоскостью судна и любым горизонтальным уровнем судна.
3.4.21 обтекаемый (fair): Плавная кривая без неровностей.
3.4.22 крыло (fin): Листовое ребро, устанавливаемое вдоль скулы, в средней части судна, перпендикулярно к наружней обшивке.
3.4.23 коэффициенты формы, коэффициенты формы корпуса (form parameters, hullform parameters): Эмпирические математические уравнения, коэффициенты, площади поперечного сечения и объемы судна.
Примечание - Используют для анализа предполагаемых характеристик, остойчивости, сопротивления и требований к силовым двигателям проекта судна.
3.4.24 носовой перпендикуляр судна; НП (forward perpendicular): Вертикальная линия в ДП судна, проходящей через точку пересечения КВЛ с передней кромкой форштевня.
Примечание - Часто используют в качестве точки отсчета для измерений или размещения предметов продольно на судне.
3.4.25 шпангоут; Шп (frame): Один из поперечных элементов, формирующих реберную каркасную часть судна.
Примечание - Шпангоуты действуют как ребра жесткости, удерживая форму внешней обшивки и сохраняя поперечную форму судна.
3.4.26 меблировка (furnishings): Предметы, помещаемые в обитаемые помещения судна для обеспечения сна, проживания и работы пассажиров и экипажа.
Пример - Койки, шкафы, мебель, кухонное оборудование.
3.4.27 общее расположение (general arrangements): Разделение судна на отсеки и зоны эксплуатации судна, машинных помещений, жилых и подсобных помещений для экипажа и пассажиров, проходов.
3.4.28 полуширота (half-breadth): Поперечный размер, откладываемый от диаметральной плоскости.
3.4.29 обвод корпуса (hullform): Совокупность геометрии, определяющая форму корпуса судна.
Примечание - В отдельных ссылочных изданиях по теории судостроения обводы корпуса включают самую верхнюю водонепроницаемую палубу судна. Применительно к настоящему стандарту поверхность корпуса и самая верхняя водонепроницаемая палуба определяются как отдельные объекты теоретических обводов.
3.4.30 гидродинамические силы (hydrodynamic): Силы, воздействующие на корпус судна при движении в воде.
3.4.31 гидростатика (hydrostatics): Совокупность гидростатических свойств погруженного объема судна.
3.4.32 гидростатические свойства (hydrostatic property): Эмпирические характеристики погруженного объема корпуса судна, такие как: центры тяжести и величины, площади поперечного сечения и объемы судна.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.47.2, а не 4.2.47.1.
Примечание - Перечень типов характеристик приведен в 4.2.47.1.
3.4.33 слом (knuckle): Пространственная линия, где две поверхности судна встречаются под углом.
Примечание - Элемент обводов корпуса, например острая скула.
3.4.34 длина между перпендикулярами (length between perpendiculars): Расстояние, измеряемое в продольном направлении между носовым и кормовым перпендикулярами.
3.4.35 продольный (longitudinal): Измерение по длине судна.
Примечание - В судовой глобальной системе координат, определенной в настоящем стандарте, продольные размеры - по оси X.
3.4.36 главные размеры (main dimensions): Основные конструктивные, расчетные, наибольшие и габаритные размеры судна, которые используют при анализе и проектировании.
Примечание - Перечень главных размеров приведен в 4.2.78.
3.4.37 средняя часть корпуса (mid-body): Для судов с цилиндрической частью - часть теоретических обводов между кормовой и носовой частью.
Пример - У танкеров имеется цилиндрическая средняя часть корпуса, при этом у военных судов цилиндрическая часть корпуса встречается редко.
3.4.38 теоретический обвод (moulded form): Это графическое изображение (контур) теоретической поверхности и набор проектных параметров различных частей судна, не включающие информацию о толщине материала, из которого изготовлены эти части.
Примечание - Теоретические обводы могут описывать корпус судна, гребной винт, руль, выступающую часть, палубу, надстройку или поверхность, лежащую под конструктивным элементом судна, например переборку.
3.4.39 плазовые координаты (offset): Значение координаты точки (высоты и полушироты) на линии пересечения ортогональной плоскости, параллельной плоскости мидель-шпангоута с теоретическим обводом корпуса судна.
3.4.40 насыщение (outfit, outfitting): Элементы, стационарно закрепленные на судне, не являющиеся частями основных конструктивных систем. Применительно к настоящему стандарту, трубопроводные, электрические системы и системы HVAC <1> относятся к распределенным системам, а не к насыщению.
--------------------------------
<1> Системы отопления, вентиляции и кондиционирования воздуха (ОВКВ).
Пример - люки, леерные устройства, двери, трапы.
3.4.41 килевая качка (pitching): Вращательные колебания вокруг поперечной оси судна.
3.4.42 бортовая качка (rolling): Вращательные колебания вокруг продольной оси судна.
3.4.43 седловатость (sheer): Плоская кривая, определяющая кривизну палубы в продольном направлении.
Примечание - В случае погиби палубы диаметральная плоскость палубы может также иметь и седловатость.
3.4.44 судовая конструкция (ship structure): Конструктивные системы, листы и ребра жесткости, формирующие корпус, палубы и переборки судна.
Примечание - Теоретические обводы могут определять поверхности, по которым устанавливают конструкционные листы и ребра жесткости.
3.4.45 теоретический шпангоут (station): Пересечение поперечной плоскости YZ с теоретическим обводом корпуса.
Примечание - Обычно форма судна определяется 20 поперечными сечениями теоретической поверхности корпуса судна, расположенными на равном расстоянии по длине судна между перпендикулярами. Эти теоретические шпангоуты определяют форму поперечного сечения и используются вместе с ватерлиниями и батоксами для представления 3-мерной каркасной формы судна.
3.4.46 форштевень (stem): Плоская кривая, проходящая от основания судна до самой верхней палубы по диаметральной плоскости судна, образующая носовую часть судна.
3.4.47 конструктивная ватерлиния, летняя грузовая ватерлиния (summer load waterline; design waterline): Ватерлиния, принятая за основу построения теоретического чертежа и соответствующая полученному предварительным расчетом полному водоизмещению судна.
3.4.48 надстройка (superstructure): Закрытое палубой сооружение на верхней палубе, простирающееся от борта до борта или отстоящее от любого из бортов судна на расстояние не более 4% ширины судна.
3.4.49 подруливающее устройство (thruster): Вспомогательное движительное устройство, расположенное в корпусе.
Примечание - Подруливающие устройства часто используют для движения судна лагом вбок.
3.4.50 транец (transom): Плоский или несколько выгнутый наружу поперечный срез кормы судна.
3.4.51 поперечный (transverse): Измерение поперек судна.
Примечание - В судовой глобальной системе координат, определенной в настоящем стандарте, продольные размеры - по оси Y.
3.4.52 идентификатор единообразного ресурса (uniform resource identifier): Компактная строка символов для идентификации абстрактного или физического ресурса. Определяет простое и расширяемое средство для идентификации ресурса.
3.4.53 вертикальный (vertical): Измерение по высоте судна.
Примечание - В судовой глобальной системе координат, определенной в настоящем стандарте, вертикальные размеры - по оси Z.
3.4.54 ватерлиния судна; ВЛ (waterline): Линия пересечения теоретической поверхности корпуса судна с горизонтальной плоскостью.
Примечание - В общем, ватерлиния может быть пересечением любой горизонтальной плоскости с теоретическим обводом корпуса.
3.4.55 открытая палуба; главная палуба (weather deck; main deck): Самая верхняя водонепроницаемая палуба судна.
3.4.56 рысканье (yawing): Вращение судна вокруг своей вертикальной оси.
3.5 Сокращения
В настоящем стандарте применены следующие сокращения:
ЗСРП (PICS) - заявление о соответствии реализации прикладному протоколу (protocol implementation conformance statement);
КВЛ - конструктивная ватерлиния;
МАКО (IACS) - Международная ассоциация классификационных обществ (International Association of Classification Societies);
ОМК - общая модель судна;
ПИМ (AIM) - прикладная интерпретированная модель (application interpreted model);
ПП (AP) - прикладной протокол (application protocol);
ПФМ (AAM) - прикладная функциональная модель (application activity model);
ПЭМ (ARM) - прикладная эталонная модель (application reference model);
СИ - метрическая система единиц измерения;
СБ - строительный блок;
ЦВ - центр величины;
ЦТ - центр тяжести;
CAD - система автоматизированного проектирования (computer aided design);
CAM - система автоматизированного производства (computer aided manufacture);
CFD - расчетная гидродинамика (computational fluid dynamics);
GUID - глобально однозначный идентификатор (globally unambiguous identifier);
IMO - Международная морская организация (International Maritime Organisation);
SOLAS - охрана человеческой жизни на море (safety of life at sea).
4 Требования к информации
В этом разделе приведена информация, необходимая для обмена определениями теоретических обводов судна, геометрическими представлениями и соответствующими гидростатическими характеристиками.
Требования к информации определяются как набор функциональных единиц, прикладных объектов и прикладных утверждений. Эти утверждения относятся к индивидуальным прикладным объектам и отношениям между прикладными объектами. Требования к информации определяются с помощью терминологии предметной области данного ПП.
Примечание 1 - Графическое представление требований к информации приведено в приложении G.
Примечание 2 - Требования к информации, соответствующие требованиям к действиям, определенным как входящие в область применения данного ПП, приведены в приложении F.
Примечание 3 - Перечень отображений, приведенный в 5.1, показывает, как интегрированные ресурсы и прикладные интерпретированные конструкции используют для удовлетворения требований к информации данного ПП.
4.1 Функциональные единицы
В данном подразделе указаны функциональные единицы для ПП теоретических обводов судна. В настоящем стандарте приведены следующие функциональные единицы:
- basic_geometry;
- configuration_management;
- definitions;
- external_references;
- hull_class_applicability;
- hydrostatics;
- items;
- location_concepts;
- offset_table_representations;
- ship_design_parameter;
- ship_general_characteristics;
- ship_measures;
- ship_moulded_forms;
- surface_representations;
- wireframe_representations.
Функциональная единица basic_geometry обеспечивает судостроительную номенклатуру и категоризацию, заданную точкам, кривым и поверхностям, используемым в представлении теоретических обводов судна.
4.1.1 Функциональная единица basic_geometry
Функциональная единица basic_geometry использует следующие прикладные объекты:
- Ship_curve;
- Ship_curve_with_spacing_position;
- Ship_point;
- Ship_surface.
4.1.2 Функциональная единица configuration_management
Функциональная единица configuration_management указывает информацию, необходимую для отслеживания утверждения, контроля версий, а также изменений определений теоретических обводов судна.
Примечание - Информация об утверждении описывает, когда, кто и что было утверждено и до какого уровня утверждения, а также как утверждения относятся друг к другу. Версии определяют и описывают, какое определение подлежит контролю версий и как разные версии относятся друг к другу, для обеспечения версионности. Изменения описывают состояние изменения, когда и кто изменил какое определение, а также описывают влияние изменения с точки зрения того, были ли созданы, изменены или удалены другие определения или нет.
Функциональная единица configuration_management использует следующие прикладные объекты:
- Alternative_version_relationship;
- Approval_event;
- Approval_history;
- Change;
- Change_definition;
- Change_impact;
- Change_plan;
- Change_realization;
- Change_request;
- Check;
- Envisaged_version_creation;
- Revision;
- Revision_with_context;
- Version_creation;
- Version_deletion;
- Version_history;
- Version_modification;
- Version_relationship;
- Versionable_object_change_event.
4.1.3 Функциональная единица definitions
Функциональная единица definitions описывает абстрактную концепцию для определения элемента, конструкций элементов и взаимосвязей элементов.
Функциональная единица definitions использует следующие прикладные объекты:
- Definition;
- Design_definition;
- Functional_definition;
- General_characteristics_definition.
4.1.4 Функциональная единица external_references
Функциональная единица external_references обеспечивает возможность и механизмы, с помощью которых могут приводиться ссылки на информацию в другом наборе данных модели изделия, или может ссылаться на информацию, не входящую в данный обмен данными или контекст совместного доступа к данным, и определяет конструкции для идентификации и ссылки на стандарты и документы, определенные во внешних библиотеках или вне объема ИСО 10303.
Функциональная единица external_references использует следующие прикладные объекты:
- Document;
- Document_portion;
- Document_reference;
- Document_reference_with_address;
- External_instance_reference;
- External_reference;
- External_storage;
- Universal_resource_locator.
4.1.5 Функциональная единица hull_class_applicability
Функциональная единица hull_class_applicability позволяет привязать элемент ко всем корпусам в классе судна или к определенному корпусу. В проектировании на класс все элементы привязаны к классу судна. По умолчанию элемент применяется ко всем корпусам в классе. Изменения в корпусе затрагивают элементы, применяемые к определенным корпусам. Эти изменения могут применяться на уровне предмета или на уровне определения.
Пример 1 - К типам применимости для корпуса на уровне предмета будет относиться добавление новой системы, отсека или оборудования.
Пример 2 - К типам применимости для корпуса на уровне определения будут относиться разные редакции, используемые для указания относящихся к корпусу изменений характеристик и/или геометрии.
Функциональная единица hull_class_applicability использует следующие прикладные объекты:
- Hull_applicability.
4.1.6 Функциональная единица hydrostatics
Функциональная единица hydrostatics обеспечивает результаты расчетов гидростатических характеристик исходя из экстремальной формы, относящейся к водоизмещению на тихой воде. Экстремальная форма описывает геометрию, которая определяется теоретическим обводом плюс толщиной материала.
Функциональная единица hydrostatics использует следующие прикладные объекты:
- Addition_of_moulded_form;
- Centre_location;
- Displacement_operation;
- Floating_position;
- Hydrostatic_definition;
- Hydrostatic_position_value;
- Hydrostatic_properties_for_constant_floating_position;
- Hydrostatic_property;
- Hydrostatic_property_value;
- Hydrostatic_scalar_value;
- Hydrostatic_table;
- Stability_definition;
- Stability_properties_for_one_floating_position;
- Stability_property;
- Stability_table;
- Subtraction_of_moulded_form.
4.1.7 Функциональная единица items
Функциональная единица items относится к обобщенным конструкциям изделий судна, отражаемым концепцией так называемых "позиций", а также концепцией конструкций позиций и взаимосвязями позиций, в которых элементы позиций собираются и привязываются друг к другу четко определенным способом.
Функциональная единица items использует следующие прикладные объекты:
- Definable_object;
- Global_id;
- Item;
- Item_relationship;
- Item_structure;
- Ship;
- Versionable_object.
4.1.8 Функциональная единица location_concepts
Функциональная единица location_concepts задает информацию для местоположения судна или любой его части в правой трехмерной декартовой системе координат. Кроме того, она задает информацию, необходимую для деления любой оси на интервалы так, чтобы они образовывали реперный базис для точек в системе координат.
Примечание - Система координат - это либо одна единственная глобальная система координат описаний изделий и корня в иерархии, либо локальная система координат. Может существовать любое количество локальных систем координат. Позиции интервалов могут быть определены для любой из трех осей глобальной системы координат. В случае, если базовой системой координат является глобальная система координат, локальное начало координат может быть определено со ссылкой на положения интервалов.
Функциональная единица location_concepts использует следующие прикладные объекты:
- Buttock_table;
- Frame_table;
- Global_axis_placement;
- Local_co_ordinate_system;
- Local_co_ordinate_system_with_position_reference;
- Longitudinal_position;
- Longitudinal_table;
- Spacing_position;
- Spacing_position_with_offset;
- Spacing_table;
- Station_table;
- Transversal_position;
- Transversal_table;
- Vertical_position;
- Vertical_table;
- Waterline_table.
4.1.9 Функциональная единица offset_table_representations
Функциональная единица offset_table_representations предоставляет информацию, необходимую для геометрического представления формы в виде таблицы точек ординат. Представление таблицы ординат определяет форму полностью набором объектов Ship_point. Объекты Ship_point перечислены в секциях, при этом обычно эти секции являются двухмерными. В особых случаях может возникнуть необходимость использования 3D-секций.
Функциональная единица offset_table_representations использует следующие прикладные объекты:
- Offset_point_table_model;
- Offset_table_shape_representation;
- Section_of_offset_point_table.
4.1.10 Функциональная единица ship_design_parameter
Функциональная единица ship_design_parameter предоставляет измеримые факторы, определяющие проектные параметры для каждого теоретического обвода, из которых состоят теоретические обводы судна целиком.
Примечание - Эта информация содержит размеры и отношения, важные для простой характеризации деталей корпуса, палубы, носа, бульба, гребного винта, руля, выступающей части, подруливающего устройства и киля. Функциональная единица также содержит информацию касательно всех наибольших главных размерений теоретических обводов судна.
Функциональная единица ship_design_parameter использует следующие прикладные объекты:
- Appendage_moulded_form_design_parameter;
- Bottom_moulded_form_design_parameter;
- Bulb_moulded_form_design_parameter;
- Deck_moulded_form_design_parameter;
- Hull_moulded_form_design_parameter;
- Midship_tumble;
- Moulded_form_characteristics_definition;
- Propeller_location;
- Propeller_moulded_form_design_parameter;
- Rudder_moulded_form_design_parameter;
- Ship_overall_dimensions;
- Thruster_moulded_form_design_parameter.
4.1.11 Функциональная единица ship_general_characteristics
Функциональная единица ship_general_characteristics дает базовую информацию, которая детализирует размеры и идентификацию судна, не зависит от геометрического контекста и включает в себя скалярные значения основных размерений судна, информацию об определении компаний, связанных с судами, обозначение класса судна и все соответствующие правила и положения.
Функциональная единица ship_general_characteristics использует следующие прикладные объекты:
- Carrier;
- Class_and_statutory_designation;
- Class_notation;
- Class_parameters;
- Navy_ship;
- Owner_designation;
- Principal_characteristics;
- Regulation;
- Research_ship;
- Ship_designation;
- Shiptype;
- Shipyard_designation;
- Working_ship.
4.1.12 Функциональная единица ship_measures
Функциональная единица ship_measures задает информацию для представления мер для физических величин.
Функциональная единица ship_measures использует следующие прикладные объекты:
- Centre_location;
- Derived_unit;
- Named_unit;
- Precision.
Примечание - Дополнительная информация по использованию мер и единиц приведена в L.7.
4.1.13 Функциональная единица ship_moulded_forms
Функциональная единица ship_moulded_forms задает информацию для описания теоретического обвода, состава теоретических обводов в теоретических обводах судна, представления теоретического обвода и обработки свойств симметрии.
Функциональная единица ship_moulded_forms использует следующие прикладные объекты:
- Moulded_form;
- Moulded_form_boundary_relationship;
- Moulded_form_design_definition;
- Moulded_form_functional_definition;
- Moulded_form_relationship;
- Moulded_form_representation_item;
- Moulded_form_representation_relationship;
- Moulded_form_shape_representation;
- Planar_symmetry;
- Rotational_symmetry;
- Ship_moulded_form;
- Ship_moulded_form_revision;
- Symmetry.
4.1.14 Функциональная единица surface_representations
Функциональная единица surface_representations задает информацию, необходимую для представления теоретического обвода в форме соединенных поверхностей, объединяет топологическую и геометрическую информацию, чтобы описать модель поверхности как набор связанных участков поверхности, описывает простую геометрию, такую как плоскости и прямые линии, а также сложную геометрию, такую как B-сплайновые кривые и поверхности. Кроме того, они могут быть связаны с судостроительными терминами. Если кривые и поверхности взаимосвязаны, то такую информацию указывают однозначно с помощью топологии.
Функциональная единица surface_representations использует следующие прикладные объекты:
- Non_manifold_surface_shape;
- Surface_shape_representation;
- Surface_with_identifier.
4.1.15 Функциональная единица wireframe_representations
Функциональная единица wireframe_representations задает информацию, необходимую для представления теоретического обвода в форме каркаса. Функциональная единица объединяет топологическую и геометрическую информации, чтобы описать каркас как набор пересекающихся 2D- или 3D-кривых. Данной функциональной единицей описывается простая геометрия, такая как плоскости и прямые линии, а также сложная геометрия, такая как B-сплайновые кривые. Кроме того, они могут быть связаны с судостроительными терминами.
Функциональная единица wireframe_representations использует следующие прикладные объекты:
- Edge_based_wireframe_shape;
- Knot;
- Ship_curve_segment;
- Wireframe_shape_representation.
4.2 Прикладные объекты
В данном подразделе приведены прикладные объекты для прикладного протокола теоретических обводов судна. Каждый прикладной объект является отдельным элементом, реализующим уникальную прикладную концепцию и содержащим атрибуты, определяющие элементы данных этого объекта. Прикладные объекты и их определения приведены в последующих пунктах данного подраздела.
Примечание - Эти атрибуты, унаследованные от прикладных объектов супертипа в прикладной эталонной модели, не повторяются в определениях прикладного объекта подтипа в данном подразделе. Спецификация этих унаследованных атрибутов дана в соответствующем определении прикладного объекта супертипа.
4.2.1 Прикладной объект Addition_of_moulded_form
Прикладной объект Addition_of_moulded_form является типом объекта Displacement_operation (см. 4.2.26), в котором водоизмещение объекта Ship_moulded_form (см. 4.2.93) будет увеличено на водоизмещение нового объекта Moulded_form (см. 4.2.61).
4.2.2 Прикладной объект Alternative_version_relationship
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.120, а не 4.2.121.
Прикладной объект Alternative_version_relationship является взаимосвязью между двумя объектами Versionable_object (см. 4.2.121) одного типа. Каждый Versionable_object является альтернативой другого объекта Versionable_object.
С объектом Alternative_version_relationship связаны следующие данные:
- alternative_1;
- alternative_2;
- reason.
4.2.2.1 Данные alternative_1
Данные alternative_1 определяют альтернативный проект для объекта Versionable_object (см. 4.2.121), определенный данными alternative_2. Прикладное утверждение дано в 4.3.1.
4.2.2.2 Данные alternative_2
Данные alternative_2 определяют альтернативный проект для объекта Versionable_object (см. 4.2.121), определенный данными alternative_1. Прикладное утверждение дано в 4.3.1.
4.2.2.3 Данные reason
Данные reason описывают взаимосвязь между двумя альтернативными проектами.
4.2.3 Прикладной объект Appendage_moulded_form_design_parameter
Прикладной объект Appendage_moulded_form_design_parameter является типом определения Moulded_form_characteristics_definition (см. 4.2.63), которое определяет размеры и отношения для каждого типа выступающей части корпуса судна.
С объектом Appendage_moulded_form_design_parameter связаны следующие данные:
- appendage_breadth;
- appendage_depth;
- appendage_length;
- type_of_appendage;
- user_def_appendage_type.
4.2.3.1 Данные appendage_breadth
Данные appendage_breadth определяют ширину выступающей части.
Примечание - Ширина является вторым наибольшим размером выступающей части.
4.2.3.2 Данные appendage_depth
Данные appendage_depth определяют глубину выступающей части.
Примечание - Глубина является наименьшим размером выступающей части.
4.2.3.3 Данные appendage_length
Данные appendage_length определяют длину выступающей части.
Примечание - Длина является максимальным размером выступающей части.
4.2.3.4 Данные type_of_appendage
Данные type_of_appendage определяют тип выступающей части, определяемый объектом Appendage_moulded_form_design_parameter.
Значение данных вида type_of_appendage должно быть одним из следующих:
- active_fin;
- air_emitter;
- arrays;
- bilge_keel;
- bow_thruster;
- cathodic_protection_anode;
- duck_tail;
- passive_fin;
- rudder;
- sea_chest;
- shaft_bossings;
- shaft_strut;
- skeg;
- spray_rail;
- stern_flap;
- stern_thruster;
- user_defined.
4.2.3.4.1 active_fin
Автоматические стабилизаторы, устанавливаемые на корпусе судна для снижения бортовой качки и рысканья.
4.2.3.4.2 air_emitter
Защитная система, создающая экран из воздушных пузырей вокруг корпуса судна, уменьшающий шум от машин и механизмов в окружающую воду, для маскировки вероятных целей или обеспечения запасных целей.
4.2.3.4.3 arrays
Конструкция, в которой размещается оборудование, используемое для буксируемых или стационарных гидроакустических систем или магнитометров.
4.2.3.4.4 bilge_keel
Скуловой киль.
Пример - Скуловой киль представлен на рисунке 4.
Рисунок 4 - Скуловой киль
4.2.3.4.5 bow_thruster
Носовое подруливающее устройство, предназначенное для активного управления судном при маневрировании.
4.2.3.4.6 cathodic_protection_anode
Блоки из расходного материала, устанавливаемые снаружи корпуса, для уменьшения коррозии.
4.2.3.4.7 duck_tail
Конструкция в корме судна, увеличивающая количество воды вокруг гребных винтов в целях уменьшения вибрации, повышения остойчивости и увеличения скорости.
4.2.3.4.8 passive_fin
Стационарное крыло, крепящееся на корпусе судна, изменяющее поток в этой области.
4.2.3.4.9 rudder
Конструкция, крепящаяся вертикально к корме судна и работающая в целях управления направлением судна.
4.2.3.4.10 sea_chest
Кингстонный ящик - ниша в корпусе судна, образованная листовыми конструкциями, используется для подключения систем трубопроводов забортной воды, систем охлаждения и т.д.
4.2.3.4.11 shaft_bossings
Выкружка - локальное изменение теоретических обводов корпуса судна для размещения гребного вала.
Пример - Выкружка гребного вала показана на рисунке 5.
Рисунок 5 - Выкружка гребного вала
4.2.3.4.12 stern_flap
Конструкция, установленная на корме судна, для создания вертикальной подъемной силы на транце и для изменения распределения давления на кормовую часть корпуса в целях снижения лобового сопротивления и увеличения скорости.
4.2.3.4.13 shaft_strut
Несущая опора для части гребного вала снаружи корпуса (обычно для установок с двумя или более винтами).
Пример - Типы кронштейнов гребного вала показаны на рисунках 6 и 7.
Рисунок 6 - Кронштейн гребного вала
Рисунок 7 - Кронштейны гребного вала
4.2.3.4.14 skeg
Узкая корпусная конструкция в подводной части судна.
4.2.3.4.15 spray_rail
Планка на корпусе судна, предотвращающая попадания водяных брызг.
4.2.3.4.16 stern_thruster
Кормовое подруливающее устройство, которое используется для маневрирования.
4.2.3.4.17 user_defined
Тип выступающей части указывается в атрибуте user_def_appendage_type.
4.2.3.5 Данные user_def_appendage_type
Данные вида user_def_appendage_type указывают определенную пользователем роль или назначение выступающей части. Для объекта Appendage_moulded_form_design_parameter данные вида user_def_appendage_type могут быть не заданы.
Примечание - Данные вида user_def_appendage_type не являются опциональными, если значением данных вида type_of_appendage будет USER_DEFINED.
4.2.4 Прикладной объект Approval_event
Прикладной объект Approval_event является значением объекта Event (см. 4.2.33), которое записывает изменение состояния просмотра и приемки или сертификации некоторых данных об изделии в рамках организации.
С объектом Approval_event связаны следующие данные:
- approval_reference;
- result;
- user_defined_result.
4.2.4.1 Данные approval_reference
Данные approval_reference определяют прикладной объект Approval_history (см. 4.2.5), на который повлиял прикладной объект Approval_event. Каждый прикладной объект Approval_event должен ссылаться только на один объект Approval_history. Прикладное утверждение - см. 4.3.2.
Примечание - Атрибут approval_reference является обратным к атрибуту approvals для прикладного объекта Approval_history.
4.2.4.2 Данные result
Данные result определяют решение об утверждении для версии проекта, требующей одобрения.
Значение данных result должно быть одним из следующих:
- approved;
- rejected;
- unapproved;
- user_defined.
Примечание - Определение каждого допустимого значение данных result дано в 4.2.4.2.1 - 4.2.4.2.4.
4.2.4.2.1 approved
Данные об изделии были рассмотрены соответствующей организацией и приняты или сертифицированы для применения в судне.
4.2.4.2.2 rejected
Данные об изделии были рассмотрены соответствующей организацией и не приняты или не сертифицированы для применения в судне.
Примечание - Обычно для замены отклоненных данных об изделии создают другие данные об изделии.
4.2.4.2.3 unapproved
Данные об изделии еще не рассматривались или находятся в процессе рассмотрения для приемки или сертификации организацией.
4.2.4.2.4 user_defined
Код статуса утверждения для конкретного проекта, назначаемый конкретным версиям данных об изделии, должен определяться двумя или более организациями, осуществляющими обмен данными.
4.2.4.3 Данные user_defined_result
Данные user_defined_result определяют статус одобрения, определенный пользователем. Для конкретного Approval_event данные вида user_defined_result могут быть не заданы.
Примечание - Данные user_defined_result не являются опциональными, если полученным значением прикладного объекта Approval_event будет USER_DEFINED.
4.2.5 Прикладной объект Approval_history
Прикладной объект Approval_history является набором всех объектов Approval_events (см. 4.2.4) конкретного типа, определенных для какой-то части данных об изделии.
С объектом Approval_history связаны следующие данные:
- approvals;
- status;
- subject.
4.2.5.1 Данные approvals
Данные approvals определяют последовательность объектов Approval_events (см. 4.2.4), которые возникли до настоящего времени. Объект Approval_history должен состоять, как минимум, из одного объекта Approval_event. Прикладное утверждение - см. 4.3.2.
Примечание - Последовательность объектов Approval_events строится в хронологическом порядке.
4.2.5.2 Данные status
Данные status определяют текущее состояние утверждения.
Значение данных status может быть одним из следующих:
- approved;
- rejected;
- unapproved;
- user_defined.
Примечание - Определение каждого допустимого значения статуса - см. 4.2.5.2.1 - 4.2.5.2.4.
4.2.5.2.1 approved
Данные об изделии были рассмотрены соответствующей организацией и приняты или сертифицированы для применения в судне.
4.2.5.2.2 rejected
Данные об изделии были рассмотрены соответствующей организацией и не приняты или не сертифицированы для применения в судне.
Примечание - Обычно для замены отклоненных данных об изделии создаются другие данные об изделии.
4.2.5.2.3 unapproved
Данные об изделии еще не рассматривались или находятся в процессе рассмотрения для приемки или сертификации организацией.
4.2.5.2.4 user_defined
Код статуса утверждения для конкретного проекта, назначаемый конкретным версиям данных об изделии, должен определяться двумя или более организациями, осуществляющими обмен данными.
4.2.5.3 Данные subject
Данные subject задают данные об изделии, к которым относится данное утверждение. Прикладное утверждение - см. 4.3.3.
Примечание - Для прикладного объекта Definition (см. 4.2.23) может быть ноль, один или несколько связанных с ним объектов Approval_history. Если у объекта Definition будет более одного связанного с ним объекта Approval_history, все объекты Approval_history будут разными.
4.2.6 Прикладной объект Bottom_moulded_form_design_parameter
Прикладной объект Bottom_moulded_form_design_parameter является типом объекта Moulded_form_characteristics_definition (см. 4.2.63), содержащим размеры и отношения киля и днища корпуса судна.
Пример - Размеры киля и днища корпуса судна показаны на рисунке 8.
Рисунок 8 - Размеры киля
С объектом Bottom_moulded_form_design_parameter связаны следующие данные:
- aft_end_of_flat_of_bottom;
- bilge_radius;
- flat_of_bottom_breadth;
- front_end_of_flat_of_bottom;
- length_of_flat_of_bottom;
- rake_of_keel;
- rise_of_floor.
4.2.6.1 Данные aft_end_of_flat_of_bottom
Данные aft_end_of_flat_of_bottom определяют продольное расстояние от кормового перпендикуляра до задней части плоского днища.
4.2.6.2 Данные bilge_radius
Данные bilge_radius определяют радиус арки, соединяющей прямостенную часть борта корпуса с днищем. Измеряют в поперечном сечении по мидель-шпангоуту.
4.2.6.3 Данные flat_of_bottom_breadth
Данные flat_of_bottom_breadth определяют ширину плоского днища, измеряемую в поперечном сечении по мидель-шпангоуту.
4.2.6.4 Данные front_end_of_flat_of_bottom
Данные front_end_of_flat_of_bottom определяют продольное расстояние от кормового перпендикуляра до передней части плоского днища.
4.2.6.5 Данные length_of_flat_of_bottom
Данные length_of_flat_of_bottom определяют длину плоского днища, измеряемую горизонтально по ДП.
4.2.6.6 Данные rake_of_keel
Данные rake_of_keel определяют угол между ОП и килем судна.
4.2.6.7 Данные rise_of_floor
Данные rise_of_floor определяют расстояние по вертикали от ОП до точки, где линия продолжения скошенного днища встречается с продолжением линии борта судна. Значение данных rise_of_floor измеряется в поперечном сечении на мидель-шпангоуте.
4.2.7 Прикладной объект Bulb_moulded_form_design_parameter
Прикладной объект Bulb_moulded_form_design_parameter является типом объекта Moulded_form_characteristics_definition (см. 4.2.63), содержащим размеры и отношения бульба корпуса судна.
Пример - Размеры носового бульба корпуса судна показаны на рисунке 9.
Рисунок 9 - Размеры нособульба
С объектом Bulb_moulded_form_design_parameter связаны следующие данные:
- bulb_breadth;
- bulb_breadth_pp;
- bulb_depth;
- bulb_depth_pp;
- bulb_frame_section_area_at_pp;
- bulb_length;
- bulb_length_from_pp;
- bulb_location.
4.2.7.1 Данные bulb_breadth
Данные bulb_breadth определяют максимальную ширину бульба.
4.2.7.2 Данные bulb_breadth_pp
Данные bulb_breadth_pp определяют ширину бульба в сечении, параллельном мидель-шпангоуту, проходящему через кормовой или носовой перпендикуляр, в зависимости от размещения бульба.
4.2.7.3 Данные bulb_depth
Данные bulb_depth определяют максимальное вертикальное расстояние от ОП до самой верхней точки бульба.
4.2.7.4 Данные bulb_depth_pp
Данные bulb_depth_pp specifies определяют максимальное вертикальное расстояние от ОП до самой верхней точки бульба по кормовому или носовому перпендикуляру, в зависимости от размещения бульба.
4.2.7.5 Данные bulb_frame_section_area_at_pp
Данные bulb_frame_section_area_at_pp определяют площадь поперечного сечения бульба по кормовому или носовому перпендикуляру, в зависимости от размещения бульба.
4.2.7.6 Данные bulb_length
Данные bulb_length определяют максимальную длину бульба, измеряемую горизонтально по ДП.
4.2.7.7 Данные bulb_length_from_pp
Данные bulb_length_from_pp определяют максимальную длину бульба, измеряемую горизонтально от носового или кормового перпендикуляра, в зависимости от размещения бульба.
4.2.7.8 Данные bulb_location
Данные bulb_location определяют, где размещен бульб, в носу или в корме.
Значение данных bulb_location должно быть одним из следующих:
- bow;
- stern.
Определение каждого допустимого значения данных bulb_location - см. 4.2.7.8.1, 4.2.7.8.2.
4.2.7.8.1 bow
Размещение бульба в носу корпуса судна.
4.2.7.8.2 stern
Размещение бульба в корме корпуса судна.
4.2.8 Прикладной объект Buttock_table
Прикладной объект Buttock_table является типом объекта Transversal_table (см. 4.2.113), в котором представлены положения, которые задают размещение баттокса и располагаются на глобальной оси Y.
4.2.9 Прикладной объект Carrier
Прикладной объект Carrier является типом объекта Shiptype (см. 4.2.98), представляющим объект Ship (см. 4.2.88), перевозящим грузы или пассажиров.
С объектом Carrier связаны следующие данные:
- has_type.
4.2.9.1 Данные has_type
Данные has_type определяют тип транспортного судна.
Значение данных has_type должно быть одним из следующих:
- barge;
- barge_for_deck_loading;
- barge_for_liquifiedgas;
- barge_for_oil;
- barge_pontoon;
- bulk_carrier;
- car_carrier;
- car_ferry;
- cargo_ship_carrying_passengers;
- chemical_tanker;
- chemical_tanker_type_1;
- container_carrier;
- cruise_liner;
- dry_cargo_vessel;
- ferry;
- gas_carrier;
- general_cargo_carrier;
- highspeedcraft_cargo;
- highspeedcraft_passenger;
- hydrofoil;
- liquified_gas_tanker;
- LNG_carrier;
- LPG_carrier;
- oil_tanker;
- ore carrier;
- passenger_vessel;
- product_tanker;
- refrigerated_cargo_carrying_ship;
- roro_vessel;
- tanker_for_refrigerated_fruit_juice;
- user_defined.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.9.1.31, а не 4.1.9.1.29.
Примечание - Определение допустимых значений данных has_type - см. 4.2.9.1.1 - 4.2.9.1.29.
4.2.9.1.1 barge
Грузовое судно, не оборудованное машинами и механизмами для самоходности и предназначенное для транспортировки грузов.
4.2.9.1.2 barge_for_deck_loading
Грузовое судно, спроектированное как сервисная платформа для осуществления погрузки на палубы судов.
4.2.9.1.3 barge_for_liquefied_gas
Грузовое судно, не оборудованное машинами и механизмами для самоходности и предназначенное для перевозки сжиженного газа.
4.2.9.1.4 barge_for_oil
Грузовое судно, не оборудованное машинами и механизмами для самоходности и предназначенное для перевозки нефти.
4.2.9.1.5 barge_pontoon
Грузовое судно с понтонами, соединенными в баржу, используемое в качестве плавучей вспомогательной платформы.
4.2.9.1.6 bulk_carrier
Грузовое судно, построенное для перевозки насыпных грузов.
4.2.9.1.7 car_carrier
Грузовое судно, используемое для транспортировки автомобилей от изготовителя конечному пользователю.
4.2.9.1.8 car_ferry
Грузовое судно, построенное для транспортировки автомобилей по воде.
4.2.9.1.9 cargo ship carrying passengers
Грузовое судно, построенное для перевозки грузов и пассажиров.
4.2.9.1.10 chemical_tanker
Грузовое судно, спроектированное специально для перевозки химических веществ.
4.2.9.1.11 chemical_tanker_type_1
Грузовое судно, спроектированное специально для перевозки химических веществ 1-го типа.
4.2.9.1.12 container_carrier
Грузовое судно, построенное для перевозки контейнеров.
4.2.9.1.13 cruise_liner
Грузовое судно, построенное для перевозки пассажиров для прогулок и экскурсий.
4.2.9.1.14 dry_cargo_vessel
Грузовое судно, построенное для перевозки сухих, бестарных грузов.
Пример - К типам сухих грузов относится зерно или уголь.
4.2.9.1.15 ferry
Грузовое судно, построенное для перевозки пассажиров, машин, автобусов, грузовиков и поездов по воде.
Примечание - Паром может быть предназначен для перевозки только одного типа груза, например пассажиров.
4.2.9.1.16 gas_carrier
Грузовое судно, спроектированное специально для перевозки газообразных продуктов.
4.2.9.1.17 general_cargo_carrier
Грузовое судно, спроектированное специально для перевозки генеральных грузов.
Примечание - Объект со значением данных general_cargo_carrier перевозит любые грузы, которые не упаковываются, а перевозятся бестарно, например зерно или уголь.
4.2.9.1.18 highspeedcraft_cargo
Грузовое судно, предназначенное для высокоскоростных грузовых перевозок.
4.2.9.1.19 highspeedcraft_passenger
Грузовое судно, предназначенное для высокоскоростных пассажирских перевозок.
4.2.9.1.20 hydrofoil
Грузовое судно, спроектированное так, что достигает скорости за счет подъема корпуса судна из воды на поверхностях подводных крыльев, избегая, таким образом, лобового сопротивления корпуса и волнового сопротивления.
4.2.9.1.21 liquefied_gas_tanker
Грузовое судно, предназначенное специально для транспортировки сжиженных газовых продуктов.
4.2.9.1.22 LNG_carrier
Грузовое судно, предназначенное специально для транспортировки сжиженного природного газа.
4.2.9.1.23 LPG_carrier
Грузовое судно, предназначенное специально для транспортировки сжиженного нефтяного газа.
4.2.9.1.24 oil_tanker
Грузовое судно, предназначенное специально для транспортировки нефти.
4.2.9.1.25 ore_carrier
Грузовое судно, построенное для транспортировки руды
Пример - Тип руды - железная руда.
4.2.9.1.26 passenger_vessel
Грузовое судно, построенное для транспортировки пассажиров.
4.2.9.1.27 product_tanker
Грузовое судно, предназначенное специально для транспортировки нефтепродуктов.
4.2.9.1.28 refrigerated cargo carrying ship
Грузовое судно, построенное для транспортировки грузов, которые необходимо охлаждать или замораживать.
4.2.9.1.29 roro_vessel
Грузовое судно, построенное для транспортировки колесных транспортных средств.
4.2.9.1.30 tanker_for_refrigerated_fruit_juice
Грузовое судно, предназначенное специально для транспортировки фруктовых соков, которые необходимо охлаждать или замораживать.
4.2.9.1.31 user_defined
Грузовое судно, тип которого не входит в указанный выше перечень (см. 4.2.9.1.1 - 4.2.9.1.30). Подробная информация приведена в атрибуте описания для Shiptype (см. 4.2.98).
4.2.10 Прикладной объект Centre_location
Прикладной объект Centre_location представляет собой значения измерений X, Y и Z для значений данных centre_of_buoyancy (см 4.2.48.1.1), centre_of_flotation (см. 4.2.48.1.2) и centre_of_lateral_resistance (см. 4.2.48.1.3).
4.2.11 Прикладной объект Change
Прикладной объект Change является типом объекта Item (см. 4.2.52), представляющим фокус всех этапов, связанных с возможным или фактическим изменением модели изделия в результате заявки на внесение изменения конструкторской организации или заказчика.
Примечание - Изменение может привести или не привести к изменению данных модели изделия. Все запланированные или фактические изменения модели изделия документируют в соответствующих объектах Change_definition (см. 4.2.12).
С объектом Change связаны следующие данные:
- the_class.
4.2.11.1 Данные the_class
Данные the_class определяют спецификацию организационной роли изменения.
Пример - К типам класса относятся: запрос на модификацию в главный офис (Headquarter Modification Request) или предложение о внесении изменения в конструкцию (Engineering Change Proposal).
4.2.12 Прикладной объект Change_definition
Прикладной объект Change_definition является типом объекта Definition (см. 4.2.23), являющимся обобщением основных дискретных этапов объекта Change (см. 4.2.11). Значением объекта Change_definition может быть Change_plan (см. 4.2.14), Change_realization (см. 4.2.15) или Change_request (см. 4.2.16).
С объектом Change_definition связаны следующие данные:
- author;
- date_time;
- defined_for;
- local_units.
4.2.12.1 Данные author
Данные author определяют лицо или организацию, ответственную за функции объекта Change (см. 4.2.11) в течение периода, длящегося с конца предыдущего, если он есть, до конца данного объекта Change_definition.
4.2.12.2 Данные date_time
Данные date_time определяют дату и время, когда был создан объект Change_definition.
4.2.12.3 Данные defined_for
Данные defined_for определяют прикладной объект Change (см. 4.2.11), к которому применяется объект Change_definition. Прикладное утверждение - см. 4.3.4.
4.2.12.4 Данные local_units
Данные local_units определяют единицы, используемые определением и отличающиеся от единиц, глобально определенных для судна. Значение данных local_units может быть либо Derived_unit (см. 4.2.24) или Named_unit (см. 4.2.70). Для конкретного Change_definition данные вида local_units могут быть не заданы. Прикладные утверждения - см. 4.3.5 и 4.3.6.
4.2.13 Прикладной объект Change_impact
Прикладной объект Change_impact представляет собой набор событий, определяющий влияние, которое окажет или уже оказал объект Change (см. 4.2.11).
С объектом Change_impact связаны следующие данные:
- impact.
4.2.13.1 Данные impact
Данные impact определяют влияние объекта Change (см. 4.2.11) в части создания, изменения или удаления некоторых объектов Definition (см. 4.2.23), объектов Item_structure (см. 4.2.54) или объектов Item_relationship (см. 4.2.53). Прикладное утверждение - см. 4.3.7.
4.2.14 Прикладной объект Change_plan
Прикладной объект Change_plan является типом объекта Change_definition (см. 4.2.12), который представляет предлагаемое решение для объекта Change (см. 4.2.11). Объект Change_plan является основанием для действий, необходимых для внедрения объекта Change в модель изделия.
С объектом Change_plan связаны следующие данные:
- checks;
- chosen_solution_for;
- planned_impact.
4.2.14.1 Данные checks
Данные checks определяют проверки, запланированные для объекта Change (см. 4.2.11). Прикладное утверждение - см. 4.3.9.
4.2.14.2 Данные chosen_solution_for
Данные chosen_solution_for определяют идентификацию объекта Change_request (см. 4.2.16), для которого применяется объект Change_plan, Прикладное утверждение - см. 4.3.10.
4.2.14.3 Данные planned_impact
Данные planned_impact определяют оцененное или рассчитанное воздействие объекта Change (см. 4.2.11). Прикладное утверждение - см. 4.3.8.
Примечание - Это влияние, как правило, выбирают из набора данных solution_alternatives в прикладном объекте Change_request (см. 4.2.16).
4.2.15 Прикладной объект Change_realization
Прикладной объект Change_realization является типом объекта Change_definition (см. 4.2.12), который определяет фактическое, наблюдаемое воздействие объекта Change (см. 4.2.11).
С объектом Change_realization связаны следующие данные:
- checks;
- impact;
- realization_of.
4.2.15.1 Данные checks
Данные checks определяют утверждение в рамках организации изменений модели изделия, внесенных для внедрения объекта Change (см. 4.2.11). Прикладное утверждение - см. 4.3.12.
4.2.15.2 Данные impact
Данные impact задают идентификацию изменений, внесенных в модель изделия. Прикладное утверждение - см. 4.3.11.
4.2.15.3 Данные realization_of
Данные realization_of определяют объект Change_plan (см. 4.2.14), для которого вносится изменение модели изделия. Прикладное утверждение - см. 4.3.13.
4.2.16 Прикладной объект Change_request
Прикладной объект Change_request является типом прикладного объекта Change_definition (см. 4.2.12), представляющего первый этап объекта Change (см. 4.2.11), когда устанавливается необходимость объекта Change и возможные варианты решений.
С объектом Change_request связаны следующие данные:
- addressee;
- initiator;
- problem;
- solution_alternatives;
- solution_description.
4.2.16.1 Данные addressee
Данные addressee определяют лицо или лицо и организацию, которым адресован запрос. Для конкретного Change_request данные вида addressee могут быть не заданы.
4.2.16.2 Данные initiator
Данные initiator определяют лицо или лицо и организацию, от которых поступает запрос.
4.2.16.3 Данные problem
Данные problem задают текстовое определение проблемы, которая спровоцировала запрос.
4.2.16.4 Данные solution_alternatives
Данные solution_alternatives определяют альтернативные решения, предлагаемые для решения проблемы. Решение описывается в части влияния на объекты Versionable_object (см. 4.2.121). Прикладное утверждение - см. 4.3.14.
4.2.16.5 Данные solution_description
Данные solution_description задают текстовое описание одного или нескольких возможных решений проблемы. Для конкурентного Change_request данные solution_description могут быть не заданы.
Примечание - Это текстовое описание должно присутствовать, если еще не установлены данные вида solution_alternatives, или может расширять информацию, предоставляемую данными вида solution_alternatives.
4.2.17 Прикладной объект Check
Прикладной объект Check является типом прикладного объекта Event (см. 4.2.33), которое определяет запланированное или выполненное организацией утверждение для прикладного объекта Change_plan (см. 4.2.14) или объекта Change_realization (см. 4.2.15).
4.2.18 Прикладной объект Class_and_statutory_designation
Прикладной объект Class_and_statutory_designation является типом прикладного объекта General_characteristics_definition (см. 4.2.40), который задает определение, присвоенное прикладному объекту Ship (см. 4.2.88) классификационным обществом в целях одобрения проектирования, изготовления и в процессе эксплуатации.
С объектом Class_and_statutory_designation связаны следующие данные:
- class_number;
- local_units;
- the_class;
- the_statutory.
4.2.18.1 Данные class_number
Данные class_number определяют отдельный идентификатор классификационного общества для судна.
4.2.18.2 Данные local_units
Данные local_units определяют единицы, используемые определением и отличающиеся от единиц, глобально определенных для судна. Значение данных local_units может быть одним из следующих: Derived_unit (см. 4.2.24) или Named_unit (см. 4.2.70). Для конкретного Class_and_statutory_designation данные вида local_units могут быть не заданы. В одном объекте Class_and_statutory_designation может быть задано несколько данных local_units. Прикладные утверждения - см. 4.3.17 и 4.3.16.
4.2.18.3 Данные the_class
Данные the_class определяют применимый объект Class_notation (см. 4.2.19) с информацией о типе судна и груза. Прикладное утверждение - см. 4.3.15.
4.2.18.4 Данные the_statutory
Данные the_statutory определяют набор национальных и международных нормативов и стандартов, которым должно соответствовать судно. Прикладное утверждение - см. 4.3.18.
4.2.19 Прикладной объект Class_notation
Прикладной объект Class_notation является нотацией, присваиваемой корпусу и машинам и механизмам судна классификационным обществом в результате его действий по одобрению во время проектирования, изготовления и технического обслуживания судна во время эксплуатации.
С объектом Class_notation связаны следующие данные:
- approval_required_for_heavy_cargo;
- approval_required_for_oil_cargo;
- approval_required_loading_unloading_aground;
- approval_required_loading_unloading_grabs;
- class_notations_hull;
- class_notations_machinery;
- class_society;
- ice_class_notation;
- service_area;
- service_factor.
4.2.19.1 Данные approval_required_for_heavy_cargo
Данные approval_required_for_heavy_cargo определяют, необходимо ли одобрение специального упрочнения для тяжелых грузов. Эти нотации относятся к судам для перевозки бестарных грузов и определяют распределение нагрузок в грузовых трюмах. Для конкретного Class_notation данные вида approval_required_for_heavy_cargo могут быть не указаны.
Значение данных approval_required_for_heavy_cargo должно быть одним из следующих:
- HC;
- HC_E;
- HC_EA.
Примечание - Определение всех допустимых значений для данных approval_required_for_heavy_cargo дано в 4.2.19.1.1 - 4.2.19.1.3.
4.2.19.1.1 HC
Транспортное судно усилено для перевозки тяжелых грузов. Тяжелые навалочные грузы могут распределяться неравномерно по грузовым трюмам.
4.2.19.1.2 HC_E
Транспортное судно усилено для перевозки тяжелых грузов. Кроме того, также одобрено неравномерное состояние нагружения с пустыми трюмами при осадке при полном водоизмещении. Одобренное сочетание пустых трюмов добавляется в нотацию.
Пример - Использование HC_E: пустые трюмы 2, 3, 5.
4.2.19.1.3 HC_EA
Транспортное судно усилено для перевозки тяжелых грузов, при этом любой грузовой трюм может быть пустым при осадке при полном водоизмещении. Одобренное сочетание пустых трюмов добавляется в нотацию.
Пример - Использование HC_EA: пустые трюмы 2, 3, 5 или пустые трюмы 1 - 6.
4.2.19.2 Данные approval_required_for_oil_cargo
Данные approval_required_for_oil_cargo определяют, требуется ли одобрение для перевозки нефтегрузов.
4.2.19.3 Данные approval_required_loading_unloading_aground
Данные approval_required_loading_unloading_aground определяют, требуется ли одобрение для погрузки и выгрузки на мели.
4.2.19.4 Данные approval required loading unloading grabs
Данные approval_required_loading_unloading_grabs определяют, требуется ли одобрение для погрузки и выгрузки с помощью захватных приспособлений.
4.2.19.5 Данные class_notations_hull
Данные class_notations_hull определяют значения, присвоенные корпусу судна классификационным обществом в результате его работы по одобрению, выполненной по корпусу. Для прикладного объекта Class_notation может быть несколько значений данных class_notations_hull.
4.2.19.6 Данные class_notations_machinery
Данные class_notations_machinery определяют значения, присвоенные машинам и механизмам судна классификационным обществом в результате его работы по одобрению, выполненной по машинам и механизмам. Для прикладного объекта Class_notation может быть несколько значений данных вида class_notations_machinery.
4.2.19.7 Данные class_society
Данные class_society определяют наименование и организационные реквизиты классификационного общества, по чьим правилам и нормативам выполняется оценка судна.
4.2.19.8 Данные ice_class_notation
Данные ice_class_notation определяют тип значений класса, присвоенных корпусу, с указанием ледовых условий, в которых одобрена эксплуатация судна. Для конкретного Class_notationice_class_notation данные вида ice_class_notation могут быть не заданы.
4.2.19.9 Данные service_area
Данные service_area определяют район или маршрут эксплуатации судна.
Примечание - Сюда может быть включена информация о фарватере, волновых, погодных и ветровых условиях.
4.2.19.10 Данные service_factor
Данные service_factor определяют район эксплуатации судна, а также волнение, возникающее в этом районе. Значение данных service_factor должно быть в диапазоне от 0,5 до 1,0. Для конкретного Class_notation данные вида service_factor могут быть не заданы.
4.2.20 Прикладной объект Class_parameters
Прикладной объект Class_parameters является типом прикладного объекта General_characteristics_definition (см. 4.2.40), который определяет длину и скорость судна в соответствии с правилами классификационного общества и нормативным регулированием.
С объектом Class_parameters связаны следующие данные:
- block_coefficient_class;
- design_speed_ahead;
- design_speed_astern;
- length_class;
- length_solas;
- scantlings_draught.
4.2.20.1 Данные block_coefficient_class
Данные block_coefficient_class определяют отношение теоретического объемного водоизмещения к объему блока длиной, равной значению данных length_class, шириной, равной значению данных moulded_breadth, и высотой, равной значению данных scantlings_draught.
4.2.20.2 Данные design_speed_ahead
Данные design_speed_ahead определяют скорость хода вперед, на которую судно спроектировано для эксплуатации.
4.2.20.3 Данные design_speed_astern
Данные design_speed_astern определяют скорость хода назад, на которую судно спроектировано для эксплуатации.
4.2.20.4 Данные length_class
Данные length_class определяют измерение длины судна, определенной в правилах классификационного общества.
4.2.20.5 Данные length_solas
Данные length_solas определяют измерение длины судна, измеряемой в соответствии с международной конвенцией по охране человеческой жизни на море.
4.2.20.6 Данные scantlings_draught
Данные scantlings_draught определяют летнюю грузовую осадку, используемую классификационным обществом в своих расчетах конструктивной целостности и прочности.
4.2.21 Прикладной объект Deck_moulded_form_design_parameter
Прикладной объект Deck_moulded_form_design_parameter является типом прикладного объекта Moulded_form_characteristics_definition (см. 4.2.63), который определяет главный параметр палубы.
С объектом Deck_moulded_form_design_parameter связаны следующие данные:
- camber;
- defined_for;
- sheer_at_AP;
- sheer_at_FP.
4.2.21.1 Данные camber
Данные camber определяют совокупность геометрических характеристик поперечного сечения палубы в плоскости, параллельной мидель-шпангоуту.
4.2.21.2 Данные defined_for
Данные defined_for определяют прикладной объект Moulded_form (см. 4.2.61), для которого определяется прикладной объект Deck_moulded_form_design_parameter. Прикладное утверждение - см. 4.3.19.
4.2.21.3 Данные sheer_at_AP
Данные sheer_at_AP определяют продольную кривизну палубы в кормовой половине судна. Измеряют по ДП корпуса как разницу между высотой палубы по мидель-шпангоуту и высотой палубы по кормовому перпендикуляру.
4.2.21.4 Данные sheer_at_FP
Данные sheer_at_FP определяют продольную кривизну палубы в носовой половине корпуса судна. Измеряют по ДП корпуса как разницу между высотой палубы по мидель-шпангоуту и высотой палубы по носовому перпендикуляру.
4.2.22 Прикладной объект Definable_object
Прикладной объект Definable_object описывает изделие любого типа, которое может быть описано основными характеристиками. Значением прикладного объекта Definable_object может быть либо Item (см. 4.2.52), Item_relationship (см. 4.2.53) либо Item_structure (см. 4.2.54).
С объектом Definable_object связаны следующие данные: id.
4.2.22.1 Данные id
Данные id определяют глобальный уникальный идентификатор для прикладного объекта Definable_object. Прикладное утверждение - см. 4.3.20.
4.2.23 Прикладной объект Definition
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.63, а не 4.2.64.
Прикладной объект Definition является типом прикладного объекта Versionable_object (см. 4.2.121), являющимся основой для всех типов объектов Definable_object (см. 4.2.22). Значением прикладного объекта Definition будет либо Design_definition (см. 4.2.25), Functional_definition (см. 4.2.39), General_characteristics_definition (см. 4.2.40), Moulded_form_characteristics_definition (см. 4.2.64), Change_definition (см. 4.2.12), Spacing_table (см. 4.2.102), либо Local_co_ordinate_system (см. 4.2.56). Эти определения поддерживают следующие судостроительные концепции: проектирование, функция, изготовление, общие характеристики судна, проектные требования, а также параметрические и библиотечные описания объектов.
С прикладным объектом Definition связаны следующие данные:
- defined_for;
- id;
- local_units.
4.2.23.1 Данные defined_for
Данные defined_for определяют объекты Definable_object (см. 4.2.22), которые определяются прикладным объектом Definition. Прикладное утверждение - см. 4.3.21.
4.2.23.2 Данные id
Данные id определяют глобальный уникальный идентификатор для определения. Прикладное утверждение - см. 4.3.23.
4.2.23.3 Данные local_units
Данные local_units определяют единицы, используемые определением и отличающиеся от единиц, глобально определенных для судна. Значением данных local_units может быть Derived_unit (см. 4.2.24) или Named_unit (см. 4.2.70). Для конкретного Definition данные вида local_units могут быть не заданы. В одном объекте Definition может быть задано несколько данных local_units. Прикладные условия - см. 4.3.22 и 4.3.24.
4.2.24 Прикладной объект Derived_unit
Прикладной объект Derived_unit является единицей измерения, состоящей из элементов, являющихся предопределенными объектами Named_unit (см. 4.2.70) с экспонентами.
4.2.25 Прикладной объект Design_definition
Прикладной объект Design_definition является типом прикладного объекта Definition (см. 4.2.23), являющимся основой для всех типов проектных определений. Отличие прикладного объекта Design_definition от прикладного объекта Definition заключается в способности делать ссылки на представления. Значением прикладного объекта Design_definition будет либо Moulded_form_design_definition (см. 4.2.64), Hydrostatic_definition (см. 4.2.45), либо Stability_definition (см. 4.2.103).
С объектом Design_definition связаны следующие данные: representations.
4.2.25.1 Данные representations
Данные representations определяют представления проектного определения. Для конкретного Design_definition данные вида representations могут быть не заданы. В одном объекте Design_definition может быть задано несколько данных representations.
Пример - Прикладной объект Design_definition может иметь несколько представлений формы, например каркас или поверхность.
4.2.26 Прикладной объект Displacement_operation
Прикладной объект Displacement_operation представляет собой расчет для изменения водоизмещения объекта Ship_moulded_form (см. 4.2.93). Это изменение описывается путем добавления или вычитания прикладного объекта Moulded_form (см. 4.2.61). Значением прикладного объекта Displacement_operation может быть Addition_of_moulded_form (см. 4.2.1) или Subtraction_of_moulded_form (см. 4.2.108).
С объектом Displacement_operation связаны следующие данные:
- displacement_of_moulded_form_to_add_or_subtract.
4.2.26.1 Данные displacement_of_moulded_form_to_add_or_subtract
Данные displacement_of_moulded_form_to_add_or_subtract определяют прикладной объект Moulded_form (см. 4.2.61), который либо добавляется к объекту, либо вычитается из объекта Ship_moulded_form (см. 4.2.93). Значение водоизмещения прикладного объекта Moulded_form можно найти в характеристиках конкретного теоретического обвода. Прикладное утверждение - см. 4.3.25.
4.2.27 Прикладной объект Document
Прикладной объект Document является типом объекта Versionable_object (см. 4.2.121), который представляет однозначную идентификацию некоего удобного для восприятия человеком информационного элемента, определенного не в ИСО 10303. У документа есть автор, наименование и могут быть версии.
С объектом Document связаны следующие данные:
- author;
- source_type;
- summary;
- title.
4.2.27.1 Данные author
Данные author определяют лицо, организацию или лицо и организацию, являющуюся автором прикладного объекта Document.
4.2.27.2 Данные source_type
Данные source_type определяют тип документа, в распечатанном или в электронном виде, включая его вид.
Пример - К электронным документам относятся форматы PDF, Word, WordPerfect, Text и др.
4.2.27.3 Данные description
Данные description определяют текстовое описание содержания документа. Для конкретного Document данные вида description могут быть не заданы.
4.2.27.4 Данные title
Данные title определяют описательное наименование, состоящее из слова или группы слов.
4.2.28 Прикладной объект Document_portion
Прикладной объект Document_portion является спецификацией определенного поднабора или части объекта Document (см. 4.2.27) в обобщенных терминах.
Пример - Подразделом отчета может быть диапазон страниц, определенный их номерами.
С объектом Document_portion связаны следующие данные:
- element_type;
- element_value;
- source.
4.2.28.1 Данные element_type
Данные The element_type определяют имя для данной подгруппы прикладного объекта Document (см. 4.2.27).
Пример - К типам элементов относятся: страница, номера, номера разделов или наименование раздела.
4.2.28.2 Данные element_value
Данные element_value определяют значение для данной подгруппы объекта Document (см. 4.2.27).
Пример - Возможные значения данных вида element_values: номера страниц = "1-10, 15", номера разделов = "3.2.4", наименование раздела = "Введение".
4.2.28.3 Данные source
Данные source определяют прикладной объект Document (см. 4.2.27), к которому относится определенная подгруппа. Прикладное утверждение - см. 4.3.26.
4.2.29 Прикладной объект Document_reference
Прикладной объект Document_reference является спецификацией прикладного объекта Document (см. 4.2.27) в части его источника или местонахождения. Значением объекта Document_reference может быть объект Document_reference_with_address (см. 4.2.30).
Пример - Если значением источника объекта Document_reference является книга, указателем может быть индекс раздела или номер страницы.
С прикладным объектом Document_reference связаны следующие данные:
- assigned_document.
4.2.29.1 Данные assigned_document
Данные assigned_document определяют прикладной объект Document (см. 4.2.27) или Document_portion (см. 4.2.28), который должен быть связан с данными изделия. Прикладные утверждения - см. 4.3.27 и 4.3.28.
4.2.30 Прикладной объект Document_reference_with_address
Прикладной объект Document_reference_with_address является типом прикладного объекта Document_reference (см. 4.2.29) и прикладного объекта External_reference (см. 4.2.35), который определяет указатель местоположения внутри источника.
4.2.31 Прикладной объект Edge_based_wireframe_shape
Прикладной объект Edge_based_wireframe_shape является представлением формы, соответствующим ИСО 10303-501.
4.2.32 Прикладной объект Envisaged_version_creation
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.121, а не 4.2.122.
Прикладной объект Envisaged_version_creation является типом объекта Versionable_object_change_event (см. 4.2.122), являющимся событием, ведущим к новому прикладному объекту Versionable_object (см. 4.2.121). Под событием понимается событие, которое еще не произошло. Прикладные объекты Definition (см. 4.2.23), Item_structure (см. 4.2.54) или Item_relationship (см. 4.2.53) как предметы события еще не существуют и описываются в части описательных, неформальных свойств.
С объектом Envisaged_version_creation связаны следующие данные:
- base;
- category.
4.2.32.1 Данные base
Данные base определяют объекты Versionable_object (см. 4.2.120), из которых получается предусмотренная новая версия. Прикладное утверждение - см. 4.3.29.
4.2.32.2 Данные category
Данные category определяют классификацию, к которой принадлежит предусмотренное определение.
4.2.33 Прикладной объект Event
Прикладной объект Event указывает на то, что что-то произошло в определенное время, в результате действия определенного лица или определенной организации по определенной причине. У объекта Event может быть одно из следующих значений: Check (см. 4.2.17), Versionable_object_change_event (см. 4.2.122) или Approval_event (см. 4.2.4).
С объектом Event связаны следующие данные:
- caused_by;
- caused_when;
- description.
4.2.33.1 Данные caused_by
Данные caused_by определяют лицо или организацию, создающую объект Event.
4.2.33.2 Данные caused_when
Данные caused_when определяют дату и время, когда возник объект Event.
4.2.33.3 Данные description
Данные description определяют дополнительную текстовую информацию для объекта Event.
4.2.34 Прикладной объект External_instance_reference
Прикладной объект External_instance_reference является экземпляром объекта, который не существует в этой области применения.
С объектом External_instance_reference связаны следующие данные:
- entity_type;
- schema_name;
- target_GUID.
4.2.34.1 Данные entity_type
Данные entity_type определяют наименование типа экземпляра, на который приведена внешняя ссылка.
4.2.34.2 Данные schema_name
Данные schema_name определяют схему, в которой определен экземпляр, на который приведена внешняя ссылка.
4.2.34.3 Данные target_GUID
Данные target_GUID определяют глобальный унифицированный идентификатор экземпляра, на который приведена внешняя ссылка. Прикладное утверждение - см. 4.3.30.
4.2.35 Прикладной объект External_reference
Прикладной объект External_reference является абстрактным указанием источника данных, внешнего к набору данных, в котором существует экземпляр данного объекта. Значением прикладного объекта External_reference может быть Document_reference_with_address (см. 4.2.30).
Пример - Такой источник данных указывает прикладной объект Universal_resource_locator (см. 4.2.114).
С объектом External_reference связаны следующие данные:
- description;
- location.
4.2.35.1 Данные description
Данные description определяют некоторую дополнительную информацию в части прикладного объекта External_reference.
4.2.35.2 Данные location
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.114, а не 4.2.115.
Данные location определяют местонахождение внешней ссылки. В случае прикладного объекта Universal_resource_locator (см. 4.2.115) местонахождением является компьютер, к которому есть доступ с помощью заданного протокола связи. Прикладные утверждения - см. 4.3.31 и 4.3.32.
4.2.36 Прикладной протокол External_storage
Прикладной протокол External_storage указывает местоположение физических документов или деталей, являющихся внешними к текущему обмену данными. Этот объект может быть актуальным при определении местоположения компакт-дисков (CD_ROM), дискет или видеопленок.
Пример - В качестве прикладного объекта External_storage могут служить публичная библиотека или архив компании.
С объектом External_storage связаны следующие данные: location.
4.2.36.1 Данные location
Данные location определяют идентификацию внешнего места хранения, обычно без возможности прямого сетевого доступа к компьютеру.
4.2.37 Прикладной объект Floating_position
Прикладной объект Floating_position указывает осадку и пространственное положение судна при погружении и соответствующее объемное водоизмещение.
С объектом Floating_position связаны следующие данные:
- angle_of_heel;
- angle_of_trim;
- breadth_of_waterline;
- draught_at_amidships;
- length_of_waterline;
- moulded_form_displacement.
4.2.37.1 Данные angle_of_heel
Данные angle_of_heel определяют угол вращения судна по оси X, измеряемый в радианах, который измеряется по линии, параллельной глобальной оси Y и ватерлинии. Значение данных angle_of_heel равно нулю, если ДП будет перпендикулярна ватерлинии. Значения данных angle_of_heel has будут положительными при движении правого борта судна вниз.
4.2.37.2 Данные angle_of_trim
Данные angle_of_trim определяют угол, образованный между основной плоскостью и линией, проведенной через осадки на носовом и кормовом перпендикулярах. Значение данных angle_of_trim равно нулю, когда осадка носа судна равна осадке кормы судна. Значения данных angle_of_trim будут положительными при превышении осадки носом осадки кормы.
4.2.37.3 Данные breadth_of_waterline
Данные breadth_of_waterline определяют ширину действующей ватерлинии.
4.2.37.4 Данные draught_at_amidships
Данные draught_at_amidships определяют расстояние от рабочей ватерлинии до теоретического днища судна, измеряемое по ДП на поперечном сечении по мидель-шпангоуту.
4.2.37.5 Данные length_of_waterline
Данные length_of_waterline определяют длину действующей ватерлинии.
4.2.37.6 Данные moulded_form_displacement
Данные moulded_form_displacement определяют водоизмещение судна по действующей ватерлинии (wetted displacement of the ship).
4.2.38 Прикладной объект Frame_table
Прикладной объект Frame_table является типом объекта Longitudinal_table (см. 4.2.59), у которого имеются позиции, которые задают размещение шпангоутов, расположенные на глобальной оси X.
Примечание - Шпангоуты используют для внутренней конструкции судна, и они являются конструктивными элементами. У судна может быть более 100 шпангоутов. Кривая пересечения между шпангоутом и теоретическим обводом корпуса является кривой поперечного сечения, проходящего через корпус судна.
4.2.39 Прикладной объект Functional_definition
Прикладной объект Functional_definition является типом прикладного объекта Definition (см. 4.2.23), являющегося основанием для всех видов данных об эксплуатационных качествах изделия. Обеспечивает возможность определения роли или назначения объекта Definition. Значение каждого прикладного объекта Functional_definition будет либо Moulded_form_functional_definition (см. 4.2.65), либо Ship_type (см. 4.2.98).
С объектом Functional_definition связаны следующие данные:
- local_units;
- user_def_function.
4.2.39.1 Данные local_units
Данные local_units определяют единицы, используемые определением и отличающиеся от единиц, глобально определенных для судна. Значением каждых данных local_units может быть Derived_unit (см. 4.2.24) или Named_unit (см. 4.2.70). Для конкретного Functional_definition данные вида local_units могут быть не заданы. В одном объекте Functional_definition может быть задано несколько данных local_units. Прикладные условия - см. 4.3.33 и 4.3.34.
4.2.39.2 Данные user_def_function
Данные user_def_function задают определенную пользователем роль или назначение объекта Functional_definition. Для конкретного Functional_definition данные вида user_def_function могут быть не заданы.
4.2.40 Прикладной объект General_characteristics_definition
Прикладной объект General_characteristics_definition является типом объекта Definition (см. 4.2.23), который обеспечивает основную часть документации судна. К нему относятся главные размеры и объемы по контракту объекта Ship (см. 4.2.88). Значение каждого объекта General_characteristics_definition будет либо Class_and_statutory_designation (см. 4.2.18), Owner_designation (см. 4.2.75), Ship_designation (см. 4.2.92), Shipyard_designation (см. 4.2.99), Ship_overall_dimensions (см. 4.2.95), Principal_characteristics (см. 4.2.78), Class_parameters (см. 4.2.20), либо Global_axis_placement (см. 4.2.41).
С объектом General_characteristics_definition связаны следующие данные:
- defined_for.
4.2.40.1 Данные defined_for
Данные defined_for определяют объект Ship (см. 4.2.88), к которому применяется прикладной объект General_characteristics_definition. В одном объекте Ship может быть задано несколько данных вида defined_for. Прикладное утверждение - см. 4.3.35.
4.2.41 Прикладной объект Global_axis_placement
Прикладной объект Global_axis_placement является типом объекта General_characteristics_definition (см. 4.2.40), который определяет неподвижную систему правосторонних ортогональных осей, к которой относятся геометрические данные. Прикладной объект Global_axis_placement должен иметь положительную ось Z в направлении вверх, начиная с основания судна, и положительную ось X, идущую вдоль судна на пересечении ДП с основанием. В одном случае она направлена от кормовой части судна к носовой, а в другом - от носовой части к кормовой. Исходной точкой объекта Global_axis_placement может быть любая точка на оси X. Должна быть указана длина кормового перпендикуляра от начала координат и ориентация оси X. При использовании какой-либо другой системы координат, локальной или глобальной, должны быть указаны отношения преобразования между этой системой и прикладным объектом Global_axis_placement.
Пример - Глобальная ось судна показана на рисунке 10.
Рисунок 10 - Размещения глобальных осей
С объектом Global_axis_placement связаны следующие данные:
- after_perpendicular_offset;
- orientation.
4.2.41.1 Данные after_perpendicular_offset
Данные after_perpendicular_offset определяют расстояние от начала отсчета прикладного объекта Global_axis_placement до кормового перпендикуляра.
4.2.41.2 Данные orientation
Данные orientation определяют направления оси X.
Значение данных orientation должно быть одним из следующих:
- aft_pointing;
- forward_pointing.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеются в виду п.п. 4.2.41.2.1, 4.2.41.2.2, а не 4.2.42.2.1, 4.2.42.2.2 соответственно.
Примечание - Определение всех допустимых значений данных вида orientation дано в 4.2.42.2.1, 4.2.42.2.2.
4.2.41.2.1 aft_pointing
Ориентация глобальной системы координат судна является правосторонней системой, в которой положительная ось X направлена от носовой части судна к кормовой части судна.
4.2.41.2.2 forward_pointing
Ориентация глобальной системы координат судна является правосторонней системой, в которой положительная ось X направлена от кормовой части судна к носовой части судна.
4.2.42 Прикладной объект Global_id
Прикладной объект Global_id является постоянным глобальным идентификатором, который обеспечивает уникальную идентификацию данных изделия.
С объектом Global_id связаны следующие данные: id.
4.2.42.1 Данные id
Данные id определяют уникальный постоянный идентификатор, формируемый компанией, которая создает данные об изделии.
4.2.43 Прикладной объект Hull_applicability
Прикладной объект Hull_applicability представляет собой идентификацию корпуса судна или диапазон корпусов в классе судов, для которого применяются конкретные данные об изделии.
С объектом Hull_applicability связаны следующие данные:
- definitions_for_hulls;
- end_hull;
- items_for_hulls;
- start_hull.
4.2.43.1 Данные definitions_for_hulls
Данные definitions_for_hulls определяют объекты Definition (см. 4.2.23), применяемые к диапазону корпусов, заданных в данных видов start_hull и end_hull. Прикладное утверждение - см. 4.3.36.
4.2.43.2 Данные end_hull
Данные end_hull определяют конечный корпус в диапазоне корпусов, к которому применяются данные изделия. Для конкретного Hull_applicability данные вида end_hull могут быть не заданы. Если данные the end_hull не заданы, данные изделия будут применяться только к данным start_hull.
4.2.43.3 Данные items_for_hulls
Данные items_for_hulls определяют объекты Item (см. 4.2.52), применяемые к диапазону корпусов, заданных в данных видов start_hull и end_hull. Прикладное утверждение - см. 4.3.37.
4.2.43.4 Данные start_hull
Данные start_hull определяют первый корпус в диапазоне корпусов, к которому применяются данные изделия.
4.2.44 Прикладной объект Hull_moulded_form_design_parameter
Прикладной объект Hull_moulded_form_design_parameter является типом прикладного объекта Moulded_form_characteristics_definition (см. 4.2.63), который содержит размеры и отношения корпуса судна.
Пример - Размеры корпуса судна показаны на рисунке 43.
С прикладным объектом Hull_moulded_form_design_parameter связаны следующие данные:
- aft_end_of_flat_of_side;
- aft_end_of_parallel_midbody_at_design_draught;
- block_coefficient;
- front_end_of_flat_of_side;
- front_end_of_parallel_midbody_at_design_draught;
- gunwale_radius;
- hull_breadth;
- hull_depth;
- hull_design_draught;
- hull_length_pp;
- hull_length_waterline;
- length_of_flat_of_side;
- length_of_parallel_midbody_at_design_draught;
- length_to_beam_ratio;
- max_frame_section_area_location;
- max_wetted_frame_section_area;
- midship_tumble_data;
- prismatic_coefficient;
- waterline_angle_of_entrance_at_bow;
- waterline_angle_of_entrance_at_stern;
- waterplane_coefficient.
4.2.44.1 Данные aft_end_of_flat_of_side
Данные aft_end_of_flat_of_side определяют продольное расстояние от кормового перпендикуляра до кормовой оконечности плоскости борта, где корпус судна имеет вертикальную форму.
4.2.44.2 Данные aft_end_of_parallel_midbody_at_design_draught
Данные aft_end_of_parallel_midbody_at_design_draught определяют продольное расстояние от кормового перпендикуляра до кормовой границы цилиндрической вставки, измеряемое по конструктивной ватерлинии.
4.2.44.3 Данные block_coefficient
Данные block_coefficient определяют отношение объемного водоизмещения по теоретическому чертежу к объему блока, длина которого равна значению данных length_between_perpendiculars, ширина равна наибольшему значению данных moulded_breadth подводной части, а глубина равна значению данных design_draught.
4.2.44.4 Данные front_end_of_flat_of_side
Данные front_end_of_flat_of_side определяют продольное расстояние от кормового перпендикуляра до носовой оконечности плоскости борта, где корпус судна имеет вертикальную форму.
4.2.44.5 Данные front_end_of_parallel_midbody_at_design_draught
Данные front_end_of_parallel_midbody_at_design_draught определяют продольное расстояние от кормового перпендикуляра до носовой границы цилиндрической вставки, измеряемое по конструктивной ватерлинии.
4.2.44.6 Данные gunwale_radius
Данные gunwale_radius определяют радиус дуги, соединяющей борт корпуса с верхней палубой. Измеряют по мидель-шпангоуту. Для конкретного Hull_moulded_form_design_parameter данные вида gunwale_radius могут быть не заданы.
4.2.44.7 Данные hull_breadth
Данные hull_breadth определяют наибольшую ширину отдельного корпуса судна по мидель-шпангоуту и значению design_draught. Для конкретного Hull_moulded_form_design_parameter данные вида hull_breadth могут быть не заданы.
Примечание - Для конкретного Hull_moulded_form_design_parameter данные вида hull_breadth могут быть не заданы для нормальных форм, где значение данных hull_breadth будет идентично значению данных moulded_breadth в прикладном объекте Principal_characteristics (см. 4.2.78). Этот параметр необходим только для специальных судов, например многокорпусные суда с разными корпусами и разными ширинами корпусов.
4.2.44.8 Данные hull_depth
Данные hull_depth определяют для каждого отдельного корпуса судна вертикальное расстояние от основной плоскости до самой верхней палубы, где палуба соединяется с бортом судна. Для конкретного Hull_moulded_form_design_parameter данные вида hull_depth могут быть не заданы.
Примечание - Для конкретного Hull_moulded_form_design_parameter данные вида hull_depth могут быть не заданы для нормальных форм, где значение данных hull_depth будет идентично значению данных вида moulded_depth в прикладном объекте Principal_characteristics (см. 4.2.78). Этот параметр необходим только для специальных судов, например многокорпусные суда с разными корпусами и разными значениями hull_depths.
4.2.44.9 Данные hull_design_draught
Данные hull_design_draught определяют осадку, на которую спроектирован корпус судна.
Примечание - Для конкретного Hull_moulded_form_design_parameter данные вида hull_design_draught могут быть не заданы для нормальных форм, где значение данных hull_design_draught будет идентично значению данных вида design_draught в прикладном объекте Principal_characteristics (см. 4.2.78). Этот параметр необходим только для специальных судов, например многокорпусные суда с разными корпусами и разными значениями hull_design_draughts.
4.2.44.10 Данные hull_length_pp
Данные hull_length_pp определяют длину, измеряемую от кормового перпендикуляра до носового перпендикуляра отдельного корпуса судна. Для конкретного Hull_moulded_form_design_parameter данные вида hull_length_pp могут быть не заданы.
Примечание - Для конкретного Hull_moulded_form_design_parameter данные вида могут быть не заданы для нормальных форм, где значение данных hull_length_pp будет идентично значению данных length_between_perpendiculars в прикладном объекте Principal_characteristics (см. 4.2.78). Этот параметр необходим только для специальных судов, например многокорпусные суда с разными корпусами и разными значениями данных вида hull_length_pps.
4.2.44.11 Данные hull_length_waterline
Данные hull_length_waterline определяют габаритную длину корпуса, измеряемую по продольной оси корпуса при значении данных design_draught waterline. Для конкретного Hull_moulded_form_design_parameter данные вида hull_length_waterline могут быть не заданы.
4.2.44.12 Данные length_of_flat_of_side
Данные length_of_flat_of_side определяют длину прямостенной части борта, где корпус судна имеет вертикальную форму.
4.2.44.13 Данные length_of_parallel_midbody_at_design_draught
Данные length_of_parallel_midbody_at_design_draught определяют длину цилиндрической вставки судна.
4.2.44.14 Данные length_to_beam_ratio
Данные length_to_beam_ratio определяют отношение длины корпуса по ширине осадки судна по конструктивной ватерлинии.
4.2.44.15 Данные max_frame_section_area_location
Данные max_frame_section_area_location определяют продольное расстояние сечения шпангоута с наибольшей площадью подводной части при расчетной осадке от кормового перпендикуляра.
Для конкретного Hull_moulded_form_design_parameter данные max_frame_section_area_location могут быть не заданы.
Примечание - У большинства судов с параллельной средней частью значение данных max_frame_section_area_location будет на мидель-шпангоуте на половине длины между перпендикулярами.
4.2.44.16 Данные max_wetted_frame_section_area
Данные max_wetted_frame_section_area определяют максимальную смоченную площадь сечения шпангоута при расчетной осадке.
Примечание - Для судовых корпусов нормальной формы это будет плоскость мидель-шпангоута. Для особых форм, например парусных яхт, значение данных max_wetted_frame_section_area может быть равно сечению, находящемуся на 1/3 длины судна от кормы.
4.2.44.17 Данные midship_tumble_data
Данные midship_tumble_data определяют специальный расчетный параметр, используемый для определения плоскости мидель-шпангоута. Для конкретного Hull_moulded_form_design_parameter данные вида midship_tumble_data могут быть не заданы. Прикладное утверждение - см. 4.3.38.
4.2.44.18 Данные prismatic_coefficient
Данные prismatic_coefficient определяют отношение водоизмещения по теоретическому чертежу к объему призмы, длина которой равна длине между перпендикулярами, а площадь поперечного сечения равна площади плоскости мидель-шпангоута судна.
4.2.44.19 Данные waterline_angle_of_entrance_at_bow
Данные waterline_angle_of_entrance_at_bow определяют угол входа ватерлинии в носовой оконечности судна. Для конкретного Hull_moulded_form_design_parameter данные вида waterline_angle_of_entrance_at_bow могут быть не заданы.
4.2.44.20 Данные waterline_angle_of_entrance_at_stern
Данные waterline_angle_of_entrance_at_stern определяют угол схода ватерлинии в кормовой оконечности судна. Для конкретного Hull_moulded_form_design_parameter данные вида waterline_angle_of_entrance_at_stern могут быть не заданы.
4.2.44.21 Данные waterplane_coefficient
Данные waterplane_coefficient определяют отношение площади конструктивной ватерлинии судна к площади прямоугольника с длиной, равной длине между перпендикулярами, и шириной, равной теоретической ширине при конструктивной осадке.
4.2.45 Прикладной объект Hydrostatic_definition
Прикладной объект Hydrostatic_definition является типом прикладного объекта Design_definition (см. 4.2.25), который описывает взаимосвязь между прикладным объектом Ship_moulded_form (см. 4.2.93), набором изменений водоизмещения этого прикладного объекта Ship_moulded_form и разными объектами Hydrostatic_table (см. 4.2.51). Эти изменения могут быть вызваны различными сочетаниями приемных патрубков и выступающих частей со значениями прикладного объекта Ship_moulded_form.
С объектом Hydrostatic_definition связаны следующие данные:
- defined_for;
- displacement_changes;
- displacement_changes_description;
- representations.
4.2.45.1 Данные defined_for
Данные defined_for определяют объект Ship (см. 4.2.88), для которого определен прикладной объект Hydrostatic_definition. Прикладное утверждение - см. 4.3.41.
4.2.45.2 Данные displacement_changes
Данные displacement_changes определяют перечень объектов Displacement_operation (см. 4.2.26), в которых описываются сложения или вычитания из значения объекта Ship_moulded_form (см. 4.2.93) из-за сочетаний приемных патрубков и выступающих частей. В одном объекте Hydrostatic_definition может быть задано несколько данных вида displacement_changes. Прикладное утверждение - см. 4.3.39.
Пример - Для корпуса с трубой для носовых подруливающих устройств гидростатические характеристики будут меняться за счет включения трубы подруливающего устройства в корпус судна. Такое включение будет изменением водоизмещения.
4.2.45.3 Данные displacement_changes_description
Данные description определяют текстовое описание изменения водоизмещения. Для конкретного Hydrostatic_definition данные вида displacement_changes_description могут быть не заданы.
4.2.45.4 Данные representations
Данные representations определяют объекты Hydrostatic_table (см. 4.2.51), которые представляют прикладной объект Hydrostatic_definition. Прикладное утверждение - см. 4.3.40.
4.2.46 Прикладной объект Hydrostatic_position_value
Прикладной объект Hydrostatic_position_value является типом объекта Hydrostatic_property_value (см. 4.2.49), который определяет размещение значения гидростатической характеристики в глобальной системе координат. При необходимости прикладной объект Hydrostatic_property (см. 4.2.48) действует через свой прикладной объект Hydrostatic_position_value.
С объектом Hydrostatic_position_value связаны следующие данные: position.
4.2.46.1 Данные position
Данные position определяют размещение в глобальной системе координат, через которую действует объект Hydrostatic_property (см. 4.2.48). Прикладное утверждение - см. 4.3.42.
4.2.47 Прикладной объект Hydrostatic_properties_for_constant_floating_position
Прикладной объект Hydrostatic_properties_for_constant_floating_position относится к гидростатическим характеристикам для одного отдельного прикладного объекта Floating_position (см. 4.2.37).
С объектом Hydrostatic_properties_for_constant_floating_position связаны следующие данные:
- definition_of_floating_position;
- hydrostatic_property_values;
- related_hydrostatic_table.
4.2.47.1 Данные definition_of_floating_position
Данные definition_of_floating_position определяют прикладной объект Floating_position (см. 4.2.37), для которого действительны объекты Hydrostatic_property_value (см. 4.2.49). Прикладное утверждение - см. 4.3.43.
4.2.47.2 Данные hydrostatic_property_values
Данные hydrostatic_property_values определяют гидростатические характеристики судна для отдельного объекта Floating_position (см. 4.2.37). Прикладное утверждение - см. 4.3.44.
4.2.47.3 Данные related_hydrostatic_table
Данные related_hydrostatic_table определяют набор объектов прикладного объекта Hydrostatic_table (см. 4.2.51), с которыми связан прикладной объект Hydrostatic_properties_for_constant_floating_position. Прикладное утверждение - см. 4.3.46.
Примечание - Соответствующий атрибут данных вида related_hydrostatic_table attribute является обратным элементом атрибута для объекта Hydrostatic_table.
4.2.48 Прикладной объект Hydrostatic_property
Прикладной объект Hydrostatic_property является гидростатическим параметром, используемым для описания гидростатической характеристики судна. Все гидростатические характеристики зависят от объекта Floating_position (см. 4.2.37) судна.
С объектом Hydrostatic_property связаны следующие данные:
- property_type;
- property_unit.
4.2.48.1 Данные property_type
Данные property_type определяют тип необходимого параметра.
Значение данных вида property_type должно быть одним из следующих:
- centre_of_buoyancy;
- centre_of_flotation;
- centre_of_lateral_resistance;
- longitudinal_metacentric_height;
- longitudinal_second_moment_of_area_of_waterplane;
- mid_ship_section_area;
- moment_for_unit_change_of_trim;
- transverse_metacentric_height;
- transverse_second_moment_of_area_of_waterplane;
- waterplane_area;
- wetted_surface_area.
4.2.48.1.1 centre_of_buoyancy
Этот параметр указывает центр погруженного объема подводной части корпуса судна, измеряемый в глобальной системе координат.
Примечание - Параметр центр величины обозначают заглавной буквой B.
4.2.48.1.2 centre_of_flotation
Этот параметр определяет геометрический центр тяжести площади ватерлинии теоретического обвода корпуса в глобальной системе координат.
4.2.48.1.3 centre_of_lateral_resistance
Этот параметр определяет размещение центра всех сил, возникающих из-за бокового сопротивления судна при его движении лагом вбок. Это размещение является свойством формы теоретического обвода корпуса и измеряется в глобальной системе координат. Это размещение необходимо, например, при проектировании подруливающих устройств в носу и в корме судна.
4.2.48.1.4 longitudinal_metacentric_height
Этот параметр определяет высоту по вертикали от центра тяжести судна до продольного метацентра. Продольный метацентр определяют как точку пересечения линии действия силы плавучести с линией действия восстанавливающей силы, возникающей при изменении дифферента.
4.2.48.1.5 longitudinal_second_moment_of_area_of_waterplane
Этот параметр определяет момент инерции площади ватерлинии вокруг поперечной оси.
4.2.48.1.6 mid_ship_section_area
Этот параметр определяет площадь подводной части сечения теоретического обвода корпуса по мидель-шпангоуту.
4.2.48.1.7 moment_for_unit_change_of_trim
Этот параметр определяет момент вокруг поперечной оси, необходимый для изменения разницы между носовой и кормовой осадками на одну единицу.
4.2.48.1.8 transverse_metacentric_height
Этот параметр определяет высоту по вертикали от центра тяжести судна до поперечного метацентра. Поперечный метацентр определяют как точку пересечения линии действия силы плавучести с линией действия восстанавливающей силы, возникающей при накренении судна.
Пример - Центр тяжести судна до поперечного метацентра показан на рисунке 11. Остойчивость формы показана на рисунке 50.
Рисунок 11 - Поперечный метацентр
4.2.48.1.9 transverse_second_moment_of_area_of_waterplane
Этот параметр определяет момент инерции площади ватерлинии вокруг продольной оси.
4.2.48.1.10 waterplane_area
Этот параметр определяет площадь ватерлинии. Ватерлиния - линия соприкосновения поверхности тихой воды с корпусом плавающего судна.
4.2.48.1.11 wetted_surface_area
Этот параметр определяет площадь смоченной поверхности судна.
4.2.48.2 Данные property_measure
Данные property_measure определяют единицу измерения объекта Hydrostatic_property. Значением данных вида property_measure может быть Centre_location (см. 4.2.10). Прикладное утверждение - см. 4.3.45.
4.2.49 Прикладной объект Hydrostatic_property_value
Прикладной объект Hydrostatic_property_value является гидростатическим параметром, описывающим гидростатическую характеристику судна. Прикладной объект Hydrostatic_property_value зависит от объекта Floating_position (см. 4.2.37) судна. Значением объекта Hydrostatic_property_value может быть Hydrostatic_position_value (см. 4.2.46) или Hydrostatic_scalar_value (см. 4.2.50).
4.2.50 Прикладной объект Hydrostatic_scalar_value
Прикладной объект Hydrostatic_scalar_value является типом объекта Hydrostatic_property_value (см. 4.2.49), определяющим объект Hydrostatic_property_value, измеряемый значением без направления.
С объектом Hydrostatic_scalar_value связаны следующие данные:
- scalar.
4.2.50.1 Данные scalar
Данные вида scalar определяют значение для объекта Hydrostatic_property (см. 4.2.48).
4.2.51 Прикладной объект Hydrostatic_table
Прикладной объект Hydrostatic_table представляет собой гидростатические характеристики и значения для данного объекта Hydrostatic_definition (см. 4.2.45). Прикладной объект Hydrostatic_table состоит из перечня значений объекта Hydrostatic_properties_for_constant_floating_position (см. 4.2.47), где каждая запись охватывает все гидростатические характеристики судна для разных значений объектов Floating_position (см. 4.2.37). Поскольку гидростатические характеристики относятся к экстремальной форме, для создания экстремальной формы из теоретического обвода используют равномерную толщину обшивки.
С объектом Hydrostatic_table связаны следующие данные:
- items;
- mean_shell_thickness;
- name;
- properties_in_the_hydrostatic_table.
4.2.51.1 Данные items
Данные items определяют объект Hydrostatic_properties_for_constant_floating_position (см. 4.2.47), описывающий все гидростатические характеристики судна, для отдельного объекта Floating_position (см. 4.2.37). Прикладное утверждение - см. 4.3.46.
4.2.51.2 Данные mean_shell_thickness
Данные mean_shell_thickness определяют реальное значение средней толщины внешней обшивки, которое может использоваться для определения соответствующей экстремальной формы для гидростатических характеристик судна, включая толщину.
Пример - Измерение толщины обшивки показано на рисунке 12.
Рисунок 12 - Измерение толщины обшивки
4.2.51.3 Данные name
Данные name указывают определенное пользователем или системой имя для объекта Hydrostatic_table.
4.2.51.4 Данные properties_in_the_hydrostatic_table
Данные properties_in_the_hydrostatic_table определяют перечень объектов Hydrostatic_property (см. 4.2.48) для прикладного объекта Hydrostatic_table. Прикладное утверждение - см. 4.3.47.
4.2.52 Прикладной объект Item
Прикладной объект Item является типом объекта Definable_object (см. 4.2.22), являющимся дискретным идентифицируемым объектом, который используется в одной или нескольких работах по проектированию, производству или эксплуатации. Прикладной объект Item представляет собой нечто, создаваемое в результате физической или умственной работы или (автоматически) получаемое из одного или нескольких других объектов Items. Прикладной объект Item может не представлять физический реальный объект; он также может представлять некую абстрактную концепцию. Прикладной объект Item обеспечивает функциональность для обеспечения наличия взаимосвязей с другими прикладными объектами Items и для существования в виде элемента в прикладном объекте Item_structure (см. 4.2.54). Значением каждого объекта Item будет Change (см. 4.2.11), Ship (см. 4.2.88), Ship_moulded_form (см. 4.2.93) или Moulded_form (см. 4.2.61).
С объектом Item связаны следующие данные:
- description;
- documentation;
- name;
- ship_context.
4.2.52.1 Данные description
Данные description определяют текстовую характеристику объекта Item. Для конкретного Item данные вида description могут быть не заданы.
4.2.52.2 Данные documentation
Данные documentation определяют ссылки на дополнительные сопроводительные документы, имеющиеся для объекта Item. Прикладное утверждение - см. 4.3.48.
4.2.52.3 Данные name
Данные name определяют удобочитаемую человеком текстовую подпись концепции, представляемой объектом Item.
4.2.52.4 Данные ship_context
Данные ship_context определяют прикладной объект Item, входящий в состав объекта Ship (см. 4.2.88), в части его применимости к объекту Ship. Для конкретного Item данные вида ship_context могут быть не заданы. Прикладное утверждение - см. 4.3.49.
4.2.53 Прикладной объект Item_relationship
Прикладной объект Item_relationship является типом объектов Definable_object (см. 4.2.22) и Versionable_object (см. 4.2.121), определяющим связь с двумя объектами Item (см. 4.2.52). Эти связанные объекты Item имеют общую функцию или работу или зависят друг от друга. Значением каждого прикладного объекта Item_relationship будет прикладной объект Moulded_form_relationship (см. 4.2.66).
С объектом Item_relationship связаны следующие данные:
- external_item_1;
- external_item_2;
- item_1;
- item_2.
4.2.53.1 Данные external_item_1
Данные external_item_1 определяют соответствующий объект Item объекта Item_relationship в случае, когда он является экземпляром объекта Item, на который дана внешняя ссылка. Для конкретного Item_relationship данные вида external_item_1 могут быть не заданы. Прикладное утверждение - см. 4.3.50.
4.2.53.2 Данные external_item_2
Данные external_item_2 определяют соответствующий объект Item объекта Item_relationship в случае, когда он является экземпляром объекта Item, на который дана внешняя ссылка. Для конкретного Item_relationship данные вида external_item_2 могут быть не заданы. Прикладное утверждение - см. 4.3.50.
4.2.53.3 Данные item_1
Данные item_1 определяют соответствующий объект Item взаимосвязи в случае, когда он в той же модели экземпляра, что и объект Item. Для конкретного Item_relationship данные вида item_1 могут быть не заданы. Прикладное утверждение - см. 4.3.51.
4.2.53.4 Данные item_2
Данные item_2 определяют соответствующий объект Item взаимосвязи в случае, когда он в той же модели экземпляра, что и объект Item. Для конкретного Item_relationship данные вида item_2 могут быть не заданы. Прикладное утверждение - см. 4.3.51.
4.2.54 Прикладной объект Item_structure
Прикладной объект Item_structure является типом объектов Definable_object (см. 4.2.22) и Versionable_object (см. 4.2.121), являющимся собранием объектов Item (см. 4.2.52), возможно, связанных объектами Item_relationship (см. 4.2.53). Прикладной объект Item_structure формирует график без каких-либо ограничений относительно количества записей, связи или цикличности. Значением каждого Item_structure является Ship_moulded_form (см. 4.2.93).
С объектом Item_structure связаны следующие данные:
- external_items;
- external_relationships;
- items;
- relationships.
4.2.54.1 Данные external_items
Данные external_items определяют объекты Item, внешне принадлежащие прикладному объекту Item_structure. Прикладное утверждение - см. 4.3.52.
4.2.54.2 Данные external_relationships
Данные external_relationships определят взаимосвязи (внешние) между объектами Item (см. 4.2.52), принадлежащими прикладному объекту Item_structure. Прикладное утверждение - см. 4.3.52.
4.2.54.3 Данные items
Данные items определяют объекты Item, локально принадлежащие прикладному объекту Item_structure. Прикладное утверждение - см. 4.3.53.
4.2.54.4 Данные relationships
Данные relationships определяют взаимосвязи (местные) между объектами Item (см. 4.2.52), принадлежащими прикладному объекту Item_structure. Прикладное утверждение - см. 4.3.54.
4.2.55 Прикладной объект Knot
Прикладной объект Knot является точкой вершины (пучка кривых) с дополнительной информацией для представления каркаса, заданного для судна. Прикладной объект Knot является угловой точкой ячейки в каркасной сетке с информацией о пересекающихся кривых судна в этой точке и информацией о касательной в этой точке.
С прикладным объектом Knot связаны следующие данные:
- intersecting_ship_curves;
- tangent_information.
4.2.55.1 Данные intersecting_ship_curves
Данные intersecting_ship_curves определяют ссылку на кривые судна, пересекающиеся в прикладном объекте Knot. Прикладное утверждение - см. 4.3.55.
4.2.55.2 Данные tangent_information
Данные tangent_information определяют направление и величину касательной в прикладном объекте Knot. Для конкретного Knot данные вида tangent_information могут быть не заданы.
Примечание - Эта информация может использоваться для систем, для которых отсутствует достаточная информация о геометрии кривых.
4.2.56 Прикладной объект Local_co_ordinate_system
Прикладной объект Local_co_ordinate_system является типом прикладного объекта Definition (см. 4.2.23), который используют для определения местоположения объекта в пространстве. Прикладной объект Local_co_ordinate_system всегда определяется в части другой системы координат. Это может быть Global_axis_placement (см. 4.2.41) или другой объект Local_co_ordinate_system, являющийся элементом этой же иерархии. Значением каждого прикладного объекта Local_co_ordinate_system может быть Local_co_ordinate_system_with_position_reference (см. 4.2.57).
Пример - Локальная система координат показана на рисунке 13.
Примечание 1 - Локальные оси и точка отсчета обрабатываются так же, как для axis2_placement_3d. Axis2_placement_3d является сущностью ресурса STEP, определенного в ИСО 10303-42.
Примечание 2 - Прикладной объект local_co_ordinate system всегда формирует правостороннюю систему.
Рисунок 13 - Локальная система координат
С объектом Local_co_ordinate_system связаны следующие данные: parent.
4.2.56.1 Данные parent
Данные parent определяют лежащую в основе систему координат, которая служит пространством определения для текущей системы координат. Прикладные утверждения - см. 4.3.56 и 4.3.57.
4.2.57 Прикладной объект Local_co_ordinate_system_with_position_reference
Прикладной объект Local_co_ordinate_system_with_position_reference является типом объекта Local_co_ordinate_system (см. 4.2.56), который напрямую ссылается на уникальный объект Global_axis_placement (см. 4.2.41) в качестве своего прямого предка. Его размещение определяется ссылками на продольный, вертикальный или поперечный набор, возможно, с использованием дополнительного значения ординаты теоретического чертежа (расстояние). Как вариант, могут указываться абсолютные координаты. Также действительны сочетания координат и привязок. Прикладной объект Local_co_ordinate_system_with_position_reference не должен определять вращения как преобразования в глобальную систему в качестве результата, т.е. его оси должны быть параллельны осям объекта Global_axis_placement.
С объектом Local_co_ordinate_system_with_position_reference связаны следующие данные:
- longitudinal_ref;
- transversal_ref;
- vertical_ref.
4.2.57.1 Данные longitudinal_ref
Данные longitudinal_ref определяют объект Longitudinal_position (см. 4.2.58), возможно со значением ординаты теоретического чертежа, или значение абсолютной координаты, по продольной оси глобальной системы координат. Для конкретного Local_co_ordinate_system_with_position_reference данные вида longitudinal_ref могут быть не заданы. Прикладное утверждение - см. 4.3.58.
4.2.57.2 Данные transversal_ref
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.112, а не 4.2.113.
Данные transversal_ref определяют объект Transversal_position (см. 4.2.113), возможно со значением ординаты теоретического чертежа, или значение абсолютной координаты, по поперечной оси глобальной системы координат. Для конкретного Local_co_ordinate_system_with_position_reference данные вида transversal_ref могут быть не заданы. Прикладное утверждение - см. 4.3.58.
4.2.57.3 Данные vertical_ref
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.122, а не 4.2.123.
Данные vertical_ref определяют объект Vertical_position (см. 4.2.123), возможно со значением ординаты теоретического чертежа, или значением абсолютной координаты, по вертикальной оси глобальной системы координат. Для конкретного Local_co_ordinate_system_with_position_reference данные вида vertical_ref могут быть не заданы. Прикладное утверждение - см. 4.3.58.
4.2.58 Прикладной объект Longitudinal_position
Прикладной объект Longitudinal_position является типом объекта Spacing_position (см. 4.2.100), который находится на глобальной оси X.
4.2.59 Прикладной объект Longitudinal_table
Прикладной объект Longitudinal_table является типом объекта Spacing_table (см. 4.2.102), у которого есть положения, находящиеся по продольной оси (ось X) глобальной системы координат. Значением каждого объекта Longitudinal_table может быть либо Frame_table (см 4.2.38), либо Station_table (см. 4.2.107).
С объектом Longitudinal_table связаны следующие данные: spacing_table_representations.
4.2.59.1 Данные spacing_table_representations
Данные вида spacing_table_representations определяют продольные положения, входящие в состав объекта Longitudinal_table. Прикладное утверждение - см. 4.3.59.
4.2.60 Прикладной объект Midship_tumble
Прикладной объект Midship_tumble определяет специальный расчетный параметр, используемый для определения плоскости мидель-шпангоута.
Пример - Завал по мидель-шпангоуту показан на рисунке 14.
Рисунок 14 - Завал по мидель-шпангоуту
С объектом Midship_tumble связаны следующие данные:
- tumble_in_at_side;
- tumble_in_at_top;
- tumble_out_at_bottom;
- tumble_out_at_side.
4.2.60.1 Данные tumble_in_at_side
Данные tumble_in_at_side определяют высоту, с которой начинается завал шпангоута (измеряют от ОП).
4.2.60.2 Данные tumble_in_at_top
Данные tumble_in_at_top определяют величину завала шпангоута по оси Y (измеряют от максимальной полушироты корпуса).
4.2.60.3 Данные tumble_out_at_bottom
Данные tumble_out_at_bottom определяют наклон борта (измеряют на ОП от максимальной полушироты).
4.2.60.4 Данные tumble_out_at_side
Данные tumble_out_at_side определяют высоту, с которой начинается наклон борта (измеряют от ОП).
4.2.61 Прикладной объект Moulded_form
Прикладной объект Moulded_form является типом объекта Item (см. 4.2.52), входящим в состав объекта Ship_moulded_form (см. 4.2.93). Прикладной объект Moulded_form определяет геометрическую форму составной части судна. Отдельные типы объектов прикладного объекта Moulded_form могут также определяться набором размеров.
Пример - Корпус судна с бульбообразным носом и трубами для подруливающих устройств показан на рисунке 15.
Примечание - Прикладной объект Moulded_form не включает толщину (или любую другую информацию), материала, из которого он изготавливается. Существует разница между прикладным объектом Moulded_form и прикладным объектом Ship_surface (см. 4.2.97). Прикладной объект Moulded_form является физическим элементом, входящим в состав объекта Ship_moulded_form. Прикладной объект Ship_surface является представлением объекта Moulded_form. Прикладной объект Moulded_form представлен одним или несколькими объектами Ship_surface.
Рисунок 15 - Корпус судна с бульбообразным носом и трубами
для подруливающих устройств
4.2.62 Прикладной объект Moulded_form_boundary_relationship
Прикладной объект Moulded_form_boundary_relationship является типом объекта Moulded_form_relationship (см. 4.2.66), определяющим взаимосвязь между двумя теоретическими обводами, который задает одну из границ первого теоретического обвода как его пересечение со вторым теоретическим обводом.
С объектом Moulded_form_boundary_relationship связаны следующие данные:
- item_1;
- item_2.
4.2.62.1 Данные item_1
Данные item_1 определяют объект Moulded_form (см. 4.2.61), для которого определяется граница. Для конкретного Moulded_form_boundary_relationship данные вида item_1 могут быть не заданы. Прикладное утверждение - см. 4.3.60.
Примечание - Если данные вида item_1 не заданы, должен быть задан атрибут external_item_1 для прикладного объекта Item_relationship (см. 4.2.53.1).
4.2.62.2 Данные item_2
Данные item_2 определяют объект Moulded_form (см. 4.2.61), который определяет одну из границ объекта Moulded_form, определяемую данными вида item_1. Для конкретного Moulded_form_boundary_relationship данные вида item_2 могут быть не заданы. Прикладное утверждение - см. 4.3.61.
Примечание - Если данные вида item_2 не заданы, должен быть задан атрибут external_item_2 для прикладного объекта Item_relationship (см. 4.2.53.2).
4.2.63 Прикладной объект Moulded_form_characteristics_definition
Прикладной объект Moulded_form_characteristics_definition является типом объекта Definition (см. 4.2.23), определяющим расчетные параметры для разных типов объектов Moulded_form (см. 4.2.61). Эта информация содержит размеры и отношения, важные для простой характеризации деталей корпуса, носа, гребного винта, руля, выступающей части, подруливающего устройства и днища.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.111, а не 4.2.112.
Значениями прикладного объекта Moulded_form_characteristics_definition могут быть: Hull_moulded_form_design_parameter (см. 4.2.44), Deck_moulded_form_design_parameter (см. 4.2.21), Bottom_moulded_form_design_parameter (см. 4.2.6), Bulb_moulded_form_design_parameter (см. 4.2.7), Propeller_moulded_form_design_parameter (см. 4.2.80), Rudder_moulded_form_design_parameter (см. 4.2.86), Thruster_moulded_form_design_parameter (см. 4.2.112) или Appendage_moulded_form_design_parameter (см. 4.2.3).
Примечание - Если данные характеристик теоретического обвода будут отличаться от информации, имеющейся для любого геометрического представления, приоритет будут иметь геометрические данные. На теоретическом обводе основываются водоизмещение и смоченная внешняя поверхность. С точки зрения теории судна, этот же параметр, основанный на экстремальной форме, учитывающей толщину, может быть более практичным.
С объектом Moulded_form_characteristics_definition связаны следующие данные:
- defined_for;
- moulded_form_displacement;
- moulded_form_outer_surface.
4.2.63.1 Данные defined_for
Данные defined_for определяют объект Moulded_form (см. 4.2.61), для которого определен прикладной объект Moulded_form_characteristics_definition. Прикладное утверждение - см. 4.3.62.
4.2.63.2 Данные moulded_form_displacement
Данные moulded_form_displacement определяют подводное водоизмещение отдельного объекта Moulded_form (см. 4.2.61).
4.2.63.3 Данные moulded_form_outer_surface
Данные moulded_form_outer_surface определяют смоченную внешнюю поверхность отдельного объекта Moulded_form (см. 4.2.61).
4.2.64 Прикладной объект Moulded_form_design_definition
Прикладной объект Moulded_form_design_definition является типом объекта Design_definition (см. 4.2.25), задающим определение объекта Moulded_form (см. 4.2.61).
С объектом Moulded_form_design_definition связаны следующие данные:
- borders;
- defined_for;
- moulded_surface;
- representations;
- status.
4.2.64.1 Данные borders
Данные borders определяют границы теоретического обвода, заданного конкретной геометрией или путем взаимосвязей с другими объектами Moulded_form (см. 4.2.61). Порядок границ должен иметь значение, однако правило, что конечная точка границы [n] = начальная точка границы [n + 1], отсутствует. Кроме того, две границы могут пересекаться или может быть необходимо (прямо) удлинить одну или обе границы, чтобы они пересекались. Для конкретного Moulded_form_design_definition данные вида borders могут быть не заданы. Прикладные утверждения - см. 4.3.66, 4.3.67 и 4.3.70.
4.2.64.2 Данные defined_for
Данные defined_for определяют объекты Moulded_form (см. 4.2.61), которые определяет прикладной объект Moulded_form_design_definition. Прикладное утверждение - см. 4.3.65.
4.2.64.3 Данные moulded_surface
Данные moulded_surface определяют лежащую в основе геометрию поверхности для определения теоретического обвода. Эта геометрия может определяться отдельной поверхностью, каркасной обшивкой, состоящей из сетки кривых, моделью поверхности на основе граней или таблицей точек смещения. Для конкретного Moulded_form_design_definition данные вида moulded_surface могут быть не заданы. Прикладные утверждения - см. 4.3.67, 4.3.69, 4.3.63 и 4.3.64.
4.2.64.4 Данные representations
Данные representations задают определение формы для теоретического обвода. Значением определения формы может быть либо Edge_based_wireframe_shape (см. 4.2.31), либо Non_manifold_surface_shape (см. 4.2.72). Прикладные утверждения - см. 4.3.63 и 4.3.64.
4.2.64.5 Данные status
Данные status определяют, какое геометрическое определение содержится в данных вида moulded_surface и representations, связанных с прикладным объектом Moulded_form_design_definition, полное или частичное. Для конкретного Moulded_form_design_definition данные вида status могут быть не заданы.
Значение данных вида status должно быть одним из следующих:
- complete;
- partial.
4.2.64.5.1 complete
Геометрическое определение, заданное для объекта Moulded_form_design_definition, является полным.
4.2.64.5.2 partial
Геометрическое определение, заданное для объекта Moulded_form_design_definition, является частичным.
4.2.65 Прикладной объект Moulded_form_functional_definition
Прикладной объект Moulded_form_functional_definition является типом объекта Functional_definition (см. 4.2.39), определяющим функцию части судна, которая определена базовым объектом Moulded_form (см. 4.2.61).
С объектом Moulded_form_functional_definition связаны следующие данные:
- defined_for;
- the_function.
4.2.65.1 Данные defined_for
Данные вида defined_for определяют объект Moulded_form (см. 4.2.61), для которого определен прикладной объект Moulded_form_functional_definition. В одном объекте Moulded_form_functional_definition может быть задано несколько объектов Moulded_form. Прикладное утверждение - см. 4.3.71.
4.2.65.2 Данные the_function
Данные the_function определяют функциональность объекта Moulded_form (см. 4.2.61), для которого определен прикладной объект Moulded_form_functional_definition.
Значение данных вида the_function должно быть одним из следующих:
- appendage;
- bulbous_bow;
- bulbous_stern;
- deck;
- double_bottom;
- double_ship_hull;
- frame;
- grating;
- horizontal_girder;
- keel;
- longitudinal_bulkhead;
- longitudinal_girder;
- non_structural_bulkhead;
- pressure_hull;
- propeller;
- rudder;
- ship_hull;
- superstructure;
- thruster;
- transom;
- transverse_bulkhead;
- user_defined.
4.2.65.2.1 appendage
Часть, которая добавляется к внешней поверхности корпуса судна для улучшения характеристик судна.
Пример - Типы выступающих частей (см. рисунки 4 - 7). К выступающим частям можно отнести скуловой киль, кронштейны гребного вала и выкружки гребного вала, крылья и прочее.
4.2.65.2.2 bulbous_bow
Подводная форма носа, предназначенная для сглаживания носовой волны и уменьшения сопротивления судна.
Пример - Судно с бульбообразным носом показано на рисунке 16.
Рисунок 16 - Корпус судна с бульбообразным носом
4.2.65.2.3 bulbous_stern
Подводная форма кормы, предназначенная для улучшения подачи потока на гребной винт и повышения эффективности гребного винта.
4.2.65.2.4 deck
Горизонтальная разделительная конструкция корпуса судна, находящаяся над днищем или двойным дном.
Пример - Палуба и переборки показаны на рисунке 17.
Рисунок 17 - Переборки и палубы
4.2.65.2.5 double_bottom
Внутреннее днище корпуса судна при двойной обшивке корпуса судна.
Пример - Двойное дно показано на рисунках 18 и 19.
Рисунок 18 - Двойное дно
Рисунок 19 - Внешнее и внутреннее днища с профилями
double_ship_hull
4.2.65.2.6 double_ship_hull
Внутренние борта корпуса судна при двойной обшивке корпуса судна.
Пример - Двойной корпус судна показан на рисунке 20.
Рисунок 20 - Двойной корпус судна
4.2.65.2.7 frame
Вертикальный конструктивный элемент, расположенный поперечно в судне, участвующий в обеспечении прочности судна.
Пример - Шпангоуты и палубы показаны на рисунке 21.
Рисунок 21 - Шпангоуты и палубы
4.2.65.2.8 grating
Настил из металлических листов, расположенный в горизонтальной плоскости судна или близко к ней (далее - настил) внутри отсека, не входящий в состав главных конструктивных систем, но обеспечивающий доступ экипажу судна.
4.2.65.2.9 horizontal_girder
Продольный основной конструктивный элемент, лежащий в горизонтальной плоскости судна.
Пример - Горизонтальные балки показаны на рисунке 22.
Рисунок 22 - Балки
4.2.65.2.10 keel
Основная продольная днищевая корпусная конструкция, проходящая в ДП.
Примечание - У парусных яхт киль имеет особую форму и включает дополнительный вес для повышения остойчивости веса.
4.2.65.2.11 longitudinal_bulkhead
Вертикальный конструктивный элемент, расположенный в судне в продольном направлении, образующий границу отсека и принимающий существенное участие в делении судна на водонепроницаемые отсеки и обеспечении прочности судна.
4.2.65.2.12 longitudinal_girder
Продольный основной конструктивный элемент, лежащий в вертикальной плоскости судна.
Пример - Продольные балки показаны на рисунке 22.
4.2.65.2.13 non_structural_bulkhead
Переборка, используемая для деления на отсеки, а не как несущая конструкция.
4.2.65.2.14 pressure_hull
Особая конструкция корпуса для подводной эксплуатации, предназначенная выдерживать забортное давление в подводном положении. Используется для подводных аппаратов или любого промышленного подводного оборудования.
4.2.65.2.15 propeller
Устройство для преобразования вращательного момента на валу главного двигателя в силу тяги, необходимой для движения судна или для его маневрирования.
Пример - Гребной винт показан на рисунке 24.
4.2.65.2.16 rudder
Главный инструмент для маневрирования, используемый для управляемости (по направлению) судна.
Пример - Руль показан на рисунке 23.
Рисунок 23 - Руль и гребной винт
Рисунок 24 - Модель винтового движителя
4.2.65.2.17 ship_hull
Основной корпус судна, предназначенный для перевозки грузов или пассажиров, или корпус для остойчивости и дополнительной плавучести.
Пример - Корпус судна показан на рисунке 20.
4.2.65.2.18 superstructure
Палубная конструкция, находящаяся над верхней палубой.
Пример - Палубная конструкция показана на рисунке 26.
4.2.65.2.19 thruster
Тоннель подруливающего устройства. Обычно подруливающее устройство работает в тоннеле для улучшения маневренности судна.
Пример - Подруливающее устройство показано на рисунке 25.
Рисунок 25 - Подруливающее устройство
Рисунок 26 - Палубная конструкция
4.2.65.2.20 transom
Плоский или несколько выгнутый наружу поперечный срез кормы судна.
Пример - Транцевая корма показана на рисунке 27.
Рисунок 27 - Транцевая корма
4.2.65.2.21 transverse_bulkhead
Вертикальный основной конструктивный элемент, расположенный в судне в поперечном направлении, образующий границу отсека и принимающий существенное участие в делении судна на водонепроницаемые отсеки и в обеспечении прочности судна.
Пример - Поперечная переборка показана на рисунке 28.
Рисунок 28 - Поперечные переборки
4.2.65.2.22 user_defined
Функция прикладного объекта Moulded_form (см. 4.2.61) не известна или не предусмотрена ничем вышеназванным.
4.2.66 Прикладной объект Moulded_form_relationship
Прикладной объект Moulded_form_relationship является типом объекта Item_relationship (см. 4.2.53), описывающим отношение между двумя объектами Moulded_form (см. 4.2.61). Набор объектов Moulded_form_relationship может описывать иерархию взаимосвязанных между собой объектов Moulded_form, которые вместе обеспечивают описание объекта Ship_moulded_form (см. 4.2.93).
Пример - Объект Moulded_form_relationship может описывать отношение между объектом Moulded_form корпуса судна и соответствующего гребного винта.
С объектом Moulded_form_relationship связаны следующие данные:
- item_1;
- item_2.
4.2.66.1 Данные item_1
Данные item_1 определяют объект Moulded_form (см. 4.2.61), который составляет основу объекта Moulded_form_relationship. Для конкретного Moulded_form_relationship данные вида item_1 могут быть не заданы. Прикладное утверждение - см. 4.3.72.
Примечание - Если данные вида item_1 не заданы, должен быть задан атрибут external_item_1 для прикладного объекта Item_relationship (см. 4.2.53.1).
4.2.66.2 Данные item_2
Данные вида item_2 описывают Moulded_form (см. 4.2.61), который должен быть связан с данными вида item_1. Для конкретного Moulded_form_relationship данные вида item_2 могут быть не заданы. Прикладное утверждение - см. 4.3.72.
Примечание - Если данные вида item_2 не заданы, должен быть задан атрибут external_item_2 для прикладного объекта Item_relationship (см. 4.2.53.2).
4.2.67 Прикладной объект Moulded_form_representation_item
Прикладной объект Moulded_form_representation_item является представлением теоретического обвода некой части судна. В этом представлении используется либо сетка точек, сетка геометрических кривых, либо поверхности нулевой толщины для определения теоретического обвода судна или части судна. Значением объекта Moulded_form_representation_item может быть Ship_point (см. 4.2.96), Ship_curve (см. 4.2.89) или Ship_surface (см. 4.2.97).
4.2.68 Прикладной объект Moulded_form_representation_relationship
Прикладной объект Moulded_form_representation_relationship является отношением между двумя объектами Moulded_form_shape_representation (см. 4.2.69).
С объектом Moulded_form_representation_relationship связаны следующие данные:
- description;
- id;
- rep_1;
- rep_2.
4.2.68.1 Данные description
Данные description задают определенное пользователем описание назначения отношения. Для конкретного Moulded_form_relationship данные вида description могут быть не заданы.
4.2.68.2 Данные id
Данные id определяют контекстно-зависимый идентификатор для Moulded_form_representation_relationship.
4.2.68.3 Данные rep_1
Данные rep_1 определяют объект Moulded_form_shape_representation (см. 4.2.69), который составляет основу объекта Moulded_form_representation_relationship. Прикладное утверждение - см. 4.3.73.
4.2.68.4 Данные rep_2
Данные rep_2 определяют объект Moulded_form_shape_representation (см. 4.2.69), который должен быть связан с данными вида rep_1. Прикладное утверждение - см. 4.3.73.
4.2.69 Прикладной объект Moulded_form_shape_representation
Прикладной объект Moulded_form_shape_representation описывает форму объекта Moulded_form (см. 4.2.61) с помощью геометрических моделей, топологических моделей и геометрических элементов. Геометрические конструктивы в объекте Moulded_form_shape_representation могут указывать Ship_point (см. 4.2.96), Ship_curve (см. 4.2.89) или Ship_surface (см. 4.2.97). Значением каждого Moulded_form_shape_representation будет либо Offset_table_shape_representation (см. 4.2.74), Wireframe_shape_representation (см. 4.2.125), либо Surface_shape_representation (см. 4.2.109).
Примечание - Прикладной объект Moulded_form_shape_representation является абстрактным по своему характеру и не детализирует геометрию, но дает ссылки на топологию и геометрию, которыми он может обладать.
С объектом Moulded_form_shape_representation связаны следующие данные:
- moulded_form_representation_id;
- moulded_form_symmetry.
4.2.69.1 Данные moulded_form_representation_id
Данные moulded_form_representation_id определяют контекстно-зависимую метку для Moulded_form_shape_representation. Для конкретного Moulded_form_shape_representation данные вида moulded_form_representation_id могут быть не заданы.
4.2.69.2 Данные moulded_form_symmetry
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.3.74, а не 4.3.745.
Данные moulded_form_symmetry определяют симметрию для Moulded_form_shape_representation. Для объекта Moulded_form (см. 4.2.61) возможна планарная симметрия и симметрия вращения. Для конкретного Moulded_form_shape_representation данные вида moulded_form_symmetry могут быть не заданы. Прикладное утверждение - см. 4.3.745.
4.2.70 Прикладной объект Named_unit
Прикладной объект Named_unit является объектом предопределенной единицы, указанной в ИСО 10303-41.
4.2.71 Прикладной объект Navy_ship
Прикладной объект Navy_ship является типом Shiptype (см. 4.2.98), представляющим собой судно, эксплуатируемое военным командованием.
С объектом Navy_ship связаны следующие данные:
- has_type.
4.2.71.1 Данные has_type
Данные has_type определяют тип объекта Navy_ship.
Значение данных вида has_type должно быть одним из следующих:
- aircraft_carrier;
- auxiliary_oiler;
- corvette;
- cruiser;
- destroyer;
- fleet_auxiliary_vessel;
- frigate;
- landing_platform_dock;
- landing_platform_helicopter;
- mine_warfare_ship;
- patrol_force_vessel;
- service_craft;
- submarine;
- user_defined.
4.2.71.1.1 aircraft_carrier
Тип судна, предназначенный для размещения самолетов и/или вертолетов в ходе длительных противолодочных операций, а также для защиты истребителей, с полным разведывательным и ударным потенциалами.
Пример - Задействованное воздушное судно может включать функцию короткого взлета и вертикальной посадки (STOVAL), короткого взлета, но посадки с аэрофинишером (STOBAR) или традиционный взлет (CTOL).
4.2.71.1.2 auxiliary_oiler
Тип судна, предназначенный для пополнения жидких запасов других судов в море во время операций, с возможностями вертикальной передачи (VERTREP) твердых грузов.
Примечание - Судно имеет устойчивую платформу, подходящую для посадки вертолетов (в т.ч. аварийной), а также помещения для хранения и технического обслуживания.
4.2.71.1.3 corvette
Тип судна, который спроектирован как малое судно сопровождения оперативной группы.
Примечание - Корветы приспособлены, прежде всего, для противолодочной обороны.
4.2.71.1.4 cruiser
Тип судна, предназначенный для прикрытия оперативных групп авианосцев.
Примечание - Крейсеры (многие с управляемыми ракетами или с вертолетами на борту) обеспечивают средства противовоздушной обороны и противолодочной борьбы. Крейсеры также обеспечивают защиту от угроз противокорабельных крылатых ракет увеличенной дальности, особенно при наличии средств радиоэлектронного противодействия противника.
4.2.71.1.5 destroyer
Большое надводное боевое судно, используемое для ведения операций с ударными, противолодочными и десантными силами, а также для выполнения задач прикрытия и сопровождения.
Примечание - Эсминец также может быть оборудован вертолетами, что обеспечивает дополнительные возможности.
4.2.71.1.6 fleet_auxiliary_vessel
Тип судна, предназначенный для снабжения боевых судов в море топливом, продовольствием, запасами и боеприпасами.
Примечание - Вспомогательное судно также обеспечивает авиационные платформы, десантную поддержку для военно-морского флота и морской пехоты, а также морской транспорт для армейских частей. Существует множество типов вспомогательных судов на флоте.
4.2.71.1.7 frigate
Тип судна, который можно охарактеризовать как океанское судно сопровождения общего назначения. Оперативные требования устанавливают, чтобы фрегаты выполняли обязанности судов, способных защищать оперативную группу от современных угроз с воздуха.
Примечание - Фрегаты могут также предоставлять командные и жилые помещения. Вторичные средства включают борьбу с надводными судами, артиллерийскую поддержку с моря и противолодочную оборону.
4.2.71.1.8 landing platform dock
Тип судна, специально предназначенный для перевозки крупных вооруженных сил и вспомогательного оборудования в открытом океане; поддерживает маневренную высадку на вражеские берега с использованием бортовых вертолетов и десантно-высадочных средств, а также координирует военно-морские, воздушные и наземные аспекты десантных операций с помощью средств командования, управления и связи.
4.2.71.1.9 landing platform helicopter
Тип судна, специально разработанный как десантный вертолетоносец, который позволяет осуществлять быструю тактическую переброску воздушно-десантных войск и техники для проведения морских десантных операций на берегу.
Примечание - Он также может стоять у побережья на стратегическом расстоянии в качестве сдерживающей оперативной роли. Его роли в мирное время включают транспортировку войск и оборудования, а также гуманитарные задачи, например помощь при стихийных бедствиях.
4.2.71.1.10 mine_warfare_ship
Судно противоминной обороны (MCMV), специально сконструированное для поиска, траления (механическими, акустическими или магнитными средствами) и обезвреживания мин как в прибрежных, так и в глубоких открытых акваториях. Поскольку судно спроектировано так, чтобы обеспечить его минимальную магнитную сигнатуру, корпуса судов противоминной обороны часто изготавливают из стали с низким магнитным полем или из многослойной фанеры.
4.2.71.1.11 patrol_force_vessel
Судно, размер которого может быть разным в зависимости от роли, для которой оно было спроектировано.
Примечание - Крупные морские патрульные суда (OPV) используют для задач пожаротушения, спасения или снабжения, другие используют в качестве судов защиты, иногда с отрядом морской пехоты и полужесткими плавсредствами, действующими в качестве отряда быстрого реагирования. Некоторые морские патрульные суда имеют ледостойкие корпуса и вертолетную площадку для использования их в качестве исследовательских судов в арктических или антарктических регионах. Размер, маневренность и другие эксплуатационные характеристики небольших прибрежных патрульных судов делают их идеально подходящими для патрулирования, поисково-спасательных операций в прибрежных районах, а также в портах, гаванях и других ограниченных акваториях.
4.2.71.1.12 service_craft
Небольшое судно, предназначенное для оказания определенных услуг флоту в гаванях и портах.
Примечание - К ним относятся буксиры, обслуживающие вспомогательные суда, баржи, патрульные катера, спасательные суда, плавучие доки и т.д. К другим служебным судам, обеспечивающим поддержку, относятся более крупные океанские суда, такие как транспортные, исследовательские и исследовательские суда, ремонтные суда, грузовые суда, плавучие госпитали и т.п.
4.2.71.1.13 submarine
Океанское судно с высокой боеспособностью, предназначенное для выполнения задач борьбы как с подводными, так и надводными судами.
Примечание - Для выполнения этих функций подводная лодка, как правило, несет тяжелые торпеды, самонаводящееся оружие класса "подводная лодка-поверхность" или лодочные мины. Подводные лодки способны действовать в подводном положении на мелководье, в открытом океане, а также в водах от тропиков до Арктики.
4.2.71.1.14 user_defined
Тип судна, не относящийся к предопределенным типам, перечисленным выше.
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.98, а не 4.2.99.
Примечание - Подробная информация приведена в атрибуте описания объекта Shiptype (см. 4.2.99).
4.2.72 Прикладной объект Non_manifold_surface_shape
Прикладной объект Non_manifold_surface_shape является представлением формы, соответствующим ИСО 10303-508.
4.2.73 Прикладной объект Offset_point_table_model
Прикладной объект Offset_point_table_model задает форму объекта Moulded_form (см. 4.2.61), определяемую набором объектов Ship_point (см. 4.2.96). Объекты Ship_point перечислены в секциях.
Примечание - Обычно секции в объекте Offset_point_table_model являются 2d-секциями. В особых обстоятельствах может возникнуть необходимость использования 3d-секций. Тогда значением объекта offset_point_table_type должен быть user_defined_table, а секции таблицы ординат, представляющие 3d-кривые, могут быть любой 3d-формы.
С объектом Offset_point_table_model связаны следующие данные:
- offset_point_table_sections;
- offset_point_table_type.
4.2.73.1 Данные offset_point_table_sections
Данные offset_point_table_sections определяют перечень секций, которые детализируют отдельные секции точек в таблице ординат. Прикладное утверждение - см. 4.3.75.
Пример - Общим примером может быть таблица ординат теоретического чертежа с ординатами ватерлинии. Тогда все точки в одной секции представляют одну ватерлинию.
4.2.73.2 Данные offset_point_table_type
Данные offset_point_table_type определяют тип таблицы ординат и тип секции, где находятся точки ординат.
Значение данных вида offset_point_table_type должно быть одним из следующих:
- buttock_table;
- station_table;
- user_defined_table;
- waterline_table.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеются в виду п.п. 4.2.73.2.1 - 4.2.73.2.4, а не 4.2.74.2.1 - 4.2.74.3.4 соответственно.
Примечание - Определение всех допустимых значений данных вида offset_point_table_type дано в 4.2.74.2.1 - 4.2.74.3.4.
4.2.73.2.1 buttock_table
Данные Offset_point_table_model, определяющие, что точки ординат в таблице плазовых ординат - это точки, находящиеся на батоксах в плоскости XZ.
4.2.73.2.2 station_table
Данные Offset_point_table_model, определяющие, что точки ординат в таблице плазовых ординат - это точки, находящиеся на теоретических шпангоутах в плоскости XZ.
4.2.73.2.3 user_defined_table
Данные Offset_point_table_model, определяющие, что секция для точек ординат не указана.
4.2.73.2.4 waterline_table
Данные Offset_point_table_model, определяющие, что точки ординат в таблице плазовых ординат - это точки, находящиеся на ватерлиниях в плоскости XY.
4.2.74 Прикладной объект Offset_table_shape_representation
Прикладной объект Offset_table_shape_representation является типом объекта Moulded_form_shape_representation (см. 4.2.69), описывающим форму объекта Moulded_form (см. 4.2.61) с помощью точек ординат.
С объектом Offset_table_shape_representation связаны следующие данные:
- items.
4.2.74.1 Данные items
Данные items определяют набор объектов Offset_point_table_model (см. 4.2.73), которые создают объект Offset_table_shape_representation. Прикладное утверждение - см. 4.3.76.
4.2.75 Прикладной объект Owner_designation
Прикладной объект Owner_designation является типом объекта General_characteristics_definition (см. 4.2.40), определяющим организации, которые заказывают, владеют и управляют судном.
С объектом Owner_designation связаны следующие данные:
- local_units;
- managing_company;
- ordering_company;
- owner_approval;
- owning_company.
4.2.75.1 Данные local_units
Данные local_units определяют единицы, используемые определением и отличающиеся от единиц, глобально определенных для судна. Значением данных вида local_units может быть Derived_unit (см. 4.2.24) или Named_unit (см. 4.2.70). Для конкретного Owner_designation данные вида local_units могут быть не заданы. В одном объекте Owner_designation может быть задано несколько данных вида local_units. Прикладные утверждения - см. 4.3.77 и 4.3.78.
4.2.75.2 Данные managing_company
Данные managing_company определяют организацию, которая отвечает за управление и эксплуатацию судна.
4.2.75.3 Данные ordering_company
Данные ordering_company определяют организацию, которая заказала судно на верфи.
4.2.75.4 Данные owner_approval
Данные owner_approval указывают на то, что судовладелец утвердил проект судна. Для конкретного Owner_designation данные вида owner_approval могут быть не заданы.
4.2.75.5 Данные owning_company
Данные owning_company определяют организацию, владеющую судном на законных основаниях.
4.2.76 Прикладной объект Planar_symmetry
Прикладной объект Planar_symmetry является типом Symmetry (см. 4.2.111), дающим информацию о планарной симметрии для любой части судна. Прикладной объект Planar_symmetry детализирует плоскость симметрии для данной части судна.
С объектом Planar_symmetry связаны следующие данные:
- the_symmetry_plane.
4.2.76.1 Данные the_symmetry_plane
Данные the_symmetry_plane определяют плоскость симметрии в определяющей системе координат данной части. Если только одна половина части определяется геометрией, то это должна быть геометрия, описывающая часть, на которую указывает вертикальная ось.
4.2.77 Прикладной объект Precision
Прикладной объект Precision представляет собой геометрическую точность системы САПР (CAD), из которой были получены данные об изделии.
С объектом Precision связаны следующие данные:
- minimum_point_spacing.
4.2.77.1 Данные minimum_point_spacing
Данные minimum_point_spacing определяют минимальное расстояние между двумя точками, которые считаются совпадающими в исходной системе САПР (CAD).
4.2.78 Прикладной объект Principal_characteristics
Прикладной объект Principal_characteristics является типом объекта General_characteristics_definition (см. 4.2.40), определяющим основные параметры формы теоретического обвода корпуса. Объект Principal_characteristics также содержит данные, необходимые в последующих итерациях процесса разработки корпуса, когда рассматривается гидростатика.
С объектом Principal_characteristics связаны следующие данные:
- block_coefficient;
- design_deadweight;
- design_draught;
- length_between_perpendiculars;
- max_draught_at_ap;
- max_draught_at_fp;
- min_draught_at_ap;
- min_draught_at_fp;
- moulded_breadth;
- moulded_depth.
4.2.78.1 Данные block_coefficient
Данные block_coefficient определяют отношение объемного водоизмещения по теоретическому чертежу к объему блока, длина которого равна значению данных вида length_between_perpendiculars, ширина равна наибольшему значению данных moulded_breadth подводной части, а глубина равна значению данных design_draught. Данные вида block_coefficient следует определять только для однокорпусных судов. Для конкретного Principal_characteristics данные вида block_coefficient могут быть не заданы.
4.2.78.2 Данные design_deadweight
Данные design_deadweight указывают полную грузоподъемность судна. Дедвейт - это разность между водоизмещением судна в полном грузу и водоизмещением порожним.
4.2.78.3 Данные design_draught
Данные design_draught определяют осадку, на которую спроектировано судно для эксплуатации.
4.2.78.4 Данные length_between_perpendiculars
Данные length_between_perpendiculars определяют длину, измеряемую от кормового перпендикуляра до носового перпендикуляра судна.
4.2.78.5 Данные max_draught_at_ap
Данные max_draught_at_ap указывают максимально возможную осадку по кормовому перпендикуляру во время эксплуатации судна. Данные вида max_draught_at_ap используют для одобрения сечения корпуса для нотации ледового класса.
4.2.78.6 Данные max_draught_at_fp
Данные max_draught_at_fp указывают максимально возможную осадку по носовому перпендикуляру во время эксплуатации судна. Данные вида max_draught_at_fp используют для одобрения сечения корпуса для нотации ледового класса.
4.2.78.7 Данные min_draught_at_ap
Данные min_draught_at_AP указывают минимальную возможную осадку по кормовому перпендикуляру во время эксплуатации судна. Данные вида min_draught_at_AP используют для одобрения сечения корпуса для нотации ледового класса.
4.2.78.8 Данные min_draught_at_fp
Данные min_draught_at_fp указывают минимальную возможную осадку по носовому перпендикуляру во время эксплуатации судна. Данные вида min_draught_at_fp используют для одобрения сечения корпуса для нотации ледового класса.
4.2.78.9 Данные moulded_breadth
Данные moulded_breadth определяют наибольшую ширину судна по мидель-шпангоуту и при значении design_draught.
4.2.78.10 Данные moulded_depth
Данные вида moulded_depth определяют вертикальное расстояние от основной плоскости до самой верхней палубы, где палуба соединяется с бортом судна, измеряемое по мидель-шпангоуту.
4.2.79 Прикладной объект Propeller_location
Прикладной объект Propeller_location указывает размещение гребного винта относительно корпуса судна.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду рисунок 31, а не 29.
Пример - Местоположение гребного винта показано на рисунке 29, а гребной винт относительно оси показан на рисунке 31.
Рисунок 29 - Крыльчатый движитель
Рисунок 30 - Технология крыльчатых движителей
Рисунок 31 - Местоположение гребного винта
С объектом Propeller_location связаны следующие данные:
- propeller_location;
- shaft_line_inclination_x;
- shaft_line_inclination_y;
- shaft_line_location.
4.2.79.1 Данные propeller_location
Данные propeller_location определяют размещение осевой линии гребного вала в точке, где гребной вал крепится к винту. Координату X измеряют от кормового перпендикуляра, координату Y измеряют от ДП и координату Z измеряют от ОП. Прикладное утверждение - см. 4.3.79.
4.2.79.2 Данные shaft_line_inclination_x
Данные shaft_line_inclination_x определяют угол между гребным валом и осью X корпуса судна.
4.2.79.3 Данные shaft_line_inclination_y
Данные shaft_line_inclination_y определяют угол между гребным валом и осью Y корпуса судна.
4.2.79.4 shaft_line_location
Данные shaft_line_location определяют размещение осевой линии гребного вала в точке, где вал гребного винта выходит из корпуса судна. Координату X измеряют от кормового перпендикуляра, координату Y измеряют от ДП и координату Z измеряют от ОП.
4.2.80 Прикладной объект Propeller_moulded_form_design_parameter
Прикладной объект Propeller_moulded_form_design_parameter является типом объекта Moulded_form_characteristics_definition (см. 4.2.63), содержащим размеры и отношения гребного винта.
Пример - Размеры гребного винта показаны на рисунке 32.
Рисунок 32 - Размеры гребного винта
С объектом Propeller_moulded_form_design_parameter связаны следующие данные:
- blade_mean_height;
- chord_length_at_0_7_radius;
- design_sense_of_rotation;
- expanded_area_ratio;
- hub_diameter_ratio;
- location_of_the_propeller_at_the_ship_hull;
- nominal_design_pitch_ratio;
- number_of_propeller_blades;
- propeller_diameter;
- rake;
- skew;
- thickness_at_0_7_radius;
- type_of_propeller_blades;
- type_of_propulsion.
4.2.80.1 Данные blade_mean_height
Данные blade_mean_height указывают среднюю высоту лопастей для всех невинтовых движителей.
Для конкретного Propeller_moulded_form_design_parameter данные вида blade_mean_height могут быть не заданы.
Примечание - Средняя высота лопасти - это наибольший размер лопасти и при этом больше ширины.
4.2.80.2 Данные chord_length_at_0_7_radius
Данные chord_length_at_0_7_radius указывают длину хорды сечения лопасти гребного винта, расположенного в точке 0,7 радиуса гребного винта, или среднюю ширину лопастей для невинтовых движителей.
4.2.80.3 Данные design_sense_of_rotation
Данные design_sense_of_rotation указывают проектное направление вращения гребного винта, правое или левое.
Данные вида design_sense_of_rotation должны иметь одно из следующих значений:
- left;
- right.
Примечание - Определение каждого допустимого значение данных вида design_sense_of_rotation - см. 4.2.80.3.1, 4.2.80.3.2.
4.2.80.3.1 left
Гребной винт вращается против часовой стрелки.
4.2.80.3.2 right
Гребной винт вращается по часовой стрелке.
4.2.80.4 Данные expanded_area_ratio
Данные expanded_area_ratio задают безразмерный параметр, получаемый в результате деления площади развернутой поверхности лопастей гребного винта к площади круга, описываемого диаметром гребного винта.
4.2.80.5 Данные hub_diameter_ratio
Данные hub_diameter_ratio задают безразмерный параметр, получаемый в результате деления диаметра ступицы гребного винта на его диаметр.
4.2.80.6 Данные location_of_the_propeller_at_the_ship_hull
Данные location_of_the_propeller_at_the_ship_hull указывают размещение гребного винта относительно корпуса судна.
Для конкретного Propeller_moulded_form_design_parameter данные вида location_of_the_propeller_at_the_ship_hull могут быть не заданы. Прикладное утверждение - см. 4.3.80.
4.2.80.7 Данные nominal_design_pitch_ratio
Данные nominal_design_pitch_ratio указывают безразмерный параметр, получаемый в результате деления среднего конструктивного шага на диаметр гребного винта.
4.2.80.8 Данные number_of_propeller_blades
Данные number_of_propeller_blades указывают количество лопастей гребного винта.
4.2.80.9 Данные propeller_diameter
Данные propeller_diameter указывают диаметр наибольшего круга, прописываемого вращением лопастей гребного винта.
4.2.80.10 Данные rake
Данные rake указывают угол откидки лопастей гребного винта от плоскости винта.
4.2.80.11 Данные skew
Данные skew указывают угол саблевидности лопасти между прямой линией, проходящей через ось гребного винта и центр профиля лопасти в точке, равной 0,7 радиуса гребного винта, и второй прямой линией, проходящей через ось гребного винта и центр профиля лопасти в точке, равной одному радиусу гребного винта.
4.2.80.12 Данные thickness_at_0_7_radius
Данные thickness_at_0_7_radius указывают толщину профиля сечения лопасти гребного винта в точке 0,7 радиуса гребного винта или максимальную толщину лопастей для невинтовых движителей.
4.2.80.13 Данные type_of_propeller_blades
Данные type_of_propeller_blades указывают тип лопастей гребного винта: фиксированные, поворотные или регулируемые.
Значение данных вида type_of_propeller_blades должно быть одним из следующих:
- adjustable_blade;
- controllable_blade;
- fixed_blade.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеются в виду п.п. 4.2.80.13.1 - 4.2.80.13.3, а не 4.2.81.13.1 - 4.2.81.13.3 соответственно.
Примечание - Определение допустимых значений данных вида type_of_propeller_blades - см. 4.2.81.13.1 - 4.2.81.13.3.
4.2.80.13.1 adjustable_blade
Лопасти гребного винта можно поворачивать вручную в сухом доке в соответствии с изменяющимися условиями эксплуатации.
4.2.80.13.2 controllable_blade
Лопасти гребного винта могут регулироваться гидравлически для изменения шага, при этом можно менять упор до точки обеспечения упора при заднем ходе судна без изменения направления вращения.
Пример - Лопасть гребного винта регулируемого шага показана на рисунке 33.
Рисунок 33 - Лопасть гребного винта регулируемого шага
4.2.80.13.3 fixed_blade
Лопасти гребного винта фиксированного шага.
Пример - Лопасть гребного винта фиксированного шага показана на рисунке 34.
Рисунок 34 - Лопасть гребного винта фиксированного шага
4.2.80.14 Данные type_of_propulsion
Данные type_of_propulsion указывают тип отдельной движительной системы.
Значение данных вида type_of_propulsion должно быть одним из следующих:
- ducted_propeller;
- paddle_wheel;
- screw_propeller;
- thruster;
- user_defined;
- vertical_axis_propeller;
- water_jet.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеются в виду п.п. 4.2.80.14.1 - 4.2.80.14.7, а не 4.2.81.14.1 - 4.2.81.14.7 соответственно.
Примечание - Определение допустимых значений данных вида type_of_propulsion - см. 4.2.81.14.1 - 4.2.81.14.7.
4.2.80.14.1 ducted_propeller
Гребной винт работает в направляющей насадке с целью повышения его КПД.
Пример - Гребной винт в направляющей насадке показан на рисунке 35.
Рисунок 35 - Гребной винт в направляющей насадке
4.2.80.14.2 paddle_wheel
Движительная система состоит из гребных лопастей, вращающихся вокруг горизонтальной оси, идущей параллельно оси Y судна.
Примечание - Этот устаревший тип движителей не используется на современных судах.
4.2.80.14.3 screw_propeller
Это наиболее часто встречающаяся движительная система, работающая без направляющей насадки или туннеля.
Пример - Винтовой движитель показан на рисунке 36.
Рисунок 36 - Гребной винт регулируемого шага
4.2.80.14.4 thruster
Гребной винт работает в туннеле, расположенном внутри корпуса судна, и используется в основном для маневрирования.
Пример - Гребной винт подруливающего устройства показан на рисунке 25.
4.2.80.14.5 user_defined
Тип движительной системы определяется пользователем.
4.2.80.14.6 vertical_axis_propeller
Крыльчатый движитель, состоящий из вертикальных лопастей, вращающихся вокруг собственных осей. Специальный механизм изменяет угол поворота каждой лопасти во время вращения.
Пример - Крыльчатый движитель показан на рисунках 29 и 30.
4.2.80.14.7 water_jet
Гребной винт работает в туннеле внутри корпуса судна.
4.2.81 Прикладной объект Regulation
Прикладной объект Regulation является набором международных и национальных нормативов, а также других стандартов, применяемых к судну.
С объектом Regulation связаны следующие данные:
- international_regulations;
- national_regulations;
- standards.
4.2.81.1 Данные international_regulations
Данные international_regulations указывают все соответствующие международные нормативы, применяемые к судну. Прикладное утверждение - см. 4.3.81.
4.2.81.2 Данные national_regulations
Данные national_regulations указывают все соответствующие национальные нормативы, применяемые к судну. Прикладное утверждение - см. 4.3.81.
4.2.81.3 Данные standards
Данные standards указывают все соответствующие спецификации, применяемые к судну. Прикладное утверждение - см. 4.3.81.
4.2.82 Прикладной объект Research_ship
Прикладной объект Research_ship является типом объекта Shiptype (см. 4.2.98), указывающим научно-исследовательскую функцию, выполняемую судном.
С объектом Research_ship связаны следующие данные:
- has_type.
4.2.82.1 Данные has_type
Данные has_type определяют тип научно-исследовательского судна.
Значение данных вида has_type должно быть одним из следующих:
- user_defined.
4.2.82.1.1 user_defined
Тип судна, отсутствующий в перечне данных вида has_type.
Примечание - Подробная информация приведена в атрибуте описания объекта Shiptype (см. 4.2.99).
4.2.83 Прикладной объект Revision
Прикладной объект Revision является типом Versionable_object (см. 4.2.121), служащим связующим звеном между необходимым объектом и определениями его составляющих и связанных элементов. Объект Revision не воспроизведен автоматически, а должен создаваться четко каждый раз, когда он требуется. Значением каждого объекта Revision может быть Revision_with_context (см. 4.2.84).
Пример - Необходимым объектом может быть сечение корпуса, чьими элементами являются определения листов, но только те определения листов, которые относятся к одной и той же версии.
С объектом Revision связаны следующие данные:
- members;
- name.
4.2.83.1 Данные members
Данные members определяют объекты Versionable_object (см. 4.2.121) прикладного объекта Revision. Прикладное утверждение - см. 4.3.82.
4.2.83.2 Данные name
Данные name задает подпись, которая идентифицирует конкретное изменение.
4.2.84 Прикладной объект Revision_with_context
Прикладной объект Revision_with_context является типом Revision (см. 4.2.83), служащим связующим звеном между необходимым объектом, контекстом и определениями его составляющих и связанных элементов. Значением каждого Revision_with_context может быть Ship_moulded_form_revision (см. 4.2.94).
С объектом Revision_with_context связаны следующие данные:
- context_of_revision.
4.2.84.1 Данные context_of_revision
Данные context_of_revision указывают связь с Definable_object (см. 4.2.22), который определяется изменением. Прикладное утверждение - см. 4.3.83.
4.2.85 Прикладной объект Rotational_symmetry
Прикладной объект Rotational_symmetry является типом Symmetry (см. 4.2.111), дающим информацию о вращательной симметрии для любой части судна. Ось вращательно симметрии детализирует ось вращения для данной части судна.
С объектом Rotational_symmetry связаны следующие данные:
- the_rotational_axis.
4.2.85.1 Данные the_rotational_axis
Данные the_rotational_axis указывают ось вращения и определяются в действующей системе координат данной части судна.
4.2.86 Прикладной объект Rudder_moulded_form_design_parameter
Прикладной объект Rudder_moulded_form_design_parameter является типом прикладного объекта Moulded_form_characteristics_definition (см. 4.2.63), который содержит размеры и отношения руля.
Пример - Размеры руля показаны на рисунке 37.
Рисунок 37 - Размеры руля
С объектом Rudder_moulded_form_design_parameter связаны следующие данные:
- aspect_ratio;
- projected_rudder_area;
- rudder_height;
- rudder_length;
- rudder_location;
- rudder_mean_height;
- rudder_mean_length;
- rudder_thickness;
- type_of_the_rudder.
4.2.86.1 Данные aspect_ratio
Данные aspect_ratio указывают соотношение сторон (относительное удлинение) между средними значениями его высоты и длины.
4.2.86.2 Данные projected_rudder_area
Данные projected_rudder_area указывают площадь поверхности руля в его рабочем положении в проекции на плоскость XY судна.
4.2.86.3 Данные rudder_height
Данные rudder_height указывают высоту руля, измеряемую от его наинизшей до его наивысшей точки в рабочем положении.
4.2.86.4 Данные rudder_length
Данные rudder_length указывают максимальную длину руля в его рабочем положении, измеряемую по длине судна.
4.2.86.5 Данные rudder_location
Данные rudder_location указывают положение осевой линии съемного рудерпоста в точке, где он крепится к верху руля. Координату X измеряют от кормового перпендикуляра, координату Y измеряют от ДП, а координату Z измеряют от ОП. Прикладное утверждение - см. 4.3.84.
4.2.86.6 Данные rudder_mean_height
Данные rudder_mean_height указывают среднюю высоту руля в его рабочем положении.
4.2.86.7 rudder_mean_length
Данные rudder_mean_length указывают среднюю длину руля в его рабочем положении, измеряемую по длине судна.
4.2.86.8 Данные rudder_thickness
Данные rudder_thickness указывают максимальную толщину руля.
4.2.86.9 Данные type_of_the_rudder
Данные type_of_the_rudder указывают, является ли руль балансирным или небалансирным.
Значение данных вида type_of_the_rudder должно быть одним из следующих:
- balanced;
- unbalanced.
Примечание - Определения всех допустимых значений данных вида type_of_the_rudder - см. 4.2.86.9.1, 4.2.86.9.2.
4.2.86.9.1 balanced
Площадь руля равномерно распределена перед и за осью поворота руля для уменьшения рабочего момента на баллере руля.
4.2.86.9.2 unbalanced
Площадь руля находится за осью поворота руля.
4.2.87 Прикладной объект Section_of_offset_point_table
Прикладной объект Section_of_offset_point_table является упорядоченным списком объектов Ship_point (см. 4.2.96).
Примечание - Аналогично объекту Ship_curve (см. 4.2.89), представленному ломаной линией.
С объектом Section_of_offset_point_table связаны следующие данные:
- for_table;
- section_identifier;
- section_points.
Примечание - Атрибут for_table является обратным атрибуту offset_point_table_sections для объекта Offset_point_table_model (см. 4.2.73).
4.2.87.1 Данные for_table
Данные for_table указывают связанные объекты Offset_point_table_model (см. 4.2.73) для Section_of_offset_point_table. Прикладное утверждение - см. 4.3.75.
4.2.87.2 Данные section_identifier
Данные section_identifier определяют контекстно-зависимую идентификацию, заданную для секции таблицы ординат.
4.2.87.3 Данные section_points
Данные section_points указывают перечень объектов Ship_point (см. 4.2.96), представляющих ординаты формы для данной секции. Прикладное утверждение - см. 4.3.85.
4.2.88 Прикладной объект Ship
Прикладной объект Ship является типом объекта Item (см. 4.2.52), который является основным изделием, поддерживаемым набором прикладных протоколов для судостроения согласно ИСО 10303. Все данные, определяющие изделие, должны относиться к объекту Ship. Данные определения модели изделия, относящиеся к объекту Ship, поддерживаются для многих этапов жизненного цикла объекта Ship, включая новый проект, начальное и рабочее проектирование, организацию производства, эксплуатацию и утилизацию. Прикладной объект Ship может представлять собой один корпус или ряд корпусов в классе судов одного проекта, которые имеют идентичные данные об изделии.
С объектом Ship связаны следующие данные:
- single_hull_or_class;
- ship_items;
- units.
4.2.88.1 Данные single_hull_or_class
Данные single_hull_or_class указывают, применяется ли обмен данными к одному корпусу или к нескольким корпусам в классе объектов Ships.
Значение данных вида single_hull_or_class должно быть одним из следующих:
- design_for_multiple_hulls;
- design_for_single_hulls.
4.2.88.1.1 design_for_multiple_hulls
Диапазон корпусов судов, для которых применяется конкретный объект Item (см. 4.2.52) или Definition (см. 4.2.23), должен быть указан с помощью Hull_applicability (см. 4.2.43).
4.2.88.1.2 design_for_single_hulls
Один корпус, для которого применяется конкретный Item (см. 4.2.52) или Definition (см. 4.2.23), должен быть указан с помощью Hull_applicability (см. 4.2.43).
4.2.88.2 ship_items
Данные ship_items задают составляющие объекты, применяемые к конкретному объекту Ship. Прикладное утверждение - см. 4.3.49.
4.2.88.3 units
Данные units указывают ссылку на набор предопределенных единиц для всех типов измерений, которые могут появляться в модели Ship. Значением данных вида units может быть Derived_unit (см. 4.2.24) или Named_unit (см. 4.2.70). Для конкретного Ship данные вида units могут быть не заданы. В одном объекте Ship может быть задано несколько данных вида units. Прикладные утверждения - см. 4.3.86 и 4.3.87.
4.2.89 Прикладной объект Ship_curve
Прикладной объект Ship_curve является типом объекта Moulded_form_representation_item (см. 4.2.67), представляющим кривую с соответствующей информацией по теории судостроения. Значением Ship_curve may может быть Ship_curve_with_spacing_position (см. 4.2.91).
Пример - Типом объекта Ship_curve является ватерлиния с геометрией, определенной B-сплайновой кривой. Кривые судна показаны на рисунке 38.
Рисунок 38 - Кривые судна
С объектом Ship_curve связаны следующие данные:
- curve_class;
- curve_shape;
- side_condition.
4.2.89.1 Данные curve_class
Данные curve_class указывают категории теории судостроения для объекта Ship_curve, необходимые для проектного определения объектов Moulded_form (см. 4.2.61).
Значение данных вида curve_class должно быть одним из следующих:
- bounding_line;
- buttock_line;
- camber;
- centreline;
- flat_of_bottom;
- flat_of_side;
- intersection_line;
- rise_of_floor;
- sheer;
- station_line;
- trace_line;
- unspecified;
- waterline.
4.2.89.1.1 bounding line
Кривая является ограничивающей кривой объекта Moulded_form (см. 4.2.61) или Ship_surface (см. 4.2.97).
4.2.89.1.2 buttock_line
Кривая лежит на теоретической поверхности корпуса на пересечении продольной плоскости и теоретического обвода корпуса.
Пример - Батоксы показаны на рисунке 39.
Рисунок 39 - Батоксы
4.2.89.1.3 camber
Кривая лежит на теоретической поверхности палубы.
Примечание - Образуется пересечением поперечной плоскости с теоретическим обводом палубы.
4.2.89.1.4 centreline
Кривая лежит на теоретической поверхности корпуса.
Примечание - Образуется пересечением ДП с теоретическим обводом корпуса судна.
4.2.89.1.5 flat_of_bottom
Кривая, ограничивающая плоский участок днища.
4.2.89.1.6 flat_of_side
Кривая, ограничивающая плоский участок борта.
4.2.89.1.7 intersection_line
Кривая, образуемая пересечением двух объектов или поверхностей Moulded_form (см. 4.2.61).
4.2.89.1.8 rise_of_floor
Высота подъема днища, которая измеряется на полушироте от ОП.
4.2.89.1.9 sheer
Кривая лежит в теоретической поверхности палубы.
Примечание - Седловатость (подъем палубы от середины мидель-шпангоута к носу и/или корме).
4.2.89.1.10 station_line
Кривая лежит в теоретической поверхности корпуса.
Примечание - Линия шпангоута, полученная пересечением теоретического обвода корпуса с плоскостью, параллельной плоскости мидель-шпангоута.
Пример - Теоретические шпангоуты показаны на рисунке 40.
Рисунок 40 - Линии теоретических шпангоутов
4.2.89.1.11 trace_line
Кривая в теоретической поверхности конструктивной части, которая действует как граница или соединительная линия для крепления профиля или балки.
4.2.89.1.12 unspecified
Значение кривой в теории судостроения не задано.
4.2.89.1.13 waterline
Кривая лежит в теоретической поверхности корпуса.
Примечание - Образуется пересечением плоскости воды с теоретическим обводом корпуса.
Пример - Кривые ватерлиний показаны на рисунке 41.
Рисунок 41 - Ватерлинии
4.2.89.2 Данные curve_shape
Данные curve_shape указывают базовые геометрические определения объекта Ship_curve (см. 4.2.89).
Пример - Каркасные или однообразные B-сплайновые представления.
4.2.89.3 Данные side_condition
Данные side_condition указывают поведение кривых, пересекающих заданную кривую в точке перехода.
Пример - Кривая сечения будет ломаться на ватерлинии, представляя пересечение скулового киля и прямостенной части борта.
Значение данных вида side_condition должно быть одним из следующих:
- knuckle;
- smooth;
- tangent;
- unspecified.
4.2.89.3.1 knuckle
Кривая пересечения имеет прерывистую касательную по обе стороны от точки перехода.
4.2.89.3.2 smooth
Кривая пересечения гладкая по обе стороны от точки перехода.
4.2.89.3.3 tangent
Кривая пересечения имеет заданную касательную в точке перехода.
4.2.89.3.4 unspecified
У кривой пересечения отсутствует информация о соприкасании в точке перехода.
4.2.90 Прикладной объект Ship_curve_segment
Прикладной объект Ship_curve_segment определяет информацию о кривой для каркасного представления судна или части судна. Объект Ship_curve_segment является одной из ограничивающих кривых ячейки в каркасе с информацией о Ship_curve (см. 4.2.89), к которой принадлежит Ship_curve_segment.
Примечание - Информация о кривой будет поддерживать сущностный объект edge_curve, как определено в ИСО 10303-42.
С объектом Ship_curve_segment связаны следующие данные:
- part_of_ship_curve.
4.2.90.1 Данные part_of_ship_curve
Данные part_of_ship_curve определяют объект Ship_curve (см. 4.2.89), в состав которого входит Ship_curve_segment. Прикладное утверждение см. 4.3.88.
4.2.91 Прикладной объект Ship_curve_with_spacing_position
Прикладной объект Ship_curve_with_spacing_position является типом объекта Ship_curve (см. 4.2.89), имеющим связанное с ним интервальное положение.
Пример - Ватерлиния, у которой есть геометрия, определенная B-сплайновой кривой и расположенная в вертикальном интервальном положении.
Примечание - Ship_curve_with_spacing_position может определяться только для двухмерной кривой судна, расположенной в одной из плоскостей глобальной системы координат.
С объектом Ship_curve_with_spacing_position связаны следующие данные:
- location.
4.2.91.1 Данные location
Данные location определяют объект Spacing_position (см. 4.2.100), где определена кривая судна. Прикладное утверждение - см. 4.3.89.
4.2.92 Прикладной объект Ship_designation
Прикладной объект Ship_designation является типом объекта General_characteristics_definition (см. 4.2.40), который определяет идентификацию, присвоенную судну с тем, чтобы его могла классифицировать любая организация, связанная с судостроением и судоходством.
С объектом Ship_designation связаны следующие данные:
- call_sign;
- flag_state;
- local_units;
- port_of_registration;
- ship_identification;
- ship_name;
- description.
4.2.92.1 Данные call_sign
Данные call_sign указывают уникальный идентификатор жизненного цикла, который присваивается судну данными вида flag_state для радиосвязи.
4.2.92.2 Данные flag_state
Данные flag_state указывают национальный орган, в котором регистрируется судно.
4.2.92.3 Данные local_units
Данные local_units определяют единицы, используемые определением и отличающиеся от единиц, глобально определенных для судна. Значением данных local_units может быть Derived_unit (см. 4.2.24) или Named_unit (см. 4.2.70). Для конкретного Ship_designation данные вида local_units могут быть не заданы. В одном объекте Ship_designation может быть задано несколько данных вида local_units. Прикладные утверждения - см. 4.3.91 и 4.3.90.
4.2.92.4 Данные port_of_registration
Данные port_of_registration указывают государственный порт приписки судна. Данные port_of_registration находятся под юрисдикцией данных вида flag_state.
4.2.92.5 Данные ship_identification
Данные ship_identification указывают общий идентификатор, являющийся уникальным для судна, присваиваемый во время классификации.
4.2.92.6 Данные ship_name
Данные ship_name указывают наименование судна, присвоенное владельцем.
4.2.92.7 Данные description
Данные description указывают дополнительные данные о функции судна, а также дополнительные сведения о перевозимых грузах. Если значением объекта Shiptype (см. 4.2.98) являются данные вида user_defined, то данные вида description предоставляют информацию по типу судна.
4.2.93 Прикладной объект Ship_moulded_form
Прикладной объект Ship_moulded_form является типом объекта Item_structure (см. 4.2.54) и типом объекта Item (см. 4.2.52), который группирует вместе все объекты Moulded_form (см. 4.2.61).
Пример 1 - Значением объекта Ship_moulded_form может быть группа отдельных объектов Moulded_form для корпуса судна, гребного винта, руля и выступающих частей.
Пример 2 - Теоретические обводы судов показаны на рисунке 42.
Примечание - Прикладной объект Ship_moulded_form не должен ни в коем случае содержать ссылок на прикладной объект Local_co_ordinate_system (см. 4.2.56).
Рисунок 42 - Корпус судна, руль и гребной винт
С объектом Ship_moulded_form связаны следующие данные:
- items;
- relationships.
4.2.93.1 Данные items
Данные items указывают все объекты Moulded_form (см. 4.2.61), которые определяют прикладной объект Ship_moulded_form. Прикладное утверждение - см. 4.3.92.
4.2.93.2 Данные relationships
Данные relationships указывают объекты Moulded_form_relationship (см. 4.2.66), которые формируют прикладной объект Ship_moulded_form. Прикладное утверждение - см. 4.3.93.
4.2.94 Прикладной объект Ship_moulded_form_revision
Прикладной объект Ship_moulded_form_revision является типом объекта Revision_with_context (см. 4.2.84), указывающим редакцию объекта Ship_moulded_form (см. 4.2.93). Собирает все используемые версии объектов Moulded_form_design_definition (см. 4.2.64), относящиеся к определению конкретного теоретического обвода судна.
С объектом Ship_moulded_form_revision связаны следующие данные:
- context_of_revision;
- members.
4.2.94.1 Данные context_of_revision
Данные context_of_revision указывают объект Ship_moulded_form (см. 4.2.93), для которого определяется прикладной объект Ship_moulded_form_revision. Прикладное утверждение - см. 4.3.95.
4.2.94.2 Данные members
Данные members указывают набор объектов Moulded_form_design_definition (см. 4.2.64), формирующих прикладной объект Ship_moulded_form_revision. Прикладное утверждение - см. 4.3.94.
4.2.95 Прикладной объект Ship_overall_dimensions
Прикладной объект Ship_overall_dimensions является типом объекта Definition (см. 4.2.23), который указывает максимальные пределы объекта Ship_moulded_form (см. 4.2.93).
Пример - Габаритные размеры судна показаны на рисунке 43.
Рисунок 43 - Габаритные размеры корпуса судна
С объектом Ship_overall_dimensions связаны следующие данные:
- defined_for;
- overall_breadth;
- overall_depth;
- overall_length;
- stem_overhang;
- stern_overhang.
4.2.95.1 Данные defined_for
Данные defined_for указывают судно для данного объекта Ship_overall_dimensions. Прикладное утверждение - см. 4.3.96.
4.2.95.2 Данные overall_breadth
Данные overall_breadth указывают максимальную ширину объекта Ship_moulded_form (см. 4.2.93).
4.2.95.3 Данные overall_depth
Данные overall_depth указывают максимальное расстояние по вертикали от ОП до самой высокой палубы объекта Ship_moulded_form (см. 4.2.93).
4.2.95.4 Данные overall_length
Данные overall_length указывают длину от крайней носовой до крайней кормовой оконечности объекта Ship_moulded_form (см. 4.2.93).
4.2.95.5 Данные stem_overhang
Данные stem_overhang указывают длину от носового перпендикуляра до крайней носовой оконечности объекта Ship_moulded_form (см. 4.2.93).
4.2.95.6 Данные stern_overhang
Данные stern_overhang указывают длину от крайней кормовой оконечности объекта Ship_moulded_form (см. 4.2.93) до кормового перпендикуляра.
4.2.96 Прикладной объект Ship_point
Прикладной объект Ship_point является типом объекта Moulded_form_representation_item (см. 4.2.67), представляющим точку с соответствующей информацией по теории судостроения.
Пример - Точки судна показаны на рисунке 44.
Рисунок 44 - Точки судна
Значением объекта Ship_point может быть точка перегиба с размещением в глобальной системе координат.
С объектом Ship_point связаны следующие данные:
- point_class;
- point_shape.
4.2.96.1 Данные point_class
Данные point_class указывают категории теории судостроения для объекта Ship_point исходя из поведения кривых, проходящих через объект Ship_point.
Значение данных вида point_class должно быть одним из следующих:
- knuckle;
- ordinary;
- tangent;
- unspecified.
4.2.96.1.1 knuckle
Кривая, проходящая через эту точку, имеет прерывистую касательную по обе стороны точки.
4.2.96.1.2 ordinary
Одна или несколько кривых, проходящих через эту точку, имеют плавную касательную.
4.2.96.1.3 tangent
Кривые, проходящие через эту точку, имеют заданную касательную.
4.2.96.1.4 unspecified
Информация о касательной для кривых, проходящих через эту точку, отсутствует.
4.2.96.2 Данные point_shape
Данные point_shape указывают базовое геометрическое определение объекта Ship_point.
Пример - Данными вида point_type является представление таблицы ординат теоретического чертежа.
4.2.97 Прикладной объект Ship_surface
Прикладной объект Ship_surface является типом объекта Moulded_form_representation_item (см. 4.2.67), представляющим поверхность с соответствующей информацией по теории судостроения.
С объектом Ship_surface связаны следующие данные:
- surface_class;
- surface_shape.
4.2.97.1 Данные surface_class
Данные surface_class указывают категории теории судостроения для объекта Ship_surface исходя из размещения поверхности.
Значение данных вида surface_class должно быть одним из следующих:
- accommodation_area;
- accommodation_deck;
- aft_ship;
- blending_surface;
- bottom;
- bracket;
- bulkhead;
- cargo_area;
- collision_bulkhead;
- cross_tie;
- deck;
- deck_beam;
- deck_house;
- deck_in_superstructure;
- double_bottom;
- double_shell;
- duct_keel;
- engine_area;
- engine_foundation;
- external_surface;
- floor;
- fore_ship;
- frame;
- girder;
- hatch_cover;
- hatchway_coaming;
- hatchway_endcoaming;
- hatchway_sidecoaming;
- hold_bulkhead;
- hopper;
- inner_bottom;
- inner_shell;
- internal_surface;
- keel;
- longitudinal_bulkhead;
- longitudinal_girder;
- lower_boom;
- machinery_casing;
- main_deck;
- mid_ship;
- navigation_deck;
- outer_shell;
- platform_deck;
- plating;
- sheer_strake;
- ship_structure;
- stern_frame;
- stool;
- strength_bulkhead;
- strength_deck;
- stringer;
- superstructure;
- superstructure_aft_bulkhead;
- superstructure_front_bulkhead;
- superstructure_side_bulkhead;
- tank_bottom;
- tank_bulkhead;
- tank_side;
- tank_top;
- transom;
- transversal_bulkhead;
- transverse_floor;
- transverse_web_frame;
- upper_boom;
- user_defined;
- vertical_web_frame;
- wall;
- wash_bulkhead;
- weather_deck;
- web_frame;
- wing_bulkhead.
4.2.97.1.1 accommodation_area
Рубка на верхней палубе или надстройка, в которой находятся спальные места для пассажиров и экипажа.
4.2.97.1.2 accommodation_deck
Палуба, расположенная в жилой зоне.
4.2.97.1.3 aft_ship
Часть судна в корму от мидель-шпангоута.
4.2.97.1.4 blending_surface
Поверхность, формирующая соединение между объектами Moulded_form (см. 4.2.61).
Пример - Типом данных вида blending_surface являются корпус и выступающая часть корпуса (подруливающее устройство).
4.2.97.1.5 bottom
Днище корпуса.
4.2.97.1.6 bracket
Отбортованный лист или обычный лист, используемый для обеспечения жесткого соединения между двумя конструктивными элементами.
4.2.97.1.7 bulkhead
Термин, применяемый к любой из перегородок, которые используются для разделения внутренней части судна на различные отсеки.
Примечание - Переборка может быть "непропускающей" (водонепроницаемой), конструктивной (обеспечивающей прочность судна) или ненесущей (перегородка в жилой зоне).
4.2.97.1.8 cargo_area
Часть судна, предназначенная для хранения судового груза, т.е. грузовой отсек.
4.2.97.1.9 collision_bulkhead
Переборка, расположенная в носовой части судна, идущая от днища судна до верхней палубы, предназначенная для обеспечения водонепроницаемости при повреждении носа, а также самая передняя поперечная переборка на судне.
4.2.97.1.10 cross_tie
Корпусная конструкция, соединяющая две параллельные балки для обеспечения дополнительной прочности палубы.
4.2.97.1.11 deck
Палуба на судне. Представляет собой горизонтальное перекрытие, состоящее из настила и набора.
4.2.97.1.12 deck_beam
Поперечный или продольный горизонтальный конструктивный элемент, обычно представляющий собой прокатный профиль, на который опирается палуба или плоская поверхность.
4.2.97.1.13 deck_house
Закрытая конструкция на открытой палубе или над ней, не доходящая до борта судна.
4.2.97.1.14 deck_in_superstructure
Палуба в надстройке.
4.2.97.1.15 double_bottom
Термин, применяемый к пространству между внутренней и внешней обшивками днища судна, используемому для водяного балласта, мазута и т.д.
Примечание - Также применяется для обозначения того, что судно имеет полную внутреннюю или дополнительную оболочку из водонепроницаемой днищевой обшивки.
4.2.97.1.16 double_shell
Термин, используемый для описания судна с двойным корпусом, т.е. повреждение внешнего корпуса не повлияет на конструктивную целостность судна и не приведет к гибели груза.
4.2.97.1.17 duct_keel
Тоннельный киль - область внутри двойного дна, ограниченная водонепроницаемыми продольными переборками, в которой обычно расположены трубопроводы и системы.
4.2.97.1.18 engine_area
Машинное отделение или машинное помещение судна, в котором расположена главная энергетическая установка.
4.2.97.1.19 engine_foundation
Толстолистовая подкрепленная конструкция, которая служит конструктивной опорой главной энергетической установки, обычно монтируется сверху на внутренней днищевой конструкции.
4.2.97.1.20 external_surface
Поверхность, являющаяся частью представления внешней поверхности судна.
4.2.97.1.21 floor
Лист, используемый вертикально в днище судна обычно на каждом шпангоуте, для его углубления, и идущий поперек судна от трюма к трюму.
Примечание - Поперечные листовые конструкции, обычно расположенные в двойном дне, используемые для разделения двойного дна и опоры обшивки днища и внутренних продольных элементов днища.
4.2.97.1.22 fore_ship
Термин, используемый для обозначения частей или части судна в носу или рядом с ним. Также применяется к той части и частям судна, которые лежат между мидель-шпангоутом и носом судна.
4.2.97.1.23 frame
Термин, обычно используемый для обозначения одного из поперечных ребер, составляющих остов судна. Шпангоуты действуют как ребра жесткости, удерживая форму бортовой обшивки и сохраняя поперечную форму судна.
4.2.97.1.24 girder
Основной несущий конструктивный элемент, который проходит вдоль палуб, обшивок и переборок.
Примечание - Продольная балка обеспечивает опору и жесткость меньшим и более близко расположенным друг к другу балкам.
4.2.97.1.25 hatch_cover
Люковое закрытие, обеспечивающее водонепроницаемость грузовых трюмов. Люковые закрытия предназначены для размещения палубных грузов, а также для доступа в трюм или машинные помещения.
4.2.97.1.26 hatchway_coaming
Четыре части с вертикальными стенками в раме люка, которые вместе называются комингсом люка.
4.2.97.1.27 hatchway_endcoaming
Поперечные части с вертикальными стенками в переднем и заднем концах люка, которые упираются в палубные бимсы.
4.2.97.1.28 hatchway_sidecoaming
Продольные части с вертикальными стенками по бокам люка, опирающиеся на люковые карлингсы, в которые упираются палубные бимсы.
4.2.97.1.29 hold_bulkhead
Продольная или поперечная перегородка, используемая для разделения трюма (пространства, предназначенного для хранения груза).
4.2.97.1.30 hopper
Трюмное пространство для сухого груза с наклонными листами переборки в днище со всех четырех сторон для обеспечения направления сыпучих грузов в систему разгрузки.
4.2.97.1.31 inner_bottom
Внутренняя или дополнительная оболочка из водонепроницаемой днищевой обшивки на судне с двойным дном. Листы, образующие верхнюю часть двойного дна, также называют настилом второго дна.
Примечание - Двойное дно обычно устанавливается на больших судах от скулы до скулы и почти по всей длине в нос и в корму. Там, где имеется два днища, внешнее называется днищевой обшивкой, внутреннее - внутренним дном.
4.2.97.1.32 inner_shell
Поверхности, из которых состоит внутренняя обшивка судна с двойным корпусом.
4.2.97.1.33 internal_surface
Поверхность, являющаяся частью представления внутренней поверхности судна.
Пример - К типам данных вида internal_surface относятся продольные балки или переборки.
4.2.97.1.34 keel
Основной продольный элемент набора судна, расположенный по ДП днища и соединенный с носовым или кормовым набором. К килю крепятся флоры или траверсы днища.
Примечание - Плоский киль представляет собой расположенный горизонтально, по ДП, нижний пояс обшивки днища, образующий нижний поясок киля. Центральный вертикальный киль - это вертикальная, расположенная по ДП стенка киля.
4.2.97.1.35 longitudinal_bulkhead
Вертикальная переборка, идущая в носовом и кормовом направлениях, используемая для разделения или деления судна на части для обеспечения прочности, обеспечения остойчивости в неповрежденном виде и для разделения помещений.
4.2.97.1.36 longitudinal_girder
Термин, применяемый к идущей по всей длине продольной балке в днище судна. Эти балки обычно состоят из листов и профилей, иногда бывают интеркостельными, а иногда непрерывными.
4.2.97.1.37 lower_boom
Конструкция, расположенная на нижнем уровне судна, предназначенная для погрузочно-разгрузочных работ и работающая совместно с верхней стрелой.
Примечание - Стрела представляет собой длинную круглую штангу, шарнирно закрепленную своим нижним концом обычно к мачте или грузовой полумачте на судне и поддерживаемую проволочным тросом или талями от верхней части такелажа до верхнего конца стрелы. Грузы, запасы и пр. поднимаются с помощью талей, идущих от верхнего конца стрелы.
4.2.97.1.38 machinery_casing
Основная функция машинных кожухов - обеспечение защиты отверстий, расположенных в открытой палубе над двигателями и котлами (для доступа, для обеспечения света и воздуха, а также для газоотводов от котлов), от проникновения морской воды внутрь судна через эти отверстия в плохую погоду. Под верхней палубой машинный кожух отделяет машинные помещения от жилых и грузовых помещений.
4.2.97.1.39 main_deck
Основная палуба основного корпуса, обычно самая высокая конструкция, идущая от носа до кормы и обеспечивающая прочность основного корпуса. Эта конструкция также называется прочной палубой.
4.2.97.1.40 mid_ship
Точка, расположенная на равном расстоянии между носовым и кормовым перпендикулярами судна.
4.2.97.1.41 navigation_deck
Конструкция, обычно расположенная в рубке, представляющая собой палубу, на которой осуществляется управление судном/судовождение.
4.2.97.1.42 outer_shell
Конструкция внешнего корпуса двухкорпусного судна, соприкасающаяся с морем.
4.2.97.1.43 platform_deck
Нижняя палуба, как правило, в грузовом помещении, не участвующая в обеспечении продольной прочности судна.
4.2.97.1.44 plating
Сплошной материал, используемый для обеспечения опоры, разделения, закрытия и т.д., для переборок, палуб, рубок, обшивки, внутреннего днища и пр.
4.2.97.1.45 sheer_strake
Участок наружной обшивки корпуса на уровне прочной палубы, как правило, усиленной и без отверстий.
4.2.97.1.46 ship_structure
Конструкция всего судна целиком.
4.2.97.1.47 stern_frame
Большая отливка, поковка или сварная конструкция, прикрепленная к кормовой оконечности киля. Включает в себя рулевую обойму, а на одновинтовых судах - старн-пост.
4.2.97.1.48 stool
Конструктивная опора, расположенная в основании гофрированной поперечной переборки, обеспечивающая переход между переборкой и внутренним днищем.
4.2.97.1.49 strength_bulkhead
Переборка, участвующая в обеспечении прочности судна.
4.2.97.1.50 strength_deck
Палуба, выполненная в виде самой верхней части основной продольной балки усиления корпуса. Большую нижнюю часть этой балки образует днищевая обшивка корпуса.
4.2.97.1.51 stringer
Термин, применяемый к идущей по всей длине судна продольной балке, проходящей вдоль борта судна у обшивки корпуса, а также к внешнему поясу обшивки на любой палубе. Также включает боковые части трапа или лестницы, к которым крепятся ступени и подступени.
4.2.97.1.52 superstructure
Конструкция с настилом над верхней палубой, внешние борта которой образованы внешней обшивкой корпуса. Эта конструкция отличается от рубки, которая не выходит за борт по бортам судна.
4.2.97.1.53 superstructure_aft_bulkhead
Основная поперечная переборка, образующая кормовую границу надстройки.
4.2.97.1.54 superstructure_front_bulkhead
Основная поперечная переборка, образующая носовую границу надстройки.
4.2.97.1.55 superstructure_side_bulkhead
Основные продольные переборки по бортам (по левому и правому борту), образующие боковые границы надстройки.
4.2.97.1.56 tank_bottom
Нижняя граница цистерны; днищевая обшивка корпуса, верхняя часть внутреннего дна или палуба, образующая нижнюю границу цистерны.
4.2.97.1.57 tank_bulkhead
Продольные или поперечные вертикальные усиленные листовые конструкции, которые добавляются для формирования боковых и торцевых границ цистерны.
4.2.97.1.58 tank_side
Продольные усиленные листовые конструкции, которые добавляются для формирования боковых границ цистерны.
4.2.97.1.59 tank_top
Горизонтальные усиленные листовые конструкции, которые добавляются для формирования верхней границы цистерны.
4.2.97.1.60 transom
Прямая широкая корма, используемая для увеличения объема корпуса и палубного пространства в кормовой части и (или) для уменьшения сопротивления на некоторых высокоскоростных судах.
4.2.97.1.61 transversal_bulkhead
Вертикальные усиленные листовые конструкции, ориентированные поперек судна и используемые для разделения или деления судна на части для обеспечения прочности, для обеспечения остойчивости в неповрежденном виде и для разделения помещений.
4.2.97.1.62 transverse_floor
Вертикальный поперечный лист непосредственно над днищевой обшивкой корпуса, часто расположенный на каждом шпангоуте, идущий от скулы до скулы.
4.2.97.1.63 transverse_web_frame
Составной шпангоут для обеспечения дополнительной прочности, обычно состоящий из листа с фланцами или иным образом усиленный по краю, разнесенный на несколько шпаций, с меньшими обычными шпангоутами между ними.
4.2.97.1.64 upper_boom
Конструкция, расположенная на высоком уровне судна, предназначенная для погрузочно-разгрузочных работ и работающая совместно с нижней стрелой.
4.2.97.1.65 user_defined
Цель использования базовой конструкции определяется пользователем.
4.2.97.1.66 vertical_web_frame
Тип рамного шпангоута.
4.2.97.1.67 wall
Термин, хотя и не относится к судостроительной терминологии, применяется к любой из перегородок, которые используются для разделения внутренней части судна на различные отсеки.
4.2.97.1.68 wash_bulkhead
Продольная или поперечная негерметичная переборка, установленная в цистерне для уменьшения плескания жидкого содержимого при бортовой и килевой качке судна в море.
Примечание - Также называется отбойной переборкой.
4.2.97.1.69 weather_deck
Самая верхняя непрерывная палуба без верхнего защитного перекрытия.
4.2.97.1.70 web_frame
Составной шпангоут для обеспечения дополнительной прочности, обычно состоящий из листа с фланцами или иным образом усиленный по краю, разнесенный на несколько шпаций, с меньшими обычными шпангоутами между ними.
4.2.97.1.71 wing_bulkhead
Крайняя продольная переборка, формирующая границу бортовой цистерны (левой или правой).
4.2.97.2 Данные surface_shape
Данные surface_shape указывают базовое геометрическое определение объекта Ship_surface.
4.2.98 Прикладной объект Shiptype
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.126, а не 4.2.127.
Прикладной объект Shiptype является типом объекта Functional_definition (см. 4.2.39) и описывает функцию, назначение или задачу, для которой проектируется объект Ship (см. 4.2.88). Значением каждого прикладного объекта Shiptype является либо Carrier (см. 4.2.9), Navy_ship (см. 4.2.71), Research_ship (см. 4.2.82), либо Working_ship (см. 4.2.127).
Пример - Типы судов показаны на рисунках 45 и 46.
Рисунок 45 - Типы судов
Рисунок 46 - Типы судов
С объектом Shiptype связаны следующие данные:
- defined_for;
- description.
4.2.98.1 Данные defined_for
Данные defined_for указывают судно, для которого определен данный тип судна. Прикладное утверждение - см. 4.3.97.
4.2.98.2 Данные description
Данные description указывают дополнительную информацию о судне.
4.2.99 Прикладной объект Shipyard_designation
Прикладной объект Shipyard_designation является объектом типа General_characteristics_definition (см. 4.2.40), который указывает идентификацию, присвоенную судну судостроительной организацией.
С объектом Shipyard_designation связаны следующие данные:
- local_units;
- role;
- shipyard;
- shipyard_new_building_id;
- shipyard_project_name.
4.2.99.1 Данные local_units
Данные local_units определяют единицы, используемые определением и отличающиеся от единиц, глобально определенных для судна. Значением данных вида local_units может быть Derived_unit (см. 4.2.24) или Named_unit (см. 4.2.70). Для конкретного Shipyard_designation данные вида local_units могут быть не заданы. В одном объекте Shipyard_designation может быть задано несколько данных вида local_units. Прикладные утверждения - см. 4.3.98 и 4.3.99.
4.2.99.2 Данные role
Данные role указывают контрактное обязательство судостроительной верфи в отношении судна.
Значение данных вида role должно быть одним из следующих:
- prime;
- prime_build;
- prime_design;
- prime_repair;
- subcontractor.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеются в виду п.п. 4.2.99.2.1 - 4.2.99.2.5, а не 4.2.100.2.1 - 4.2.100.2.5 соответственно.
Примечание - Определение всех допустимых значений данных вида role дано в 4.2.100.2.1 - 4.2.100.2.5.
4.2.99.2.1 prime
Судостроительная верфь является генеральным подрядчиком на судно.
4.2.99.2.2 prime_build
Судостроительная верфь является генеральным подрядчиком на судно с договорной ответственностью за изготовление судна.
4.2.99.2.3 prime_design
Судостроительная верфь является генеральным подрядчиком на судно с договорной ответственностью за проектирование судна.
4.2.99.2.4 prime_repair
Судостроительная верфь является генеральным подрядчиком на судно с договорной ответственностью за ремонт судна.
4.2.99.2.5 subcontractor
Судостроительная верфь является субподрядчиком, нанимаемым генеральным подрядчиком, по судну.
4.2.99.3 Данные shipyard
Данные shipyard определяют наименование и детали организации судостроительной верфи.
4.2.99.4 Данные shipyard_new_building_id
Данные shipyard_new_building_id определяют идентификатор судна, присваиваемый верфью после подтверждения заказа. Для конкретного Shipyard_designation данные вида shipyard_new_building_id могут быть не заданы.
4.2.99.5 Данные shipyard_project_name
Данные shipyard_project_name определяют идентификатор судна, присваиваемый верфью при получении заказа или тендера на новое судно.
4.2.100 Прикладной объект Spacing_position
Прикладной объект Spacing_position указывает положение на одной из глобальных осей координат судна, используемое в качестве привязки для любого геометрического или конструктивного элемента, во время проектирования и изготовления судна. Значением каждого Each Spacing_position может быть Spacing_position_with_offset (см. 4.2.101), Longitudinal_position (см. 4.2.58), Transversal_position (см. 4.2.113) или Vertical_position (см. 4.2.122).
Пример - Интервальные положения обычно задаются элементом продольного набора 123 или поперечного набора 10, 100, 100.1, A. Кроме того, определяется расстояние до глобальной точки отсчета, например 154,5 м.
Примечание - Продольные, поперечные и вертикальные объекты Spacing_position показаны на рисунке 47.
Рисунок 47 - Интервальное положение
С объектом Spacing_position связаны следующие данные:
- name;
- position;
- position_number.
4.2.100.1 Данные name
Данные name задают подпись, используемую для идентификации нулевой точки. Для конкретного Spacing_position данные вида name могут быть не заданы.
4.2.100.2 Данные position
Данные position указывают расстояние до точки отсчета глобальной системы координат объекта Ship (см. 4.2.88). Ось, по которой измеряется это расстояние, зависит от типа объекта Spacing_position.
4.2.100.3 Данные position_number
Данные position_number указывают численную идентификацию, заданную для объекта Spacing_position.
4.2.101 Прикладной объект Spacing_position_with_offset
Прикладной объект Spacing_position_with_offset является типом объекта Spacing_position (см. 4.2.100), а именно указывает положение, определенное смещением относительно существующего интервального положения на одной из глобальных осей координат судна. Используется в качестве привязки для любого геометрического или конструктивного элемента во время проектирования и изготовления судна.
С объектом Spacing_position_with_offset связаны следующие данные:
- offset;
- position;
- relating_spacing_position.
4.2.101.1 Данные offset
Данные offset указывают расстояние до соответствующего интервального положения. Ось, по которой измеряется это расстояние, зависит от типа соответствующего объекта Spacing_position (см. 4.2.100).
4.2.101.2 Данные position
Данные position указывают расстояние до точки отсчета глобальной системы координат судна. Ось, по которой измеряется это расстояние, зависит от типа соответствующего объекта Spacing_position (см. 4.2.100).
4.2.101.3 Данные relating_spacing_position
Данные relating_spacing_position указывают интервальное положение, от которого берется смещение для идентификации Spacing_position_with_offset. Прикладное утверждение - см. 4.3.100.
4.2.102 Прикладной объект Spacing_table
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.113, а не 4.2.114.
Прикладной объект Spacing_table является типом объекта Definition (см. 4.2.23), представляющим набор объектов Spacing_position (см. 4.2.100), который определяет перечень нулевых точек по одной из осей координат судна. Значением каждого Spacing_table может быть Longitudinal_table (см. 4.2.59), Transversal_table (см. 4.2.114) или Buttock_table (см. 4.2.8).
С объектом Spacing_table связаны следующие данные:
- name;
- spacing_table_representations.
4.2.102.1 Данные name
Данные name указывают контекстно-зависимую идентификацию для объекта Spacing_table. Для конкретного Spacing_table данные вида name могут быть не заданы.
4.2.102.2 Данные spacing_table_representations
Данные spacing_table_representations указывают положения, из которых состоит таблица, на рассматриваемой оси координат. Прикладное утверждение - см. 4.3.101.
4.2.103 Прикладной объект Stability_definition
Прикладной объект Stability_definition является типом объекта Design_definition (см. 4.2.25), который определяет характеристики остойчивости для данного судна. Результаты указывают в табличной форме для различных условий нагружения, и они представляют собой плечи восстанавливающих моментов и центр величины для разных углов крена.
Примечание - Остойчивость поврежденного судна является отдельным случаем объекта Stability_definition.
С объектом Stability_definition связаны следующие данные:
- defined_for;
- representations.
4.2.103.1 Данные defined_for
Данные defined_for указывают объект Ship (см. 4.2.88), для которого определен объект Stability_definition. Прикладное утверждение - см. 4.3.102.
4.2.103.2 Данные representations
Данные representations указывают объект Stability_table (см. 4.2.106), который представлен объектом Stability_definition. Прикладное утверждение - см. 4.3.103.
4.2.104 Прикладной объект Stability_properties_for_one_floating_position
Прикладной объект Stability_properties_for_one_floating_position является набором данных, относящихся к расчетам остойчивости для конкретного Floating_position (см. 4.2.37) для объекта Ship_moulded_form (см. 4.2.93).
С объектом Stability_properties_for_one_floating_position связаны следующие данные:
- centre_of_gravity_above_keel;
- definition_of_starting_floating_position;
- related_stability_table;
- stability_properties_for_different_angles_of_heel.
4.2.104.1 Данные centre_of_gravity_above_keel
Данные centre_of_gravity_above_keel указывают размещение центра тяжести судна. Считается, что размещение центра тяжести судна не будет меняться в зависимости от угла крена. Координату X измеряют от кормового перпендикуляра, координату Y - от ДП, а координату Z - от ОП. Прикладное утверждение - см. 4.3.104.
4.2.104.2 Данные definition_of_starting_floating_position
Данные definition_of_starting_floating_position задают объект Floating_position (см. 4.2.37) судна для определенных условий нагружения, который используется в качестве начальной точки для расчетов характеристик остойчивости. К объекту Floating_position относятся осадка, крен, дифферент, а также соответствующий объем водоизмещения для объекта Ship (см. 4.2.88). Прикладное утверждение - см. 4.3.105.
4.2.104.3 Данные related_stability_table
Данные related_stability_table указывают объект Stability_table (см. 4.2.106), с которым связаны объекты Stability_properties_for_one_floating_position.
С объектом Stability_properties_for_one_floating_position может быть связано несколько данных вида related_stability_table. Прикладное утверждение - см. 4.3.108.
4.2.104.4 Данные stability_properties_for_different_angles_of_heel
Данные stability_properties_for_different_angles_of_heel указывают характеристику остойчивости, действительную для конкретного Stability_properties_for_one_floating_position. С объектом Stability_properties_for_one_floating_position может быть связано несколько данных вида stability_properties_for_different_angles_of_heel. Прикладное утверждение - см. 4.3.106.
4.2.105 Прикладной объект Stability_property
Прикладной объект Stability_property представляет собой необходимые характеристики для расчетов остойчивости для Ship_moulded_form (см. 4.2.93) при определенных условиях нагружения.
С объектом Stability_property связаны следующие данные:
- angle_of_heel;
- centre_of_buoyancy;
- righting_arm.
4.2.105.1 Данные angle_of_heel
Данные angle_of_heel указывают угол вращения судна вокруг оси X. Значения данных вида angle_of_heel будут положительными при движении правого борта судна вниз.
4.2.105.2 Данные centre_of_buoyancy
Данные centre_of_buoyancy указывают размещение центра объема погруженного объема объекта Ship_moulded_form (см. 4.2.93). Координату X измеряют от кормового перпендикуляра, координату Y - от ДП, а координату Z - от ОП. Прикладное утверждение - см. 4.3.107.
4.2.105.3 Данные righting_arm
Данные righting_arm указывают расстояние между линией перпендикуляра, проходящей через точку centre_of_gravity_above_keel, и линией перпендикуляра, проходящей через точку centre_of_buoyancy. Обе линии берутся ортогонально к ватерлинии при крене.
4.2.106 Прикладной объект Stability_table
Прикладной объект Stability_table представляет собой характеристику остойчивости для указанного судна в неповрежденном и поврежденном состояниях, в зависимости от определения остойчивости. Результаты указывают в табличной форме, и они представляют собой плечи восстанавливающих моментов и центр величины для разных углов крена для одного начального объекта Floating_position (см. 4.2.37).
Пример - Диаграмма остойчивости показана на рисунке 50.
С объектом Stability_table связаны следующие данные:
- items;
- mean_shell_thickness;
- name.
4.2.106.1 Данные items
Данные items указывают характеристику остойчивости, а именно плечо восстанавливающего момента и центр величины для угла крена для одного начального объекта Floating_position (см. 4.2.37), для которого определен объект Stability_table. В одном объекте Stability_table может быть задано несколько данных вида items. Прикладное утверждение - см. 4.3.108.
4.2.106.2 Данные mean_shell_thickness
Данные mean_shell_thickness указывают реальное значение средней толщины обшивки корпуса, которое может использоваться для определения соответствующей экстремальной формы для характеристик остойчивости для судна с учетом толщины.
4.2.106.3 Данные name
Данные name указывают определенное пользователем или системой имя для Stability_table.
4.2.107 Прикладной объект Station_table
Прикладной объект Station_table является типом Longitudinal_table (см. 4.2.59), у которого имеются положения, указывающие размещение теоретических шпангоутов, располагающихся на глобальной оси X.
Примечание - Теоретические шпангоуты используют при проектировании судна, а кривыми теоретических шпангоутов являются кривые поперечных сечений, проходящих через корпус судна. Обычно бывает 20 теоретических шпангоутов, однако это число может быть разным на различных судостроительных верфях.
4.2.108 Прикладной объект Subtraction_of_moulded_form
Прикладной объект Subtraction_of_moulded_form является типом объекта Displacement_operation (см. 4.2.26), определяющим тип данных displacement_operation, где водоизмещение объекта Ship_moulded_form (см. 4.2.93) будет уменьшено на водоизмещение нового объекта Moulded_form (см. 4.2.61).
4.2.109 Прикладной объект Surface_shape_representation
Прикладной объект Surface_shape_representation является типом объекта Moulded_form_shape_representation (см. 4.2.69), объединяющим топологическую и геометрическую информацию для описания поверхностной модели в виде связанных участков поверхности.
Пример - Surface_shape_representation показан на рисунке 48.
Рисунок 48 - Представление поверхности
С объектом Surface_shape_representation связаны следующие данные:
- items.
4.2.109.1 Данные items
Данные items указывают набор моделей поверхности на основе граней, составляющих объект Surface_shape_representation.
4.2.110 Прикладной объект Surface_with_identifier
Surface_with_identifier является геометрической поверхностью поверхностей любого типа, разрешенного в рамках представления Non_manifold_surface_shape_representation, как указано в ИСО 10303-508, дополнительно ограниченной включением постоянного глобального идентификатора, который обеспечивает уникальную идентификацию поверхности.
Примечание - Возможность постоянной глобальной уникальной идентификации поверхности способствует взаимодействию и повторному использованию данных между настоящим стандартом, ИСО 10303-215 и ИСО 10303-218. Принимающая система, которая сохранила поверхность с постоянным идентификатором из файла обмена, соответствующего настоящему стандарту, сможет определить, что поверхность является идентичной копией поверхности, полученной в отдельном файле обмена, соответствующем ИСО 10303-215 или ИСО 10303-218.
Данные, связанные с идентификатором Surface_with_identifier, приведены ниже:
- id.
4.2.110.1 Данные id
Данные id задают глобальный однозначный идентификатор поверхности. Прикладное условие - см. 4.3.109.
4.2.111 Прикладной объект Thruster_moulded_form_design_parameter
Прикладной объект Thruster_moulded_form_design_parameter является типом объекта Moulded_form_characteristics_definition (см. 4.2.63), содержащим размеры и отношения трубы подруливающего устройства и гребного винта.
С объектом Thruster_moulded_form_design_parameter связаны следующие данные:
- geometric_thruster_location;
- thruster_location;
- thruster_propeller_parameter;
- thruster_tunnel_diameter;
- thruster_tunnel_max_length;
- thruster_tunnel_min_length.
4.2.111.1 Данные geometric_thruster_location
Данные geometric_thruster_location указывают размещение осевой линии трубы подруливающего устройства. Координату X измеряют от кормового перпендикуляра, координату Y - от ДП, а координату Z - от ОП. Прикладное утверждение - см. 4.3.110.
4.2.111.2 Данные thruster_location
Данные thruster_location указывают, где располагается подруливающее устройство, в носу или в корме. Значение данных вида thruster_location должно быть одним из следующих:
- bow;
- stern.
Примечание - Определение каждого допустимого значения данных thruster_location - см. 4.2.111.2.1, 4.2.111.2.2.
4.2.111.2.1 bow
Размещение в носу корпуса судна.
4.2.111.2.2 stern
Размещение в корме корпуса судна.
4.2.111.3 Данные thruster_propeller_parameter
Данные thruster_propeller_parameter указывают размеры и отношения гребного винта в трубе подруливающего устройства. Прикладное утверждение - см. 4.3.111.
Пример - Гребной винт подруливающего устройства показан на рисунке 49.
Рисунок 49 - Гребной винт подруливающего устройства
4.2.111.4 Данные thruster_tunnel_diameter
Данные thruster_tunnel_diameter указывают диаметр трубы подруливающего устройства.
4.2.111.5 Данные thruster_tunnel_max_length
Данные thruster_tunnel_max_length указывают максимальную длину трубы подруливающего устройства там, где она пересекается с корпусом судна.
4.2.111.6 Данные thruster_tunnel_min_length
Данные thruster_tunnel_min_length указывают минимальную длину трубы подруливающего устройства там, где она пересекается с корпусом судна.
G - центр тяжести; B - центр величины в натуральном равновесном положении;
B1 - центр величины в зависимости от угла крена
Рисунок 50 - Диаграмма остойчивости
4.2.112 Прикладной объект Transversal_position
Прикладной объект Transversal_position является типом объекта Spacing_position (см. 4.2.100), который располагается на глобальной оси Y.
4.2.113 Прикладной объект Transversal_table
Прикладной объект Transversal_table является типом объекта Spacing_table (см. 4.2.102), имеющим положения вдоль поперечной оси глобальной системы координат, т.е. глобальной оси Y. Значением объекта Transversal_table может быть объект Buttock_table (см. 4.2.8).
С объектом Transversal_table связаны следующие данные:
- spacing_table_representations.
4.2.113.1 Данные spacing_table_representations
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.3.112, а не 4.3.111.
Данные spacing_table_representations указывают поперечное положение, для которого определяется объект Transversal_table. В одном объекте Transversal_table может быть задано несколько поперечных положений. Прикладное утверждение - см. 4.3.111.
4.2.114 Прикладной объект Universal_resource_locator
Прикладной объект Universal_resource_locator задает адрес электронного источника данных. Источником электронных данных является адрес в Интернете. Структура объекта Universal_resource_locator может точно отвечать спецификации идентификатора единообразного ресурса (URI), как описано в RFC 2396.
Пример - К данным вида Universal_resource_locator относится: http://www.w3.org
С объектом Universal_resource_locator связаны следующие данные:
- location.
4.2.114.1 Данные location
Данные вида location указывают место хранения, где в сети находится документ или другая информация.
Примечание - Такое местоположение, как правило, состоит из нескольких элементов, например тип протокола, машинный адрес (имя или номер интернетовского протокола), номер дополнительного порта и локальный путь. Возможны и другие элементы.
Пример 1 - Местоположением текстового документа является http://www.w3.org/Addressing/rfc1738.txt
Пример 2 - Местоположением табличного документа является ftp://ttp.atlantec-es.com/pub/out/AP218/post-ws/mapping status.xls
4.2.115 Прикладной объект Version_creation
Прикладной объект Version_creation является типом объекта Versionable_object_change_event (см. 4.2.122), представляющим событие, ведущее к новому объекту Definition (см. 4.2.23), Item_structure (см. 4.2.54) или Item_relationship (см. 4.2.53).
С объектом Version_creation связаны следующие данные:
- base;
- subject.
4.2.115.1 Данные base
Данные base указывают объект Versionable_object (см. 4.2.121), из которого берется субъект. Основание должно существовать в том случае, если объект, на который указывает атрибут субъекта, каким-то образом получен из существующего объекта. Основание может не быть непосредственно предшествующей версией объекта Versionable_object, указанной в атрибуте субъекта, но может ссылаться на любую предыдущую версию в истории версий этого объекта Item (см. 4.2.52) или на любой объект Versionable_object другого объекта Item, участвующий в создании субъекта. Для одного объекта Version_creation может быть задано несколько данных вида base. Прикладное утверждение - см. 4.3.113.
4.2.115.2 Данные subject
Данные subject указывают Versionable_object (см. 4.2.121), созданный событием изменения created by the change event. Прикладное утверждение - см. 4.3.113.
4.2.116 Прикладной объект Version_deletion
Прикладной объект Version_deletion является типом объекта Versionable_object_change_event (см. 4.2.121), который представляет собой событие, ведущее к удалению объекта Definition (см. 4.2.23), Item_structure (см. 4.2.54), или Item_relationship (см. 4.2.53).
С объектом Version_deletion связаны следующие данные:
- subject.
4.2.116.1 Данные subject
Данные subject указывают объект, который был удален или должен быть удален событием изменения. Прикладное утверждение - см. 4.3.114.
4.2.117 Прикладной объект Version_history
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.119, а не 4.2.120.
Прикладной объект Version_history идентифицирует объекты Versionable_object (см. 4.2.121) и их объекты Version_relationship (см. 4.2.120) в части их роли в качестве предшественника, преемника и относительно друг друга. Объектом Version_history должен быть направленный ациклический график.
Примечание - Следовательно, объект Version_history может содержать объекты Versionable_object, которые считаются альтернативными друг другу (Versionable_object с несколькими преемниками), а также объединенные объекты Versionable_object objects (объект Versionable_object с несколькими предшественниками).
С объектом Version_history связаны следующие данные:
- current_version;
- relationships;
- versions.
4.2.117.1 Данные current_version
Данные current_version задают объект Versionable_object (см. 4.2.121), играющий роль текущей версии в данном объекте Version_history. Прикладное утверждение - см. 4.3.116.
4.2.117.2 Данные relationships
Данные relationships указывают Version_relationship (см. 4.2.120), для которого определяется объект Version_history. В одном объекте Version_history может быть задано несколько объектов Version_relationship. Прикладное утверждение - см. 4.3.115.
4.2.117.3 Данные versions
Данные versions указывают Versionable_object (см. 4.2.121), для которого определяется объект Version_history. В одном объекте Version_history может быть задано несколько объектов Versionable_object. Прикладное утверждение - см. 4.3.116.
4.2.118 Прикладной объект Version_modification
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.2.117, а не 4.2.118.
Прикладной объект Version_modification является типом объекта Versionable_object_change_event (см. 4.2.122), представляющим событие, ведущее к изменению объекта Versionable_object (см. 4.2.121). Объект Versionable_object основания может не быть непосредственно предшествующей версией объекта Versionable_object субъекта, но может ссылаться на любую предыдущую версию в объекте Version_history (см. 4.2.118) или том же объекте Item (см. 4.2.52).
Пример - Типом объекта Version_modification может быть создание новой версии существующей сущности.
С объектом Version_modification связаны следующие данные:
- base;
- subject.
4.2.118.1 Данные base
Данные base указывают Versionable_object (см. 4.2.121), из которого берется субъект. В одном объекте Version_modification может быть несколько данных вида base. Прикладное утверждение - см. 4.3.117.
4.2.118.2 Данные subject
Данные subject задают объект Versionable_object (см. 4.2.121), который был изменен или должен быть изменен событием изменения. Прикладное утверждение - см. 4.3.117.
4.2.119 Прикладной объект Version_relationship
Прикладной объект Version_relationship определяет взаимосвязь двух объектов Versionable_object (см. 4.2.121) одного типа в части Version_history (см. 4.2.118).
С объектом Version_relationship связаны следующие данные:
- predecessor;
- reason;
- successor.
4.2.119.1 Данные predecessor
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.3.118, а не 4.3.116.
Данные predecessor указывают Versionable_object (см. 4.2.121), из которого берется преемник. Прикладное утверждение - см. 4.3.116.
4.2.119.2 Данные reason
Данные reason указывают, почему определенное лицо создало новую версию в определенное время.
4.2.119.3 Данные successor
Данные successor указывают Versionable_object (см. 4.2.120), чьим предшественником является предшествующая версия. Прикладное утверждение - см. 4.3.116.
4.2.120 Прикладной объект Versionable_object
Прикладной объект Versionable_object является объектом, для которого могут существовать версии. Значением каждого объекта Versionable_object является либо Definition (см. 4.2.23), Document (см. 4.2.27), Revision (см. 4.2.83), Item_relationship (см. 4.2.53), либо Item_structure (см. 4.2.54).
С объектом Versionable_object связаны следующие данные:
- description;
- version_id.
4.2.120.1 Данные description (описание)
Данные description указывают дополнительную информацию, идентифицирующую или описывающую объект. Для конкретного Versionable_object данные вида description могут быть не заданы.
4.2.120.2 Данные version_id
Данные version_id указывают идентификатор версии для Versionable_object.
4.2.121 Прикладной объект Versionable_object_change_event
Прикладной объект Versionable_object_change_event является типом объекта Event (см. 4.2.33), представляющим собой обобщение объектов Event, фактически меняющим объект Definition (см. 4.2.23), Item_structure (см. 4.2.54) или Item_relationship (см. 4.2.53). Значением прикладного объекта Versionable_object_change_event может быть Envisaged_version_creation (см. 4.2.32), Version_creation (см. 4.2.115), Version_deletion (см. 4.2.116) или Version_modification (см. 4.2.118).
4.2.122 Прикладной объект Vertical_position
Прикладной объект Vertical_position является типом объекта Spacing_position (см. 4.2.100), расположенным на глобальной оси Z.
4.2.123 Прикладной объект Vertical_table
Прикладной объект Vertical_table является типом объекта Spacing_table (см. 4.2.102), у которого имеются положения вдоль вертикальной оси глобальной системы координат, а именно глобальной оси Z. Значением прикладного объекта Vertical_table может быть Waterline_table (см. 4.2.124).
С объектом Vertical_table связаны следующие данные:
- spacing_table_representations.
4.2.123.1 Данные spacing_table_representations
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.3.119, а не 4.3.118.
Данные spacing_table_representations указывают вертикальные положения, входящие в таблицу вертикальных элементов. Прикладное утверждение - см. 4.3.118.
4.2.124 Прикладной объект Waterline_table
Прикладной объект Waterline_table является типом объекта Vertical_table (см. 4.2.123), чьи положения являются привязкой для размещения ватерлиний и расположены на глобальной оси Z.
4.2.125 Прикладной объект Wireframe_shape_representation
Прикладной объект Wireframe_shape_representation является типом объекта Moulded_form_shape_representation (см. 4.2.69), определяющим каркасное представление судна или части судна. Каркасное представление определяется перечнем объектов Ship_curve (см. 4.2.89). Большинство объектов Ship_curve проходит через весь каркас, от одного конца до другого.
Пример 1 - Типовой объект Wireframe_shape_representation можно сформировать с помощью перечня кривых теоретических шпангоутов и ватерлиний.
Пример 2 - Объект Wireframe_shape_representation показан на рисунке 51.
Рисунок 51 - Каркас
С объектом Wireframe_shape_representation связаны следующие данные:
- items.
4.2.125.1 Данные items
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 4.3.120, а не 4.3.119.
Данные items указывают перечень объектов Ship_curve (см. 4.2.89), которые образуют объект Wireframe_shape_representation. Прикладное представление - см. 4.3.119.
4.2.126 Прикладной объект Working_ship
Прикладной объект Working_ship является типом объекта Shiptype (см. 4.2.98), а именно судном, построенным для выполнения определенных задач.
С объектом Working_ship связаны следующие данные:
- has_type.
4.2.126.1 Данные has_type
Данные has_type указывают тип судна.
Значение данных вида has_type должно быть одним из следующих:
- crane_vessel;
- dredger;
- drilling_vessel;
- fire_fighter;
- fishing_vessel;
- floating_dock;
- floating_hotel;
- fpgo;
- fpso;
- ice_breaker;
- offshore_supply_vessel;
- oil_production_and_storage_vessel;
- oil_production_vessel;
- oil_storage_vessel;
- pilot_boat;
- pipe_laying_vessel;
- pusher;
- reefer;
- sealer;
- shuttle_tanker;
- stern_trawler;
- supply_vessel;
- tug;
- user_defined;
- well_stimulation_vessel.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеются в виду п.п. 4.2.126.1.1 - 4.2.126.1.25, а не 4.2.127.1.1 - 4.2.127.1.25 соответственно.
Примечание - Определение каждого допустимого значения данных вида has_type см. в 4.2.127.1.1 - 4.2.127.1.25.
4.2.126.1.1 crane_vessel
Объект Working_ship, построенный для грузоподъемных работ.
4.2.126.1.2 dredger
Объект Working_ship, построенный для углубления фарватеров или входов в гавань.
4.2.126.1.3 drilling vessel
Объект Working_ship, построенный для бурения.
4.2.126.1.4 fire_fighter
Объект Working_ship, построенный для пожаротушения.
4.2.126.1.5 fishing vessel
Объект Working_ship, построенный для рыболовства.
4.2.126.1.6 floating dock
Объект Working_ship, построенный для подъема судов для выполнения ремонтных работ.
4.2.126.1.7 floating hotel
Объект Working_ship, построенный для использования в качестве гостиницы.
4.2.126.1.8 fpgo
Плавучая платформа, используемая для добычи и хранения газа.
4.2.126.1.9 fpso
Плавучая платформа, используемая для добычи и хранения нефти.
4.2.126.1.10 ice_breaker
Объект Working_ship, построенный для ледокольных целей.
4.2.126.1.11 offshore_supply_vessel
Объект Working_ship, построенный для снабжения морских платформ.
4.2.126.1.12 oil_production_and_storage_vessel
Объект Working_ship, используемый для добычи и хранения нефти.
4.2.126.1.13 oil_production_vessel
Объект Working_ship, построенный для добычи нефти.
4.2.126.1.14 oil_storage_vessel
Объект Working_ship, построенный для хранения нефти.
4.2.126.1.15 pilot_boat
Объект Working_ship, предназначенный для перевозки лоцмана, который заводит и выводит судно в/из порта.
4.2.126.1.16 pipe_laying_vessel
Объект Working_ship, предназначенный для укладки труб.
4.2.126.1.17 pusher
Объект Working_ship, предназначенный для буксировки других несамоходных судов.
4.2.126.1.18 reefer
Объект Working_ship, разработанный для перевозки рефрижераторных грузов.
4.2.126.1.19 sealer
Объект Working_ship, построенный для промысла тюленей.
4.2.126.1.20 shuttle_tanker
Объект Working_ship, оборудованный для отгрузки нефти в море.
Примечание - Допускается использовать для транспортировки нефти с платформы на берег.
4.2.126.1.21 stern_trawler
Объект Working_ship, предназначенный для тралового лова в море с кормы судна.
4.2.126.1.22 supply_vessel
Объект Working_ship, построенный для транспортировки поставок.
Пример - К типу supply_vessel относится морское судно снабжения.
4.2.126.1.23 tug
Объект Working_ship, предназначенный для буксировки.
4.2.126.1.24 user_defined
Тип судна не относится ни к одному из предопределенных здесь типов.
Примечание - Детали приводятся в атрибуте описания объекта Shiptype (см. 4.2.99).
4.2.126.1.25 well_stimulation_vessel
Объект Working_ship, предназначенный для интенсификации притока к скважинам.
4.3 Прикладные утверждения
В настоящем подразделе определены прикладные утверждения для прикладного протокола теоретических обводов судна. Прикладные утверждения определяют отношения между прикладными объектами, количество элементов отношений и правила, необходимые для обеспечения целостности и достоверности прикладных объектов и функциональных единиц. Сами прикладные утверждения и их определения приведены ниже.
Примечание - Ниже приведены несколько утверждений, которые задают количество элементов, равное нулю, для отношения между подтипом объекта Definition и Derived_unit (или Named_unit). Это связано с тем, что атрибут local_units объекта Definition предопределен в подтипе как пустое множество.
4.3.1 Объекты Alternative_version_relationship и Versionable_object
Для каждого объекта Alternative_version_relationship имеются данные вида alternative_1, определяемые только одним объектом Versionable_object. Каждый объект Versionable_object определяет данные вида alternative_1 для нулевого, единичного или нескольких объектов Alternative_version_relationship.
Для каждого объекта Alternative_version_relationship имеются данные вида alternative_2, определяемые только одним объектом Versionable_object. Каждый Versionable_object определяет данные alternative_2 для нулевого, единичного или нескольких объектов Alternative_version_relationship.
4.3.2 Объекты Approval_history и Approval_event
Для каждого объекта Approval_history имеются данные вида approvals, определяемые последовательным списком одного или нескольких объектов Approval_event. Каждый Approval_event определяет данные approval_reference только одного объекта Approval_history.
4.3.3 Объекты Approval_history и Definition
Для каждого объекта имеются данные вида subject, определяемые только одним объектом Definition. Каждый Definition определяет данные subject для нулевого, единичного или нескольких объектов Approval_history.
4.3.4 Объекты Change_definition и Change
Для каждого объекта Change_definition имеются данные вида defined_for, определяемые одним или несколькими объектами Change objects. Каждый объект Change определяет данные вида defined_for для нулевого, единичного или нескольких объектов Change_definition.
4.3.5 Объекты Change_definition и Derived_unit
Для каждого объекта Change_definition имеются данные вида units, определяемые только нулевым объектом Derived_unit. Каждый объект Derived_unit определяет данные units только для нулевого объекта Change_definition.
Примечание - Это утверждение вводится путем выбора unit.
4.3.6 Объекты Change_definition и Named_unit
Для каждого объекта Change_definition имеются данные вида units, определяемые только нулевым объектом Named_unit. Каждый объект Named_unit определяет данные вида units только для нулевого объекта Change_definition.
Примечание - Это утверждение вводится путем выбора unit.
4.3.7 Объекты Change_impact и Versionable_object_change_event
Для каждого объекта Change_impact имеются данные вида impact, определяемые одним или несколькими объектами Versionable_object_change_event. Каждый Versionable_object_change_event определяет данные вида impact для нулевого, единичного или нескольких объектов Change_impact.
4.3.8 Объекты Change_plan и Change_impact
Для каждого объекта Change_plan имеются данные вида planned_impact, определяемые только одним объектом Change_impact. Каждый Change_impact определяет данные вида planned_impact для нулевого, единичного или нескольких объектов Change_plan.
4.3.9 Объекты Change_plan и Check
Для каждого объекта Change_plan имеются данные вида checks, определяемые нулевым, единичным или несколькими объектами Check objects. Каждый объект Check определяет данные checks для нулевого, единичного или нескольких объектов Change_plan.
4.3.10 Объекты Change_plan и Change_request
Для каждого объекта Change_plan имеются данные вида chosen_solution_for, определяемые только одним объектом Change_request. Каждый объект Change_request определяет данные chosen_solution_for для нулевого, единичного или нескольких объектов Change_plan.
4.3.11 Объекты Change_realization и Change_impact
Для каждого объекта Change_realization имеются данные вида impact, определяемые только одним объектом Change_impact. Каждый объект Change_impact определяет данные impact для нулевого, единичного или нескольких объектов Change_realization.
4.3.12 Объекты Change_realization и Check
Для каждого объекта Change_realization имеются данные вида checks, определяемые нулевым, единичным или несколькими объектами Check objects. Каждый объект Check определяет данные checks для нулевого, единичного или нескольких объектов Change_realization.
4.3.13 Объекты Change_realization и Change_plan
Для каждого объекта Change_realization имеются данные вида realization_of, определяемые только одним объектом Change_plan. Каждый объект Change_plan определяет данные realization_of для нулевого, единичного или нескольких объектов Change_realization.
4.3.14 Объекты Change_request и Change_impact
Для каждого объекта Change_request имеются данные вида solution_alternatives, определяемые нулевым, единичным или несколькими объектами Change_impact. Каждый объект Change_impact определяет данные solution_alternatives для нулевого, единичного или нескольких объектов Change_realization.
4.3.15 Объекты Class_and_statutory_designation и Class_notation
Для каждого Class_and_statutory_designation имеются данные вида the_class, определяемые только одним объектом Class_notation. Каждый объект Class_notation определяет данные the_class для нулевого, единичного или нескольких объектов Class_and_statutory_designation.
4.3.16 Объекты Class_and_statutory_designation и Named_unit
Для каждого объекта Change_definition имеются данные вида units, определяемые только нулевым объектом Named_unit. Каждый объект Named_unit определяет данные units только для нулевого объекта Class_and_statutory_designation.
Примечание - Это утверждение вводится путем выбора unit.
4.3.17 Объекты Class_and_statutory_designation и Derived_unit
Для каждого объекта Class_and_statutory_designation имеются данные вида units, определяемые только нулевым объектом Derived_unit. Каждый объект Derived_unit определяет данные units только для нулевого объекта Class_and_statutory_designation.
Примечание - Это утверждение вводится путем выбора unit.
4.3.18 Объекты Class_and_statutory_designation и Regulation
Для каждого объекта Class_and_statutory_designation имеются данные вида the_statutory, определяемые только одним объектом Regulation. Каждый объект Regulation определяет данные вида the_statutory для нулевого, единичного или нескольких объектов Class_and_statutory_designation.
4.3.19 Объекты Deck_moulded_form_design_parameter и Moulded_form
Для каждого объекта Deck_moulded_form_design_parameter имеются данные вида defined_for defined, определяемые одним или несколькими объектами Moulded_form. Каждый объект Moulded_form определяет данные вида defined_for для нулевого, единичного или нескольких объектов Deck_moulded_form_design_parameter.
4.3.20 Объекты Definable_object и Global_id
Для каждого объекта Definable_object имеются данные вида id, определяемые только одним объектом Global_id. Каждый объект Global_id определяет данные вида id для нулевого, единичного или нескольких объектов Definable_object.
4.3.21 Объекты Definition и Definable_object
Для каждого объекта Definition имеются данные вида defined_for, определяемые одним или несколькими объектами Definable_object. Каждый объект Definable_object указывает определения для нулевого, единичного или нескольких объектов Definition.
4.3.22 Объекты Definition и Derived_unit
Для каждого объекта Definition имеются данные вида units, определяемые нулевым, единичным или несколькими объектами Derived_unit. Каждый объект Derived_unit определяет данные вида units для нулевого, единичного или нескольких объектов Definition.
Примечание - Это утверждение вводится путем выбора unit.
4.3.23 Объекты Definition и Global_id
Для каждого объекта Definition имеются данные вида id, определяемые только одним объектом Global_id. Каждый объект Global_id определяет данные вида id для нулевого, единичного или нескольких объектов Definition.
4.3.24 Объекты Definition и Named_unit
Для каждого объекта Definition имеются данные вида units, определяемые нулевым, единичным или несколькими объектами Named_unit. Каждый объект Named_unit определяет данные вида units для нулевого, единичного или нескольких Definition.
Примечание - Это утверждение вводится путем выбора unit.
4.3.25 Объекты Displacement_operation и Moulded_form
Для каждого объекта Displacement_operation имеются данные вида displacement_of_moulded_form_to_add_or_subtract, определяемые только одним объектом Moulded_form. Каждый объект Moulded_form определяет данные вида displacement_of_moulded_form_to_add_or_subtract для нулевого, единичного или нескольких объектов Displacement_operation.
4.3.26 Объекты Document_portion и Document
Для каждого объекта Document_portion имеются данные вида source, определяемые только одним объектом Document. Каждый объект Document определяет источник для нулевого, единичного или нескольких объектов Document_portion.
4.3.27 Объекты Document_reference и Document
Для каждого объекта Document_reference имеются данные вида assigned_document, определяемые нулевым или единичным объектом Document. Каждый объект Document определяет данные вида assigned_document для нулевого, единичного или нескольких объектов Document_reference.
Примечание - Это утверждение вводится за счет выбора document_reference.
4.3.28 Объекты Document_reference и Document_portion
Для каждого объекта Document_reference имеются данные вида assigned_document, определяемые нулевым или единичным объектом Document_portion. Каждый объект Document_portion определяет данные вида assigned_document для нулевого, единичного или нескольких объектов Document_reference.
Примечание - Это утверждение вводится за счет выбора document_reference.
4.3.29 Объекты Envisaged_version_creation и Versionable_object
Для каждого объекта Envisaged_version_creation имеются данные вида base, определяемые нулевым, единичным или несколькими объектами Versionable_object. Каждый объект Versionable_object определяет данные вида base для нулевого, единичного или нескольких объектов Envisaged_version_creation.
4.3.30 Объекты External_instance_reference и Global_id
Для каждого объекта External_instance_reference имеются данные вида target_guid, определяемые только одним объектом Global_id. Каждый объект Global_id определяет данные вида target_guid для нулевого, единичного или нескольких объектов External_instance_reference.
4.3.31 Объекты External_reference и External_storage
Для каждого объекта External_reference имеются данные вида location, определяемые нулевым или единичным объектом External_storage. Каждый объект External_storage определяет местоположение нулевого, единичного или нескольких объектов External_reference.
Примечание - Это утверждение вводится за счет выбора any_address.
4.3.32 Объекты External_reference и Universal_resource_locator
Для каждого объекта External_reference имеются данные вида location, определяемые нулевым или единичным объектом Universal_resource_locator. Каждый объект Universal_resource_locator определяет местоположение нулевого, единичного или нескольких объектов External_reference.
Примечание - Это утверждение вводится за счет выбора any_address.
4.3.33 Объекты Functional_definition и Named_unit
Для каждого объекта Functional_definition имеются данные вида units, определяемые только нулевым объектом Named_unit. Каждый объект Named_unit определяет данные вида units только для нулевого объекта Functional_definition.
Примечание - Это утверждение вводится путем выбора значения unit.
4.3.34 Объекты Functional_definition и Derived_unit
Для каждого объекта Functional_definition имеются данные вида units, определяемые только нулевым объектом Derived_unit. Каждый объект Derived_unit определяет данные вида units только для нулевого объекта Functional_definition.
Примечание - Это утверждение вводится путем выбора значения unit.
4.3.35 Объекты General_characteristics_definition и Ship
Для каждого объекта General_characteristics_definition имеются данные вида defined_for, определяемые одним или несколькими объектами Ship. Каждый объект Ship определяет данные вида defined_for для нулевого, единичного или нескольких объектов General_characteristics_definition.
4.3.36 Объекты Hull_applicability и Definition
Для каждого объекта Hull_applicability имеются данные вида definitions_for_hulls, определяемые нулевым, единичным или несколькими объектами Definition. Каждый объект Definition определят данные вида definitions_for_hulls для нулевого, единичного или нескольких объектов Hull_applicability.
4.3.37 Объекты Hull_applicability и Item
Для каждого объекта Hull_applicability имеются данные вида items_for_hulls. Определяемые нулевым, единичным или несколькими объектами Item. Каждый объект Item определяет данные вида definitions_for_hulls для нулевого, единичного или нескольких объектов Hull_applicability.
4.3.38 Объекты Hull_moulded_form_design_parameter и Midship_tumble
Для каждого объекта Hull_moulded_form_design_parameter имеются данные вида midship_tumble_data, определяемые нулевым или единичным объектом Midship_tumble. Каждый объект Midship_tumble определяет данные вида midship_tumble_data для нулевого, единичного или нескольких объектов Hull_moulded_form_design_parameter.
4.3.39 Объекты Hydrostatic_definition и Displacement_operation
Для каждого объекта Hydrostatic_definition имеется последовательный список данных вида displacement_changes, определяемых нулевым, единичным или несколькими объектами Displacement_operation. Каждый объект Displacement_operation определяет данные вида displacement_changes для нулевого, единичного или нескольких объектов Hydrostatic_definition.
4.3.40 Объекты Hydrostatic_definition и Hydrostatic_table
Для каждого объекта Hydrostatic_definition имеются данные вида representations, определяемые одним или несколькими объектами Hydrostatic_table. Каждый объект Hydrostatic_table определяет данные вида representations для нулевого, единичного или нескольких объектов Hydrostatic_definition.
4.3.41 Объекты Hydrostatic_definition и Ship
Для каждого объекта Hydrostatic_definition имеются данные вида defined_for, определяемые одним или несколькими объектами Ship. Каждый объект Ship определяет данные вида defined_for для нулевого, единичного или нескольких объектов Hydrostatic_definition.
4.3.42 Объекты Hydrostatic_position_value и Centre_location
Для каждого объекта Hydrostatic_position_value имеются данные вида position, определяемые только одним объектом Centre_location. Каждый объект Centre_location определяет данные вида position для нулевого, единичного или нескольких объектов Hydrostatic_position_value.
4.3.43 Объекты Hydrostatic_properties_for_constant_floating_position и Floating_position
Для каждого объекта Hydrostatic_properties_for_constant_floating_position имеются данные вида definition_of_floating_position, определяемые только одним объектом Floating_position. Каждый объект Floating_position определяет данные вида definition_of_floating_position для нулевого, единичного или нескольких объектов Hydrostatic_properties_for_constant_floating_position.
4.3.44 Объекты Hydrostatic_properties_for_constant_floating_position и Hydrostatic_property_value
Для каждого объекта Hydrostatic_properties_for_constant_floating_position имеются данные вида hydrostatic_property_values, определяемые одним или несколькими объектами Hydrostatic_property_value. Каждый объект Hydrostatic_property_value определяет данные вида hydrostatic_property_values для нулевого, единичного или нескольких объектов Hydrostatic_properties_for_constant_floating_position.
4.3.45 Объекты Hydrostatic_property и Centre_location
Для каждого объекта Hydrostatic_property имеются данные вида property_measure, определяемые только одним объектом Centre_location. Каждый объект Centre_location определяет данные вида property_measure для нулевого, единичного или нескольких объектов Hydrostatic_property.
4.3.46 Объекты Hydrostatic_table и Hydrostatic_properties_for_constant_floating_position
Для каждого объекта Hydrostatic_table имеются данные вида items, определяемые одним или несколькими объектами Hydrostatic_properties_for_constant_floating_position. Каждый объект Hydrostatic_properties_for_constant_floating_position определяет данные вида related_hydrostatic_table для нулевого, единичного или нескольких объектов Hydrostatic_table.
4.3.47 Объекты Hydrostatic_table и Hydrostatic_property
Для каждого объекта Hydrostatic_table имеются данные вида properties_in_the_hydrostatic_table, определяемые одним или несколькими объектами Hydrostatic_property. Каждый объект Hydrostatic_property определяет данные вида properties_in_the_hydrostatic_table для нулевого, единичного или нескольких объектов Hydrostatic_table.
4.3.48 Объекты Item и External_reference
Для каждого объекта Item имеются данные вида documentation, определяемые нулевым, единичным или несколькими объектами External_reference. Каждый объект External_reference определяет данные вида documentation для нулевого, единичного или нескольких объектов Item.
4.3.49 Объекты Item и Ship
Для каждого объекта Item имеются данные вида ship_context, определяемые нулевым или одним объектом Ship. Каждый объект Ship определяет данные вида ship_items для нулевого, единичного или множественных объектов Item.
4.3.50 Объекты Item_relationship и External_instance_reference
Для каждого объекта Item_relationship имеются данные вида external_item_1, определяемые для нулевого или единичного объектов External_instance_reference. Каждый объект External_instance_reference определяет данные вида external_item_1 для нулевого, единичного или множественных объектов Item_relationship.
Для каждого объекта Item_relationship имеются данные вида external_item_2, определяемые для нулевого или единичного объекта External_instance_reference. Каждый объект External_instance_reference определяет данные вида external_item_2 для нулевого, единичного или множественных объектов Item_relationship.
4.3.51 Объекты Item_relationship и Item
Для каждого объекта Item_relationship имеются данные вида item_1, определяемые нулевым или единичным объектом Item. Каждый объект Item определяет данные вида item_1 для нулевого, единичного или множественных объектов Item_relationship.
Для каждого объекта Item_relationship имеются данные вида item_2, определяемые нулевым или единичным объектами Item. Каждый объект Item определяет данные вида item_2 для нулевого, единичного или множественных объектов Item_relationship.
4.3.52 Объекты Item_structure и External_instance_reference
Для каждого объекта Item_structure имеются данные вида external_items, определяемые нулевым, единичным или множественными объектами External_instance_reference. Каждый объект External_instance_reference определяет данные вида external_items для нулевого, единичного или множественных объектов Item_structure.
Для каждого объекта Item_structure имеются данные вида external_relationships, определяемые нулевым, единичным или множественными объектами External_instance_reference. Каждый объект External_instance_reference определяет данные вида external_relationships для нулевого, единичного или множественных объектов Item_structure.
4.3.53 Объекты Item_structure и Item
Для каждого объекта Item_structure имеются данные вида items, определяемые нулевыми, единичными или множественными объектами Item. Каждый объект Item определяет данные вида items для нулевого, единичного или множественных объектов Item_structure.
4.3.54 Объекты Item_structure и Item_relationship
Для каждого объекта Item_structure имеются данные вида relationships, определяемые нулевым, единичным или множественными объектами Item_relationship. Каждый объект Item_relationship определяет данные вида relationships для нулевого, единичного или множественных объектов Item_structure.
4.3.55 Объекты Knot и Ship_curve
Для каждого объекта Knot имеются данные вида intersecting_ship_curves, определяемые последовательным списком из двух или нескольких объектов Ship_curve. Каждый объект Ship_curve определяет данные вида intersecting_ship_curves для нулевого, единичного или множественных объектов Knot objects.
4.3.56 Объекты Local_co_ordinate_system и Global_axis_placement
Для каждого объекта Local_co_ordinate_system имеются данные вида parent, определяемые нулевыми и единичными объектами Global_axis_placement. Каждый объект Global_axis_placement определяет данные вида parent для нулевых, единичных или множественных объектов Local_co_ordinate_system.
Примечание - Это утверждение вводится путем выбора co_ordinate_system.
4.3.57 Объекты Local_co_ordinate_system и Local_co_ordinate_system
Для каждого объекта Local_co_ordinate_system имеются данные вида parent, определяемые нулевыми и единичными объектами Local_co_ordinate_system. Каждый объект Local_co_ordinate_system определяет данные вида parent для нулевых, единичных или множественных объектов Local_co_ordinate_system.
Примечание - Это утверждение вводится путем выбора co_ordinate_system.
4.3.58 Объекты Local_co_ordinate_system_with_position_reference и Spacing_position
Для каждого объекта Local_co_ordinate_system_with_position_reference имеются данные вида longitudinal_ref, определяемые только одним объектом Spacing_position. Каждый объект Spacing_position определяет данные вида longitudinal_ref для нулевых, единичных или множественных объектов Local_co_ordinate_system_with_position_reference.
Для каждого объекта Local_co_ordinate_system_with_position_reference имеются данные вида transversal_ref, определяемые только одним объектом Spacing_position. Каждый объект Spacing_position определяет данные вида transversal_ref для нулевых, единичных или множественных объектов Local_co_ordinate_system_with_position_reference.
Для каждого объекта Local_co_ordinate_system_with_position_reference имеются данные вида vertical_ref, определяемые только одним объектом Spacing_position. Каждый объект Spacing_position определяет данные вида transversal_ref для нулевых, единичных или множественных объектов Local_co_ordinate_system_with_position_reference.
Примечание - Это утверждение вводится путем выбора local_reference.
4.3.59 Объекты Longitudinal_table и Longitudinal_position
Для каждого объекта Longitudinal_table имеются данные вида spacing_table_representations, определяемые нулевым, единичным или множественными объектами Longitudinal_position. Каждый объект Longitudinal_position определяет данные вида spacing_table_representations для нулевого, единичного или множественных объектов Longitudinal_table.
4.3.60 Объекты Moulded_form_boundary_relationship и Moulded_form
Для каждого объекта Moulded_form_boundary_relationship имеются данные вида item_1, определяемые только одним объектом Moulded_form. Каждый объект Moulded_form определяет данные вида item_1 для нулевого, единичного или множественных объектов Moulded_form_boundary_relationship.
4.3.61 Объекты Moulded_form_boundary_relationship и Moulded_form
Для каждого объекта Moulded_form_boundary_relationship имеются данные вида item_2, определяемые только одним объектом Moulded_form. Каждый объект Moulded_form определяет данные вида item_2 для нулевого, единичного или множественных объектов Moulded_form_boundary_relationship.
4.3.62 Объекты Moulded_form_characteristics_definition и Moulded_form
Для каждого объекта Moulded_form_characteristics_definition имеются данные вида defined_for, определяемые одним или несколькими объектами Moulded_form. Каждый объект Moulded_form определяет данные вида defined_for для нулевого, единичного или множественных объектов Moulded_form_characteristics_definition.
4.3.63 Объекты Moulded_form_design_definition и Edge_based_wireframe_shape
Для каждого объекта Moulded_form_design_definition имеются данные вида moulded_surface, определяемые нулевыми или единичными объектами Edge_based_wireframe_shape. Каждый объект Edge_based_wireframe_shape определяет данные вида moulded_surface для нулевого, единичного или нескольких объектов Moulded_form_design_definition.
Примечание - Это утверждение вводится путем выбора surface_geometry и surface_representation.
Для каждого объекта Moulded_form_design_definition имеются данные вида representations, определяемые нулевым, единичным или множественными объектами Edge_based_wireframe_shape. Каждый объект Edge_based_wireframe_shape определяет данные вида representations для нулевого, единичного или нескольких объектов Moulded_form_design_definition.
Примечание - Это утверждение вводится путем выбора surface_representation.
4.3.64 Объекты Moulded_form_design_definition и Non_manifold_surface_shape
Для каждого объекта Moulded_form_design_definition имеются данные вида moulded_surface, определяемые нулевыми или единичными объектами Non_manifold_surface_shape. Каждый объект Non_manifold_surface_shape определяет данные вида moulded_surface для нулевого, единичного или нескольких объектов Moulded_form_design_definition.
Примечание - Это утверждение вводится путем выбора surface_geometry и surface_representation.
Для каждого объекта Moulded_form_design_definition имеются данные вида representations, определяемые нулевым, единичным или множественными объектами Moulded_form_design_definition. Каждый объект Moulded_form_design_definition определяет данные вида representations для нулевого, единичного или нескольких объектов Moulded_form_design_definition.
Примечание - Это утверждение вводится путем выбора surface_representation.
4.3.65 Объекты Moulded_form_design_definition и Moulded_form
Для каждого объекта Moulded_form_design_definition имеются данные вида defined_for, определяемые одним или несколькими объектами Moulded_form. Каждый объект Moulded_form определяет данные вида defined_for для нулевого, единичного или нескольких объектов Moulded_form_design_definition.
4.3.66 Объекты Moulded_form_design_definition и Moulded_form_boundary_relationship
Для каждого объекта Moulded_form_design_definition имеются данные вида borders, определяемые нулевыми, единичными или множественными объектами Moulded_form_boundary_relationship. Каждый объект Moulded_form_boundary_relationship определяет данные вида border для нулевого, единичного или нескольких объектов Moulded_form_design_definition.
Примечание - Это утверждение вводится путем выбора moulded_form_border.
4.3.67 Объекты Moulded_form_design_definition и Moulded_form_shape_representation
Для каждого объекта Moulded_form_design_definition имеются данные по теоретической поверхности, определяемые нулевыми или единичными объектами Moulded_form_shape_representation. Каждый объект Moulded_form_shape_representation определяет данные теоретической поверхности для нулевого, единичного или нескольких объектов Moulded_form_design_definition.
Примечание - Это утверждение вводится путем выбора surface_geometry.
4.3.68 Объекты Moulded_form_design_definition и Ship_curve
Для каждого объекта Moulded_form_design_definition имеются данные вида borders, определяемые нулевым, единичным или множественными объектами Ship_curve. Каждый объект Ship_curve определяет данные вида border для нулевого, единичного или нескольких объектов Moulded_form_design_definition.
Примечание - Это утверждение вводится путем выбора moulded_form_border.
4.3.69 Объекты Moulded_form_design_definition и Ship_surface
Для каждого объекта Moulded_form_design_definition имеются данные по теоретической поверхности нулевого или единичного объекта Ship_surface. Каждый объект Ship_surface представляет собой теоретическую поверхность для нулевого, единичного или нескольких объектов Moulded_form_design_definition.
Примечание - Это утверждение вводится путем выбора surface_geometry.
4.3.70 Объекты Moulded_form_design_definition и Spacing_position
Для каждого объекта Moulded_form_design_definition имеются данные вида borders, определяемые нулевым, единичным или множественными объектами Spacing_position. Каждый объект Spacing_position определяет данные вида border для нулевого, единичного или нескольких объектов Moulded_form_design_definition.
Примечание - Это утверждение вводится путем выбора moulded_form_border и planar_boundary.
4.3.71 Объекты Moulded_form_functional_definition и Moulded_form
Для каждого объекта Moulded_form_functional_definition имеются данные вида defined_for, определяемые одним или несколькими объектами Moulded_form. Каждый объект Moulded_form определяет данные вида defined_for для нулевого, единичного или нескольких объектов Moulded_form_functional_definition.
4.3.72 Объекты Moulded_form_relationship и Moulded_form
Для каждого объекта Moulded_form_relationship имеются данные вида item_1, определяемые только одним объектом Moulded_form. Каждый объект Moulded_form определяет данные вида item_1 для нулевого, единичного или множественных объектов Moulded_form_relationship.
Для каждого объекта Moulded_form_relationship имеются данные вида item_2, определяемые только одним объектом Moulded_form. Каждый объект Moulded_form определяет данные вида item_2 для нулевого, единичного или множественных объектов Moulded_form_relationship.
4.3.73 Объекты Moulded_form_representation_relationship и Moulded_form_shape_representation
Для каждого объекта Moulded_form_representation_relationship имеются данные вида rep_1, определяемые только одним объектом Moulded_form_shape_representation. Каждый объект Moulded_form_shape_representation определяет данные вида rep_1 для нулевого, единичного или множественных объектов Moulded_form_representation_relationship.
Для каждого объекта Moulded_form_representation_relationship имеются данные вида rep_2, определяемые только одним объектом Moulded_form_shape_representation. Каждый объект Moulded_form_shape_representation определяет данные вида rep_2 для нулевого, единичного или множественных объектов Moulded_form_representation_relationship.
4.3.74 Объекты Moulded_form_shape_representation и Symmetry
Для каждого объекта Moulded_form_shape_representation имеются данные вида moulded_form_symmetry, определяемые нулевыми или единичными объектами Symmetry objects. Каждый объект Symmetry определяет данные вида moulded_form_symmetry для нулевого, единичного или множественных объектов Moulded_form_shape_representation.
4.3.75 Объекты Offset_point_table_model и Section_of_offset_point_table
Для каждого объекта Offset_point_table_model имеются данные вида offset_point_table_sections, определяемые одним или несколькими объектами Section_of_offset_point_table. Каждый объект Section_of_offset_point_table определяет данные вида for_table для одного или нескольких объектов Offset_point_table_model.
4.3.76 Объекты Offset_table_shape_representation и Offset_point_table_model
Для каждого объекта Offset_table_shape_representation имеются данные вида items, определяемые одним или несколькими объектами Offset_point_table_model. Каждый объект Offset_point_table_model определяет данные вида items для нулевого, единичного или нескольких объектов Offset_table_shape_representation.
4.3.77 Объекты Owner_designation и Derived_unit
Для каждого объекта Owner_designation имеются данные вида units, определяемые только нулевым объектом Derived_unit. Каждый объект Derived_unit определяет данные вида units только для нулевого объекта Owner_designation.
Примечание - Это утверждение вводится путем выбора unit.
4.3.78 Объекты Owner_designation и Named_unit
Для каждого объекта Change_definition имеются данные вида units, определяемые только нулевым объектом Named_unit. Каждый объект Named_unit определяет данные вида units только для нулевого объекта Owner_designation.
Примечание - Это утверждение вводится путем выбора unit.
4.3.79 Объекты Propeller_location и Centre_location
Для каждого объекта Propeller_location имеются данные вида propeller_location, определяемые только одним объектом Centre_location. Каждый объект Centre_location определяет данные вида propeller_location для нулевого, единичного или множественных объектов Propeller_location.
Для каждого объекта Propeller_location имеются данные вида shaft_line_location, определяемые только одним объектом Centre_location. Каждый объект Centre_location определяет данные вида shaft_line_location для нулевого, единичного или множественных объектов Propeller_location.
4.3.80 Объекты Propeller_moulded_form_design_parameter и Propeller_location
Для каждого объекта Propeller_moulded_form_design_parameter имеются данные вида location_of_the_propeller_at_the_ship_hull, определяемые нулевым или единичным объектом Propeller_location. Каждый объект Propeller_location определяет данные вида location_of_the_propeller_at_the_ship_hull для нулевого, единичного или множественных объектов Propeller_moulded_form_design_parameter.
4.3.81 Regulation to External_reference
Для каждого объекта Regulation имеются данные вида international_regulations, определяемые нулевым, единичным или множественными объектами External_reference. Каждый объект External_reference определяет данные вида international_regulations для нулевого, единичного или множественных объектов Regulation.
Для каждого объекта Regulation имеются данные вида national_regulations, определяемые нулевым, единичным или множественными объектами External_reference. Каждый объект External_reference определяет данные вида national_regulations для нулевого, единичного или множественных объектов Regulation.
Для каждого объекта Regulation имеются данные вида standards, определяемые нулевым, единичным или множественными объектами External_reference. Каждый объект External_reference определяет данные вида standards для нулевого, единичного или множественных объектов Regulation.
4.3.82 Объекты Revision и Versionable_object
Для каждого объекта Revision имеются данные вида members, определяемые одним или несколькими объектами Versionable_object. Каждый Versionable_object определяет данные вида Versionable_object для нулевого, единичного или нескольких объектов Revision.
4.3.83 Объекты Revision_with_context и Definable_object
Для каждого объекта Revision_with_context имеются данные вида context_of_revision, определяемые только одним объектом Definable_object. Каждый Definable_object определяет данные вида impact для нулевого, единичного или нескольких объектов Revision_with_context.
4.3.84 Объекты Rudder_moulded_form_design_parameter и Centre_location
Для каждого объекта Rudder_moulded_form_design_parameter имеются данные вида rudder_location, определяемые только одним объектом Centre_location. Каждый объект Centre_location определяет данные вида rudder_location для нулевого, единичного или нескольких объектов Rudder_moulded_form_design_parameter.
4.3.85 Объекты Section_of_offset_point_table и Ship_point
Для каждого объекта Section_of_offset_point_table имеются данные вида section_points, определяемые последовательным списком одного или нескольких объектов Ship_point. Каждый объект Ship_point определяет данные вида section_points для нулевого, единичного или нескольких объектов Section_of_offset_point_table.
4.3.86 Объекты Ship и Derived_unit
Для каждого объекта Ship имеются данные вида units, определяемые нулевым, единичным или несколькими объектами Derived_unit. Каждый Derived_unit определяет данные вида units для нулевого, единичного или нескольких объектов Ship.
Примечание - Это утверждение вводится путем выбора unit.
4.3.87 Объекты Ship и Named_unit
Для каждого объекта Ship имеются данные вида units, определяемые нулевым, единичным или несколькими объектами Named_unit. Каждый Named_unit определяет данные вида units для нулевого, единичного или нескольких объектов Ship.
Примечание - Это утверждение вводится путем выбора unit.
4.3.88 Объекты Ship_curve_segment и Ship_curve
Для каждого объекта Ship_curve_segment имеются данные вида part_of_ship_curve, определяемые только одним объектом Ship_curve. Каждый объект Ship_curve определяет данные вида part_of_ship_curve для нулевого, единичного или нескольких объектов Ship_curve_segment.
4.3.89 Объекты Ship_curve_with_spacing_position и Spacing_position
Для каждого объекта Ship_curve_with_spacing_position имеются данные вида location, определяемые только одним объектом Spacing_position. Каждый объект Spacing_position определяет данные вида location для нулевого, единичного или нескольких объектов Ship_curve_with_spacing_position.
4.3.90 Объекты Ship_designation и Named_unit
Для каждого объекта Ship_designation имеются данные вида units, определяемые только нулевым объектом Named_unit. Каждый объект Named_unit определяет данные вида units только для нулевого объекта Ship_designation.
Примечание - Это утверждение вводится путем выбора unit.
4.3.91 Объекты Ship_designation и Derived_unit
Для каждого объекта Ship_designation имеются данные вида units, определяемые только нулевым объектом Derived_unit. Каждый объект Derived_unit определяет данные вида units только для нулевого объекта Ship_designation.
Примечание - Это утверждение вводится путем выбора unit.
4.3.92 Объекты Ship_moulded_form и Moulded_form
Для каждого объекта Ship_moulded_form есть данные вида items, определяемые одним или несколькими объектами Moulded_form. Каждый объект Moulded_form определяет данные вида items для нулевого, единичного или нескольких объектов Ship_moulded_form.
4.3.93 Объекты Ship_moulded_form и Moulded_form_relationship
Для каждого объекта Ship_moulded_form имеются данные вида relationships, определяемые нулевым, единичным или множественными объектами Moulded_form_relationship. Каждый объект Moulded_form_relationship определяет данные вида relationships для нулевого, единичного или множественных объектов Ship_moulded_form.
4.3.94 Объекты Ship_moulded_form_revision и Moulded_form_design_definition
Для каждого объекта Ship_moulded_form_revision имеются данные вида members, определяемые одним или несколькими объектами Moulded_form_design_definition. Каждый объект Moulded_form_design_definition представляет собой элемент для нулевого, единичного или нескольких объектов Ship_moulded_form_revision.
4.3.95 Объекты Ship_moulded_form_revision и Ship_moulded_form
Для каждого объекта Ship_moulded_form_revision имеются данные вида context_of_revision, определяемые только одним объектом Ship_moulded_form. Каждый объект Ship_moulded_form определяет данные вида context_of_revision для нулевого, единичного или нескольких объектов Ship_moulded_form_revision.
4.3.96 Объекты Ship_overall_dimensions и Ship
Для каждого объекта Ship_overall_dimensions имеются данные вида defined_for, определяемые одним или несколькими объектами Ship. Каждый объект Ship определяет данные вида defined_for для нулевого, единичного или нескольких объектов Ship_overall_dimensions.
4.3.97 Объекты Shiptype и Ship
Для каждого объекта Shiptype имеются данные вида defined_for, определяемые одним или несколькими объектами Ship. Каждый объект Ship определяет данные вида defined_for для нулевого, единичного или нескольких объектов Shiptype.
4.3.98 Объекты Shipyard_designation и Named_unit
Для каждого объекта Shipyard_designation имеются данные вида units, определяемые только нулевым объектом Named_unit. Каждый объект Named_unit определяет данные вида units только для нулевого объекта Shipyard_designation.
Примечание - Это утверждение вводится путем выбора unit.
4.3.99 Объекты Shipyard_designation и Derived_unit
Для каждого объекта Shipyard_designation имеются данные вида units, определяемые только нулевым объектом Derived_unit. Каждый объект Derived_unit определяет данные вида units только для нулевого объекта Shipyard_designation.
Примечание - Это утверждение вводится путем выбора unit.
4.3.100 Объекты Spacing_position_with_offset и Spacing_position
Для каждого объекта Spacing_position_with_offset имеются данные вида relating_spacing_position, определяемые только одним объектом Spacing_position. Каждый объект Spacing_position определяет данные вида relating_spacing_position для нулевого, единичного или нескольких объектов Spacing_position_with_offset.
4.3.101 Объекты Spacing_table и Spacing_position
Для каждого объекта Spacing_table имеются данные вида spacing_table_representations, определяемые нулевым или множественными объектами Spacing_position. Каждый объект Spacing_position определяет данные вида spacing_table_representations нулевым, единичным или множественными объектами Spacing_table.
4.3.102 Объекты Stability_definition и Ship
Для каждого объекта Stability_definition имеются данные вида defined_for, определяемые одним или несколькими объектами Ship. Каждый объект Ship определяет данные вида defined_for для нулевого, единичного или нескольких объектов Stability_definition.
4.3.103 Объекты Stability_definition и Stability_table
Для каждого объекта Stability_definition имеются данные вида representations, определяемые одним или несколькими объектами Stability_table. Каждый объект Stability_table определяет данные вида representations для нулевого, единичного или нескольких объектов Stability_definition.
4.3.104 Объекты Stability_properties_for_one_floating_position и Centre_location
Для каждого объекта Stability_properties_for_one_floating_position имеются данные вида centre_of_gravity_above_keel, определяемые только одним объектом Centre_location. Каждый объект Centre_location определяет данные вида centre_of_gravity_above_keel для нулевого, единичного или множественных объектов Stability_properties_for_one_floating_position.
4.3.105 Объекты Stability_properties_for_one_floating_position и Floating_position
Для каждого объекта Stability_properties_for_one_floating_position имеются данные вида definition_of_starting_floating_position, определяемые только одним объектом Floating_position. Каждый объект Floating_position определяет данные вида definition_of_starting_floating_position для нулевого, единичного или множественных объектов Stability_properties_for_one_floating_position.
4.3.106 Объекты Stability_properties_for_one_floating_position и Stability_property
Для каждого объекта Stability_properties_for_one_floating_position имеются данные вида stability_properties_for_different_angles_of_heel, определяемые одним или несколькими объектами Stability_property. Каждый объект Stability_property определяет данные вида stability_properties_for_different_angles_of_heel для нулевого, единичного или множественных объектов Stability_properties_for_one_floating_position.
4.3.107 Объекты Stability_property и Centre_location
Для каждого объекта Stability_property имеются данные вида centre_of_buoyancy, определяемые только одним объектом Centre_location. Каждый объект Centre_location определяет данные вида centre_of_buoyancy для нулевого, единичного или множественных объектов Stability_property.
4.3.108 Объекты Stability_table и Stability_properties_for_one_floating_position
Для каждого объекта Stability_table имеются данные вида items, определяемые одним или несколькими объектами Stability_properties_for_one_floating_position. Каждый объект Stability_properties_for_one_floating_position определяет последовательный список данных related_stability_table для одного или нескольких объектов Stability_table.
4.3.109 Объект Surface_with_identifier в Global_id
Для каждого идентификатора Surface_with_identifier есть id, определяемый точно одним глобальным идентификатором Global_id. Каждый Global_id определяет id для нулевого, одного или нескольких объектов Surface_with_identifier.
4.3.110 Объекты Thruster_moulded_form_design_parameter и Centre_location
Для каждого объекта Thruster_moulded_form_design_parameter имеются данные вида geometric_thruster_location, определяемые только одним объектом Centre_location. Каждый объект Centre_location определяет данные вида geometric_thruster_location для нулевого, единичного или множественных объектов Thruster_moulded_form_design_parameter.
4.3.111 Объекты Thruster_moulded_form_design_parameter и Propeller_moulded_form_design_parameter
Для каждого объекта Thruster_moulded_form_design_parameter имеются данные вида thruster_propeller_parameter, определяемые только одним объектом Propeller_moulded_form_design_parameter. Каждый объект Propeller_moulded_form_design_parameter определяет данные вида thruster_propeller_parameter для нулевого, единичного или множественных объектов Thruster_moulded_form_design_parameter.
4.3.112 Объекты Transversal_table и Transversal_position
Для каждого объекта Transversal_table имеются данные вида spacing_table_representations, определяемые нулевым, единичным или множественными объектами Transversal_position. Каждый объект Transversal_position определяет данные вида spacing_table_representations для нулевого, единичного или множественного объектов Transversal_table.
4.3.113 Объекты Version_creation и Versionable_object
Для каждого объекта Version_creation имеются данные вида base, определяемые нулевым, единичным или несколькими объектами Versionable_object. Каждый Versionable_object определяет данные вида base для нулевого, единичного или нескольких объектов Version_creation.
Для каждого объекта Version_creation имеются данные вида subject, определяемые только одним объектом Versionable_object. Каждый Versionable_object определяет данные вида base для нулевого, единичного или нескольких объектов Version_creation.
4.3.114 Объекты Version_deletion и Versionable_object
Для каждого объекта Version_deletion имеются данные вида subject, определяемые только одним объектом Versionable_object. Каждый Versionable_object определяет данные вида subject для нулевого, единичного или нескольких объектов Version_deletion.
4.3.115 Объекты Version_history и Version_relationship
Для каждого объекта Version_history имеются данные вида relationships, определяемые нулевым, единичным или несколькими объектами Versionable_relationship. Каждый Versionable_relationship определяет данные вида relationships для нулевого, единичного или нескольких объектов Version_history.
4.3.116 Объекты Version_history и Versionable_object
Для каждого объекта Version_history имеются данные вида versions, определяемые одним или несколькими объектами Versionable_object. Каждый Versionable_object определяет данные вида versions для нулевого, единичного или нескольких объектов Version_history.
Для каждого объекта Version_history имеются данные вида current_version, определяемые только одним объектом Versionable_object. Каждый Versionable_object определяет данные вида current_version для нулевого, единичного или нескольких объектов Version_history.
4.3.117 Объекты Version_modification и Versionable_object
Для каждого объекта Version_modification имеются данные вида base, определяемые одним или несколькими объектами Versionable_object. Каждый Versionable_object определяет данные вида base для нулевого, единичного или нескольких объектов Version_modification.
Для каждого объекта Version_modification имеются данные вида subject, определяемые только одним объектом Versionable_object. Каждый Versionable_object определяет данные вида subject для нулевого, единичного или нескольких объектов Version_modification.
4.3.118 Объекты Version_relationship и Versionable_object
Для каждого объекта Version_relationship имеются данные вида predecessor, определяемые только одним объектом Versionable_object. Каждый Versionable_object определяет данные вида predecessor для нулевого, единичного или нескольких объектов Version_relationship.
Для каждого объекта Version_relationship имеются данные вида successor, определяемые только одним объектом Versionable_object. Каждый Versionable_object определяет данные вида successor для нулевого, единичного или нескольких объектов Version_relationship.
4.3.119 Объекты Vertical_table и Vertical_position
Для каждого объекта Vertical_table имеются данные вида spacing_table_representations, определяемые нулевым, единичным или множественными объектами Vertical_position. Каждый объект Vertical_position определяет данные вида spacing_table_representations нулевым, единичным или множественными объектами Vertical_table.
4.3.120 Объекты Wireframe_shape_representation и Ship_curve
Для каждого объекта Wireframe_shape_representation имеются данные вида items, определяемые одним или несколькими объектами Ship_curve. Каждый объект Ship_curve определяет данные вида items для нулевого, единичного или множественных объектов Wireframe_shape_representation.
5 Прикладная интерпретированная модель
5.1 Спецификация отображения
Данный раздел содержит спецификацию отображения, показывающую, как каждая функциональная единица и прикладной объект настоящего стандарта (см. раздел 4) отображается в одну или несколько структур ПИМ (см. приложение A). В каждом отображении указано до пяти элементов.
Прикладной элемент: Отображение каждого прикладного элемента указано в отдельном подпункте ниже. Наименования прикладных объектов выделены заглавными буквами. Наименования атрибутов и утверждения приведены после прикладного объекта, к которому они принадлежат, строчными буквами.
Элемент ПИМ: Наименование одного или нескольких типов данных объектов ПИМ, приведенных в приложении A, термин "IDENTICAL MAPPING" (ИДЕНТИЧНОЕ ОТОБРАЖЕНИЕ) или термин "PATH" (ПУТЬ). Наименования типов данных объектов ПИМ приведены строчным буквами. Атрибуты типов данных объектов ПИМ указывают как <entity name>.<attribute name>. Отображение прикладного элемента может быть выражено несколькими элементами ПИМ. Каждый из этих элементов ПИМ представлен в спецификации отображения отдельной строкой. Термин "IDENTICAL MAPPING" указывает, что оба прикладных элемента, участвующие в прикладном утверждении, отображаются в тот же самый экземпляр типа данных объекта ПИМ. Термин "PATH" указывает, что прикладное утверждение отображается в набор соответствующих элементов объекта ПИМ, заданный полным ссылочным путем.
Источник: Для элементов ПИМ, интерпретируемых из любого общего ресурса, в этой графе указывается обозначение стандарта ИСО и части, в которой определен этот ресурс. Для элементов ПИМ, введенных в настоящий стандарт, это обозначение будет "ИСО 10303", после которого указывается обозначение настоящей части.
Правила: Здесь могут быть приведены одно или несколько глобальных правил, применяемых к множеству типов данных объектов ПИМ, заданных в виде элемента ПИМ или в ссылочном пути. Для правил, полученных из отношений между прикладными объектами, то же правило определяет вхождения отображений для всех элементов ПИМ, используемых в правиле. К ссылке на глобальное правило может быть добавлена ссылка на подпункт, в котором определено данное правило.
Ссылочный путь: Чтобы полностью описать отображение прикладного объекта, может потребоваться определение ссылочного пути через несколько связанных элементов ПИМ. В каждой строке ссылочного пути указывается роль элемента ПИМ относительно элемента ПИМ, приведенного в следующей строке. Два или более таких связанных элемента ПИМ определяют интерпретацию интегрированных ресурсов, удовлетворяющих требованиям, заданным этим прикладным объектом.
Для каждого элемента ПИМ, введенного для использования в данной части настоящего стандарта, определяется ссылочный путь к его супертипу от интегрированного источника. Для записи ссылочных путей и отношений между элементами ПИМ используют следующие условные обозначения:
[ ] заключенная в скобки секция ограничивает разнородные элементы ПИМ или секции ссылочного пути с целью выполнения информационного требования;
( ) заключенная в скобки секция ограничивает разнородные элементы ПИМ или секции ссылочного пути, обозначаемые как альтернативные в пределах данного отображения, с целью выполнения информационного требования;
{ } заключенная в фигурные скобки секция ограничивает ссылочный путь с целью выполнения информационного требования;
< > заключенная в скобки секция ограничивает один или несколько ссылочных путей;
| | заключенная в скобки секция ограничивает объект супертипа;
-> атрибут ссылается на объект или выбранный тип данных, указанный в следующей строке;
<- ссылка атрибута на объект или выбранный тип данных приведена в следующей строке;
[i] атрибут представлен агрегированным типом, единственный член которого указан в следующей строке;
[n] атрибут представлен агрегированным типом, член n которого указан в следующей строке;
=> объект является супертипом объекта, указанного в следующей строке;
<= объект является подтипом объекта, указанного в следующей строке;
= для ограничения выбора или значения используют данные следующих типов: строкового (string), выбранного (select) или перечисления (enumeration);
\ запись ссылочного пути продолжается на следующей строке;
* используется совместно со скобками, чтобы указать, что любое количество типов отношений данных объектов может быть собрано в структуру древа отношений;
// заключенная в скобки секция является приложением одного из шаблонов отображения, определенных в 5.1.1 ниже;
-- следующий текст является комментарием (обычно ссылка на пункт).
Ключевые отображения для данной части настоящего стандарта представлены в таблице 1.
Таблица 1
Ключевые отображения для AP216
Ключевые объекты ПЭМ AP216
Отображение в объектах части 40
Shiptype
product_related_product_category
Ship
product
Ship_moulded_form
Moulded_form
Principal_characteristics
Class_and_statutory_designation
Class_parameters
Ship_designation
Shipyard_designation
Owner_designation
Global_axis_placement
product_definition
Moulded_form_relationship
product_definition_relationship
Moulded_form_functional_definition
Class_notation
Regulation
Displacement_operation
Hydrostatic_definition
Stability_definition
Moulded_form_characteristics
Definition (and Subtypes)
Local_co_ordinate_system
Local_co_ordinate_system_with_position_reference
Spacing_table
property_definition
Moulded_form_design_definition
product_definition_shape
Wireframe_shape_representation
shape_representation
Surface_shape_representation
non_manifold_surface_shape_representation
Hydrostatic_table
Stability_table
Midship_tumble
Propeller_location
representation
Offset_table_shape_representation
shape_representation
Hydrostatic_property
Hydrostatic_property_for_constant_floating_position
Floating_position
Stability_properties_for_one_floating_position
Stability_property
Offset_point_table_model
Section_of_offset_point_table
Ship_point
Ship_curve
Ship_surface
Spacing_position
compound_representation_item
Для определения шаблонов отображения используются следующие сокращения:
ACT - action;
ASSGN - assignment;
CART - cartesian;
CAT - category;
CD - context_dependent;
DEF - definition;
DESC - description;
DO - definable_object;
DOC - document;
EXT - external;
FUNC - function;
GEO - geometry;
INST - instance;
ORG - organization;
PD - product_definition;
PDCD - product_definition to characterized_definition;
PDR - product_definition_representation;
PERS - person;
PROD - product;
PROP - property;
REF - reference;
REL - relationship;
REP - representation;
SA - shape_aspect;
SAR - shape_aspect_relationship;
SDR - shape_definition_representation;
SRC - source;
VAL - value;
VO - versionable_object.
5.1.1 Шаблоны отображения
Данная спецификация отображения включает шаблоны отображения. Шаблон отображения - это повторно используемая часть ссылочного пути, которая определяет часто используемую часть структуры прикладной интерпретируемой модели. Шаблон отображения похож на макрос языка программирования.
В данном подпункте определены шаблоны отображения, используемые в этой части настоящего стандарта. Каждое определение шаблона отображения состоит из трех компонентов:
- сигнатура шаблона, указывающая имя шаблона; может также указывать имена и порядок формальных параметров шаблона;
- описания формальных параметров шаблона, если есть;
- тело шаблона, которое определяет многократно используемую часть ссылочного пути и может указывать путем использования имен формальных параметров, включенных в сигнатуру шаблона, точки, в которые доставляются параметры, передаваемые по значению, в каждом приложении шаблона.
Каждый шаблон отображения используется в ссылочных путях, указанных в 5.1.2 - 5.1.16 как минимум один раз. Каждый такой прикладной шаблон является ссылкой на определение шаблона на основе образа, установленного сигнатурой шаблона, и доставляет параметры, передаваемые по значению, которые должны быть заменены формальными параметрами, указанными в определении шаблона. Полный ссылочный путь можно получить, заменив любые формальные параметры в теле шаблона параметрами, передаваемыми по значению, указанными в прикладном шаблоне, а затем заменив заполненное тело шаблона приложением шаблона.
Непустые символы, следующие за первым знаком "/", определяют имя шаблона отображения. Имя шаблона отображения указывается заглавными буквами. За именем шаблона следует список параметров, передаваемых по значению, отделенных запятыми и заключенных в круглые скобки. Значения параметров задаются строчными буквами, за исключением случая, когда параметр, передаваемый по значению, является строковым литералом, включающим символы верхнего регистра.
В определениях и приложениях шаблонов применяются следующие условные обозначения:
/ отмечает начало и конец сигнатуры шаблона или приложения шаблона;
& присоединяет имя формального параметра в определении тела шаблона;
( ) заключают в себя формальные параметры в сигнатуре шаблона или параметры, передаваемые по значению, в приложении шаблона;
, отделяет формальные параметры в сигнатуре шаблона или параметры, передаваемые по значению, в приложении шаблона;
' ' обозначает строковый литерал, который используется в качестве параметра, передаваемого по значению, в приложении шаблона.
Параметры, передаваемые по значению, не заключенные в кавычки, являются идентификаторами вида данных языка EXPRESS.
В приведенных ниже подпунктах указаны шаблоны, используемые в настоящем стандарте.
5.1.1.1 Шаблон APPROVES
Шаблон отображения APPROVES указывает ограничение ссылочного пути, в котором экземплярами вида ENTITY являются approval_items в экземплярах вида applied_approval_assignment с заданным для присвоения именем роли ARM_ROLE.
Пример - Пример использования шаблона APPROVES для присвоения значения approval данным вида product_definition_shape в роли 'subject':
approval <-
/APPROVES(product_definition_shape,'subject')/
Сигнатура:
/APPROVES(ENTITY, ARM_ROLE)/
Определения параметров:
ENTITY: идентификатор вида данных экземпляра ПИМ, которому присваивается значение
ARM_ROLE: значение атрибута имени для object_role
Тело шаблона:
approval_assignment.assigned_approval
approval_assignment =>
{/ROLE_ASSGN(approval_assignment)/
[object_role.name = &ARM_ROLE]}
applied_approval_assignment
applied_approval_assignment.items[i] ->
approval_item
approval_item = &ENTITY
5.1.1.2 Шаблон CLASS
Шаблон отображения CLASS задает ограничение ссылочного пути, в котором экземплярами типа T являются classification_items в экземплярах applied_classification_assignment, где имя роли, указанное для присвоения, имеет значение 'class membership', а назначенная классификация имеет значение group, атрибуту имени которого присвоено значение ID. Экземпляр group также связан с родительским экземпляром group (через экземпляр group_relationship), атрибуту имени которого присвоено значение S_ID.
Пример - Иллюстрация использования шаблона CLASS для присвоения группы с именем 'plate' данным вида product_definition:
/CLASS(product_definition, 'plate', 'structural part')/
Сигнатура:
/CLASS(T, ID, S_ID)/
Определения параметров:
T: тип классифицируемого экземпляра
ID: имя группы, тип классифицируемого экземпляра
S_ID: имя группы прямого предка
Тело шаблона:
&T
classification_item = &T
classification_item <-
applied_classification_assignment.items[i]
applied_classification_assignment <=
classification_assignment
{classification_assignment.role ->
classification_role
classification_role.name = 'class membership'}
classification_assignment
classification_assignment.assigned_classification ->
group
{[group.name = &ID]
[group <-
group_relationship.related_group
group_relationship
{group_relationship.name = 'specialisation'}
group_relationship
group_relationship.relating_group ->
group
{group.name = &S_ID} ]}
group =>
class
5.1.1.3 Шаблон CLASS_HELP
Шаблон отображения CLASS_HELP задает ограничение ссылочного пути, в котором экземплярами типа T являются classification_items в экземплярах applied_classification_assignment, где имя роли, указанное для присвоения, имеет значение 'class membership', а назначенной классификацией является супертип экземпляра group.
Сигнатура:
CLASS_HELP(T)
Определения параметров:
T: тип классифицируемого экземпляра
Тело шаблона:
{&T
classification_item = &T
classification_item <-
applied_classification_assignment.items[i]
applied_classification_assignment <=
classification_assignment
{classification_assignment.role ->
classification_role
classification_role.name = 'class membership'}
classification_assignment.assigned_classification ->
group =>
5.1.1.4 Шаблон CLASS_ID
Шаблон отображения CLASS_ID задает ограничение ссылочного пути, в котором экземплярами типа T являются classification_items в экземплярах applied_classification_assignment, где имя роли, указанное для присвоения, имеет значение 'class membership', а назначенная классификация имеет значение group, атрибуту имени которого присвоено значение ID.
Примечание - Семантика шаблона заключается в выборе экземпляра с именем группы ID.
Пример - Иллюстрация использования шаблона CLASS_ID, подтверждающего, что у экземпляра изделия есть имя класса 'ship':
action_item = product product
{/CLASS_ID(product, 'ship')/}
Сигнатура:
/CLASS_ID(T, ID)/
Определения параметров:
T: тип классифицируемого экземпляра
ID: имя группы
Тело шаблона:
&T
classification_item = &T
classification_item <-
applied_classification_assignment.items[i]
applied_classification_assignment <=
classification_assignment
{classification_assignment.role ->
classification_role
classification_role.name = 'class membership'}
classification_assignment.assigned_classification ->
group =>
{group.name = &ID}
class
5.1.1.5 Шаблон COMPOUND
Шаблон отображения COMPOUND указывает ограничение ссылочного пути, в котором путь от compound_representation_item до representation_item присваивает значение атрибуту representation_item.name.
Сигнатура:
/COMPOUND(NAME)/
Определения параметров:
NAME: значение атрибута имени для representation_item
Тело шаблона:
compound_representation_item
compound_representation_item.item_element ->
compound_item_definition = list_representation_item
list_representation_item[i] ->
representation_item =>
{representation_item.name = &NAME}
5.1.1.6 Шаблон DATE_TIME_ASSGN
Шаблон отображения DATE_TIME_ASSGN задает ограничение ссылочного пути, в котором экземпляру типа T присвоено значение date_and_time, и у этого присваивания имеется роль ROLE.
Сигнатура:
/DATE_TIME_ASSGN(T, ROLE)/
Определения параметров:
T: тип экземпляра, у которого есть присваивание date_and_time
ROLE: значение атрибута имени для date_time_role
Тело шаблона:
&T
{date_and_time_item = &T} date_and_time_item <-
applied_date_and_time_assignment.items[i]
applied_date_and_time_assignment <=
date_and_time_assignment
{date_and_time_assignment.role ->
date_time_role
[date_time_role.name = &ROLE]}
date_and_time_assignment.assigned_date_and_time ->
date_and_time
5.1.1.7 Шаблон DESCRIPTION_ASSGN
Шаблон отображения The DESCRIPTION_ASSGN задает ограничение ссылочного пути, в котором description_attribute присваивается экземпляру ENTITY, содержащему полученный атрибут описания. Создание атрибута описания основывается на объекте Basic_attribute_schema согласно ИСО 10303-41.
Примечание - Шаблон DESCRIPTION_ASSGN используется следующими видами данных объекта для совокупности их атрибута описания:
- action_request_solution;
- application_context;
- approval_role;
- configuration_design;
- date_role;
- date_time_role;
- context_dependent_shape_representation;
- effectivity;
- external_source;
- organization_role;
- person_and_organization_role;
- person_and_organization;
- person_role;
- property_definition_representation;
- representation;
- time_role.
Сигнатура:
/DESCRIPTION_ASSGN(ENTITY)/
Определения параметров:
ENTITY: тип объекта, которому присваивается description_attribute
Тело шаблона:
&ENTITY
description_attribute_select = &ENTITY
description_attribute_select <-
description_attribute.described_item
description_attribute
description_attribute.attribute_value
5.1.1.8 Шаблон DESCRIPTION_ASSGN_WITH_VAL
Шаблон отображения DESCRIPTION_ASSGN_WITH_VAL задает ограничение ссылочного пути, в котором экземпляру ENTITY присваивается атрибут description_attribute, содержащий созданный атрибут описания, а значение этого атрибута описания присвоено шаблоном DESC_VALUE.
Примечание - Шаблон DESCRIPTION_ASSGN_WITH_VAL используется следующими видами данных сущности для совокупности их атрибута описания:
- action_request_solution;
- application_context;
- approval_role;
- configuration_design;
- date_role;
- date_time_role;
- context_dependent_shape_representation;
- effectivity;
- external_source;
- organization_role;
- person_and_organization_role;
- person_and_organization;
- person_role;
- property_definition_representation;
- representation;
- time_role.
Сигнатура:
/DESCRIPTION_ASSGN_WITH_VAL(ENTITY, DESC_VALUE)/
Определения параметров:
ENTITY: тип объекта, которому присваивается description_attribute
DESC_VALUE: значение, присваиваемое объекту description_attribute.attribute_value
Тело шаблона:
&ENTITY
description_attribute_select = &ENTITY
description_attribute_select <-
description_attribute.described_item
description_attribute
description_attribute.attribute_value
{description_attribute.attribute_value = &DESC_VALUE}
5.1.1.9 Шаблон DOC_REF
Шаблон отображения DOC_REF задает ограничение ссылочного пути, в котором экземпляр типа T ссылается на document или document_usage_constraint, который играет роль ID.
Сигнатура:
/DOC_REF(T, ID)/
Определения параметров:
T: тип объекта, который указывает document
ID: значение атрибута name для object_role
Тело шаблона:
&T
document_reference_item = &T
document_reference_item <-
applied_document_reference. items [i]
applied_document_reference <=
document_reference
{/ROLE_ASSGN(document_reference)/
[object_role.name = &ID]}
document_reference
document_reference. assigned_document ->
(document)
(document <-
document_usage_constraint.source
document_usage_constraint)
5.1.1.10 Шаблон EXT_INST_REF
Шаблон отображения EXT_INST_REF задает ограничение ссылочного пути, в котором объекту типа LT присваивается объект external_identification_assignment в роли 'external instance reference'. Объект external_identification_assignment ссылается на объект external_source, атрибуту source_id которого присваивается значение SN. Этот объект external_source будет отнесен к другому объекту external_source, атрибуту source_id которого присваивается значение ET.
Сигнатура:
/EXT_INST_REF(LT, SN, ET)/
Определения параметров:
LT: тип, экземпляр которого представляет внешний экземпляр в локальной модели экземпляра
SN: имя внешней схемы
ET: тип внешнего объекта
Тело шаблона:
[&LT.description = 'external instance reference target']
[&LT = external_identification_item
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment <=
external_identification_assignment <=
ID_ROLE('external instance reference')
external_identification_assignment.source ->
external_source
[external_source. source_id->
source_item = identifier
{identifier = &SN}]
[{DESCRIPTION_ASSGN_WITH_VAL(external_source, 'schema name')}]
[EXT_SRC_REL('entity type')
{identifier = &ET}]]
5.1.1.11 Шаблон EXT_SRC_REL
Шаблон отображения EXT_SRC_REL задает ограничение ссылочного пути, в котором объект external_source связан с другим объектом external_source, при этом у последнего объекта будет иметься определение DESCR. Эта концепция может использоваться в основном в двух местах:
- для отнесения различных компонентов объекта external_source к одному объекту на следующем более высоком уровне;
- для отображения External_instance_reference.
Сигнатура:
/EXT_SRC_REL(DESCR)/
Определения параметров:
DESCR: значение атрибута description для external_source
Тело шаблона:
external_source <-
external_source_relationship. relating_source
external_source_relationship
{external_source_relationship.name = 'composition'}
external_source_relationship. related_source external_source
{DESCRIPTION_ASSGN_WITH_VAL(external_source, &DESCR)}
external_source
external_source.source_id ->
source_item
source_item = identifier
5.1.1.12 Шаблон GROUPS
Шаблон GROUPS задает ограничение ссылочного пути, в котором экземплярами типа ENTITY являются group_items в applied_group_assignment, при этом роль присваивания имеет значение ARM_ROLE.
Пример - Иллюстрация использования шаблона GROUPS для добавления product_definition к группе с ролью 'item structure':
group <-
/GROUPS(product_definition, 'item structure')/
Сигнатура:
/GROUPS(ENTITY, ARM_ROLE)/
Определения параметров:
ENTITY: группируемые объекты, играющие роль ARM_ROLE
ARM_ROLE: значение атрибута name для object_role
Тело шаблона:
group_assignment.assigned_group
group_assignment =>
{/ROLE_ASSGN(group_assignment)/
[object_role.name = &ARM_ROLE]}
applied_group_assignment
applied_group_assignment.items[i] ->
group_item
group_item = &ENTITY
5.1.1.13 Шаблон HAS_ID_1_ROLE
Шаблон отображения HAS_ID_1_ROLE задает ограничение ссылочного пути, в котором экземпляру объекта типа T присваивается идентификатор, играющий одну роль ROLE.
Сигнатура:
/HAS_ID_1_ROLE(T, ROLE)/
Определения параметров:
T: тип объекта, которому присваивается identification_assignment
ROLE: значение атрибута name для identification_role
Тело шаблона:
IDENTIFICATION(&T)
[identification_role.name = &ROLE]}
identification_assignment
identification_assignment.assigned_id
5.1.1.14 Шаблон HAS_ID_2_ROLES
Шаблон отображения HAS_ID_2_ROLE задает ограничение ссылочного пути, в котором экземпляру типа T присваивается идентификатор, и он играет одну из двух заданных ролей.
Сигнатура:
/HAS_ID_2_ROLES(T, ROLE1, ROLE2)/
Определения параметров:
T: тип объекта, которому присваивается identification_assignment
ROLE1: значение атрибута name для identification_role
ROLE2: значение атрибута name для identification_role
Тело шаблона:
IDENTIFICATION(&T)
[(identification_role.name = &ROLE1)
(identification_role.name = &ROLE2)]}
identification_assignment
identification_assignment.assigned_id
5.1.1.15 Шаблон ID_ASSGN
Шаблон отображения ID_ASSGN задает ограничение ссылочного пути, в котором id_attribute присваивается экземпляру ENTITY, содержащему полученный атрибут id. Создание атрибута id основывается на объекте Basic_attribute_schema согласно ИСО 10303-41.
Примечание - Шаблон ID_ASSGN используется следующими видами данных объекта для совокупности их атрибута id:
- action;
- address;
- product_category;
- property_definition;
- shape_aspect;
- shape_aspect_relationship;
- application_context;
- group;
- organizational_project;
- representation.
Сигнатура:
/ID_ASSGN(ENTITY)/
Определения параметров:
ENTITY: тип объекта, которому присваивается атрибут id_attribute
Тело шаблона:
&ENTITY
id_attribute_select = &ENTITY
id_attribute_select <-
id_attribute.identified_item
id_attributeid_attribute.attribute_value
5.1.1.16 Шаблон ID_ROLE
Шаблон отображения ID_ROLE задает ограничение ссылочного пути, в котором у присваивания identification_assignment имеется роль ROLE.
Сигнатура:
/ID_ROLE(ROLE)/
Определения параметров:
ROLE: значение атрибута name для identification_role
Тело шаблона:
identification_assignment
{identification_assignment.role ->
identification_role
[identification_role.name = &ROLE]}
5.1.1.17 Шаблон IDENTIFICATION
Шаблон отображения IDENTIFICATION задает ограничение ссылочного пути, в котором объекту типа T присваивается identification_assignment. Этот шаблон отображения используется главным образом в других макросах.
Сигнатура:
/IDENTIFICATION(T)/
T: тип объекта, которому присваивается identification_assignment
Тело шаблона:
&T
identification_item = &T
identification_item <-
applied_identification_assignment.items[i]
applied_identification_assignment <=
identification_assignment
{identification_assignment.role -> identification_role
5.1.1.18 Шаблон LINK_TO_GROUP
Шаблон отображения LINK_TO_GROUP задает ограничение ссылочного пути, в котором экземпляр типа T привязан к объекту group через applied_group_assignment.
Примечание - Используется для всех типов прикладных объектов, представляющих собой подтипы объекта Item (см. 4.2.52) и объекта Item_structure (см. 4.2.54).
Сигнатура:
/LINK_TO_GROUP(T)/
Определения параметров:
T: группируемый объект
Тело шаблона:
group_item = &T <-
applied_group_assignment.items[i]
applied_group_assignment <=
group_assignment
{ROLE_ASSGN(group_assignment)
object_role.name = 'equivalence')
group_assignment
group_assignment.assigned_group ->
group
group.name = 'item and item_structure'
5.1.1.19 Шаблон NAME_ASSGN
Шаблон отображения NAME_ASSGN задает ограничение ссылочного пути, в котором name_attribute присваивается экземпляру ENTITY, содержащему полученный атрибут name. Создание атрибута name основывается на объекте Basic_attribute_schema согласно ИСО 10303-41.
Примечание - Шаблон NAME_ASSGN используется следующими видами данных объекта для совокупности их атрибута name:
- action_request_solution;
- address;
- configuration_design;
- context_dependent_shape_representation;
- derived_unit;
- effectivity;
- person_and_organization;
- product_definition;
- product_definition_substitute;
- property_definition_representation.
Сигнатура:
/NAME_ASSGN(ENTITY)/
Определения параметров:
ENTITY: тип объекта, которому присваивается атрибут name_attribute
Тело шаблона:
&ENTITY
name_attribute_select = &ENTITY
name_attribute_select <-
name_attribute.named_item
name_attribute
name_attribute.attribute_value
5.1.1.20 Шаблон NAME_ASSGN_WITH_VAL
Шаблон отображения NAME_ASSGN_WITH_VAL задает ограничение ссылочного пути, в котором экземпляру ENTITY присваивается атрибут name_attribute, содержащий созданный атрибут name, а значение этого атрибута name присвоено шаблоном NAME_VALUE.
Примечание - Шаблон NAME_ASSGN используется следующими видами данных объекта для совокупности их атрибута name:
- action_request_solution;
- address;
- configuration_design;
- context_dependent_shape_representation;
- derived_unit;
- effectivity;
- person_and_organization;
- product_definition;
- product_definition_substitute;
- property_definition_representation.
Сигнатура:
/NAME_ASSGN_WITH_VAL(ENTITY,NAME_VALUE)/
Определения параметров:
ENTITY: тип объекта, которому присваивается атрибут name_attribute
NAME_VALUE: значение, присваиваемое для name_attribute.attribute_value
Тело шаблона:
&ENTITY
name_attribute_select = &ENTITY
name_attribute_select <-
name_attribute.named_item
name_attribute
{name_attribute.attribute_value = '&NAME_VALUE'}
5.1.1.21 Шаблон ORG_ASSGN_PART
Шаблон отображения ORG_ASSGN_PART задает ограничение ссылочного пути, в котором экземпляру типа T присваивается identification_assignment.
Сигнатура:
/ORG_ASSGN_PART(T)/
Определения параметров:
T: тип объекта, которому присваивается organization_assignment
Тело шаблона:
&T
organization_item = &T
organization_item <-
applied_organization_assignment.items [i]
applied_organization_assignment <=
organization_assignment
5.1.1.22 Шаблон ORG_ASSGN
Шаблон отображения ORG_ASSGN задает ограничение ссылочного пути, в котором экземпляру типа T присваивается объект organization, где роль этого присваивания имеет значение ROLE.
Сигнатура:
/ORG_ASSGN(T, ROLE)/
Определения параметров:
T: объект, присваиваемый для organization
ROLE: значение атрибута name для organization_role
Тело шаблона:
&T
organization_item = &T
organization_item <-
applied_organization_assignment.items[i]
applied_organization_assignment <=
organization_assignment
{organization_assignment.role ->
organization_role
[organization_role.name = &ROLE]}
organization_assignment
organization_assignment.assigned_organization ->
organization
5.1.1.23 Шаблон PDR_NAME
Шаблон отображения PDR_NAME задает ограничение ссылочного пути, в котором для property_definition_representation.name присваивается значение NAME.
Сигнатура:
/PDR_NAME(NAME)/
Определения параметров:
NAME: значение атрибута name для property_definition_representation
Тело шаблона:
property_definition_representation.definition
property_definition_representation
{[NAME_ASSGN_WITH_VAL(property_definition_representation, '&NAME')]}
property_definition_representation.used_representation
5.1.1.24 Шаблон PERS_ASSGN
Шаблон отображения PERS_ASSGN задает ограничение ссылочного пути, в котором объекту типа T присваивается лицо с ролью ROLE.
Сигнатура:
/PERS_ASSGN(T, ROLE)/
Определения параметров:
T: объект, которому присваивается person
ROLE: значение атрибута name для organization_role
Тело шаблона:
&T
person_item = &T
person_item <-
applied_person_assignment.items[i]
applied_person_assignment <=
person_assignment
{person_assignment.role ->
person_role
person_role.name = &ROLE}
person_assignment
person_assignment.assigned_person ->
person
5.1.1.25 Шаблон PERS_ORG_ASSGN
Шаблон отображения PERS_ORG_ASSGN задает ограничение ссылочного пути, в котором объекту типа T присваивается лицо и организация с ролью ROLE.
Сигнатура:
/PERS_ORG_ASSGN(T, ROLE)/
Определения параметров:
T: объект, которому присваивается person_and_organization
ROLE: значение атрибута name для person_and_organization_role
Тело шаблона:
&T
person_and_organization_item = &T
person_and_organisation_item <-
applied_person_and_organization_assignment.items[i]
applied_person_and_organization_assignment <=
person_and_organization_assignment
{person_and_organization_assignment.role ->
person_and_organization_role
person_and_organization_role.name = &ROLE}
person_and_organization_assignment
person_and_organization_assignment.assigned_person_and_organization
person_and_organization
5.1.1.26 Шаблон PROD_CAT_NAME
Шаблон отображения PROD_CAT_NAME задает ограничение ссылочного пути, в котором для property_category.name присваивается значение NAME.
Сигнатура:
/PROD_CAT_NAME(NAME)/
Определения параметров:
NAME: значение, задаваемое для атрибута name для product_category
Тело шаблона:
product_related_product_category <=
product_category
{product_category.name = &NAME}
5.1.1.27 Шаблон PROD_DEF_PRODUCT
Шаблон отображения PROD_DEF_PRODUCT задает ограничение ссылочного пути, в котором product_definition связан с product.
Сигнатура:
/PROD_DEF_PRODUCT/
Определения параметров:
нет
Тело шаблона:
product_definition
product_definition.formation ->
product_definition_formation
product_definition_formation.of_product ->
product
5.1.1.28 Шаблон PROD_DEF_PROP_DEF
Шаблон отображения PROD_DEF_PROP_DEF задает ограничение ссылочного пути, в котором product_definition связан с property_definition.
Сигнатура:
/PROD_DEF_PROP_DEF/
Определения параметров:
нет
Тело шаблона:
PROD_DEF_PROP_DEF_HELP
property_definition
5.1.1.29 Шаблон PROD_DEF_PROP_DEF_HELP
Шаблон отображения PROD_DEF_PROP_DEF_HELP задает ограничение ссылочного пути, в котором product_definition связан с property_definition.definition. Шаблон PROD_DEF_PROP_DEF_HELP предназначен для использования другими шаблонами отображения.
Сигнатура:
/PROD_DEF_PROP_DEF_HELP/
Определения параметров:
нет
Тело шаблона:
product_definition
characterized_product_definition = product_definition
characterized_product_definition
characterized_definition = characterized_product_definition
characterized_definition <-
property_definition.definition
5.1.1.30 Шаблон PROD_DEF_TO_DESC_REP_ITEM
Шаблон отображения PROD_DEF_TO_DESC_REP_ITEM задает ограничение ссылочного пути, в котором product_definition связан с descriptive_representation_item. Для descriptive_representation_item.name будет присвоено значение ID2. Связь реализуется через property_definition_representation, у которого имеется атрибут name, которому присвоено значение ID1. Шаблон PROD_DEF_TO_DESC_REP_ITEM предназначен для использования другими шаблонами отображения.
Сигнатура:
/PROD_DEF_TO_DESC_REP_ITEM(ID1, ID2)/
Определения параметров:
ID1: значение атрибута name для property_definition_representation
ID2: значение атрибута name для descriptive_representation_item
Тело шаблона:
PROD_DEF_PROP_DEF_HELP
PROP_DEF_TO_DESC_REP_ITEM(&ID1, &ID2)
5.1.1.31 Шаблон PROD_DEF_TO_REP
Шаблон отображения PROD_DEF_TO_REP задает ограничение ссылочного пути, в котором product_definition связан с property_definition_representation с атрибутом name со значением ID. Шаблон PROD_DEF_TO_REP предназначен для использования другими шаблонами отображения.
Сигнатура:
/PROD_DEF_TO_REP(ID)/
Определения параметров:
ID: значение атрибута name для property_definition_representation
Тело шаблона:
PROD_DEF_PROP_DEF_HELP
PROP_DEF_REP_HELP(&ID)
5.1.1.32 Шаблон PROD_DEF_TO_SPECIAL_VAL_REP_ITEM
Шаблон отображения PROD_DEF_TO_SPECIAL_VAL_REP_ITEM задает ограничение ссылочного пути, в котором product_definition связан с value_representation_item, который ссылается на measure_value, представляющий собой context_dependent_measure. Эта связь выполняется через property_definition_representation, атрибуту name которого будет присвоено значение ID1. Атрибуту name параметра value_representation_item будет присвоено значение ID2. Единицы для context_dependent_measure будут определены данными вида derived_unit с атрибутом name со значением DER_UNIT_NAME. Шаблон PROD_DEF_TO_SPECIAL_VAL_REP_ITEM предназначен для использования другими шаблонами отображения.
Сигнатура:
/PROD_DEF_TO_SPECIAL_VAL_REP_ITEM(ID1, ID2, DER_UNIT_NAME)/
Определения параметров:
ID1: значение атрибута name для property_definition_representation
ID2: значение атрибута name для value_representation_item
DER_UNIT_NAME: значение атрибута name для derived_unit
Тело шаблона:
PROD_DEF_PROP_DEF_HELP
PROP_DEF_TO_SPECIAL_VAL_REP_ITEM(&ID1, &ID2, &DER_UNIT_NAME)
5.1.1.33 Шаблон PROD_DEF_TO_UNITS
Шаблон отображения PROD_DEF_TO_UNITS задает ограничение ссылочного пути, в котором product_definition связан с global_unit_assigned_context. Эта связь выполняется через property_definition_representation с атрибутом name со значением ID. Шаблон PROD_DEF_TO_UNITS предназначен для использования другими шаблонами отображения.
Сигнатура:
/PROD_DEF_TO_UNITS(ID)/
Определения параметров:
ID: значение атрибута name для property_definition_representation
Тело шаблона:
PROD_DEF_PROP_DEF_HELP
PROP_DEF_TO_UNITS(&ID)
5.1.1.34 Шаблон PROD_DEF_TO_VAL_REP_ITEM
Шаблон отображения PROD_DEF_TO_VAL_REP_ITEM задает ограничение ссылочного пути, в котором product_definition связан с value_representation_item, который ссылается на measure_value, тип которого задан параметром MEAS. Эта связь осуществляется через property_definition_representation с атрибутом name со значением ID1. Атрибуту name параметра value_representation_item будет присвоено значение ID2. Шаблон PROD_DEF_TO_VAL_REP_ITEM предназначен для использования другими шаблонами отображения.
Сигнатура:
/PROD_DEF_TO_VAL_REP_ITEM(ID1, ID2, MEAS)/
Определения параметров:
ID1: значение атрибута name для property_definition_representation
ID2: значение атрибута name для value_representation_item
MEAS: заданный тип для measure_value
Тело шаблона:
PROD_DEF_PROP_DEF_HELP
PROP_DEF_TO_VAL_REP_ITEM(&ID1, &ID2, &MEAS)
5.1.1.35 Шаблон PROP_DEF_REP_HELP
Шаблон отображения PROP_DEF_REP_HELP задает ограничение ссылочного пути, в котором product_definition связан с property_definition_representation. Атрибуту name для property_definition_representation дано значение ID. Шаблон PROP_DEF_REP_HELP предназначен для использования другими шаблонами отображения.
Сигнатура:
/PROP_DEF_REP_HELP(ID)/
Определения параметров:
ID: значение атрибута name для property_definition_representation
Тело шаблона:
property_definition
represented_definition = property_definition
represented_definition <-
{[PDR_NAME('&ID')]}
5.1.1.36 Шаблон PROP_DEF_TO_DESC_REP_ITEM
Шаблон отображения PROP_DEF_TO_DESC_REP_ITEM задает ограничение ссылочного пути, в котором property_definition связан с descriptive_representation_item, у которого имеется атрибут name с конкретным значением ID2. Эта связь осуществляется через property_definition_representation с атрибутом name с конкретным значением ID1.
Сигнатура:
/PROP_DEF_TO_DESC_REP_ITEM(ID1, ID2)/
Определения параметров:
ID1: значение атрибута name для property_definition_representation
ID2: значение атрибута name для descriptive_representation_item
Тело шаблона:
PROP_DEF_REP_HELP(&ID1)
REP_ITEM(&ID2)
descriptive_representation_item
descriptive_representation_item.description
5.1.1.37 Шаблон PROP_DEF_TO_REP
Шаблон отображения PROP_DEF_TO_REP задает ограничение ссылочного пути, в котором product_definition связан с representation через property_definition_representation.
Сигнатура:
/PROP_DEF_TO_REP/
Определения параметров: нет
Тело шаблона:
property_definition
represented_definition = property_definition
represented_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
representation
5.1.1.38 Шаблон PROP_DEF_TO_SPECIAL_VAL_REP_ITEM
Шаблон отображения PROP_DEF_TO_SPECIAL_VAL_REP_ITEM задает ограничение ссылочного пути, в котором property_definition связан с value_representation_item, который ссылается на measure_value, представляющий собой context_dependent_measure. Эта связь выполняется через property_definition_representation, атрибуту name которого будет присвоено значение ID1. Атрибуту name объекта value_representation_item будет присвоено значение ID2. Единицы для context_dependent_measure будут определены данными вида derived_unit с атрибутом name со значением DER_UNIT_NAME.
Сигнатура:
/PROP_DEF_TO_SPECIAL_VAL_REP_ITEM(ID1, ID2, DER_UNIT_NAME)/
Определения параметров:
ID1: значение атрибута name для property_definition_representation
ID2: значение атрибута name для value_representation_item
DER_UNIT_NAME: значение атрибута name для derived_unit
Тело шаблона:
PROP_DEF_REP_HELP(&ID 1)
REP_TO_SPECIAL_VAL_REP_ITEM(&ID2, &DER_UNIT_NAME)
5.1.1.39 Шаблон PROP_DEF_TO_UNITS
Шаблон отображения PROP_DEF_TO_UNITS задает ограничение ссылочного пути, в котором property_definition связан с global_unit_assigned_context через property_definition_representation, атрибут name которого имеет значение ID. Параметр property_definition_representation ссылается на global_unit_assigned_context через экземпляр representation.
Сигнатура:
/PROP_DEF_TO_UNITS(ID)/
Определения параметров:
ID: значение атрибута name для property_definition_representation
Тело шаблона:
PROP_DEF_REP_HELP(&ID)
representation
representation.context_of_items ->
representation_context =>
global_unit_assigned_context
global_unit_assigned_context.units
5.1.1.40 Шаблон PROP_DEF_TO_VAL_REP_ITEM
Шаблон отображения PROP_DEF_TO_VAL_REP_ITEM задает ограничение ссылочного пути, в котором property_definition связан с value_representation_item, который ссылается на measure_value, тип которого задан параметром MEAS. Эта связь осуществляется через property_definition_representation с атрибутом name со значением ID1. Атрибуту name параметра value_representation_item будет присвоено значение ID2.
Сигнатура:
/PROP_DEF_TO_VAL_REP_ITEM(ID1, ID2, MEAS)/
Определения параметров:
ID1: значение атрибута name для property_definition_representation
ID2: значение атрибута name для value_representation_item
MEAS: заданный тип для measure_value
Тело шаблона:
PROP_DEF_REP_HELP(&ID1)
REP_ITEM(&ID2)
value_representation_item
value_representation_item.value_component -> measure_value
{measure_value = &MEAS}
5.1.1.41 Шаблон PROP_TO_PROD_DEF
Шаблон отображения PROP_TO_PROD_DEF задает ограничение ссылочного пути, в котором property_definition связан с product_definition.
Сигнатура:
/PROP_TO_PROD_DEF/
Определения параметров: нет
Тело шаблона:
property_definition
property_definition.definition -> characterized_definition
characterized_definition = characterized_product_definition
characterized_product_definition = product_definition
5.1.1.42 Шаблон RELATE_ACT_2_VO
Шаблон отображения RELATE_ACT_2_VO задает ограничение ссылочного пути, в котором у объекта типа T, которому присваивается action, должна быть присвоенная классификация типа 'versionable object'.
Сигнатура:
/RELATE_ACT_2_VO(T)/
Определения параметров:
T: тип объекта, которому присваивается action
Тело шаблона:
applied_action_assignment
applied_action_assignment.items[i] ->
(action_item = &T
{CLASS_ID(&T, 'versionable object')})
5.1.1.43 Шаблон RELATE_GROUP_2_VO
Шаблон отображения RELATE_GROUP_2_VO задает ограничение ссылочного пути, в котором объекту типа T присваивается group с ролью ROLE, при этом у объекта типа T должна быть присвоенная классификация типа 'versionable object'.
Сигнатура:
/RELATE_GROUP_2_VO(T, ROLE)/
Определения параметров:
T: тип объекта, присваиваемого объекту group
ROLE: имя, даваемое роли присваивания
Тело шаблона:
GROUPS(&T, &ROLE)
{CLASS_ID(&T,'versionable object')}
5.1.1.44 Шаблон RELATE_GROUP_2_DO
Шаблон отображения RELATE_GROUP_2_DO задает ограничение ссылочного пути, в котором объекту типа T присваивается group с ролью ROLE, при этом у объекта типа T должна быть присвоенная классификация типа 'definable object'.
Сигнатура:
/RELATE_GROUP_2_DO(T, ROLE)/
Определения параметров:
T: тип объекта, присваиваемого объекту group
ROLE: имя, даваемое роли присваивания
Тело шаблона:
GROUPS(&T, &ROLE)
{CLASS_ID(&T,'definable object')}
5.1.1.45 Шаблон RELATE_ID_2_VO
Шаблон отображения RELATE_ID_2_VO задает ограничение ссылочного пути, в котором объекту типа T присваивается identification_assignment с именем роли 'version identifier', при этом у объекта типа T должна быть присвоенная классификация типа 'versionable object'. Этот шаблон отображения может пониматься как "обратный" шаблон отображения для шаблона VERSION_ID(T).
Сигнатура:
/RELATE_ID_2_VO(T)/
Определения параметров:
T: тип объекта, у которого есть identification_assignment
Тело шаблона:
identification_assignment
{identification_assignment.role ->
identification_role
[identification_role.name = 'version identifier']} =>
applied_identification_assignment
applied_identification_assignment.items[i] ->
identification_item = &T
{CLASS_ID(&T, 'versionable object')}
5.1.1.46 Шаблон REP_ITEM
Шаблон отображения REP_ITEM задает ограничение ссылочного пути, в котором representation связан с representation_item. Для representation_item.name присваивается значение ID. Шаблон REP_ITEM предназначен для использования другими шаблонами отображения.
Сигнатура:
/REP_ITEM(ID)/
Определения параметров:
ID: значение атрибута name для representation_item
Тело шаблона:
representation
representation.items [i] ->
representation_item =>
{representation_item.name = &ID}
5.1.1.47 Шаблон REP_TO_SPECIAL_VAL_REP_ITEM
Шаблон отображения REP_TO_SPECIAL_VAL_REP_ITEM задает ограничение ссылочного пути, в котором representation связан с value_representation_item, который ссылается на measure_value, представляющий собой context_dependent_measure. Атрибуту name для value_representation_item будет присвоено значение ID. Единицы для context_dependent_measure будут определяться данными вида derived_unit с атрибутом name со значением DER_UNIT_NAME.
Сигнатура:
/REP_TO_SPECIAL_VAL_REP_ITEM(ID, DER_UNIT_NAME)/
Определения параметров:
ID: значение атрибута name для value_representation_item
DER_UNIT_NAME: значение атрибута name для derived_unit
Тело шаблона:
representation
{representation.context_of_items ->
representation_context =>
global_unit_assigned_context
global_unit_assigned_context.units[i] ->
unit =
derived_unit
[NAME_ASSGN_WITH_VAL(derived_unit, ' &DER_UNIT_NAME')]}
representation.items [i] ->
representation_item =>
{representation_item.name = &ID}
value_representation_item
value_representation_item.value_component -> measure_value
{measure_value = context_dependent_measure}
5.1.1.48 Шаблон REP_TO_VAL_REP_ITEM
Шаблон отображения REP_TO_VAL_REP_ITEM задает ограничение ссылочного пути, в котором representation связан с value_representation_item. Атрибуту name объекта value_representation_item присвоено значение ID, при этом value_component представляет собой measure_value, заданное с помощью MEAS.
Сигнатура:
/REP_TO_VAL_REP_ITEM(ID, MEAS)/
Определения параметров:
ID: значение, данное атрибуту name для value_representation_item
MEAS: заданный тип для measure_value
Тело шаблона:
REP_ITEM(&ID)
value_representation_item
value_representation_item.value_component -> measure_value
{measure_value = &MEAS}
5.1.1.49 Шаблон ROLE_ASSGN
Шаблон отображения ROLE_ASSGN задает ограничение ссылочного пути, в котором role_association присваивается экземпляру ENTITY, содержащему полученный атрибут роли. Создание атрибута роли основывается на объекте Basic_attribute_schema согласно ИСО 10303-41.
Примечание - Шаблон ROLE_ASSGN используется следующими видами данных экземпляра Entity для совокупности их атрибута name:
- action_assignment;
- action_request_assignment;
- approval_assignment;
- approval_date_time;
- certification_assignment;
- contract_assignment;
- document_reference;
- effectivity_assignment;
- external_referent_assignment;
- group_assignment;
- name_assignment;
- security_classification_assignment.
Сигнатура:
/ROLE_ASSGN(ENTITY)/
Определения параметров:
ENTITY: тип объекта, которому присваивается role_association
Тело шаблона:
&ENTITY
role_select = &ENTITY
role_select <-
role_association.item_with_role
role_association
role_association.role ->
object_role
5.1.1.50 Шаблон ROOT_CLASS
Шаблон отображения ROOT_CLASS задает ограничение ссылочного пути, в котором экземплярами типа T являются classification_items в экземплярах applied_classification_assignment, где имя роли, указанное для присваивания, имеет значение 'class membership', а присваиваемая классификация имеет значение group, атрибуту name которого присвоено значение ID.
Примечание - Семантика шаблона заключается в присвоении имени класса экземпляру.
Сигнатура:
/ROOT_CLASS(T, ID)/
Определения параметров:
T: тип классифицируемого экземпляра
ID: имя класса
Тело шаблона:
&T
classification_item = &T
classification_item <-
applied_classification_assignment.items[i]
applied_classification_assignment <=
classification_assignment
{classification_assignment.role ->
classification_role
classification_role.name = 'class membership'}
classification_assignment.assigned_classification ->
group =>
{group.name = &ID}
class
5.1.1.51 Шаблон SDR_NAME
Шаблон отображения SDR_NAME задает ограничения ссылочного пути, в котором для shape_definition_representation.name присваивается значение NAME.
Сигнатура:
/SDR_NAME(NAME)/
Определения параметров:
NAME: значение атрибута name для shape_definition_representation
Тело шаблона:
property_definition_representation.definition
property_definition_representation
{property_definition_representation=>
shape_definition_representation}
{NAME_ASSGN_WITH_VAL(property_definition_representation, '&NAME')}
property_definition_representation.used_representation
5.1.1.52 Шаблон SUBTYPE
Шаблон отображения SUBTYPE задает ссылку на отображение подтипа действующего прикладного объекта. Для одного прикладного объекта супертипа может быть указано несколько таких ссылок.
Примечание - Определение данного шаблона состоит только из сигнатуры шаблона, совпадающего тела шаблона нет. Этот шаблон приведен для упрощения автоматической обработки спецификации отображения.
Сигнатура шаблона:
/SUBTYPE(application_object)/
Определения параметров:
application_object: прикладной объект, который является подтипом действующего прикладного объекта супертипа и у которого есть полная или частичная спецификация отображения данного супертипа.
5.1.1.53 Шаблон SUPERTYPE
Шаблон отображения SUPERTYPE задает ссылку на отображение супертипа действующего прикладного объекта. Для прикладного объекта подтипа может быть указано несколько таких ссылок.
Примечание - Данный шаблон состоит только из сигнатуры, совпадающего тела нет. Этот шаблон приведен для упрощения автоматической обработки спецификации отображения.
Сигнатура шаблона:
/SUPERTYPE(application_object)/
Определение параметров:
application_object: прикладной объект, который является супертипом действующего прикладного объекта подтипа и у которого есть полная или частичная спецификация отображения данного подтипа.
5.1.1.54 Шаблон VERSION_ID
Шаблон отображения VERSION_ID задает ограничение ссылочного пути, в котором объекту типа T присваивается идентификатор версии.
Сигнатура:
/VERSION_ID(T)/
Определения параметров:
T: тип объекта, которому присвоен идентификатор версии.
Тело шаблона:
IDENTIFICATION(&T)
[identification_role.name = 'version identifier']}
identification_assignment
identification_assignment.assigned_id
5.1.2 Функциональная единица basic_geometry
5.1.2.1 SHIP_CURVE
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
{/ROOT_CLASS(compound_representation_item, 'ship curve')/}
5.1.2.1.1 curve_class
Элемент ПИМ:
representation_item.name
Источник:
ИСО 10303-43
Ссылочный путь:
compound_representation_item <=
representation_item
{(representation_item.name = 'buttock line')
(representation_item.name = 'centreline')
(representation_item.name = 'camber')
(representation_item.name = 'sheer')
(representation_item.name = 'flat of bottom')
(representation_item.name = 'flat of side')
(representation_item.name = 'intersection line')
(representation_item.name = 'station line')
(representation_item.name = 'bounding line')
(representation_item.name = 'rise of floor')
(representation_item.name = 'trace line')
(representation_item.name = 'waterline')
(representation_item.name = 'unspecified')}
5.1.2.1.2 side_condition
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/COMPOUND('side condition')/
descriptive_representation_item
{(descriptive_representation_item.description = 'knuckle')
(descriptive_representation_item.description = 'smooth')
(descriptive_representation_item.description = 'tangent')
(descriptive_representation_item.description = 'unspecified')}
5.1.2.1.3 ship_curve для curve (как curve_shape)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('curve shape')/
geometric_representation_item =>
edge =>
(edge_curve)
(oriented_edge)
5.1.2.2 SHIP_CURVE_WITH_SPACING_POSITION
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
{/ROOT_CLASS(compound_representation_item, 'ship curve with spacing position')/}
5.1.2.2.1 curve_class
Примечание - Атрибут унаследован из супертипа Ship_curve (см. 5.1.2.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/SUPERTYPE(Ship_curve)/ (см. 5.1.2.1.1)
5.1.2.2.2 side_condition
Примечание - Атрибут унаследован из супертипа Ship_curve (см. 5.1.2.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/SUPERTYPE(Ship_curve)/ (см. 5.1.2.1.2)
5.1.2.2.3 ship_curve_with_spacing_position для curve (как curve_shape)
Примечание - Атрибут унаследован из супертипа Ship_curve (см. 5.1.2.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/SUPERTYPE(Ship_curve)/ (см. 5.1.2.1.3)
5.1.2.2.4 ship_curve_with_spacing_position для spacing_position (как location)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('location')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'spacing position')/}
5.1.2.3 SHIP_POINT
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
{/ROOT_CLASS(compound_representation_item, 'ship point')/}
5.1.2.3.1 point_class
Элемент ПИМ:
representation_item.name
Источник:
ИСО 10303-43
Ссылочный путь:
compound_representation_item <=
representation_item
{(representation_item.name = 'ordinary')
(representation_item.name = 'tangent')
(representation_item.name = 'knuckle')
(representation_item.name = 'unspecified')}
5.1.2.3.2 ship_point для point (как point_shape)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('point shape')/
geometric_representation_item =>
vertex_point
5.1.2.4 SHIP_SURFACE
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
{/ROOT_CLASS(compound_representation_item, 'ship surface')/}
5.1.2.4.1 surface_class
Элемент ПИМ:
representation_item.name
Источник:
ИСО 10303-43
Ссылочный путь:
compound_representation_item <=
representation_item
{(representation_item.name = 'accommodation area')
(representation_item.name = 'accommodation deck')
(representation_item.name = 'aft ship')
(representation_item.name = 'blending surface')
(representation_item.name = 'bottom')
(representation_item.name = 'bracket')
(representation_item.name = 'bulkhead')
(representation_item.name = 'cargo area')
(representation_item.name = 'collision bulkhead')
(representation_item.name = 'cross tie')
(representation_item.name = 'deck')
(representation_item.name = 'deck beam')
(representation_item.name = 'deck house')
(representation_item.name = 'deck in superstructure')
(representation_item.name = 'double bottom')
(representation_item.name = 'double shell')
(representation_item.name = 'duct keel')
(representation_item.name = 'engine area')
(representation_item.name = 'engine foundation')
(representation_item.name = 'external surface')
(representation_item.name = 'floor')
(representation_item.name = 'fore ship')
(representation_item.name = 'frame')
(representation_item.name = 'girder')
(representation_item.name = 'hatch cover')
(representation_item.name = 'hatchway coaming')
(representation_item.name = 'hatchway endcoaming')
(representation_item.name = 'hatchway sidecoaming')
(representation_item.name = 'hold bulkhead')
(representation_item.name = 'hopper')
(representation_item.name = 'inner bottom')
(representation_item.name = 'inner shell')
(representation_item.name = 'internal surface')
(representation_item.name = 'keel')
(representation_item.name = 'longitudinal bulkhead')
(representation_item.name = 'longitudinal girder')
(representation_item.name = 'lower boom')
(representation_item.name = 'machinery casing')
(representation_item.name = 'main deck')
(representation_item.name = 'mid ship')
(representation_item.name = 'navigation deck')
(representation_item.name = 'outer shell')
(representation_item.name = 'platform deck')
(representation_item.name = 'plating')
(representation_item.name = 'sheer strake')
(representation_item.name = 'ship structure')
(representation_item.name = 'stern frame')
(representation_item.name = 'stool')
(representation_item.name = 'strength bulkhead')
(representation_item.name = 'strength deck')
(representation_item.name = 'stringer')
(representation_item.name = 'superstructure')
(representation_item.name = 'superstructure aft bulkhead')
(representation_item.name = 'superstructure front bulkhead')
(representation_item.name = 'superstructure side bulkhead')
(representation_item.name = 'tank bottom')
(representation_item.name = 'tank bulkhead')
(representation_item.name = 'tank side')
(representation_item.name = 'tank top')
(representation_item.name = 'transom')
(representation_item.name = 'transversal bulkhead')
(representation_item.name = 'transverse floor')
(representation_item.name = 'transverse web frame')
(representation_item.name = 'upper boom')
(representation_item.name = 'user defined')
(representation_item.name = 'vertical web frame')
(representation_item.name = 'wall')
(representation_item.name = 'wash bulkhead')
(representation_item.name = 'weather deck')
(representation_item.name = 'web frame')
(representation_item.name = 'wing bulkhead')}
5.1.2.4.2 ship_surface для surface (как surface_shape)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('surface shape')/
topological_representation_item =>
face=>
(face_surface)
(subface)
(oriented_face)
5.1.3 Отображение функциональной единицы configuration_management
5.1.3.1 Прикладной элемент ALTERNATIVE_VERSION_RELATIONSHIP
Элемент ПИМ:
identification_assignment_relationship
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/ROOT_CLASS(identification_assignment_relationship, 'alternative version relationship')/
5.1.3.1.1 reason
Элемент ПИМ:
identification_assignment_relationship.description
Источник:
ИСО 10303-41
Правила:
5.1.3.1.2 alternative_version_relationship для versionable_object (как alternative 1)
Элемент ПИМ:
PATH
Ссылочный путь:
identification_assignment_relationship
identification_assignment_relationship.related_assignment ->
(/RELATE_ID_2_VO(document)/)
(/RELATE_ID_2_VO(group)/)
(/RELATE_ID_2_VO(product_definition)/)
(/RELATE_ID_2_VO(product_definition_relationship)/)
(/RELATE_ID_2_VO(product_definition_shape)/)
(/RELATE_ID_2_VO(product_related_product_category)/)
(/RELATE_ID_2_VO(property_definition)/)
5.1.3.1.3 alternative_version_relationship для versionable_object (как alternative 2)
Элемент ПИМ:
PATH
Ссылочный путь:
identification_assignment_relationship
identification_assignment_relationship.relating_assignment ->
(/RELATE_ID_2_VO(document)/)
(/RELATE_ID_2_VO(group)/)
(/RELATE_ID_2_VO(product_definition)/)
(/RELATE_ID_2_VO(product_definition_relationship)/)
(/RELATE_ID_2_VO(product_definition_shape)/)
(/RELATE_ID_2_VO(product_related_product_category)/)
(/RELATE_ID_2_VO(property_definition)/)
5.1.3.2 Прикладной элемент APPROVAL_EVENT
Элемент ПИМ:
approval
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(approval, 'approval event', 'event')/]
[/ROOT_CLASS(approval, 'event')/]}
5.1.3.2.1 caused_by
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12).
Элемент ПИМ:
person_and_organization
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
approval <-
approval_person_organization.authorized_approval
approval_person_organization
approval_person_organization.person_organization ->
person_organization_select = person_and_organization
person_and_organization
5.1.3.2.2 caused_when
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12).
Элемент ПИМ:
approval_date_time.date_time
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
approval <-
approval_date_time.dated_approval
approval_date_time
approval_date_time.date_time ->
{(date_time_select = date_and_time
date_and_time)
(date_time_select = calendar_date
calendar_date)}
5.1.3.2.3 description
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12).
Элемент ПИМ:
approval.level
Источник:
ИСО 10303-41
5.1.3.2.4 result
Элемент ПИМ:
approval_status.name
Источник:
ИСО 10303-41
Ссылочный путь:
approval
approval.status ->
approval_status approval_status.name
{(approval_status.name = 'unapproved')
(approval_status.name = 'approved')
(approval_status.name = 'rejected')}
5.1.3.2.5 user_defined_result
Элемент ПИМ:
approval_status.name
Источник:
ИСО 10303-41
Ссылочный путь:
approval
approval.status ->
approval_status
approval_status.name
5.1.3.2.6 approval_event для approval_history (как approval_reference)
Примечание - Атрибут является обратным отношением для атрибута approvals для Approval_history (см. 5.1.3.3.2).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
approval
group_item = approval
group_item <-
applied_group_assignment.items[i]
applied_group_assignment <=
group_assignment
/ROLE_ASSGN(group_assignment)/
{[object_role.name = 'approvals']}
group_assignment.assigned_group ->
group
{/CLASS_ID(group, 'approval history')/}
5.1.3.3 Прикладной элемент APPROVAL_HISTORY
Элемент ПИМ:
group
Источник:
ИСО 10303-41
Ссылочный путь:
/ROOT_CLASS(group, 'approval history')/
5.1.3.3.1 status
Элемент ПИМ:
PATH
Ссылочный путь:
group <-
/GROUPS(approval, 'approvals')/
approval
approval.status ->
approval_status
approval_status.name
{(approval_status.name = 'unapproved')
(approval_status.name = 'approved')
(approval_status.name = 'rejected')}
5.1.3.3.2 approval_history для approval_event (как approvals)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
group <-
/GROUPS(approval, 'approvals')/ approval
5.1.3.3.3 approval_history для definition (как subject)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
group <-
/GROUPS(approval, 'approvals')/
approval <-
(/APPROVES(product_definition, 'subject')/
product_definition
{/CLASS_ID(product_definition, 'definition')/})
(/APPROVES(property_definition, 'subject')/
property_definition
{/CLASS_ID(property_definition, 'definition')})
(/APPROVES(product_definition_shape, 'subject')/
product_definition_shape
{/CLASS_ID(product_definition_shape, 'definition')/})
(/APPROVES(product_related_product_category, 'subject')/
product_related_product_category
{/CLASS_ID(product_related_product_category, 'definition')/})
5.1.3.4 Прикладной элемент CHANGE
Элемент ПИМ:
action
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(action,'change', 'item')/]
[/CLASS(action,'item', 'definable object')/]
[/ROOT_CLASS(action, 'definable object')/]}
5.1.3.4.1 description
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
action.description
Источник:
ИСО 10303-41
5.1.3.4.2 name
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
action.name
Источник:
ИСО 10303-41
5.1.3.4.3 the_class
Элемент ПИМ:
group.name
Источник:
ИСО 10303-41
Ссылочный путь:
action
classification_item = action
classification_item <-
applied_classification_assignment.items[i]
applied_classification_assignment
applied_classification_assignment <=
classification_assignment
{classification_assignment.role ->
classification_role
classification_role.name = 'change class'}
classification_assignment.assigned_classification ->
group
5.1.3.4.4 change для external_reference (как documentation)
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
#1: Если "как documentation" относится к External_reference
Элемент ПИМ:
PATH
Ссылочный путь:
action
action = external_identification_item
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment
#2: Если "как documentation" относится к Document_reference_with_address
Элемент ПИМ:
PATH
Ссылочный путь:
action
/DOC_REF(action,'documentation')/
document
{/CLASS_ID(document, 'document reference with address')/}
5.1.3.4.5 change для global_id (как id)
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3), который наследуется из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
action
identification_item = action
identification_item <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.3.4.6 change для ship (as ship_context)
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Ссылочный путь:
action <-
applied_action_assignment.assigned_action
applied_action_assignment
applied_action_assignment.items [i] ->
action_item
action_item = product
product
{/CLASS_ID(product, 'ship')/}
5.1.3.5 Прикладной элемент CHANGE_DEFINITION
#1: Значением элемента Change_definition является change_request
#2: Значением элемента Change_definition является change_plan
#3: Значением элемента Change_definition является change_realization
Элемент ПИМ:
#1: (version_action_request)
#2: (action_request_solution)
#3: (executed_action)
Источник:
ИСО 10303-41
5.1.3.5.1 author
Элемент ПИМ:
#1: /SUBTYPE(Change_request)/ (см. 5.1.3.9.2)
#2: /SUBTYPE(Change_plan)/ (см. 5.1.3.7.1)
#3: /SUBTYPE(Change_realization)/ (см. 5.1.3.8.1)
5.1.3.5.2 date_time
Элемент ПИМ:
#1: /SUBTYPE(Change_request)/ (см. 5.1.3.9.3)
#2: /SUBTYPE(Change_plan)/ (см. 5.1.3.7.2)
#3: /SUBTYPE(Change_realization)/ (см. 5.1.3.8.2)
5.1.3.5.3 description
Элемент ПИМ:
#1: /SUBTYPE(Change_request)/ (см. 5.1.3.9.4)
#2: /SUBTYPE(Change_plan)/ (см. 5.1.3.7.3)
#3: /SUBTYPE(Change_realization)/ (см. 5.1.3.8.3)
5.1.3.5.4 version_id
Элемент ПИМ:
#1: /SUBTYPE(Change_request)/ (см. 5.1.3.9.8)
#2: /SUBTYPE(Change_plan)/ (см. 5.1.3.7.4)
#3: /SUBTYPE(Change_realization)/ (см. 5.1.3.8.4)
5.1.3.5.5 change_definition для change (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(Change_request)/ (см. 5.1.3.9.9)
#2: /SUBTYPE(Change_plan)/ (см. 5.1.3.7.7)
#3: /SUBTYPE(Change_realization)/ (см. 5.1.3.8.6)
5.1.3.5.6 change_definition для global_id (as id)
Элемент ПИМ:
#1: /SUBTYPE(Change_request)/ (см. 5.1.3.9.10)
#2: /SUBTYPE(Change_plan)/ (см. 5.1.3.7.8)
#3: /SUBTYPE(Change_realization)/ (см. 5.1.3.8.7)
5.1.3.6 Прикладной элемент CHANGE_IMPACT
Элемент ПИМ:
applied_action_request_assignment
Источник:
ИСО 10303-216
Ссылочный путь:
{/ROOT_CLASS(applied_action_request_assignment, 'change impact')/}
5.1.3.6.1 change_impact для versionable_object_change_event (как impact)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
applied_action_request_assignment
applied_action_request_assignment.items [i] ->
action_request_item
action_request_item = action
{/CLASS_ID(action, 'versionable object change event')/}
5.1.3.7 Прикладной элемент CHANGE_PLAN
Элемент ПИМ:
action_request_solution
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(action_request_solution, 'change plan', 'change definition')/]
[/CLASS(action_request_solution,'change definition','definition')/]
[/CLASS(action_request_solution,'definition','versionable object')/]
[/ROOT_CLASS(action_request_solution, 'versionable object')/]}
5.1.3.7.1 author
Примечание - Атрибут унаследован из супертипа Change_definition (см. 5.1.3.5).
Элемент ПИМ:
applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/PERS_ORG_ASSGN(action_request_solution, 'author')/
5.1.3.7.2 date_time
Примечание - Атрибут унаследован из супертипа Change_definition (см. 5.1.3.5).
Элемент ПИМ:
applied_date_and_time_assignment.assigned_date_and_time
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/DAT_TIME_ASSGN(action_request_solution,'date time')/
5.1.3.7.3 description
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
action_request_solution.description
Источник:
ИСО 10303-41
Ссылочный путь:
/DESCRIPTION_ASSGN(action_request_solution)/
5.1.3.7.4 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через супертип Change_definition (см. 5.1.3.5), который наследуется от супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
applied_identification_assignment.assigned_id
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/VERSION_ID(action_request_solution)/
5.1.3.7.5 change_plan для check (как checks)
Элемент ПИМ:
PATH
Ссылочный путь:
action_request_solution
action_item = action_request_solution
action_item <-
applied_action_assignment.items [i]
applied_action_assignment <=
action_assignment
action_assignment.assigned_action ->
action
{/CLASS_ID(action, 'check')}
5.1.3.7.6 change_plan для change_request (как chosen_solution_for)
Элемент ПИМ:
PATH
Ссылочный путь:
action_request_solution
action_request_solution.request ->
versioned_action_request
{/CLASS_ID(versioned_action_request, 'change request')/}
5.1.3.7.7 change_plan для change (как defined_for)
Примечание - Атрибут унаследован из супертипа Change_definition (см. 5.1.3.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
action_request_solution
action_request_solution.method ->
action_method <-
action.chosen_method action
{/CLASS_ID(action, 'change')/}
5.1.3.7.8 change_plan для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Change_definition (см. 5.1.3.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
action_request_solution
identification_item = action_request_solution
identification_item <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.3.7.9 change_plan для change_impact (как planned_impact)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
action_request_solution
action_request_solution.request ->
versioned_action_request <-
action_request_assignment.assigned_action_request
action_request_assignment =>
applied_action_request_assignment
{/CLASS_ID(applied_action_request_assignment, 'change impact')/}
5.1.3.8 Прикладной элемент CHANGE_REALIZATION
Элемент ПИМ:
executed_action
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(executed_action, 'change realization', 'change definition')/]
[/CLASS(executed_action,'change definition','definition')/]
[/CLASS(executed_action,'definition','versionable object')/]
[/ROOT_CLASS(executed_action, 'versionable object')/]}
5.1.3.8.1 author
Примечание - Атрибут унаследован из супертипа Change_definition (см. 5.1.3.5).
Элемент ПИМ:
applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/PERS_ORG_ASSGN(executed_action, 'author')/
5.1.3.8.2 date_time
Примечание - Атрибут унаследован из супертипа Change_definition (см. 5.1.3.5).
Элемент ПИМ:
applied_date_and_time_assignment.assigned_date_and_time
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/DAT_TIME_ASSGN(executed_action,'date time')/
5.1.3.8.3 description
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.1.9.17, а не 5.1.8.3.
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.8.3).
Элемент ПИМ:
executed_action.description
Источник:
ИСО 10303-41
5.1.3.8.4 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через супертип Change_definition (см. 5.1.3.5), который наследуется от супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
applied_identification_assignment.assigned_id
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/VERSION_ID(executed_action)/
5.1.3.8.5 change_realization для check (как checks)
Элемент ПИМ:
PATH
Ссылочный путь:
executed_action
action_item = executed_action
action_item <-
applied_action_assignment.items[i]
applied_action_assignment <=
action_assignment
action_assignment.assigned_action ->
action
{/CLASS_ID(action, 'check')/}
5.1.3.8.6 change_realization для change (как defined_for)
Примечание - Атрибут унаследован из супертипа Change_definition (см. 5.1.3.5).
Элемент ПИМ:
PATH
Ссылочный путь:
executed_action <=
action <-
action_relationship.related_action
action_relationship
action_relationship.relating_action ->
action
{/CLASS_ID(action, 'change')/}
5.1.3.8.7 change_realization для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Change_definition (см. 5.1.3.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
executed_action
identification_item = executed_action
identification_item <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.3.8.8 change_realization для change_impact (как impact)
Элемент ПИМ:
PATH
Ссылочный путь:
executed_action
action_request_item = executed_action
action_request_item <-
applied_action_request_assignment.items[i]
applied_action_request_assignment
{/CLASS_ID(applied_action_request_assignment, 'change impact')/}
5.1.3.8.9 change_realization для change_plan (как realization_of)
Элемент ПИМ:
PATH
Ссылочный путь:
executed_action <=
action
action.chosen_method ->
action_method <-
action_request_solution.method action_request_solution
{/CLASS_ID(action_request_solution, 'change plan')/}
5.1.3.9 Прикладной объект CHANGE_REQUEST
Элемент ПИМ:
versioned_action_request
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(versioned_action_request, 'change request', 'change definition')/]
[/CLASS(versioned_action_request,'change definition','definition')/]
[/CLASS(versioned_action_request,'definition',versionable object')/]
[/ROOT_CLASS(versioned_action_request, 'versionable object')/]}
5.1.3.9.1 addressee
Элемент ПИМ:
applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
ИСО 10303-216
Ссылочный путь:
/PERS_ORG_ASSGN(versioned_action_request, 'addressee')/
5.1.3.9.2 author
Примечание - Атрибут унаследован из супертипа Change_definition (см. 5.1.3.5).
Элемент ПИМ:
applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/PERS_ORG_ASSGN(versioned_action_request, 'author')/
5.1.3.9.3 date_time
Примечание - Атрибут унаследован из супертипа Change_definition (см. 5.1.3.5).
Элемент ПИМ:
applied_date_and_time_assignment.assigned_date_and_time
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
DAT_TIME_ASSGN(versioned_action_request,'date time')/
5.1.3.9.4 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.8.3).
Элемент ПИМ:
versioned_action_request.description
Источник:
ИСО 10303-41
5.1.3.9.5 initiator
Элемент ПИМ:
applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/PERS_ORG_ASSGN(versioned_action_request, 'initiator')/
5.1.3.9.6 problem
Элемент ПИМ:
versioned_action_request.purpose
Источник:
ИСО 10303-41
5.1.3.9.7 solution_description
Элемент ПИМ:
action_request_solution.description
Источник:
ИСО 10303-41
Ссылочный путь:
versioned_action_request <-
action_request_solution.request
action_request_solution
/DESCRIPTION_ASSGN(action_request_solution)/
5.1.3.9.8 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через супертип Change_definition (см. 5.1.3.5), который наследуется от супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
applied_identification_assignment.assigned_id
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/VERSION_ID(versioned_action_request )/
5.1.3.9.9 change_request для change (как defined_for)
Примечание - Атрибут унаследован из супертипа Change_definition (см. 5.1.3.5).
Элемент ПИМ:
PATH
Ссылочный путь:
versioned_action_request <-
action_request_solution.request
action_request_solution
action_request_solution.method ->
action_method <-
action.chosen_method
action
{/CLASS_ID(action, 'change')/}
5.1.3.9.10 change_request для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Change_definition (см. 5.1.3.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
versioned_action_request
identification_item = versioned_action_request
identification_item <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.3.9.11 change_request для change_impact (как solution_alternatives)
Элемент ПИМ:
PATH
Ссылочный путь:
versioned_action_request <-
action_request_assignment.assigned_action_request
action_request_assignment =>
applied_action_request_assignment
{/CLASS_ID(applied_action_request_assignment, 'change impact')/}
5.1.3.10 Прикладной объект CHECK
Элемент ПИМ:
action
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(action, 'check', 'event')/]
[/ROOT_CLASS(action, 'event')/]}
5.1.3.10.1 caused_by
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12).
Элемент ПИМ:
applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/PERS_ORG_ASSGN(action, 'caused by')/
action.chosen_method
action
{/CLASS_ID(action, 'change')/}
5.1.3.10.2 caused_when
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12).
Элемент ПИМ:
applied_date_and_time_assignment.assigned_date_and_time
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/DAT_TIME_ASSGN(action, 'caused when')/
5.1.3.10.3 description
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12).
Элемент ПИМ:
action.description
Источник:
ИСО 10303-41
5.1.3.11 Прикладной объект ENVISAGED_VERSION_CREATION
Элемент ПИМ:
action
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(action, 'envisaged version creation', 'versionable object change event')/]
[/CLASS(action, 'versionable object change event', 'event')/] [/ROOT_CLASS(action, 'event')/]}
5.1.3.11.1 category
Элемент ПИМ:
action.name
Источник:
ИСО 10303-41
5.1.3.11.2 caused_by
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/PERS_ORG_ASSGN(action, 'caused by')/
5.1.3.11.3 caused_when
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
applied_date_and_time_assignment.assigned_date_and_time
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/DAT_TIME_ASSGN(action,'causedwhen')/
5.1.3.11.4 description
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
action.description
Источник:
ИСО 10303-41
Правила:
5.1.3.11.5 envisaged_version_creation для versionable_object (как base)
Элемент ПИМ:
PATH
Ссылочный путь:
action <-
action_assignment.assigned_action
action_assignment
/ROLE_ASSGN(action_assignment)/
{object_role.name = 'base'}
action_assignment =>
(/RELATE_ACT_2_VO(product_definition)/)
(/RELATE_ACT_2_VO(property_definition)/)
(/RELATE_ACT_2_VO(product_definition_relationship)/)
(/RELATE_ACT_2_VO(product_definition_shape)/)
(/RELATE_ACT_2_VO(product_related_product_category)/)
(/RELATE_ACT_2_VO(document)/)
5.1.3.12 Прикладной элемент EVENT
#1: Если значением элемента Event является Versionable_object_change_event
#2: Если значением элемента Event является Approval_event
#3: Если значением элемента Event является Check
Элемент ПИМ:
#1: (action)
#2: (approval)
#3: (action)
Источник:
ИСО 10303-41
5.1.3.12.1 caused_by
Элемент ПИМ:
/SUBTYPE(Versionable_object_change_event)/ (см. 5.1.3.20)
/SUBTYPE(Approval_event)/ (см. 5.1.3.2)
/SUBTYPE(Check)/ (см. 5.1.3.10)
5.1.3.12.2 caused_when
Элемент ПИМ:
/SUBTYPE(Versionable_object_change_event)/ (см. 5.1.3.20)
/SUBTYPE(Approval_event)/ (см. 5.1.3.2)
/SUBTYPE(Check)/ (см. 5.1.3.10)
5.1.3.12.3 description
Элемент ПИМ:
/SUBTYPE(Versionable_object_change_event)/ (см. 5.1.3.20)
/SUBTYPE(Approval_event)/ (см. 5.1.3.2)
/SUBTYPE(Check)/ (см. 5.1.3.10)
5.1.3.13 Прикладной элемент REVISION
Элемент ПИМ:
group
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(group, 'revision', 'versionable object')/]
[/ROOT_CLASS(group, 'versionable object')/]}
5.1.3.13.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
group.description
Источник:
ИСО 10303-41
Правила:
5.1.3.13.2 name
Элемент ПИМ:
group.name
Источник:
ИСО 10303-41
5.1.3.13.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
applied_identification_assignment.assigned_id
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/VERSION_ID(group)/
5.1.3.13.4 revision для versionable_object (как members)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
group <-
(/RELATE_GROUP_2_VO(product_definition, 'members')/)
(/RELATE_GROUP_2_VO(property_definition, 'members')/)
(/RELATE_GROUP_2_VO(product_definition_relationship, 'members' )/)
(/RELATE_GROUP_2_VO(product_definition_shape, 'members')/)
(/RELATE_GROUP_2_VO(product_related_product_category, 'members' )/)
(/RELATE_GROUP_2_VO(document, 'members' )/)
5.1.3.14 Прикладной элемент REVISION_WITH_CONTEXT
Элемент ПИМ:
group
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(group, 'revision with context', 'revision')/]
[/CLASS(group, 'revision', 'versionable object')/]
[/ROOT_CLASS(group, 'versionable object')/]}
5.1.3.14.1 description
Примечание - Атрибут унаследован из супертипа Revision (см. 5.1.3.13).
Элемент ПИМ:
group.description
Источник:
ИСО 10303-41
Правила:
5.1.3.14.2 name
Примечание - Атрибут унаследован из супертипа Revision (см. 5.1.3.13).
Элемент ПИМ:
group.name
Источник:
ИСО 10303-41
5.1.3.14.3 version_id
Примечание - Атрибут унаследован из супертипа Revision (см. 5.1.3.13), который наследуется из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
applied_identification_assignment.assigned_id
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/VERSION_ID(group)/
5.1.3.14.4 revision_with_context для definable_object (как context_of_revision)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
group <-
(/RELATE_GROUP_2_DO(product, 'context of revision')/)
(/RELATE_GROUP_2_DO(product_definition, 'context of revision')/)
(/RELATE_GROUP_2_DO(product_definition_relationship, 'context of revision')/)
5.1.3.14.5 revision_with_context для versionable_object (как members)
Примечание - Атрибут унаследован из супертипа Revision (см. 5.1.3.13).
Элемент ПИМ:
/SUPERTYPE(revision)/ (см. 5.1.3.13)
5.1.3.15 Прикладной элемент VERSION_CREATION
Элемент ПИМ:
action
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(action, 'version creation', 'versionable object change event')/]
[/CLASS(action, 'versionable object change event', 'event')/]
[/ROOT_CLASS(action, 'event')/]}
5.1.3.15.1 caused_by
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/PERS_ORG_ASSGN(action, 'caused by')/
5.1.3.15.2 caused_when
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
applied_date_and_time_assignment.assigned_date_and_time
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/DAT_TIME_ASSGN(action, 'caused when')/
5.1.3.15.3 description
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.1.3.20, а не 1.3.20.
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 1.3.20).
Элемент ПИМ:
action.description
Источник:
ИСО 10303-41
Правила:
5.1.3.15.4 version_creation для versionable_object (как base)
Элемент ПИМ:
PATH
Ссылочный путь:
action <-
action_assignment.assigned_action
action_assignment
/ROLE_ASSGN(action_assignment)/
{object_role.name = 'base'}
action_assignment =>
(/RELATE_ACT_2_VO(product_definition)/)
(/RELATE_ACT_2_VO(property_definition)/)
(/RELATE_ACT_2_VO(product_definition_relationship)/)
(/RELATE_ACT_2_VO(product_definition_shape)/)
(/RELATE_ACT_2_VO(product_related_product_category)/)
(/RELATE_ACT_2_VO(document)/)
5.1.3.15.5 version_creation для versionable_object (как subject)
Элемент ПИМ:
PATH
Ссылочный путь:
action <-
action_assignment.assigned_action
action_assignment
/ROLE_ASSGN(action_assignment)/
{object_role.name = 'subject'}
action_assignment =>
(/RELATE_ACT_2_VO(product_definition)/)
(/RELATE_ACT_2_VO(property_definition)/)
(/RELATE_ACT_2_VO(product_definition_relationship)/)
(/RELATE_ACT_2_VO(product_definition_shape)/)
(/RELATE_ACT_2_VO(product_related_product_category)/)
(/RELATE_ACT_2_VO(document)/)
5.1.3.16 Прикладной элемент VERSION_DELETION
Элемент ПИМ:
action
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(action, 'version deletion', 'versionable object change event')/]
[/CLASS(action, 'versionable object change event', 'event')/]
[/ROOT_CLASS(action, 'event')/]}
5.1.3.16.1 caused_by
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/PERS_ORG_ASSGN(action, 'caused by')/
5.1.3.16.2 caused_when
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
applied_date_and_time_assignment.assigned_date_and_time
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/DAT_TIME_ASSGN(action, 'caused when')/
5.1.3.16.3 description
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
action.description
Источник:
ИСО 10303-41
Правила:
5.1.3.16.4 version_deletion для versionable_object (как subject)
Элемент ПИМ:
PATH
Ссылочный путь:
action <-
action_assignment.assigned_action
action_assignment
/ROLE_ASSGN(action_assignment)/
{object_role.name = 'subject'}
action_assignment =>
(/RELATE_ACT_2_VO(product_definition)/)
(/RELATE_ACT_2_VO(property_definition)/)
(/RELATE_ACT_2_VO(product_definition_relationship)/)
(/RELATE_ACT_2_VO(product_definition_shape)/)
(/RELATE_ACT_2_VO(product_related_product_category)/)
(/RELATE_ACT_2_VO(document)/)
5.1.3.17 Прикладной элемент VERSION_HISTORY
Элемент ПИМ:
group
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/ROOT_CLASS(group, 'version history')/
5.1.3.17.1 version_history для versionable_object (как current_version)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
group <-
(/RELATE_GROUP_2_VO(product_definition, 'versions')/)
(/RELATE_GROUP_2_VO(property_definition, 'versions')/)
(/RELATE_GROUP_2_VO(product_definition_relationship, 'versions' )/)
(/RELATE_GROUP_2_VO(product_definition_shape, 'versions')/)
(/RELATE_GROUP_2_VO(product_related_product_category, 'versions' )/)
(/RELATE_GROUP_2_VO(document, 'versions' )/)
5.1.3.17.2 version_history для version_relationship (как relationships)
Элемент ПИМ:
PATH
Ссылочный путь:
group <-
/GROUPS(identification_assignment_relationship, 'relationships')/
identification_assignment_relationship
{/CLASS_ID(identification_assignment_relationship, 'version relationship')/}
5.1.3.17.3 version_history для versionable_object (как versions)
Элемент ПИМ:
PATH
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.165, а не 5.2.4.166.
Правила:
Ссылочный путь:
group <-
(/RELATE_GROUP_2_VO(product_definition, 'versions')/)
(/RELATE_GROUP_2_VO(property_definition, 'versions')/)
(/RELATE_GROUP_2_VO(product_definition_relationship, 'versions' )/)
(/RELATE_GROUP_2_VO(product_definition_shape, 'versions')/)
(/RELATE_GROUP_2_VO(product_related_product_category, 'versions' )/)
(/RELATE_GROUP_2_VO(document, 'versions' )/)
5.1.3.18 Прикладной элемент VERSION_MODIFICATION
Элемент ПИМ:
action
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(action, 'version modification', 'versionable object change event')/]
[/CLASS(action, 'versionable object change event', 'event')/]
[/ROOT_CLASS(action, 'event')/]}
5.1.3.18.1 caused_by
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/PERS_ORG_ASSGN(action, 'caused by')/
5.1.3.18.2 caused_when
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
applied_date_and_time_assignment.assigned_date_and_time
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/DAT_TIME_ASSGN(action,'caused when')/
5.1.3.18.3 description
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12), через супертип Versionable_object_change_event (см. 5.1.3.20).
Элемент ПИМ:
action.description
Источник:
ИСО 10303-41
Правила:
5.1.3.18.4 version_modification для versionable_object (как base)
Элемент ПИМ:
PATH
Ссылочный путь:
action <-
action_assignment.assigned_action
action_assignment
/ROLE_ASSGN(action_assignment)/
{object_role.name = 'base'}
action_assignment =>
(/RELATE_ACT_2_VO(product_definition)/)
(/RELATE_ACT_2_VO(property_definition)/)
(/RELATE_ACT_2_VO(product_definition_relationship)/)
(/RELATE_ACT_2_VO(product_definition_shape)/)
(/RELATE_ACT_2_VO(product_related_product_category)/)
(/RELATE_ACT_2_VO(document)/)
5.1.3.18.5 version_modification для versionable_object (как subject)
Элемент ПИМ:
PATH
Ссылочный путь:
action <-
action_assignment.assigned_action
action_assignment
/ROLE_ASSGN(action_assignment)/
{object_role.name = 'subject'}
action_assignment =>
(/RELATE_ACT_2_VO(product_definition)/)
(/RELATE_ACT_2_VO(property_definition)/)
(/RELATE_ACT_2_VO(product_definition_relationship)/)
(/RELATE_ACT_2_VO(product_definition_shape)/)
(/RELATE_ACT_2_VO(product_related_product_category)/)
(/RELATE_ACT_2_VO(document)/)
5.1.3.19 Прикладной объект VERSION_RELATIONSHIP
Элемент ПИМ:
identification_assignment_relationship
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/ROOT_CLASS(identification_assignment_relationship, 'version relationship')/
5.1.3.19.1 reason
Элемент ПИМ:
identification_assignment_relationship.description
Источник:
ИСО 10303-41
Правила:
5.1.3.19.2 version_relationship для versionable_object (как predecessor)
Элемент ПИМ:
PATH
Ссылочный путь:
identification_assignment_relationship
identification_assignment_relationship.related_assignment ->
(/RELATE_ID_2_VO(product_definition)/)
(/RELATE_ID_2_VO(property_definition)/)
(/RELATE_ID_2_VO(product_definition_relationship)/)
(/RELATE_ID_2_VO(product_definition_shape)/)
(/RELATE_ID_2_VO(product_related_product_category)/)
(/RELATE_ID_2_VO(document)/)
(/RELATE_ID_2_VO(group)/)
5.1.3.19.3 version_relationship для versionable_object (как successor)
Элемент ПИМ:
PATH
Ссылочный путь:
identification_assignment_relationship
identification_assignment_relationship.relating_assignment ->
(/RELATE_ID_2_VO(product_definition)/)
(/RELATE_ID_2_VO(property_definition)/)
(/RELATE_ID_2_VO(product_definition_relationship)/)
(/RELATE_ID_2_VO(product_definition_shape)/)
(/RELATE_ID_2_VO(product_related_product_category)/)
(/RELATE_ID_2_VO(document)/)
(/RELATE_ID_2_VO(group)/)
5.1.3.20 Прикладной элемент VERSIONABLE_OBJECT_CHANGE_EVENT
#1: Значением элемента Versionable_object_change_event является envisaged_version_creation
#2: Значением элемента Versionable_object_change_event является version_creation
#3: Значением элемента Versionable_object_change_event является version_modification
#4: Значением элемента Versionable_object_change_event является version_deletion
Элемент ПИМ:
#1: (action)
#2: (action)
#3: (action)
#4: (action)
Источник:
ИСО 10303-41
5.1.3.20.1 caused_by
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12).
Элемент ПИМ:
#1: /SUBTYPE(Envisaged_version_creation)/ (см. 5.1.3.11.2)
#2: /SUBTYPE(Version_creation)/ (см. 5.1.3.15.1)
#3: /SUBTYPE(Version_modification)/ (см. 5.1.3.18.1)
#4: /SUBTYPE(Version_deletion)/ (см. 5.1.3.16.1)
5.1.3.20.2 caused_when
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12).
Элемент ПИМ:
#1: /SUBTYPE(Envisaged_version_creation)/ (см. 5.1.3.11.3)
#2: /SUBTYPE(Version_creation)/ (см. 5.1.3.15.2)
#3: /SUBTYPE(Version_modification)/ (см. 5.1.3.18.2)
#4: /SUBTYPE(Version_deletion)/ (см. 5.1.3.16.2)
5.1.3.20.3 description
Примечание - Атрибут унаследован из супертипа Event (см. 5.1.3.12).
Элемент ПИМ:
#1: /SUBTYPE(Envisaged_version_creation)/ (см. 5.1.3.11.4)
#2: /SUBTYPE(Version_creation)/ (см. 5.1.3.15.3)
#3: /SUBTYPE(Version_modification)/ (см. 5.1.3.18.3)
#4: /SUBTYPE(Version_deletion)/ (см. 5.1.3.16.3)
5.1.4 Функциональная единица definitions
5.1.4.1 Прикладной элемент DEFINITION
#1: Значением элемента definition является change_definition
#2: Значением элемента definition является design_definition
#3: Значением элемента definition является functional_definition
#4: Значением элемента definition является general_characteristics_definition
#5: Значением элемента definition является local_coordinate_system
#6: Значением элемента definition является moulded_form_characteristics_definition
#7: Значением элемента definition является spacing_table
Элемент ПИМ:
#1: /SUBTYPE(change_definition)/ (см. 5.1.3.5)
#2: /SUBTYPE(design_definition)/ (см. 5.1.4.2)
#3: /SUBTYPE(functional_definition)/ (см. 5.1.4.3)
#4: /SUBTYPE(general_characteristics_definition)/ (см. 5.1.4.4)
#5: /SUBTYPE(local_co_ordinate_system)/ (см. 5.1.9.4)
#6: /SUBTYPE(moulded_form_characteristics_definition)/ (см. 5.1.11.7)
#7: /SUBTYPE(spacing_table)/ (см. 5.1.9.10)
5.1.4.1.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
#1: /SUBTYPE(change_definition)/ (см. 5.1.3.5.3)
#2: /SUBTYPE(design_definition)/ (см. 5.1.4.2.1)
#3: /SUBTYPE(functional_definition)/ (см. 5.1.4.3.1)
#4: /SUBTYPE(general_characteristics_definition)/ (см. 5.1.4.4.1)
#5: /SUBTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.1)
#6: /SUBTYPE(moulded_form_characteristics_definition)/ (см. 5.1.11.7.1)
#7: /SUBTYPE(spacing_table)/ (см. 5.1.9.10.1)
5.1.4.1.2 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
#1: /SUBTYPE(change_definition)/ (см. 5.1.3.5.4)
#2: /SUBTYPE(design_definition)/ (см. 5.1.4.2.3)
#3: /SUBTYPE(functional_definition)/ (см. 5.1.4.3.2)
#4: /SUBTYPE(general_characteristics_definition)/ (см. 5.1.4.4.2)
#5: /SUBTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.2)
#6: /SUBTYPE(moulded_form_characteristics_definition)/ (см. 5.1.11.7.4)
#7: /SUBTYPE(spacing_table)/ (см. 5.1.9.10.3)
5.1.4.1.3 definition для definable_object (как defined_for)
Элемент ПИМ:
#1: /SUBTYPE(change_definition)/ (см. 5.1.3.5.5)
#2: /SUBTYPE(design_definition)/ (см. 5.1.4.2.4)
#3: /SUBTYPE(functional_definition)/ (см. 5.1.4.3.4)
#4: /SUBTYPE(general_characteristics_definition)/ (см. 5.1.4.4.3)
#5: /SUBTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.3)
#6: /SUBTYPE(moulded_form_characteristics_definition)/ (см. 5.1.11.7.5)
#7: /SUBTYPE(spacing_table)/ (см. 5.1.9.10.4)
5.1.4.1.4 definition для global_id (как id)
Элемент ПИМ:
#1: /SUBTYPE(change_definition)/ (см. 5.1.3.5.6)
#2: /SUBTYPE(design_definition)/ (см. 5.1.4.2.5)
#3: /SUBTYPE(functional_definition)/ (см. 5.1.4.3.5)
#4: /SUBTYPE(general_characteristics_definition)/ (см. 5.1.4.4.4)
#5: /SUBTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.4)
#6: /SUBTYPE(moulded_form_characteristics_definition)/ (см. 5.1.11.7.6)
#7: /SUBTYPE(spacing_table)/ (см. 5.1.9.10.5)
5.1.4.1.5 definition для derived_unit (как local_units)
Элемент ПИМ:
#2: /SUBTYPE(design_definition)/ (см. 5.1.4.2.6)
#4: /SUBTYPE(general_characteristics_definition)/ (см. 5.1.4.4.5)
#5: /SUBTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.5)
#6: /SUBTYPE(moulded_form_characteristics_definition)/ (см. 5.1.11.7.7)
#7: /SUBTYPE(spacing_table)/ (см. 5.1.9.10.6)
5.1.4.1.6 definition для named_unit (как local_units)
Элемент ПИМ:
#2: /SUBTYPE(design_definition)/ (см. 5.1.4.2.7)
#4: /SUBTYPE(general_characteristics_definition)/ (см. 5.1.4.4.6)
#5: /SUBTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.6)
#6: /SUBTYPE(moulded_form_characteristics_definition)/ (см. 5.1.11.7.8)
#7: /SUBTYPE(spacing_table)/ (см. 5.1.9.10.7)
5.1.4.2 Прикладной элемент DESIGN_DEFINITION
#1: если значением design_definition является hydrostatic_definition
#2: если значением design_definition является moulded_form_design_definition
#3: если значением design_definition является stability_definition
Элемент ПИМ:
#1: /SUBTYPE(hydrostatic_definition)/ (см. 5.1.7.4)
#2: /SUBTYPE(moulded_form_design_definition)/ (см. 5.1.14.3)
#3: /SUBTYPE(stability_definition)/ (см. 5.1.7.11)
5.1.4.2.1 description
Элемент ПИМ:
#1: /SUBTYPE(hydrostatic_definition)/ (см. 5.1.7.4.1)
#2: /SUBTYPE(moulded_form_design_definition)/ (см. 5.1.14.3.1)
#3: /SUBTYPE(stability_definition)/ (см. 5.1.7.11.1)
5.1.4.2.2 representations
Элемент ПИМ:
#1: /SUBTYPE(hydrostatic_definition)/ (см. 5.1.7.4.8)
#2: /SUBTYPE(moulded_form_design_definition)/ (см. 5.1.14.3.15, 5.1.14.3.16)
#3: /SUBTYPE(stability_definition)/ (см. 5.1.7.11.7)
5.1.4.2.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(hydrostatic_definition)/ (см. 5.1.7.4.2)
#2: /SUBTYPE(moulded_form_design_definition)/ (см. 5.1.14.3.2)
#3: /SUBTYPE(stability_definition)/ (см. 5.1.7.11.2)
5.1.4.2.4 design_definition для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(hydrostatic_definition)/ (см. 5.1.7.4.3)
#2: /SUBTYPE(moulded_form_design_definition)/ (см. 5.1.14.3.7)
#3: /SUBTYPE(stability_definition)/ (см. 5.1.7.11.3)
5.1.4.2.5 design_definition для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(hydrostatic_definition)/ (см. 5.1.7.4.5)
#2: /SUBTYPE(moulded_form_design_definition)/ (см. 5.1.14.3.8)
#3: /SUBTYPE(stability_definition)/ (см. 5.1.7.11.4)
5.1.4.2.6 design_definition для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(hydrostatic_definition)/ (см. 5.1.7.4.6)
#2: /SUBTYPE(moulded_form_design_definition)/ (см. 5.1.14.3.9)
#3: /SUBTYPE(stability_definition)/ (см. 5.1.7.11.5)
5.1.4.2.7 design_definition для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(hydrostatic_definition)/ (см. 5.1.7.4.7)
#2: /SUBTYPE(moulded_form_design_definition)/ (см. 5.1.14.3.10)
#3: /SUBTYPE(stability_definition)/ (см. 5.1.7.11.6)
5.1.4.3 Прикладной элемент FUNCTIONAL_DEFINITION
#1: значением functional definition является moulded_form_functional_definition
#2: значением functional definition является Shiptype
Элемент ПИМ:
#1: /SUBTYPE(moulded_form_functional_definition)/ (см. 5.1.14.4)
#2: /SUBTYPE(Shiptype)/ (см. 5.1.12.11)
5.1.4.3.1 description
Элемент ПИМ:
#1: /SUBTYPE(moulded_form_functional_definition)/ (см. 5.1.14.4.1)
#2: /SUBTYPE(Shiptype)/ (см. 5.1.12.11.1)
5.1.4.3.2 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(moulded_form_functional_definition)/ (см. 5.1.14.4.4)
#2: /SUBTYPE(Shiptype)/ (см. 5.1.12.11.3)
5.1.4.3.3 user_def_function
Элемент ПИМ:
#1: /SUBTYPE(moulded_form_functional_definition)/ (см. 5.1.14.4.3)
#2: /SUBTYPE(Shiptype)/ (см. 5.1.12.11.2)
5.1.4.3.4 functional_definition для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(moulded_form_functional_definition)/ (см. 5.1.14.4.5)
#2: /SUBTYPE(Shiptype)/ (см. 5.1.12.11.4)
5.1.4.3.5 functional_definition для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(moulded_form_functional_definition)/ (см. 5.1.14.4.6)
#2: /SUBTYPE(Shiptype)/ (см. 5.1.12.11.5)
5.1.4.4 Прикладной элемент GENERAL_CHARACTERISTICS_DEFINITION
#1: если значением элемента general_characteristics_definition является class and_statutory_designation
#2: если значением элемента general_characteristics_definition является class_parameters
#3: если значением элемента general_characteristics_definition является global_axis_placement
#4: если значением элемента general_characteristics_definition является owner_designation
#5: если значением элемента general_characteristics_definition является principal_characteristics
#6: если значением элемента general_characteristics_definition является ship_designation
#7: если значением элемента general_characteristics_definition является shipyard_designation
#8: если значением элемента general_characteristics_definition является ship_overall_dimensions
Элемент ПИМ:
#1: /SUBTYPE(class_and_statutory_designation)/ (см. 5.1.12.2)
#2: /SUBTYPE(class_parameters)/ (см. 5.1.12.4)
#3: /SUBTYPE(global_axis_placement)/ (см. 5.1.9.3)
#4: /SUBTYPE(owner_designation)/ (см. 5.1.12.6)
#5: /SUBTYPE(principal_characteristics)/ (см. 5.1.12.7)
#6: /SUBTYPE(ship_designation)/ (см. 5.1.12.10)
#7: /SUBTYPE(shipyard_designation)/ (см. 5.1.12.12)
#8: /SUBTYPE(ship_overall_dimensions)/ (см. 5.1.11.11)
5.1.4.4.1 description
Элемент ПИМ:
#1: /SUBTYPE(class_and_statutory_designation)/ (см. 5.1.12.2.2)
#2: /SUBTYPE(class_parameters)/ (см. 5.1.12.4.2)
#3: /SUBTYPE(global_axis_placement)/ (см. 5.1.9.3.2)
#4: /SUBTYPE(owner_designation)/ (см. 5.1.12.6.1)
#5: /SUBTYPE(principal_characteristics)/ (см. 5.1.12.7.2)
#6: /SUBTYPE(ship_designation)/ (см. 5.1.12.10.2)
#7: /SUBTYPE(shipyard_designation)/ (см. 5.1.12.12.1)
#8: /SUBTYPE(ship_overall_dimensions)/ (см. 5.1.11.11.1)
5.1.4.4.2 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(class_and_statutory_designation)/ (см. 5.1.12.2.3)
#2: /SUBTYPE(class_parameters)/ (см. 5.1.12.4.8)
#3: /SUBTYPE(global_axis_placement)/ (см. 5.1.9.3.4)
#4: /SUBTYPE(owner_designation)/ (см. 5.1.12.6.6)
#5: /SUBTYPE(principal_characteristics)/ (см. 5.1.12.7.12)
#6: /SUBTYPE(ship_designation)/ (см. 5.1.12.10.7)
#7: /SUBTYPE(shipyard_designation)/ (см. 5.1.12.12.6)
#8: /SUBTYPE(ship_overall_dimensions)/ (см. 5.1.11.11.7)
5.1.4.4.3 general_characteristics_definition для ship (как defined_for)
Элемент ПИМ:
#1: /SUBTYPE(class_and_statutory_designation)/ (см. 5.1.12.2.4)
#2: /SUBTYPE(class_parameters)/ (см. 5.1.12.4.9)
#3: /SUBTYPE(global_axis_placement)/ (см. 5.1.9.3.5)
#4: /SUBTYPE(owner_designation)/ (см. 5.1.12.6.7)
#5: /SUBTYPE(principal_characteristics)/ (см. 5.1.12.7.13)
#6: /SUBTYPE(ship_designation)/ (см. 5.1.12.10.8)
#7: /SUBTYPE(shipyard_designation)/ (см. 5.1.12.12.7)
#8: /SUBTYPE(ship_overall_dimensions)/ (см. 5.1.11.11.8)
5.1.4.4.4 general_characteristics_definition для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(class_and_statutory_designation)/ (см. 5.1.12.2.5)
#2: /SUBTYPE(class_parameters)/ (см. 5.1.12.4.10)
#3: /SUBTYPE(global_axis_placement)/ (см. 5.1.9.3.6)
#4: /SUBTYPE(owner_designation)/ (см. 5.1.12.6.8)
#5: /SUBTYPE(principal_characteristics)/ (см. 5.1.12.7.14)
#6: /SUBTYPE(ship_designation)/ (см. 5.1.12.10.9)
#7: /SUBTYPE(shipyard_designation)/ (см. 5.1.12.12.8)
#8: /SUBTYPE(ship_overall_dimensions)/ (см. 5.1.11.11.9)
5.1.4.4.5 general_characteristics_definition для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(class_and_statutory_designation)/ (см. примечание)
#2: /SUBTYPE(class_parameters)/ (см. 5.1.12.4.11)
#3: /SUBTYPE(global_axis_placement)/ (см. 5.1.9.3.7)
#4: /SUBTYPE(owner_designation)/ (см. примечание)
#5: /SUBTYPE(principal_characteristics)/ (см. 5.1.12.7.15)
#6: /SUBTYPE(ship_designation)/ (см. примечание)
#7: /SUBTYPE(shipyard_designation)/ (см. примечание)
#8: /SUBTYPE(ship_overall_dimensions)/ (см. 5.1.11.11.10)
Примечание - Для этого супертипа атрибут был переопределен в ПЭМ как совокупность нуля, что интерпретируется как отсутствие необходимости атрибута.
5.1.4.4.6 general_characteristics_definition для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
#1: /SUBTYPE(class_and_statutory_designation)/ (см. примечание)
#2: /SUBTYPE(class_parameters)/ (см. 5.1.12.4.12)
#3: /SUBTYPE(global_axis_placement)/ (см. 5.1.9.3.8)
#4: /SUBTYPE(owner_designation)/ (см. примечание)
#5: /SUBTYPE(principal_characteristics)/ (см. 5.1.12.7.16)
#6: /SUBTYPE(ship_designation)/ (см. примечание)
#7: /SUBTYPE(shipyard_designation)/ (см. примечание)
#8: /SUBTYPE(ship_overall_dimensions)/ (см. 5.1.11.11.11)
Примечание - Для этого супертипа атрибут был переопределен в ПЭМ как совокупность нуля, что интерпретируется как отсутствие необходимости атрибута.
5.1.5 Функциональная единица external_references
5.1.5.1 Прикладной элемент DOCUMENT
Элемент ПИМ:
document
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(document,'document', 'versionable object')/]
[/ROOT_CLASS(document,'versionable object')/]}
5.1.5.1.1 author
#1: если значением элемента author является person
#2: если значением элемента author является organization
#3: если значением элемента author является person_and_organization
Элемент ПИМ:
#1: applied_person_assignment.assigned_person
#2: applied_organization_assignment.assigned_organization
#3: applied_person_and_organization_assignment.assigned_person_and_organization
Источник:
#1: ИСО 10303-216
#2: ИСО 10303-216
#3: ИСО 10303-216
Ссылочный путь:
#1: /PERS_ASSGN(document,'author')/
#2: /ORG_ASSGN (document,'author')/
#3: /PERS_ORG_ASSGN(document,'author')/
5.1.5.1.2 description
Элемент ПИМ:
document.description
Источник:
ИСО 10303-41
5.1.5.1.3 source_type
Элемент ПИМ:
document_representation_type.name
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
document <-
document_representation_type.represented_document
document_representation_type
document_representation_type.name
5.1.5.1.4 title
Элемент ПИМ:
document.name
Источник:
ИСО 10303-41
5.1.5.1.5 version_id
Элемент ПИМ:
applied_identification_assignment.assigned_id
Источник:
ИСО 10303-216
Правила:
Ссылочный путь:
/VERSION_ID(document)/
5.1.5.2 Прикладной элемент DOCUMENT_PORTION
Элемент ПИМ:
document_usage_constraint
Источник:
ИСО 10303-41
5.1.5.2.1 element_type
Элемент ПИМ:
document_usage_constraint.subject_element
Источник:
ИСО 10303-41
5.1.5.2.2 element_value
Элемент ПИМ:
document_usage_constraint.subject_element_value
Источник:
ИСО 10303-41
5.1.5.2.3 document_portion для document (как source)
Элемент ПИМ:
document_usage_constraint.source
Ссылочный путь:
document_usage_constraint
document_usage_constraint.source -> document
5.1.5.3 Прикладной элемент DOCUMENT_REFERENCE
Элемент ПИМ:
document
Источник:
ИСО 10303-41
Ссылочный путь:
{/ROOT_CLASS(document,'document reference')/}
5.1.5.3.1 document_reference для document (как assigned_document)
Элемент ПИМ:
PATH
Ссылочный путь:
document
5.1.5.3.2 document_reference для document_portion (как assigned_document)
Элемент ПИМ:
PATH
Ссылочный путь:
document <-
document_usage_constraint.source
document_usage_constraint
5.1.5.4 Прикладной элемент DOCUMENT_REFERENCE_WITH_ADDRESS
Элемент ПИМ:
document
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(document,'document reference with address','document reference')/]
[/ROOT_CLASS(document,'document reference')/]
[/CLASS(document,'document reference with address','external reference')/]
[/ROOT_CLASS(document,'external reference')/]}
5.1.5.4.1 description
Примечание - Атрибут унаследован из супертипа External_reference (см. 5.1.5.6).
Элемент ПИМ:
identification_role.description
Источник:
ИСО 10303-41
Ссылочный путь:
document
external_identification_item = document
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment <=
external_identification_assignment <=
identification_assignment
identification_assignment.role ->
identification_role
{identification_role.name = 'external reference'}
identification_role.description
5.1.5.4.2 document_reference_with_address для document (как assigned_document)
Примечание - Атрибут унаследован из супертипа Document_reference (см. 5.1.5.3).
Элемент ПИМ:
PATH
Ссылочный путь:
document
5.1.5.4.3 document_reference_with_address для document_portion (как assigned_document)
Примечание - Атрибут унаследован из супертипа Document_reference (см. 5.1.5.3).
Элемент ПИМ:
PATH
Ссылочный путь:
document <-
document_usage_constraint.source
document_usage_constraint
5.1.5.4.4 document_reference_with_address для external_storage (как location)
Примечание - Атрибут унаследован из супертипа External_reference (см. 5.1.5.6).
Элемент ПИМ:
PATH
Ссылочный путь:
document
external_identification_item = document
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment <=
external_identification_assignment
[external_identification_assignment.source ->
external_source
{/CLASS_ID(external_source,'external storage')/}]
[external_identification_assignment <=
identification_assignment
identification_assignment.role ->
identification_role
{identification_role.name = 'external reference'}]
5.1.5.4.5 document_reference_with_address для universal_resource_locator (как location)
Примечание - Атрибут унаследован из супертипа External_reference (см. 5.1.5.6).
Элемент ПИМ:
PATH
Ссылочный путь:
document
external_identification_item = document
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment <=
external_identification_assignment
[external_identification_assignment.source ->
external_source
{/CLASS_ID(external_source,'universal resource locator')/}]
[external_identification_assignment <=
identification_assignment
identification_assignment.role ->
identification_role
{identification_role.name = 'external reference'}]
5.1.5.5 Прикладной элемент EXTERNAL_INSTANCE_REFERENCE
Элемент ПИМ:
applied_external_identification_assignment
Источник:
ИСО 10303-216
Ссылочный путь:
applied_external_identification_assignment <=
external_identification_assignment <=
{/ID_ROLE('external instance reference')/}
5.1.5.5.1 entity_type
Элемент ПИМ:
external_source.source_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
applied_external_identification_assignment <=
external_identification_assignment
external_identification_assignment.source ->
external_source
{/DESCRIPTION_ASSGN(external_source)/
description_attribute.attribute_value = 'schema name'}
external_source_relationship.relating_source <-
external_source_relationship
{external_source_relationship.name = 'composition'}
external_source_relationship.related_source ->
external_source
{/DESCRIPTION_ASSGN(external_source)/
description_attribute.attribute_value = 'entity type'}
external_source.source_id
{-> source_item
source_item = identifier}
5.1.5.5.2 schema_name
Элемент ПИМ:
external_source.source_id
Источник:
ИСО 10303-41
Ссылочный путь:
applied_external_identification_assignment <=
external_identification_assignment
external_identification_assignment.source ->
external_source
{/DESCRIPTION_ASSGN(external_source)/
description_attribute.attribute_value = 'schema name'}
external_source.source_id
{-> source_item
source_item = identifier}
5.1.5.5.3 external_instance_reference для global_id (как target_guid)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
applied_external_identification_assignment <=
external_identification_assignment <=
identification_assignment
identification_assignment.assigned_id
5.1.5.6 Прикладной элемент EXTERNAL_REFERENCE
Элемент ПИМ:
applied_external_identification_assignment
Источник:
ИСО 10303-216
Ссылочный путь:
applied_external_identification_assignment <=
external_identification_assignment <=
identification_assignment
identification_assignment.role ->
identification_role
{identification_role.name ='external reference'}
5.1.5.6.1 description
Элемент ПИМ:
identification_role.description
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
applied_external_identification_assignment <=
external_identification_assignment <=
identification_assignment
identification_assignment.role ->
identification_role
identification_role.description
5.1.5.6.2 external_reference для external_storage (как location)
Элемент ПИМ:
PATH
Ссылочный путь:
applied_external_identification_assignment <=
external_identification_assignment
external_identification_assignment.source ->
external_source
{/CLASS_ID(external_source,'external storage')/}
5.1.5.6.3 external_reference для universal_resource_locator (как location)
Элемент ПИМ:
PATH
Ссылочный путь:
applied_external_identification_assignment <=
external_identification_assignment
external_identification_assignment.source ->
external_source
{/CLASS_ID(external_source,'universal resource locator')/}
5.1.5.7 Прикладной элемент EXTERNAL_STORAGE
Элемент ПИМ:
external_source
Источник:
ИСО 10303-41
Ссылочный путь:
{/ROOT_CLASS(external_source, 'external storage')/}
5.1.5.7.1 location
Элемент ПИМ:
external_source.source_id
Источник:
ИСО 10303-41
Ссылочный путь:
external_source
external_source.source_id
{-> source_item
source_item = identifier}
5.1.5.8 Прикладной элемент UNIVERSAL_RESOURCE_LOCATOR
Элемент ПИМ:
external_source
Источник:
ИСО 10303-41
Ссылочный путь:
{/ROOT_CLASS(external_source, 'universal resource locator')/}
5.1.5.8.1 location
Элемент ПИМ:
external_source.source_id
Источник:
ИСО 10303-41
Ссылочный путь:
external_source
external_source.source_id
{-> source_item
source_item = identifier}
5.1.6 Функциональная единица Hull_class_applicability
5.1.6.1 Прикладной элемент HULL_APPLICABILITY
Элемент ПИМ:
serial_numbered_effectivity
Источник:
ИСО 10303-41
5.1.6.1.1 end_hull
Элемент ПИМ:
serial_numbered_effectivity.effectivity_end_id
Источник:
ИСО 10303-41
5.1.6.1.2 start_hull
Элемент ПИМ:
serial_numbered_effectivity.effectivity_start_id
Источник:
ИСО 10303-41
5.1.6.1.3 hull_applicability для definition (как definitions_for_hulls)
Элемент ПИМ:
PATH
Ссылочный путь:
serial_numbered_effectivity <=
effectivity
{effectivity.id = 'hull applicability'}
effectivity <-
effectivity_assignment.assigned_effectivity
effectivity_assignment
/ROLE_ASSGN(effectivity_assignment)/
{object_role.name = 'definitions for hulls'}
effectivity_assignment =>
applied_effectivity_assignment
applied_effectivity_assignment.items [i] ->
effectivity_item
(effectivity_item = product_definition
{/CLASS_ID(product_definition, 'definition')/})
(effectivity_item = property_definition
{/CLASS_ID(property_definition, 'definition')/})
(effectivity_item = product_definition_shape
{/CLASS_ID(product_definition_shape, 'definition')/})
(effectivity_item = product_related_product_category
{/CLASS_ID(product_related_product_category, 'definition')/})
5.1.6.1.4 hull_applicability для item (как items_for_hulls)
Элемент ПИМ:
PATH
Ссылочный путь:
serial_numbered_effectivity <=
effectivity
{effectivity.id = 'hull applicability'}
effectivity <-
effectivity_assignment.assigned_effectivity
effectivity_assignment
/ROLE_ASSGN(effectivity_assignment)/
{object_role.name = 'items for hulls'}
effectivity_assignment =>
applied_effectivity_assignment
applied_effectivity_assignment.items [i] ->
effectivity_item
(effectivity_item = product_definition
{/CLASS_ID(product_definition, 'item')/})
5.1.7 Функциональная единица hydrostatics
5.1.7.1 Прикладной элемент ADDITION_OF_MOULDED_FORM
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
/ROOT_CLASS(property_definition, 'addition of moulded form')/
5.1.7.1.1 addition_of_moulded_form для moulded_form (как displacement_of_moulded_form_to_add_or_subtract)
Примечание - Атрибут унаследован из супертипа Displacement_operation (см. 5.1.7.2).
Элемент ПИМ:
/SUPERTYPE(Displacement_operation)/ (см. 5.1.7.2)
5.1.7.2 Прикладной элемент DISPLACEMENT_OPERATION
#1: значением элемента displacement_operation является Addition_of_moulded_form
#2: значением элемента displacement_operation является Subtraction_of_moulded_form
Элемент ПИМ:
#1: /SUBTYPE(Addition_of_moulded_form)/ (см. 5.1.7.1)
#2: /SUBTYPE(Subtraction_of_moulded_form)/ (см. 5.1.7.15)
5.1.7.2.1 displacement_operation для moulded_form (как displacement_of_moulded_form_to_add_or_subtract)
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_TO_PROD_DEF/
{/CLASS_ID(product_definition, 'moulded_form')/}
5.1.7.3 Прикладной элемент FLOATING_POSITION
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(compound_representation_item, 'floating position')/
5.1.7.3.1 angle_of_heel
Элемент ПИМ:
plane_angle_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('angle of heel')/
value_representation_item
value_representation_item.value_component
{-> measure_value = plane_angle_measure}
5.1.7.3.2 angle_of_trim
Элемент ПИМ:
plane_angle_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('angle of trim')/
value_representation_item
value_representation_item.value_component
{-> measure_value = plane_angle_measure}
5.1.7.3.3 breadth_of_waterline
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('breadth of waterline')/
value_representation_item
value_representation_item.value_component
{-> measure_value = positive_length_measure}
5.1.7.3.4 draught_at_amidships
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('draught at amidships')/
value_representation_item
value_representation_item.value_component
{-> measure_value = positive_length_measure}
5.1.7.3.5 length_of_waterline
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('length of waterline')/
value_representation_item
value_representation_item.value_component
{-> measure_value = positive_length_measure}
5.1.7.3.6 moulded_form_displacement
Элемент ПИМ:
volume_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('moulded form displacement')/
value_representation_item
value_representation_item.value_component
{-> measure_value = volume_measure}
5.1.7.4 Прикладной элемент HYDROSTATIC_DEFINITION
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(property_definition, 'hydrostatic definition', 'design definition')/]
[/CLASS(property_definition, 'design definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.7.4.1 description
Элемент ПИМ:
property_definition.description
Источник:
ИСО 10303-41
5.1.7.4.2 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object в 5.1.9.17 через супертип Design_definition (см. 5.1.4.2), который наследуется от супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(property_definition)/
5.1.7.4.3 hydrostatic_definition для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_TO_PROD_DEF/
/PROD_DEF_PRODUCT/
{/CLASS_ID(product, 'ship')/}
5.1.7.4.4 hydrostatic_definition для displacement_operation (как displacement_changes)
Элемент ПИМ:
PATH
Ссылочный путь:
property_definition <-
property_definition_relationship.related_property_definition
property_definition_relationship
{property_definition_relationship.name = 'displacement change'}
property_definition_relationship.relating_property_definition ->
property_definition
{(/CLASS_ID(property_definition, 'addition of moulded form')/)
(/CLASS_ID(property_definition, 'subtraction of moulded form')/)}
5.1.7.4.5 hydrostatic_definition для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
property_definition
identification_item = property_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.7.4.6 hydrostatic_definition для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_UNITS('local units')/
unit
unit = derived_unit
derived_unit
5.1.7.4.7 hydrostatic_definition для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_UNITS('local units')/
unit
unit = named_unit
named_unit
5.1.7.4.8 hydrostatic_definition для hydrostatic_table (как representations)
Примечание - Атрибут унаследован из супертипа Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/PROP_DEF_TO_REP/
{/CLASS_ID(representation, 'hydrostatic table')/}
5.1.7.5 Прикладной элемент HYDROSTATIC_POSITION_VALUE
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/CLASS_ID(compound_representation_item, 'centre location')/
5.1.7.5.1 hydrostatic_position_value для centre_location (как position)
Элемент ПИМ:
IDENTICAL MAPPING
5.1.7.6 Прикладной элемент HYDROSTATIC_PROPERTIES_FOR_CONSTANT_FLOATING_POSITION
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(compound_representation_item, 'hydrostatic properties for constant floating position')/
5.1.7.6.1 hydrostatic_properties_for_constant_floating_position для floating_position (как definition_of_floating_position)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('definition of floating position')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'floating position')/}
5.1.7.6.2 hydrostatic_properties_for_constant_floating_position для hydrostatic_property_value (как hydrostatic_property_values)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('hydrostatic property value')/
(compound_representation_item
{/CLASS_ID(compound_representation_item, 'centre_location)/})
(value_representation_item)
5.1.7.6.3 hydrostatic_properties_for_constant_floating_position для hydrostatic_table (как related_hydrostatic_table)
Примечание - Атрибут является обратным отношением для элементов атрибута Hydrostatic_table (см. 5.1.7.10.3).
Элемент ПИМ:
PATH
Ссылочный путь:
compound_representation_item <=
representation_item <-
representation.items [i]
representation
{/CLASS_ID(representation, 'hydrostatic table')/}
5.1.7.7 Прикладной элемент HYDROSTATIC_PROPERTY
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(compound_representation_item, 'hydrostatic property')/
5.1.7.7.1 property_measure
#1: значением элемента property_measure является area_measure
#2: значением элемента property_measure является inertia_moment_measure
#3: значением элемента property_measure является length_measure
#4: значением элемента property_measure является moment_measure
#5: значением элемента property_measure является centre_location
Элемент ПИМ:
#1: area_measure
#2: context_dependent_measure
#3: length_measure
#4: moment_measure
#5: compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
#1: /COMPOUND('property measure')/
value_representation_item
{value_representation_item.value_component ->
measure_value = area_measure}
#2: /COMPOUND('property measure')/
value_representation_item
{value_representation_item.value_component ->
measure_value = context_dependent_measure}
#3: /COMPOUND('property measure')/
value_representation_item
{value_representation_item.value_component ->
measure_value = length_measure}
#4: /COMPOUND('property measure')/
value_representation_item
{value_representation_item.value_component ->
measure_value = moment_measure}
#5: /COMPOUND('property measure')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'centre_location')/}
5.1.7.7.2 property_type
Элемент ПИМ:
descriptive_representation_item
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/COMPOUND('property type')/
descriptive_representation_item
{(descriptive_representation_item.description = 'waterplane area')
(descriptive_representation_item.description = 'midship section area')
(descriptive_representation_item.description = 'wetted surface area')
(descriptive_representation_item.description = 'moment for unit change of trim')
(descriptive_representation_item.description = 'longitudinal second moment of area of waterplane')
(descriptive_representation_item.description = 'longitudinal metacentric height')
(descriptive_representation_item.description = 'transverse second moment of area of waterplane')
(descriptive_representation_item.description = 'transverse metacentric height')
(descriptive_representation_item.description = 'centre of buoyancy')
(descriptive_representation_item.description = 'centre of flotation')
(descriptive_representation_item.description = 'centre of lateral resistance')}
5.1.7.8 Прикладной элемент HYDROSTATIC_PROPERTY_VALUE
Элемент ПИМ:
(compound_representation_item)
(value_representation_item.value_component)
Источник:
ИСО 10303-43
Ссылочный путь:
/SUBTYPE(Hydrostatic_position_value)/ (см. 5.1.7.5)
/SUBTYPE(Hydrostatic_scalar_value)/ (см. 5.1.7.9)
5.1.7.9 Прикладной элемент HYDROSTATIC_SCALAR_VALUE
Элемент ПИМ:
value_representation_item.value_component
Источник:
ИСО 10303-43
Ссылочный путь:
{value_representation_item value_representation_item.value_component -> measure_value = ratio_measure}
5.1.7.9.1 scalar
Элемент ПИМ:
IDENTICAL MAPPING
5.1.7.10 Прикладной элемент HYDROSTATIC_TABLE
Элемент ПИМ:
representation
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(representation, 'hydrostatic table')/
5.1.7.10.1 name
Элемент ПИМ:
representation.name
Источник:
ИСО 10303-43
5.1.7.10.2 mean_shell_thickness
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/REP_TO_VAL_REP_ITEM('mean shell thickness', positive_length_measure)/
5.1.7.10.3 hydrostatic_table для hydrostatic_properties_for_constant_floating_position (как items)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
representation
representation.items [i] ->
representation_item =>
compound_representation_item
{/CLASS_ID(compound_representation_item, 'hydrostatic properties for constant floating position')/}
5.1.7.10.4 hydrostatic_table для hydrostatic_property (как properties_in_the_hydrostatic_table)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
representation
representation.items [i] ->
representation_item =>
compound_representation_item
{/CLASS_ID(compound_representation_item, 'hydrostatic property')/}
5.1.7.11 Прикладной элемент STABILITY_DEFINITION
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(property_definition, 'stability definition', 'design definition')/]
[/CLASS(property_definition, 'design definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.7.11.1 description
Элемент ПИМ:
property_definition.description
Источник:
ИСО 10303-41
5.1.7.11.2 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через супертип Design_definition (см. 5.1.4.2), который наследуется от супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(property_definition)/
5.1.7.11.3 stability_definition для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_TO_PROD_DEF/
/PROD_DEF_PRODUCT/
{/CLASS_ID(product, 'ship')/}
5.1.7.11.4 stability_definition для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
property_definition
identification_item = property_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.7.11.5 stability_definition для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_UNITS('local units')/
unit
unit = derived_unit
derived_unit
5.1.7.11.6 stability_definition для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_UNITS('local units')/
unit
unit = named_unit
named_unit
5.1.7.11.7 stability_definition для stability_table (как representations)
Примечание - Атрибут унаследован из супертипа Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/PROP_DEF_TO_REP/
{/CLASS_ID(representation, 'stability table')/}
5.1.7.12 Прикладной элемент STABILITY_PROPERTIES_FOR_ONE_FLOATING_POSITION
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(compound_representation_item, 'stability properties for one floating position')/
5.1.7.12.1 stability_properties_for_one_floating_position для centre_location (как centre_of_gravity_above_keel)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('centre of gravity above keel')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'centre location')/}
5.1.7.12.2 stability_properties_for_one_floating_position для floating_position (как definition_of_starting_floating_position)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('definition of starting floating position')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'floating position')/}
5.1.7.12.3 stability_properties_for_constant_floating_position для stability_table (как related_stability_table)
Примечание - Атрибут является обратным отношением для элементов атрибута Stability_table (см. 5.1.7.14.3).
Элемент ПИМ:
PATH
Ссылочный путь:
compound_representation_item <=
representation_item <-
representation.items [i]
representation
{/CLASS_ID(representation, 'stability table')/}
5.1.7.12.4 stability_properties_for_one_floating_position для stability_property (как stability_properties_for_different_angles_of_heel)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('stability properties for different angles of heel')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'stability property')/}
5.1.7.13 Прикладной элемент STABILITY_PROPERTY
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(compound_representation_item, 'stability property')/
5.1.7.13.1 angle_of_heel
Элемент ПИМ:
plane_angle_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('angle of heel')/
value_representation_item
{value_representation_item.value_component ->
measure_value = plane_angle_measure}
5.1.7.13.2 righting arm
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('righting arm')/
value_representation_item
{value_representation_item.value_component ->
measure_value = positive_length_measure
5.1.7.13.3 stability_property для centre_location (как centre_of_buoyancy)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('centre of buoyancy')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'centre location')/}
5.1.7.14 Прикладной элемент STABILITY_TABLE
Элемент ПИМ:
representation
Источник:
ИСО 10303-41
Ссылочный путь:
/ROOT_CLASS(representation, 'stability table')/
5.1.7.14.1 mean_shell_thickness
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/REP_TO_VAL_REP_ITEM('mean shell thickness', positive_length_measure)/
5.1.7.14.2 name
Элемент ПИМ:
representation.name
Источник:
ИСО 10303-43
5.1.7.14.3 stability_table для stability_properties_for_one_floating_position (как items)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
representation
representation.items [i] ->
representation_item =>
compound_representation_item
{/CLASS_ID(compound_representation_item, 'stability properties for one floating position')/}
5.1.7.15 Прикладной элемент SUBTRACTION_OF_MOULDED_FORM
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
/ROOT_CLASS(property_definition, 'subtraction of moulded form')/
5.1.7.15.1 subtraction_of_moulded_form для moulded_form (как displacement_of_moulded_form_to_add_or_subtract)
Примечание - Атрибут унаследован из супертипа Displacement_operation (см. 5.1.7.2).
Элемент ПИМ:
/SUPERTYPE(Displacement_operation)/ (см. 5.1.7.2)
5.1.8 Функциональная единица items
5.1.8.1 Прикладной элемент DEFINABLE_OBJECT
#1: если значением элемента definable_object является item
#2: если значением элемента definable_object является item_relationship
#3: если значением элемента definable_object является item_structure
Элемент ПИМ:
#1: /SUBTYPE(item)/ (см. 5.1.8.3)
#2: /SUBTYPE(item_relationship)/ (см. 5.1.8.4)
#3: /SUBTYPE(item_structure)/ (см. 5.1.8.5)
5.1.8.1.1 definable_object для global_id (как id)
Элемент ПИМ:
#1: /SUBTYPE(item)/(см. 5.1.8.3)
#2: /SUBTYPE(item_relationship)/ (см. 5.1.8.4)
#3: /SUBTYPE(item_structure)/ (см. 5.1.8.5)
5.1.8.2 Прикладной элемент GLOBAL_ID
Элемент ПИМ:
applied_identification_assignment
Источник:
ИСО 10303-216
Ссылочный путь:
applied_identification_assignment <=
identification_assignment
{identification_assignment.role->
identification_role
identification_role.name = 'globally unambiguous identifier'}
5.1.8.2.1 id
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Ссылочный путь:
applied_identification_assignment <=
identification_assignment
identification_assignment.assigned_id
5.1.8.3 Прикладной элемент ITEM
#1: если значением элемента item является change
#2: если значением элемента item является moulded_form
#3: если значением элемента item является ship
#4: если значением элемента item является ship_moulded_form
Элемент ПИМ:
#1: /SUBTYPE(change)/ (см. 5.1.3.4)
#2: /SUBTYPE(moulded_form)/ (см. 5.1.14.1)
#3: /SUBTYPE(ship)/ (см. 5.1.8.6)
#4: /SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11)
5.1.8.3.1 description
Элемент ПИМ:
#1: /SUBTYPE(change)/ (см. 5.1.3.4.1)
#2: /SUBTYPE(moulded_form)/ (см. 5.1.14.1.1)
#3: /SUBTYPE(ship)/ (см. 5.1.8.6.1)
#4: /SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.1)
5.1.8.3.2 name
Элемент ПИМ:
#1: /SUBTYPE(change)/ (см. 5.1.3.4.2)
#2: /SUBTYPE(moulded_form)/ (см. 5.1.14.1.2)
#3: /SUBTYPE(ship)/ (см. 5.1.8.6.2)
#4: /SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.2)
5.1.8.3.3 item для external_reference (как documentation)
Элемент ПИМ:
#1: /SUBTYPE(change)/ (см. 5.1.3.4.4)
#2: /SUBTYPE(moulded_form)/ (см. 5.1.14.1.3)
#3: /SUBTYPE(ship)/ (см. 5.1.8.6.3)
#4: /SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.4)
5.1.8.3.4 item для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definable_object (см. 5.1.8.1).
Элемент ПИМ:
#1: /SUBTYPE(change)/ (см. 5.1.3.4.5)
#2: /SUBTYPE(moulded_form)/ (см. 5.1.14.1.4)
#3: /SUBTYPE(ship)/ (см. 5.1.8.6.4)
#4: /SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.7)
5.1.8.3.5 item для ship (как ship_context)
Элемент ПИМ:
#1: /SUBTYPE(change)/ (см. 5.1.3.4.6)
#2: /SUBTYPE(moulded_form)/ (см. 5.1.14.1.5)
#4: /SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.10)
5.1.8.4 Прикладной элемент ITEM_RELATIONSHIP
Элемент ПИМ:
/SUBTYPE(moulded_form_relationship)/ (см. 5.1.14.5)
5.1.8.4.1 description
Элемент ПИМ:
/SUBTYPE(moulded_form_relationship)/ (см. 5.1.14.5.1)
5.1.8.4.2 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUBTYPE(moulded_form_relationship)/ (см. 5.1.14.5.2)
5.1.8.4.3 item_relationship для external_instance_reference (как external_item_1)
Элемент ПИМ:
/SUBTYPE(moulded_form_relationship)/ (см. 5.1.14.5.3)
5.1.8.4.4 item_relationship для external_instance_reference (как external_item_2)
Элемент ПИМ:
/SUBTYPE(moulded_form_relationship)/ (см. 5.1.14.5.4)
5.1.8.4.5 item_relationship для global_id (как id)
Примечание - Атрибут унаследован из супертипа (см. 5.1.8.1)
Элемент ПИМ:
/SUBTYPE(moulded_form_relationship)/ (см. 5.1.14.5.5)
5.1.8.4.6 item_relationship для item (как item_1)
Элемент ПИМ:
/SUBTYPE(moulded_form_relationship)/ (см. 5.1.14.5.6)
5.1.8.4.7 item_relationship для item (как item_2)
Элемент ПИМ:
/SUBTYPE(moulded_form_relationship)/ (см. 5.1.14.5.7)
5.1.8.5 Прикладной элемент ITEM_STRUCTURE
Элемент ПИМ:
/SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11)
5.1.8.5.1 description
Элемент ПИМ:
/SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.1)
5.1.8.5.2 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.3)
5.1.8.5.3 item_structure для external_instance_reference (как external_items)
Элемент ПИМ:
/SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.5)
5.1.8.5.4 item_structure для external_instance_reference (как external_relationships)
Элемент ПИМ:
/SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.6)
5.1.8.5.5 item_structure для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definable_object (см. 5.1.8.1).
Элемент ПИМ:
/SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.7)
5.1.8.5.6 item_structure для item (как items)
Элемент ПИМ:
/SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.8)
5.1.8.5.7 item_structure для item_relationship (как relationships)
Элемент ПИМ:
/SUBTYPE(ship_moulded_form)/ (см. 5.1.14.11.9)
5.1.8.6 Прикладной элемент SHIP
Элемент ПИМ:
product
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(product, 'ship', 'item')/]
[/CLASS(product, 'item', 'definable object')/] [/ROOT_CLASS(product, 'definable object')/]}
5.1.8.6.1 description
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
product.description
Источник:
ИСО 10303-41
5.1.8.6.2 name
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
product.name
Источник:
ИСО 10303-41
5.1.8.6.3 ship для external_reference (как documentation)
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
#1: Если "как documentation" ссылается на External_reference
Элемент ПИМ:
PATH
Ссылочный путь:
product
product = external_identification_item
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment
#2: Если "как documentation" ссылается на Document_reference_with_address
Элемент ПИМ:
PATH
Ссылочный путь:
product
/DOC_REF(product,'documentation')/
document
{/CLASS_ID(document, 'document reference with address')/}
5.1.8.6.4 ship для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definable_object (см. 5.1.8.1).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product
identification_item = product<-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.8.6.5 ship для item (как ship_items)
#1: если значением элемента item является moulded_form or ship_moulded_form
#2: если значением элемента item является change
Элемент ПИМ:
#1: PATH
#2: PATH
Ссылочный путь:
#1: product <-
product_definition_formation.of_product
product_definition_formation <-
product_definition.formation
product_definition
#2: product
action_item = product
action_item <-
applied_action_assignment.items[i]
applied_action_assignment
applied_action_assignment.assigned_action ->
action
5.1.8.6.6 single_hull_or_class
Элемент ПИМ:
product_context
Источник:
ИСО 10303-41
Ссылочный путь:
product
product.frame_of_reference ->
product_context
{(product_context.discipline_type = 'design for single hull')
(product_context.discipline_type = 'design for multiple hulls')}
5.1.8.6.7 ship для derived_unit (как units)
Элемент ПИМ:
PATH
Ссылочный путь:
product <-
product_definition_formation.of_product
product_definition_formation<-
product_definition.formation
/PROD_DEF_TO_UNITS('global units')/
unit
unit = derived_unit
derived_unit
5.1.8.6.8 ship для named_unit (как units)
Элемент ПИМ:
PATH
Ссылочный путь:
product <-
product_definition_formation.of_product
product_definition_formation<-
product_definition.formation
/PROD_DEF_TO_UNITS('global units')/
unit
unit = named_unit
named_unit
5.1.9 Функциональная единица location_concepts
5.1.9.1 Прикладной элемент BUTTOCK_TABLE
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(property_definition, 'buttock table', 'transversal table')/]
[/CLASS(property_definition, 'transversal table', 'spacing table')/]
[/CLASS(property_definition, 'spacing table', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.9.1.1 description
Примечание - Атрибут унаследован из супертипа Spacing_table (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.1)
5.1.9.1.2 name
Примечание - Атрибут унаследован из супертипа Spacing_table (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.2)
5.1.9.1.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.3)
5.1.9.1.4 buttock_table для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.4)
5.1.9.1.5 buttock_table для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.5)
5.1.9.1.6 buttock_table для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.6)
5.1.9.1.7 buttock_table для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.7)
5.1.9.1.8 buttock_table для transversal_position (как spacing_table_representations)
Примечание - Атрибут унаследован из супертипа Transversal_table (см. 5.1.9.13).
Элемент ПИМ:
/SUPERTYPE(transversal_table)/ (см. 5.1.9.13.8)
5.1.9.2 Прикладной элемент FRAME_TABLE
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(property_definition, 'frame table', 'longitudinal table')/]
[/CLASS(property_definition, 'longitudinal table', 'spacing table')/]
[/CLASS(property_definition, 'spacing table', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.9.2.1 description
Примечание - Атрибут унаследован из супертипа Spacing_table (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.1)
5.1.9.2.2 name
Примечание - Атрибут унаследован из супертипа Spacing_table (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.2)
5.1.9.2.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.3)
5.1.9.2.4 frame_table для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.4)
5.1.9.2.5 frame_table для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.5)
5.1.9.2.6 frame_table для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.6)
5.1.9.2.7 frame_table для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.7)
5.1.9.2.8 frame_table для longitudinal_position (как spacing_table_representations)
Примечание - Атрибут унаследован из супертипа Longitudinal_table (см. 5.1.9.7).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.8)
5.1.9.3 Прикладной элемент GLOBAL_AXIS_PLACEMENT
Элемент ПИМ:
[product_definition]
[axis2_placement_3d]
Источник:
ИСО 10303-41, ИСО 10303-42
Правила:
Ссылочный путь:
{[/CLASS(product_definition, 'global axis placement', 'general characteristics definition')/]
[/CLASS(product_definition, 'general characteristics definition', 'definition')/]
[/CLASS(product_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_definition, 'versionable object')/]}
/PROD_DEF_TO_REP('global axis placement')/
representation
{{representation.name = 'global axis representation'}
representation.context_of_items ->
representation_context =>
{representation_context.context_type = 'global coordinate space'}
geometric_representation_context
{geometric_representation_context.coordinate_space_dimension = 3}}
/REP_ITEM('global axes and origin')/
geometric_representation_item =>
placement =>
axis2_placement_3d
5.1.9.3.1 after_perpendicular_offset
Элемент ПИМ:
value_representation_item.value_component
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/PROD_DEF_TO_REP('global axis placement')/
representation
{{representation.name = 'global axis representation'}
representation.context_of_items ->
representation_context =>
{representation_context.context_type = 'global coordinate space'}
geometric_representation_context
{geometric_representation_context.coordinate_space_dimension = 3}}
/REP_TO_VAL_REP_ITEM('after perpendicular offset', length_measure)/
5.1.9.3.2 description
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
product_definition.description
Источник:
ИСО 10303-41
5.1.9.3.3 orientation
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROD_DEF_TO_REP('global axis placement')/
representation
{{representation.name = 'global axis representation'}
representation.context_of_items ->
representation_context =>
{representation_context.context_type = 'global coordinate space'}}
/REP_ITEM('orientation')/
descriptive_representation_item
descriptive_representation_item.description
{(descriptive_representation_item.description = 'forward pointing')
(descriptive_representation_item.description = 'aft pointing')}
5.1.9.3.4 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition)/
5.1.9.3.5 global_axis_placement для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_PRODUCT/
{/CLASS_ID(product, 'ship')/}
5.1.9.3.6 global_axis_placement для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_definition
identification_item = product_definition <- applied_identification_assignment.items[i]
applied_identification_assignment
5.1.9.3.7 global_axis_placement для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_TO_UNITS('local_units')/
unit
unit = derived_unit
derived_unit
5.1.9.3.8 global_axis_placement для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_TO_UNITS('local_units')/
unit
unit = named_unit named_unit
5.1.9.4 Прикладной элемент LOCAL_CO_ORDINATE_SYSTEM
Элемент ПИМ:
[property_definition]
[axis2_placement_3d]
Источник:
ИСО 10303-41, ИСО 10303-42
Правила:
Ссылочный путь:
{[/CLASS(property_definition, 'local coordinate system', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
/PROP_DEF_REP_HELP('local coordinate system')/
representation
{{representation.name = 'local axis representation'}
representation.context_of_items ->
representation_context =>
{representation_context.context_type = 'local coordinate space'}
geometric_representation_context
{geometric_representation_context.coordinate_space_dimension = 3}}
/REP_ITEM('local axes and origin')/
geometric_representation_item =>
placement =>
axis2_placement_3d
5.1.9.4.1 description
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
property_definition.description
Источник:
ИСО 10303-41
5.1.9.4.2 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(property_definition)/
5.1.9.4.3 local_co_ordinate_system для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_TO_PROD_DEF/
5.1.9.4.4 local_co_ordinate_system для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
property_definition
identification_item = property_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.9.4.5 local_co_ordinate_system для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_UNITS('local_units')/
unit
unit = derived_unit
derived_unit
5.1.9.4.6 local_co_ordinate_system для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_UNITS('local_units')/
unit
unit = named_unit
named_unit
5.1.9.4.7 local_co_ordinate_system для global_axis_placement (как parent)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
axis2_placement_3d <=
placement <=
geometric_representation_item <=
representation_item <-
representation_map.mapping_origin
representation_map
{[representation_map.mapped_representation ->
representation
representation.name = 'local axis representation']}
representation_map <-
mapped_item.mapping_source
mapped_item
{mapped_item.name = 'local coordinate system position in global coordinate system'}
mapped_item.mapping_target ->
representation_item =>
geometric_representation_item =>
placement =>
axis2_placement_3d
5.1.9.4.8 local_co_ordinate_system для local_co_ordinate_system (как parent)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
axis2_placement_3d <=
placement <=
geometric_representation_item <=
representation_item <-
representation_map.mapping_origin
representation_map
{[representation_map.mapped_representation ->
representation
representation.name = 'local axis representation']}
representation_map <-
mapped_item.mapping_source
mapped_item
{mapped_item.name = 'local coordinate system position in parent local
coordinate system'}
mapped_item.mapping_target ->
representation_item =>
geometric_representation_item =>
placement =>
axis2_placement_3d
5.1.9.4.9 local_co_ordinate_system для local_co_ordinate_system_with_position_reference (как parent)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
axis2_placement_3d <=
placement <=
geometric_representation_item <=
representation_item <-
representation_map.mapping_origin
representation_map
{[representation_map.mapped_representation ->
representation
representation.name = 'local axis representation']}
representation_map <-
mapped_item.mapping_source
mapped_item
{mapped_item.name = 'local coordinate system position in parent local
coordinate system with position reference'}
mapped_item.mapping_target ->
representation_item =>
geometric_representation_item =>
placement =>
axis2_placement_3d
5.1.9.5 Прикладной элемент LOCAL_CO_ORDINATE_SYSTEM_WITH_POSITION_REFERENCE
Элемент ПИМ:
[property_definition]
[axis2_placement_3d]
Источник:
ИСО 10303-41, ИСО 10303-42
Правила:
Ссылочный путь:
{[/CLASS(property_definition, 'local coordinate system with position reference', 'local coordinate system')/]
[/CLASS(property_definition, 'local coordinate system', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
/PROP_DEF_REP_HELP('local coordinate system with position reference')/
representation
{{representation.name = 'local axis with position reference representation'}
representation.context_of_items ->
representation_context =>
{representation_context.context_type = 'local coordinate space'}
geometric_representation_context
{geometric_representation_context.coordinate_space_dimension = 3}}
/REP_ITEM('local axes and origin')/
geometric_representation_item =>
placement =>
axis2_placement_3d
5.1.9.5.1 description
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
/SUPERTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.1)
5.1.9.5.2 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.2)
5.1.9.5.3 local_co_ordinate_system_with_position_reference для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.3)
5.1.9.5.4 local_co_ordinate_system_with_position_reference для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.4)
5.1.9.5.5 local_co_ordinate_system_with_position_reference для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.5)
5.1.9.5.6 local_co_ordinate_system_with_position_reference для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.6)
5.1.9.5.7 local_co_ordinate_system_with_position_reference для length_measure (как longitudinal_ref)
Элемент ПИМ:
length_measure
Источник:
ИСО 10303-43
Ссылочный путь:
/PROP_DEF_REP_HELP('local coordinate system with position reference')/
representation
{representation.name = 'local axis with position reference representation'}
representation.items [i] ->
representation_item
representation_item =>
{representation_item.name = 'longitudinal ref} value_representation_item {value_representation_item.value_component ->
measure_value = length_measure}
5.1.9.5.8 local_co_ordinate_system_with_position_reference для spacing_position (как longitudinal_ref)
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/PROP_DEF_REP_HELP('local coordinate system with position reference')/
representation
{representation.name = 'local axis with position reference representation'}
representation.items [i] ->
representation_item
(representation_item =>
compound_representation_item
{/CLASS_HELP(compound_representation_item)/
(group.name = 'longitudinal position')
(group.name = 'spacing position with offset')
class}}
5.1.9.5.9 local_co_ordinate_system_with_position_reference для global_axis_placement (как parent)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
axis2_placement_3d <=
placement <=
geometric_representation_item <=
representation_item <-
representation_map.mapping_origin
representation_map
{[representation_map.mapped_representation ->
representation
representation.name = 'local axis with position reference representation']}
representation_map <-
mapped_item.mapping_source
mapped_item
{mapped_item.name = 'local coordinate system position in global coordinate system'}
mapped_item.mapping_target ->
representation_item =>
geometric_representation_item =>
placement =>
axis2_placement_3d
5.1.9.5.10 local_co_ordinate_system_with_position_reference для local_co_ordinate_system (как parent)
Элемент ПИМ:
/SUPERTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.8)
5.1.9.5.11 local_co_ordinate_system_with_position_reference для local_co_ordinate_system_with_position_reference (как parent)
Элемент ПИМ:
/SUPERTYPE(local_co_ordinate_system)/ (см. 5.1.9.4.9)
5.1.9.5.12 local_co_ordinate_system_with_position_reference для length_measure (как transversal_ref)
Элемент ПИМ:
length_measure
Источник:
ИСО 10303-43
Ссылочный путь:
/PROP_DEF_REP_HELP('local coordinate system with position reference')/
representation
{representation.name = 'local axis with position reference representation'}
representation.items [i] ->
representation_item
representation_item =>
{representation_item.name = 'transversal ref}
value_representation_item
{value_representation_item.value_component ->
measure_value = length_measure}
5.1.9.5.13 local_co_ordinate_system_with_position_reference для spacing_position (как transversal_ref)
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/PROP_DEF_REP_HELP('local coordinate system with position reference')/
representation
{representation.name = 'local axis with position reference representation'}
representation.items [i] ->
representation_item
representation_item =>
compound_representation_item
{/CLASS_HELP(compound_representation_item)/
(group.name = 'transversal position')
(group.name = 'spacing position with offset') class}}
5.1.9.5.14 local_co_ordinate_system_with_position_reference для length_measure (как vertical_ref)
Элемент ПИМ:
length_measure
Источник:
ИСО 10303-43
Ссылочный путь:
/PROP_DEF_REP_HELP('local coordinate system with position reference')/
representation
{representation.name = 'local axis with position reference representation'}
representation.items [i] ->
representation_item
representation_item =>
{representation_item.name = 'vertical ref}
value_representation_item {value_representation_item.value_component ->
measure_value = length_measure}
5.1.9.5.15 local_co_ordinate_system_with_position_reference для spacing_position (как vertical_ref)
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/PROP_DEF_REP_HELP('local coordinate system with position reference')/
representation
{representation.name = 'local axis with position reference representation'}
representation.items [i] ->
representation_item
representation_item =>
compound_representation_item
{/CLASS_HELP(compound_representation_item)/
(group.name = 'vertical position')
(group.name = 'spacing position with offset')
class}}
5.1.9.6 Прикладной элемент LONGITUDINAL_POSITION
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
{[/CLASS(compound_representation_item, 'longitudinal position', 'spacing position')/]
[/ROOT_CLASS(compound_representation_item, 'spacing position')/]}
{compound_representation_item <-
representation.items[i]
representation
representation.context_of_items ->
representation_context =>
{representation_context.context_type = 'global coordinate space'}
geometric_representation_context}
5.1.9.6.1 name
Примечание - Атрибут унаследован из супертипа Spacing_position (см. 5.1.9.8).
Элемент ПИМ:
/SUPERTYPE(spacing_position)/ (см. 5.1.9.8.1)
Ссылочный путь:
см. отображения супертипа
5.1.9.6.2 position
Примечание - Атрибут унаследован из супертипа Spacing_position (см. 5.1.9.8).
5.1.9.6.3 position_number
Примечание - Атрибут унаследован из супертипа Spacing_position (см. 5.1.9.8).
Элемент ПИМ:
/SUPERTYPE(spacing_position)/ (см. 5.1.9.8.3)
5.1.9.7 Прикладной элемент LONGITUDINAL_TABLE
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(property_definition, 'longitudinal table', 'spacing table')/]
[/CLASS(property_definition, 'spacing table', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.9.7.1 description
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.1.9.8, а не 5.1.9.10.
Примечание - Атрибут унаследован из супертипа Spacing_position (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.1)
5.1.9.7.2 name
Примечание - Атрибут унаследован из супертипа Spacing_position (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.2)
5.1.9.7.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.3)
5.1.9.7.4 longitudinal_table для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table/ (см. 5.1.9.10.4)
5.1.9.7.5 longitudinal_table для global_id (as id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
5.1.9.7.6 longitudinal_table для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.6)
5.1.9.7.7 longitudinal_table для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.7)
5.1.9.7.8 longitudinal_table для longitudinal_position (как spacing_table_representations)
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_REP/
representation.items [i] ->
representation_item =>
compound_representation_item
{/CLASS_ID(compound_representation_item, 'longitudinal position')/}
5.1.9.8 Прикладной элемент SPACING_POSITION
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
{/ROOT_CLASS(compound_representation_item, 'spacing position')/}
{compound_representation_item <-
representation.items[i]
representation
representation.context_of_items ->
representation_context
{representation_context.context_type = 'global coordinate space'}
=> geometric_representation_context}
5.1.9.8.1 name
Элемент ПИМ:
compound_representation_item.name
Источник:
ИСО 10303-43
5.1.9.8.2 position
Элемент ПИМ:
length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('position')/
value_representation_item {value_representation_item.value_component ->
measure_value = length_measure}
5.1.9.8.3 position_number
Элемент ПИМ:
count_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('position number')/
value_representation_item {value_representation_item.value_component ->
measure_value = count_measure}
5.1.9.9 Прикладной элемент SPACING_POSITION_WITH_OFFSET
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
{[/CLASS(compound_representation_item, 'spacing position with offset',
'spacing position')/]
[/ROOT_CLASS(compound_representation_item, 'spacing position')/]}
{compound_representation_item <-
representation.items[i]
representation
representation.context_of_items ->
representation_context =>
{representation_context.context_type = 'global coordinate space'}
geometric_representation_context}
5.1.9.9.1 name
Примечание - Атрибут унаследован из супертипа Spacing_position (см. 5.1.9.8).
Элемент ПИМ:
compound_representation_item.name
Источник:
ИСО 10303-43
5.1.9.9.2 offset
Элемент ПИМ:
length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('offset')/
value_representation_item
{value_representation_item.value_component ->
measure_value = length_measure}
5.1.9.9.3 position
Элемент ПИМ:
length_measure
Источник:
ИСО 10303-43
Ссылочный путь:
/COMPOUND('position')/
value_representation_item
{value_representation_item.value_component ->
measure_value = length_measure}
5.1.9.9.4 position_number
Примечание - Атрибут унаследован из супертипа Spacing_position (см. 5.1.9.8).
Элемент ПИМ:
length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/COMPOUND('position number')/
value_representation_item
{value_representation_item.value_component ->
measure_value = count_measure}
5.1.9.9.5 spacing_position_with_offset для spacing_position (как relating_spacing_position)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('relating spacing position')/
{/CLASS_HELP(compound_representation_item)/
(group.name = 'longitudinal position')
(group.name = 'transversal position')
(group.name = 'vertical position')
class}}
5.1.9.10 Прикладной элемент SPACING_TABLE
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(property_definition, 'spacing table', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.9.10.1 description
Элемент ПИМ:
property_definition.description
Источник:
ИСО 10303-43
5.1.9.10.2 name
Элемент ПИМ:
property_definition.name
Источник:
ИСО 10303-43
5.1.9.10.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(property_definition)/
5.1.9.10.4 spacing_table для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
property_definition
property_definition.definition ->
characterized_definition
characterized_definition = characterized_product_definition
characterized_product_definition = product_definition
product_definition
product_definition.formation ->
product_definition_formation
product_definition_formation.of_product ->
product
{/CLASS_ID(product, 'ship')}
5.1.9.10.5 spacing_table для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
property_definition
identification_item = property_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.9.10.6 spacing_table для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_UNITS('local units')/
unit
unit = derived_unit
derived_unit
5.1.9.10.7 spacing_table для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_UNITS('local units')/
unit
unit = named_unit
named_unit
5.1.9.10.8 spacing_table для spacing_position (как spacing_table_representations)
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_REP/
representation.items [i] ->
representation_item =>
compound_representation_item {/CLASS_HELP(compound_representation_item)/
(group.name = 'longitudinal position')
(group.name = 'transversal position')
(group.name = 'vertical position')
(group.name = 'spacing position with offset')
class}}
5.1.9.11 Прикладной элемент STATION_TABLE
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(property_definition, 'station table', 'longitudinal table')/]
[/CLASS(property_definition, 'longitudinal table', 'spacing table')/]
[/CLASS(property_definition, 'spacing table', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.9.11.1 description
Примечание - Атрибут унаследован из супертипа Spacing_table (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.1)
5.1.9.11.2 name
Примечание - Атрибут унаследован из супертипа Spacing_table (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.2)
5.1.9.11.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.3)
5.1.9.11.4 station_table для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.4)
5.1.9.11.5 station_table для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.5)
5.1.9.11.6 station_table для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.6)
5.1.9.11.7 station_table для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.7.7)
5.1.9.11.8 station_table для longitudinal_position (как spacing_table_representations)
Примечание - Атрибут унаследован из супертипа Longitudinal_table (см. 5.1.9.7).
Элемент ПИМ:
/SUPERTYPE(longitudinal_table)/ (см. 5.1.9.7.8)
5.1.9.12 Прикладной элемент TRANSVERSAL_POSITION
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
{[/CLASS(compound_representation_item, 'transversal position', 'spacing position')/]
[/ROOT_CLASS(compound_representation_item, 'spacing position')/]}
{compound_representation_item <-
representation.items[i]
representation
representation.context_of_items
representation_context =>
{representation_context.context_type = 'global coordinate space'}
geometric_representation_context}
5.1.9.12.1 name
Примечание - Атрибут унаследован из супертипа Spacing_position (см. 5.1.9.8).
Элемент ПИМ:
/SUPERTYPE(spacing_position)/ (см. 5.1.9.8.1)
5.1.9.12.2 position
Примечание - Атрибут унаследован из супертипа Spacing_position (см. 5.1.9.8).
Элемент ПИМ:
/SUPERTYPE(spacing_position)/ (см. 5.1.9.8.2)
5.1.9.12.3 position_number
Примечание - Атрибут унаследован из супертипа Spacing_position (см. 5.1.9.8).
Элемент ПИМ:
/SUPERTYPE(spacing_position)/ (см. 5.1.9.8.3)
5.1.9.13 Прикладной элемент TRANSVERSAL_TABLE
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(property_definition, 'transversal table', 'spacing table')/]
[/CLASS(property_definition, 'spacing table', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.9.13.1 description
Примечание - Атрибут унаследован из супертипа Spacing_table (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.1)
5.1.9.13.2 name
Примечание - Атрибут унаследован из супертипа Spacing_table (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.2)
5.1.9.13.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.3)
5.1.9.13.4 transversal_table для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.4)
5.1.9.13.5 transversal_table для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.5)
5.1.9.13.6 transversal_table для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.6)
5.1.9.13.7 transversal_table для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.7)
5.1.9.13.8 transversal_table для transversal_position (как spacing_table_representations)
Элемент ПИМ:
PATH
Ссылочный путь:
property_definition<=
/PROP_DEF_TO_REP/
representation.items [i] ->
representation_item =>
compound_representation_item
{/CLASS_ID(compound_representation_item, 'transversal position')/}
5.1.9.14 Прикладной элемент VERTICAL_POSITION
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
{[/CLASS(compound_representation_item, 'vertical position', 'spacing position')/]
[/ROOT_CLASS(compound_representation_item, 'spacing position')/]}
{compound_representation_item <-
representation.items[i]
representation
representation.context_of_items
representation_context =>
{representation_context.context_type = 'global coordinate space'}
geometric_representation_context}
5.1.9.14.1 name
Примечание - Атрибут унаследован из супертипа (см. 5.1.9.8).
Элемент ПИМ:
/SUPERTYPE(spacing_position)/ (см. 5.1.9.8.1)
5.1.9.14.2 position
Примечание - Атрибут унаследован из супертипа (см. 5.1.9.8).
Элемент ПИМ:
/SUPERTYPE(spacing_position)/ (см. 5.1.9.8.2)
5.1.9.14.3 position_number
Примечание - Атрибут унаследован из супертипа (см. 5.1.9.8).
Элемент ПИМ:
/SUPERTYPE(spacing_position)/ (см. 5.1.9.8.3)
5.1.9.15 Прикладной элемент VERTICAL_TABLE
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(property_definition, 'vertical table', 'spacing table')/]
[/CLASS(property_definition, 'spacing table', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.9.15.1 description
Примечание - Атрибут унаследован из супертипа (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.1)
5.1.9.15.2 name
Примечание - Атрибут унаследован из супертипа (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.2)
5.1.9.15.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.3)
5.1.9.15.4 vertical_table для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.4)
5.1.9.15.5 vertical_table для global_id (как id)
Примечание - Атрибут унаследован из супертипа (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.5)
5.1.9.15.6 vertical_table для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.6)
5.1.9.15.7 vertical_table для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.7)
5.1.9.15.8 vertical_table для vertical_position (как spacing_table_representations)
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_REP/
representation.items [i] ->
representation_item =>
compound_representation_item
{/CLASS_ID(compound_representation_item, 'vertical position')/}
5.1.9.16 Прикладной элемент WATERLINE_TABLE
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(property_definition, 'waterline table', 'vertical table')/]
[/CLASS(property_definition, 'vertical table', 'spacing table')/]
[/CLASS(property_definition, 'spacing table', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.9.16.1 description
Примечание - Атрибут унаследован из супертипа (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.1)
5.1.9.16.2 name
Примечание - Атрибут унаследован из супертипа (см. 5.1.9.10).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.2)
5.1.9.16.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.3)
5.1.9.16.4 waterline_table для definable_object (как defined_for)
Примечание - Атрибут унаследован из супертипа (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.4)
5.1.9.16.5 waterline_table для global_id (как id)
Примечание - Атрибут унаследован из супертипа (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.5)
5.1.9.16.6 waterline_table для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.6)
5.1.9.16.7 waterline_table для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(spacing_table)/ (см. 5.1.9.10.7)
5.1.9.16.8 waterline_table для vertical_position (как spacing_table_representations)
Примечание - Атрибут унаследован из супертипа (см. 5.1.9.15).
Элемент ПИМ:
/SUPERTYPE(vertical_table)/ (см. 5.1.9.15.8)
5.1.9.17 Прикладной элемент VERSIONABLE_OBJECT
#1: если значением элемента versionable_object является definition
#2: если значением элемента versionable_object является document
#3: если значением элемента versionable_object является item_relationship
#4: если значением элемента versionable_object является item_structure
#5: если значением элемента versionable_object является revision
Элемент ПИМ:
#1: /SUBTYPE(definition)/ (см. 5.1.4.1)
#2: /SUBTYPE(document)/ (см. 5.1.5.1)
#3: /SUBTYPE(item_relationship)/ (см. 5.1.8.4)
#4: /SUBTYPE(item_structure)/ (см. 5.1.8.5)
#5: /SUBTYPE(revision)/ (см. 5.1.3.13)
5.1.9.17.1 version_id
Элемент ПИМ:
#1: /SUBTYPE(definition)/ (см. 5.1.4.1.2)
#2: /SUBTYPE(document)/ (см. 5.1.5.1.5)
#3: /SUBTYPE(item_relationship)/ (см. 5.1.8.4.2)
#4: /SUBTYPE(item_structure)/ (см. 5.1.8.5.2)
#5: /SUBTYPE(revision)/ (см. 5.1.3.13.3)
5.1.10 Функциональная единица offset_table_representations
5.1.10.1 Прикладной элемент OFFSET_POINT_TABLE_MODEL
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(compound_representation_item, 'offset point table model')/
5.1.10.1.1 offset_point_table_type
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/COMPOUND('offset point table type')/
descriptive_representation_item
{(descriptive_representation_item.name = 'waterline table')
(descriptive_representation_item.name = 'station table')
(descriptive_representation_item.name = 'buttock table')
(descriptive_representation_item.name = 'user defined table')}
5.1.10.1.2 offset_point_table_model для section_of_offset_point_table (как offset_point_table_sections)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('offset point table section')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'section of offset point table')/}
5.1.10.2 Прикладной элемент OFFSET_TABLE_SHAPE_REPRESENTATION
Элемент ПИМ:
shape_representation
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(shape_representation,'offset table shape representation','moulded form shape representation')/]
[/ROOT_CLASS(shape_representation, 'moulded form shape representation')/}
5.1.10.2.1 moulded_form_representation_id
Примечание - Атрибут унаследован из супертипа Moulded_form_shape_representation (см. 5.1.14.8)
Элемент ПИМ:
PATH
Ссылочный путь:
/SUPERTYPE(Moulded_form_shape_representation)/ (см. 5.1.14.8.1)
5.1.10.2.2 offset_table_shape_representation для offset_point_table_model (как items)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
shape_representation <=
representation
representation.items[i] ->
representation_item =>
compound_representation_item
{/CLASS_ID(compound_representation_item, 'offset point table model')/}
5.1.10.2.3 offset_table_shape_representation для symmetry (как moulded_form_symmetry)
Примечание - Атрибут унаследован из супертипа Moulded_form_shape_representation (см. 5.1.14.8)
Элемент ПИМ:
PATH
Ссылочный путь:
/SUPERTYPE(Moulded_form_shape_representation)/ (см. 5.1.14.8.2)
5.1.10.3 Прикладной элемент SECTION_OF_OFFSET_POINT_TABLE
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(compound_representation_item, 'section of offset point table')/
5.1.10.3.1 section_identifier
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/HAS_ID_1_ROLE(compound_representation_item, 'section identifier')/
5.1.10.3.2 section_of_offset_point_table для offset_point_table_model (как for_table)
Примечание - Атрибут является обратным отношением для атрибута Offset_point_table_model attribute объекта offset_point_table_sections (см. 5.1.10.1.2).
Элемент ПИМ:
PATH
Ссылочный путь:
compound_representation_item <=
representation_item <-
list_representation_item[i]
compound_item_definition =
list_representation_item <-
compound_representation_item.item_element
compound_representation_item
{/CLASS_ID(compound_representation_item, 'offset point table model')/}
5.1.10.3.3 section_of_offset_point_table для ship_point (как section_points)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('section point')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'ship point')/}
5.1.11 Функциональная единица ship_design_parameter
5.1.11.1 Прикладной элемент APPENDAGE_MOULDED_FORM_DESIGN_PARAMETER
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(property_definition, 'appendage moulded form design parameter','moulded form characteristics definition')/]
[/CLASS(property_definition, 'moulded form characteristics definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.11.1.1 appendage_breadth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('appendage moulded form design parameter', 'appendage breadth', positive_length_measure)/
5.1.11.1.2 appendage_depth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('appendage moulded form design parameter', 'appendage depth', positive_length_measure)/
5.1.11.1.3 appendage_length
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('appendage moulded form design parameter', 'appendage length', positive_length_measure)/
5.1.11.1.4 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.1)
5.1.11.1.5 moulded_form_displacement
Элемент ПИМ:
volume_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('appendage moulded form design parameter', 'moulded form displacement', volume_measure)/
5.1.11.1.6 moulded_form_outer_surface
Элемент ПИМ:
area_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('appendage moulded form design parameter', 'moulded form outer surface', area_measure)/
5.1.11.1.7 type_of_appendage
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('appendage moulded form design parameter', 'type of appendage')/
{(descriptive_representation_item.description = 'active fin')
(descriptive_representation_item.description = 'air emitter')
(descriptive_representation_item.description = 'arrays')
(descriptive_representation_item.description = 'bilge keel')
(descriptive_representation_item.description = 'bow thruster')
(descriptive_representation_item.description = 'cathodic protection anode')
(descriptive_representation_item.description = 'duck tail')
(descriptive_representation_item.description = 'passive fin')
(descriptive_representation_item.description = 'rudder')
(descriptive_representation_item.description = 'sea chest')
(descriptive_representation_item.description = 'shaft bossings')
(descriptive_representation_item.description = 'shaft strut')
(descriptive_representation_item.description = 'skeg')
(descriptive_representation_item.description = 'spray rail')
(descriptive_representation_item.description = 'stern flap')
(descriptive_representation_item.description = 'stern thruster')
(descriptive_representation_item.description = 'user defined')}
5.1.11.1.8 usr_def_appendage_type
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('appendage moulded form design parameter', 'type of appendage')/
descriptive_representation_item.description
5.1.11.1.9 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.4)
5.1.11.1.10 appendage_moulded_form_design_parameter для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.5)
5.1.11.1.11 appendage_moulded_form_design_parameter для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.6)
5.1.11.1.12 appendage_moulded_form_design_parameter для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.7)
5.1.11.1.13 appendage_moulded_form_design_parameter для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.8)
5.1.11.2 Прикладной элемент BOTTOM_MOULDED_FORM_DESIGN_PARAMETER
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(property_definition, 'bottom moulded form design parameter', 'moulded form characteristics definition')/]
[/CLASS(property_definition, 'moulded form characteristics definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.11.2.1 aft_end_of_flat_of_bottom
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bottom moulded form design parameter', 'aft end of flat of bottom', positive_length_measure)/
5.1.11.2.2 bilge_radius
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bottom moulded form design parameter', 'bilge radius', positive_length_measure)/
5.1.11.2.3 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.1)
5.1.11.2.4 flat_of_bottom_breadth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bottom moulded form design parameter', 'flat of bottom breadth', positive_length_measure)/
5.1.11.2.5 front_end_of_flat_of_bottom
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bottom moulded form design parameter', 'front end of flat of bottom', positive_length_measure)/
5.1.11.2.6 length_of_flat_of_bottom
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bottom moulded form design parameter', 'length of flat of bottom', positive_length_measure)/
5.1.11.2.7 moulded_form_displacement
Элемент ПИМ:
volume_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
property_definition <=
/PROP_DEF_TO_VAL_REP_ITEM('bottom moulded form design parameter', 'moulded form displacement', volume_measure)/
5.1.11.2.8 moulded_form_outer_surface
Элемент ПИМ:
area_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bottom moulded form design parameter', 'moulded form outer surface', area_measure)/
5.1.11.2.9 rake_of_keel
Элемент ПИМ:
plane_angle_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bottom moulded form design parameter', 'rake of keel', plane_angle_measure)/
5.1.11.2.10 rise_of_floor
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bottom moulded form design parameter', 'rise of floor', positive_length_measure)/
5.1.11.2.11 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.4)
5.1.11.2.12 bottom_moulded_form_design_parameter для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.5)
5.1.11.2.13 bottom_moulded_form_design_parameter для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.6)
5.1.11.2.14 bottom_moulded_form_design_parameter для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.7)
5.1.11.2.15 bottom_moulded_form_design_parameter для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.8)
5.1.11.3 Прикладной элемент BULB_MOULDED_FORM_DESIGN_PARAMETER
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(property_definition, 'bulb moulded form design parameter', 'moulded form characteristics definition')/]
[/CLASS(property_definition, 'moulded form characteristics definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.11.3.1 bulb_breadth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bulb moulded form design parameter', 'bulb breadth', positive_length_measure)/
5.1.11.3.2 bulb_breadth_pp
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bulb moulded form design parameter', 'bulb breadth pp', positive_length_measure)/
5.1.11.3.3 bulb_depth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bulb moulded form design parameter', 'bulb depth', positive_length_measure)/
5.1.11.3.4 bulb_depth_pp
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bulb moulded form design parameter', 'bulb depth pp', positive_length_measure)/
5.1.11.3.5 bulb_frame_section_area_at_pp
Элемент ПИМ:
area_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bulb moulded form design parameter', 'bulb frame section area at pp', area_measure)/
5.1.11.3.6 bulb_length
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bulb moulded form design parameter', 'bulb length', positive_length_measure)/
5.1.11.3.7 bulb_length_from_pp
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bulb moulded form design parameter', 'bulb length from pp', positive_length_measure)/
5.1.11.3.8 bulb_location
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('bulb moulded form design parameter', 'bulb location')/
{(descriptive_representation_item.description = 'bow')
(descriptive_representation_item.description = 'stern')}
5.1.11.3.9 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.1)
5.1.11.3.10 moulded_form_displacement
Элемент ПИМ:
volume_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bulb moulded form design parameter', 'moulded form displacement', volume_measure)/
5.1.11.3.11 moulded_form_outer_surface
Элемент ПИМ:
area_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('bulb moulded form design parameter', 'moulded form outer surface', area_measure)/
5.1.11.3.12 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.4)
5.1.11.3.13 bulb_moulded_form_design_parameter для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.5)
5.1.11.3.14 bulb_moulded_form_design_parameter для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.6)
5.1.11.3.15 bulb_moulded_form_design_parameter для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.7)
5.1.11.3.16 bulb_moulded_form_design_parameter для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.8)
5.1.11.4 Прикладной элемент DECK_MOULDED_FORM_DESIGN_PARAMETER
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(property_definition, 'deck moulded form design parameter', 'moulded form characteristics definition')/]
[/CLASS(property_definition, 'moulded form characteristics definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.11.4.1 camber
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('deck moulded form design parameter', 'camber', positive_length_measure)/
5.1.11.4.2 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.1)
5.1.11.4.3 moulded_form_outer_surface
Элемент ПИМ:
area_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('deck moulded form design parameter', 'moulded form outer surface', area_measure)/
5.1.11.4.4 moulded_form_displacement
Элемент ПИМ:
volume_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('deck moulded form design parameter', 'moulded form displacement', volume_measure)/
5.1.11.4.5 sheer_at_AP
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('deck moulded form design parameter', 'sheer at AP', positive_length_measure)/
5.1.11.4.6 sheer_at_FP
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('deck moulded form design parameter', 'sheer at FP', positive_length_measure)/
5.1.11.4.7 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.4)
5.1.11.4.8 deck_moulded_form_design_parameter для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.5)
5.1.11.4.9 deck_moulded_form_design_parameter для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.6)
5.1.11.4.10 deck_moulded_form_design_parameter для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.7)
5.1.11.4.11 deck_moulded_form_design_parameter для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.8)
5.1.11.5 Прикладной элемент HULL_MOULDED_FORM_DESIGN_PARAMETER
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS property_definition, 'hull moulded form design parameter', 'moulded form characteristics definition')/]
[/CLASS(property_definition, 'moulded form characteristics definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.11.5.1 aft_end_of_flat_of_side
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'aft end of flat of side', positive_length_measure)/
5.1.11.5.2 aft_end_of_parallel_midbody_at_design_draught
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'aft end of parallel midbody at design draught', positive_length_measure)/
5.1.11.5.3 block_coefficient
Элемент ПИМ:
ratio_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'block coefficient', ratio_measure)/
5.1.11.5.4 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.1)
5.1.11.5.5 front_end_of_flat_of_side
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'front end of flat of side', positive_length_measure)/
5.1.11.5.6 front_end_of_parallel_midbody_at_design_draught
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'front end of parallel midbody at design draught', positive_length_measure)/
5.1.11.5.7 gunwale_radius
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'gunwale radius', positive_length_measure)/
5.1.11.5.8 hull_breadth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'hull breadth', positive_length_measure)/
5.1.11.5.9 hull_depth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'hull depth', positive_length_measure)/
5.1.11.5.10 hull_design_draught
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'hull design draught', positive_length_measure)/
5.1.11.5.11 hull_length_pp
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'hull length pp', positive_length_measure)/
5.1.11.5.12 hull_length_waterline
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'hull length waterline', positive_length_measure)
5.1.11.5.13 max_frame_section_area_location
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'max frame section area location', positive_length_measure)/
5.1.11.5.14 max_wetted_frame_section_area
Элемент ПИМ:
area_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'max wetted frame section area', area_measure)/
5.1.11.5.15 moulded_form_displacement
Элемент ПИМ:
volume_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'moulded form displacement', volume_measure)/
5.1.11.5.16 moulded_form_outer_surface
Элемент ПИМ:
area_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'moulded form outer surface', area_measure)/
5.1.11.5.17 prismatic_coefficient
Элемент ПИМ:
ratio_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'prismatic coefficient', ratio_measure)/
5.1.11.5.18 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.4)
5.1.11.5.19 waterline_angle_of_entrance_at_bow
Элемент ПИМ:
plane_angle_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'waterline angle of entrance at bow', plane_angle_measure)/
5.1.11.5.20 waterline_angle_of_entrance_at_stern
Элемент ПИМ:
plane_angle_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'waterline angle of entrance at stern', plane_angle_measure)/
5.1.11.5.21 waterplane_coefficient
Элемент ПИМ:
ratio_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('hull moulded form design parameter', 'waterplane coefficient', ratio_measure)/
5.1.11.5.22 hull_moulded_form_design_parameter для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.5)
5.1.11.5.23 hull_moulded_form_design_parameter для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.6)
5.1.11.5.24 hull_moulded_form_design_parameter для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.7)
5.1.11.5.25 hull_moulded_form_design_parameter для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.8)
5.1.11.5.26 hull_moulded_form_design_parameter для midship_tumble (как midship_tumble_data)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/PROP_DEF_TO_REP/ {/CLASS_ID(representation, 'midship tumble')/}
5.1.11.6 Прикладной элемент MIDSHIP_TUMBLE
Элемент ПИМ:
representation
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(representation, 'midship tumble')/
5.1.11.6.1 tumble_in_at_side
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
REP_TO_VAL_REP_ITEM('tumble in at side', positive_length_measure)
5.1.11.6.2 tumble_in_at_top
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/REP_TO_VAL_REP_ITEM('tumble in at top', positive_length_measure)/
5.1.11.6.3 tumble_out_at_bottom
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/REP_TO_VAL_REP_ITEM('tumble out at bottom', positive_length_measure)/
5.1.11.6.4 tumble_out_at_side
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/REP_TO_VAL_REP_ITEM('tumble out at side', positive_length_measure)/
5.1.11.7 Прикладной элемент MOULDED_FORM_CHARACTERISTICS_DEFINITION
#1: Значением элемента Moulded_form_characteristics_definition является Appendage_moulded_form_design_parameter
#2: Значением элемента Moulded_form_characteristics_definition является Bottom_moulded_form_design_parameter
#3: Значением элемента Moulded_form_characteristics_definition является Bulb_moulded_form_design_parameter
#4: Значением элемента Moulded_form_characteristics_definition является Hull_moulded_form_design_parameter
#5: Значением элемента Moulded_form_characteristics_definition является Propeller_moulded_form_design_parameter
#6: Значением элемента Moulded_form_characteristics_definition является Rudder_moulded_form_design_parameter
#7: Значением элемента Moulded_form_characteristics_definition является Thruster_moulded_form_design_parameter
#8: Значением элемента Moulded_form_characteristics_definition является Deck_moulded_form_design_parameter
Элемент ПИМ:
#1/SUBTYPE(Appendage_moulded_form_design_parameter)/ (см. 5.1.11.1)
#2/SUBTYPE(Bottom_moulded_form_design_parameter)/ (см. 5.1.11.2)
#3/SUBTYPE(Bulb_moulded_form_design_parameter)/ (см. 5.1.11.3)
#4/SUBTYPE(Hull_moulded_form_design_parameter)/ (см. 5.1.11.5)
#5/SUBTYPE(Propeller_moulded_form_design_parameter)/ (см. 5.1.11.9)
#6/SUBTYPE(Rudder_moulded_form_design_parameter)/ (см. 5.1.11.10)
#7/SUBTYPE(Thruster_moulded_form_design_parameter)/ (см. 5.1.11.12)
#8/SUBTYPE(Deck_moulded_form_design_parameter)/ (см. 5.1.11.4)
5.1.11.7.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
property_definition.description
Источник:
ИСО 10303-41
5.1.11.7.2 moulded_form_displacement
Элемент ПИМ:
#1 /SUBTYPE(Appendage_moulded_form_design_parameter)/ (см. 5.1.11.1.5)
#2 /SUBTYPE(Bottom_moulded_form_design_parameter)/ (см. 5.1.11.2.7)
#3 /SUBTYPE(Bulb_moulded_form_design_parameter)/ (см. 5.1.11.3.10)
#4 /SUBTYPE(Hull_moulded_form_design_parameter)/ (см. 5.1.11.5.15)
#5 /SUBTYPE(Propeller_moulded_form_design_parameter)/ (см. 5.1.11.9.7)
#6 /SUBTYPE(Rudder_moulded_form_design_parameter)/ (см. 5.1.11.10.2)
#7 /SUBTYPE(Thruster_moulded_form_design_parameter)/ (см. 5.1.11.12.2)
#8 /SUBTYPE(Deck_moulded_form_design_parameter)/ (см. 5.1.11.4.4)
5.1.11.7.3 moulded_form_outer_surface
Элемент ПИМ:
#1 /SUBTYPE(Appendage_moulded_form_design_parameter)/ (см. 5.1.11.1.6)
#2 /SUBTYPE(Bottom_moulded_form_design_parameter)/ (см. 5.1.11.2.8)
#3 /SUBTYPE(Bulb_moulded_form_design_parameter)/ (см. 5.1.11.3.11)
#4 /SUBTYPE(Hull_moulded_form_design_parameter)/ (см. 5.1.11.5.16)
#5 /SUBTYPE(Propeller_moulded_form_design_parameter)/ (см. 5.1.11.9.8)
#6 /SUBTYPE(Rudder_moulded_form_design_parameter)/ (см. 5.1.11.10.3)
#7/SUBTYPE(Thruster_moulded_form_design_parameter)/ (см. 5.1.11.12.3)
#8 /SUBTYPE(Deck_moulded_form_design_parameter)/ (см. 5.1.11.4.3)
5.1.11.7.4 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(property_definition)/
5.1.11.7.5 moulded_form_characteristics_definition для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_TO_PROD_DEF/
{/CLASS_ID(product_definition, 'moulded_form')/}
5.1.11.7.6 moulded_form_characteristics_definition для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
property_definition
identification_item = property_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.11.7.7 moulded_form_characteristics_definition для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_UNITS('local units')/
unit
unit = derived_unit
derived_unit
5.1.11.7.8 moulded_form_characteristics_definition для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_DEF_TO_UNITS('local units')/ unit
unit = named_unit
named_unit
5.1.11.8 Прикладной элемент PROPELLER_LOCATION
Элемент ПИМ:
representation
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(representation, 'propeller location')/
5.1.11.8.1 shaft_line_inclination_x
Элемент ПИМ:
plane_angle_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/REP_TO_VAL_REP_ITEM('shaft line inclination x', plane_angle_measure)/
5.1.11.8.2 shaft_line_inclination_y
Элемент ПИМ:
plane_angle_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/REP_TO_VAL_REP_ITEM('shaft line inclination y', plane_angle_measure)/
5.1.11.8.3 propeller_location для centre_location (как propeller_location)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
property_definition
represented_definition = property_definition
represented_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
/REP_ITEM('propeller location')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'centre_location')/}
5.1.11.8.4 propeller_location для centre_location (как shaft_line_location)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
property_definition
represented_definition = property_definition
represented_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
/REP_ITEM('shaft line location')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'centre_location')/}
5.1.11.9 Прикладной элемент PROPELLER_MOULDED_FORM_DESIGN_PARAMETER
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(property_definition, 'propeller moulded form design parameter', 'moulded form characteristics definition')/]
[/CLASS(property_definition, 'moulded form characteristics definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.11.9.1 blade_mean_height
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'blade mean height', positive_length_measure)/
5.1.11.9.2 chord_length_at_0_7_radius
Элемент ПИМ
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'chord length at 0 7 radius', positive_length_measure)/
5.1.11.9.3 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.1)
5.1.11.9.4 design_sense_of_rotation
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('propeller moulded form design parameter', 'design sense of rotation')/
{(descriptive_representation_item.description = 'right')
(descriptive_representation_item.description = 'left')}
5.1.11.9.5 expanded_area_ratio
Элемент ПИМ:
ratio_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'expanded area ratio', ratio_measure)/
5.1.11.9.6 hub_diameter_ratio
Элемент ПИМ:
ratio_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'hub diameter ratio', ratio_measure)/
5.1.11.9.7 moulded_form_displacement
Элемент ПИМ:
volume_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'moulded form displacement', volume_measure)/
5.1.11.9.8 moulded_form_outer_surface
Элемент ПИМ:
area_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'moulded form outer surface', area_measure)/
5.1.11.9.9 nominal_design_pitch_ratio
Элемент ПИМ:
ratio_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'nominal design pitch ratio', ratio_measure)/
5.1.11.9.10 number_of_propeller_blades
Элемент ПИМ:
count_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'number of propeller blades', count_measure)/
5.1.11.9.11 propeller_diameter
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'propeller diameter', positive_length_measure)/
5.1.11.9.12 rake
Элемент ПИМ:
plane_angle_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'rake', plane_angle_measure)/
5.1.11.9.13 skew
Элемент ПИМ:
plane_angle_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'skew', plane_angle_measure)/
5.1.11.9.14 thickness_at_0_7_radius
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('propeller moulded form design parameter', 'thickness at 0 7 radius', positive_length_measure)/
5.1.11.9.15 type_of_propeller_blades
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('propeller moulded form design parameter', 'type of propeller blades')/
{(descriptive_representation_item.description = 'fixed blade')
(descriptive_representation_item.description = 'adjustable blade')
(descriptive_representation_item.description = 'controllable blade')}
5.1.11.9.16 type_of_propulsion
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('propeller moulded form design parameter', 'type of propulsion')/
{(descriptive_representation_item.description = 'water jet')
(descriptive_representation_item.description = 'paddle wheel')
(descriptive_representation_item. description = 'vertical axis propeller')
(descriptive_representation_item.description = 'screw propeller')
(descriptive_representation_item.description = 'ducted propeller')
(descriptive_representation_item.description = 'thruster')
(descriptive_representation_item.description = 'user defined')}
5.1.11.9.17 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.4)
5.1.11.9.18 propeller_moulded_form_design_parameter для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.5)
5.1.11.9.19 propeller_moulded_form_design_parameter для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.6)
5.1.11.9.20 propeller_moulded_form_design_parameter для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.7)
5.1.11.9.21 propeller_moulded_form_design_parameter для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.8)
5.1.11.9.22 propeller_moulded_form_design_parameter для propeller_location (как location_of_the_propeller_at_the_ship_hull)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/PROP_DEF_TO_REP/ {/CLASS_ID(representation, 'propeller location')/}
5.1.11.10 Прикладной элемент RUDDER_MOULDED_FORM_DESIGN_PARAMETER
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(property_definition, 'rudder moulded form design parameter', 'moulded form characteristics definition')/]
[/CLASS(property_definition, 'moulded form characteristics definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.11.10.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.1)
5.1.11.10.2 moulded_form_displacement
Элемент ПИМ:
volume_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('rudder moulded form design parameter', 'moulded form displacement', volume_measure)/
5.1.11.10.3 moulded_form_outer_surface
Элемент ПИМ:
area_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('rudder moulded form design parameter', 'moulded form outer surface', area_measure)/
5.1.11.10.4 projected_rudder_area
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('rudder moulded form design parameter', 'projected rudder area', positive_length_measure)/
5.1.11.10.5 rudder_height
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('rudder moulded form design parameter', 'rudder height', positive_length_measure)/
5.1.11.10.6 rudder_length
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('rudder moulded form design parameter', 'rudder length', positive_length_measure)/
5.1.11.10.7 rudder_mean_height
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('rudder moulded form design parameter', 'rudder mean height', positive_length_measure)/
5.1.11.10.8 rudder_mean_length
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('rudder moulded form design parameter', 'rudder mean length', positive_length_measure)/
5.1.11.10.9 rudder_thickness
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('rudder moulded form design parameter', 'rudder thickness', positive_length_measure)/
5.1.11.10.10 type_of_the_rudder
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('rudder moulded form design parameter', 'type of the rudder')/
{(descriptive_representation_item.description = 'balanced')
(descriptive_representation_item.description = 'unbalanced')}
5.1.11.10.11 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.4)
5.1.11.10.12 rudder_moulded_form_design_parameter для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Moulded_form_characteristics_definition (см. 5.1.11.7)
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.5)
5.1.11.10.13 rudder_moulded_form_design_parameter для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.6)
5.1.11.10.14 rudder_moulded_form_design_parameter для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.7)
5.1.11.10.15 rudder_moulded_form_design_parameter для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.8)
5.1.11.10.16 rudder_moulded_form_design_parameter для centre_location (как rudder_location)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
property_definition
represented_definition = property_definition
represented_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
/REP_ITEM('rudder location')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'centre_location')/}
5.1.11.11 Прикладной элемент SHIP_OVERALL_DIMENSIONS
Элемент ПИМ:
product_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(product_definition, 'ship overall dimensions', 'general characteristics definition')/]
[/CLASS(product_definition, 'general characteristics definition', 'definition')/]
[/CLASS(product_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_definition, 'versionable object')/]}
5.1.11.11.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
product_definition.description
Источник:
ИСО 10303-41
5.1.11.11.2 overall_breadth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('ship overall dimensions', 'overall breadth', positive_length_measure)/
5.1.11.11.3 overall_depth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('ship overall dimensions', 'overall depth', positive_length_measure)/
5.1.11.11.4 overall_length
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('ship overall dimensions', 'overall length', positive_length_measure)/
5.1.11.11.5 stem_overhang
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('ship overall dimensions', 'stem overhang', positive_length_measure)/
5.1.11.11.6 stern_overhang
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('ship overall dimensions', 'stern overhang', positive_length_measure)/
5.1.11.11.7 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition)/
5.1.11.11.8 ship_overall_dimensions для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_PRODUCT/ {/CLASS_ID(product, 'ship')/}
5.1.11.11.9 ship_overall_dimensions для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
product_definition
identification_item = product_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.11.11.10 ship_overall_dimensions для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_TO_UNITS('local units')/
unit
unit = derived_unit
derived_unit
5.1.11.11.11 ship_overall_dimensions для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_TO_UNITS('local units')/ unit unit = named_unit
named_unit
5.1.11.12 Прикладной элемент THRUSTER_MOULDED_FORM_DESIGN_PARAMETER
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(property_definition, 'thruster moulded form design parameter', 'moulded form characteristics definition')/]
[/CLASS(property_definition, 'moulded form characteristics definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.11.12.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.1)
5.1.11.12.2 moulded_form_displacement
Элемент ПИМ:
volume_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('thruster moulded form design parameter', 'moulded form displacement', volume_measure)/
5.1.11.12.3 moulded_form_outer_surface
Элемент ПИМ:
area_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('thruster moulded form design parameter', 'moulded form outer surface', area_measure)/
5.1.11.12.4 thruster_location
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('thruster moulded form design parameter', 'thruster location')/
{(descriptive_representation_item.description = 'bow')
(descriptive_representation_item.description = 'stern')}
5.1.11.12.5 thruster_tunnel_diameter
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('thruster moulded form design parameter', 'thruster tunnel diameter', positive_length_measure)/
5.1.11.12.6 thruster_tunnel_max_length
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('thruster moulded form design parameter', 'thruster tunnel max length', positive_length_measure)/
5.1.11.12.7 thruster_tunnel_min_length
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('thruster moulded form design parameter', 'thruster tunnel min length', positive_length_measure)/
5.1.11.12.8 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.4)
5.1.11.12.9 thruster_moulded_form_design_parameter для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.5)
5.1.11.12.10 thruster_moulded_form_design_parameter для centre_location (как geometric_thruster_location)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
property_definition
represented_definition = property_definition
represented_definition <-
property_definition_representation.definition
property_definition_representation
property_definition_representation.used_representation ->
/REP_ITEM('geometric thruster location')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'centre_location')/}
5.1.11.12.11 thruster_moulded_form_design_parameter для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.6)
5.1.11.12.12 thruster_moulded_form_design_parameter для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.7)
5.1.11.12.13 thruster_moulded_form_design_parameter для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Moulded_form_characteristics_definition (см. 5.1.11.7).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_characteristics_definition)/ (см. 5.1.11.7.8)
5.1.11.12.14 thruster_moulded_form_design_parameter для propeller_moulded_form_design_parameter (как thruster_propeller_parameter)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
property_definition <-
property_definition_relationship.relating_property_definition
property_definition_relationship
{property_definition_relationship.name = 'thruster propeller parameter'}
property_definition_relationship
property_definition_relationship.related_property_definition ->
property_definition=>
property_definition
{/CLASS_ID(property_definition, 'propeller moulded form design parameter')/}
5.1.12 Функциональная единица ship_general_characteristics
5.1.12.1 Прикладной элемент CARRIER
Элемент ПИМ:
product_related_product_category
Источник:
ИСО 10303-41
Ссылочный путь:
{[/PROD_CAT_NAME('carrier')/]
[/CLASS(product_related_product_category, 'carrier','Shiptype')/]
[/CLASS(product_related_product_category, 'Shiptype', 'functional definition')/]
[/CLASS(product_related_product_category,'functional definition', 'definition')/]
[/CLASS(product_related_product_category, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_related_product_category,'versionable object')/]}
5.1.12.1.1 description
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.1)
5.1.12.1.2 has_type
Элемент ПИМ:
product_category.name
Источник:
ИСО 10303-41
Ссылочный путь:
/PROD_CAT_NAME('carrier')/
product_category <-
product_category_relationship.category
product_category_relationship
{product_category_relationship.name = 'carrier types'}
product_category_relationship.sub_category ->
product_category
{(product_category.name ='Container carrier')
(product_category.name = 'Bulk carrier')
(product_category.name = 'Ore carrier')
(product_category.name = 'Oil tanker')
(product_category.name = 'Roro vessel')
(product_category.name = 'Ferry')
(product_category.name = 'Car ferry')
(product_category.name = 'Cruise liner')
(product_category.name = 'Passenger vessel')
(product_category.name = 'Cargo ship carrying passengers')
(product_category.name = 'Product tanker')
(product_category.name = 'Gas carrier')
(product_category.name = 'Liquefied gas tanker')
(product_category.name = 'Chemical tanker')
(product_category.name = 'Chemical tanker Type 1')
(product_category.name = 'Tanker for refrigerated fruit juice')
(product_category.name = 'General cargo carrier')
(product_category.name = 'Dry cargo vessel')
(product_category.name = 'Refrigerated cargo carrying ship')
(product_category.name = 'High speed craft passenger')
(product_category.name = 'High speed craft cargo')
(product_category.name = 'Hydrofoil')
(product_category.name = 'Car carrier')
(product_category.name = 'Barge')
(product_category.name = 'Barge for deck loading')
(product_category.name = 'Barge for liquefied gas')
(product_category.name = 'Barge for oil')
(product_category.name = 'Barge pontoon')
(product_category.name = 'LNG carrier')
(product_category.name = 'LPG carrier')
(product_category.name = 'user defined')}
5.1.12.1.3 user_def_function
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.2)
5.1.12.1.4 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.3)
5.1.12.1.5 carrier для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.4)
5.1.12.1.6 carrier для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11)
5.1.12.2 Прикладной элемент CLASS_AND_STATUTORY_DESIGNATION
Элемент ПИМ:
product_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(product_definition, 'class and statutory designation', 'general characteristics definition')/]
[/CLASS(product_definition, 'general characteristics definition', 'definition')/]
[/CLASS(product_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_definition, 'versionable object')/]}
5.1.12.2.1 class_number
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROD_DEF_TO_DESC_REP_ITEM('class and statutory designation', 'class number')/
5.1.12.2.2 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
product_definition.description
Источник:
ИСО 10303-41
5.1.12.2.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition)/
5.1.12.2.4 class_and_statutory_designation для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_PRODUCT/
{/CLASS_ID(product,'ship')/}
5.1.12.2.5 class_and_statutory_designation для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
product_definition
identification_item = product_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.12.2.6 class_and_statutory_designation для class_notation (как the_class)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/PROD_DEF_PROP_DEF/
{/CLASS_ID(property_definition, 'class notation')/}
5.1.12.2.7 class_and_statutory_designation для regulation (как the_statutory)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/PROD_DEF_PROP_DEF/
{/CLASS_ID(property_definition, 'regulation')/}
5.1.12.3 Прикладной элемент CLASS_NOTATION
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/ROOT_CLASS(property_definition, 'class notation')/
5.1.12.3.1 approval_required_for_heavy_cargo
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('class notation', 'approval required for heavy cargo')/
{(descriptive_representation_item.description = 'HC')
(descriptive_representation_item.description = 'HC_E')
(descriptive_representation_item.description = 'HC_EA')}
5.1.12.3.2 approval_required_for_oil_cargo
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('class notation','approval required for oil cargo')/
{(descriptive_representation_item.description = 'TRUE')
(descriptive_representation_item.description = 'FALSE')}
5.1.12.3.3 approval_required_loading_unloading_aground
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('class notation', 'approval required for loading unloading aground')/
{(descriptive_representation_item.description = 'TRUE')
(descriptive_representation_item.description = 'FALSE')}
5.1.12.3.4 approval required loading unloading grabs
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('class notation','approval required for unloading grabs')/
{(descriptive_representation_item.description = 'TRUE')
(descriptive_representation_item.description = 'FALSE')}
5.1.12.3.5 class_notations_hull
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('class notation', 'class notations hull')/
5.1.12.3.6 class_notations_machinery
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('class notation', 'class notations machinery') /
5.1.12.3.7 class_notations_machinery
Элемент ПИМ:
organization_assignment.assigned_organization
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/ORG_ASSGN(property_definition,'class society')/
5.1.12.3.8 ice_class_notation
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('class notation', 'ice class notation')/
5.1.12.3.9 service_area
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_TO_DESC_REP_ITEM('class notation', 'service area')/
5.1.12.3.10 service_factor
Элемент ПИМ:
count_measure
Правила:
Ссылочный путь:
/PROP_DEF_TO_VAL_REP_ITEM('class notation', 'service factor', count_measure)/
5.1.12.4 Прикладной элемент CLASS_PARAMETERS
Элемент ПИМ:
product_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(product_definition, 'class parameters', 'general characteristics definition')/]
[/CLASS(product_definition, 'general characteristics definition', 'definition')/]
[/CLASS(product_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_definition, 'versionable object')/]}
5.1.12.4.1 block_coefficient_class
Элемент ПИМ:
ratio_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('class parameters', 'block coefficient class', ratio_measure)/
5.1.12.4.2 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
product_definition.description
Источник:
ИСО 10303-41
5.1.12.4.3 design_speed_ahead
Элемент ПИМ:
context_dependent_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_SPECIAL_VAL_REP_ITEM('class parameters', 'design speed ahead', 'speed unit')/
5.1.12.4.4 design_speed_astern
Элемент ПИМ:
context_dependent_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_SPECIAL_VAL_REP_ITEM('class parameters', 'design speed astern', 'speed unit')/
5.1.12.4.5 length_class
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('class parameters', 'length class', positive_length_measure)/
5.1.12.4.6 length_solas
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('class parameters', 'length solas', positive_length_measure)/
5.1.12.4.7 scantlings_draught
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('class parameters', 'scantlings draught', positive_length_measure)/
5.1.12.4.8 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition)/
5.1.12.4.9 class_parameters для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_PRODUCT/
{/CLASS_ID(product,'ship')/}
5.1.12.4.10 class_parameters для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
product_definition
identification_item = product_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.12.4.11 class_parameters для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_TO_UNITS('local units')/
unit
unit = derived_unit
derived_unit
5.1.12.4.12 class_parameters для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_TO_UNITS('local units')/
unit
unit = named_unit
named_unit
5.1.12.5 Прикладной элемент NAVY_SHIP
Элемент ПИМ:
product_related_product_category
Источник:
ИСО 10303-41
Ссылочный путь:
{[/PROD_CAT_NAME('navy ship')/]
[/CLASS(product_related_product_category,'navy ship','Shiptype')/]
[/CLASS(product_related_product_category, 'Shiptype', 'functional definition')/]
[/CLASS(product_related_product_category,'functional definition', 'definition')/]
[/CLASS(product_related_product_category, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_related_product_category,'versionable object')/]}
5.1.12.5.1 description
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.1)
5.1.12.5.2 has_type
Элемент ПИМ:
product_category.name
Источник:
ИСО 10303-41
Ссылочный путь:
/PROD_CAT_NAME('navy ship')/
product_category <-
product_category_relationship.category
product_category_relationship
{product_category_relationship.name = 'navy ship types'}
product_category_relationship.category ->
product_category
product_category_relationship
product_category_relationship.sub_category ->
product_category
{(product_category.name = 'Aircraft carrier')
(product_category.name = 'Corvette')
(product_category.name = 'Cruiser')
(product_category.name = 'Destroyer')
(product_category.name = 'Fleet auxiliary vessel')
(product_category.name = 'Frigate')
(product_category.name = 'Mine warfare ship')
(product_category.name = 'Patrol force vessel')
(product_category.name = 'Service craft')
(product_category.name = 'Submarine')
(product_category.name = 'Auxiliary oiler')
(product_category.name = 'Landing platform dock')
(product_category.name = 'Landing platform helicopter')
(product_category.name = 'user defined')}
5.1.12.5.3 user_def_function
Примечание - Атрибут унаследован из супертипа Shiptype (см. 5.1.12.11).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.2)
5.1.12.5.4 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.3)
5.1.12.5.5 navy_ship для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.4)
5.1.12.5.6 navy_ship для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.5)
5.1.12.6 Прикладной элемент OWNER_DESIGNATION
Элемент ПИМ:
product_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(product_definition, 'owner designation', 'general characteristics definition')/]
[/CLASS(product_definition, 'general characteristics definition', 'definition')/]
[/CLASS(product_definition, 'definition', 'versionable object')/]
/ROOT_CLASS(product_definition, 'versionable object')/]}
5.1.12.6.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
product_definition.description
Источник:
ИСО 10303-41
5.1.12.6.2 managing_company
Элемент ПИМ:
organization_assignment.assigned_organization
Источник:
ИСО 10303-41
Ссылочный путь:
/ORG_ASSGN(product_definition,'managing company')/
5.1.12.6.3 ordering_company
Элемент ПИМ:
organization_assignment.assigned_organization
Источник:
ИСО 10303-41
Ссылочный путь:
/ORG_ASSGN(product_definition,'ordering company')/
5.1.12.6.4 owner_approval
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROD_DEF_TO_DESC_REP_ITEM('owner designation', 'owner approval')/
5.1.12.6.5 owning_company
Элемент ПИМ:
organization_assignment.assigned_organization
Источник:
ИСО 10303-41
Ссылочный путь:
/ORG_ASSGN(product_definition,'owning company')/
5.1.12.6.6 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition)/
5.1.12.6.7 owner_designation для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_PRODUCT/
{/CLASS_ID(product,'ship')/}
5.1.12.6.8 owner_designation для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
product_definition
identification_item= product_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.12.7 Прикладной элемент PRINCIPAL_CHARACTERISTICS
Элемент ПИМ:
product_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(product_definition, 'principal characteristics','general characteristics definition')/]
[/CLASS(product_definition, 'general characteristics definition', 'definition')/]
[/CLASS(product_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_definition, 'versionable object')/]}
5.1.12.7.1 block_coefficient
Элемент ПИМ:
ratio_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('principal characteristics','block coefficient', ratio_measure)/
5.1.12.7.2 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
product_definition.description
Источник:
ИСО 10303-41
5.1.12.7.3 design_deadweight
Элемент ПИМ:
mass_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM ('principal characteristics', 'design deadweight', mass_measure)/
5.1.12.7.4 design_draught
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM ('principal characteristics', 'design draught', positive_length_measure)/
5.1.12.7.5 length_between_perpendiculars
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM ('principal characteristics', 'length between perpendiculars', positive_length_measure)/
5.1.12.7.6 max_draught_at_ap
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('principal characteristics', 'max draught at ap', positive_length_measure)/
5.1.12.7.7 max_draught_at_fp
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('principal characteristics', 'max draught at fp', positive_length_measure)/
5.1.12.7.8 min_draught_at_ap
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('principal characteristics', 'min draught at ap', positive_length_measure)/
5.1.12.7.9 min_draught_at_fp
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('principal characteristics', 'min draught at fp', positive_length_measure)/
5.1.12.7.10 moulded_breadth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('principal characteristics', 'moulded breadth', positive_length_measure)/
5.1.12.7.11 moulded_depth
Элемент ПИМ:
positive_length_measure
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/PROD_DEF_TO_VAL_REP_ITEM('principal characteristics', 'moulded depth', positive_length_measure)/
5.1.12.7.12 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition)/
5.1.12.7.13 principal_characteristics для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_PRODUCT/
{/CLASS_ID(product,'ship')/}
5.1.12.7.14 principal_characteristics для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
product_definition
identification_item = product_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.12.7.15 principal_characteristics для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_TO_UNITS('local units')/
unit
unit = derived_unit
derived_unit
5.1.12.7.16 principal_characteristics для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_TO_UNITS('local units')/
unit
unit = named_unit
named_unit
5.1.12.8 Прикладной элемент REGULATION
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{/ROOT_CLASS(property_definition, 'regulation')/}
5.1.12.8.1 regulation для external_reference (как international_regulations)
#1: Если значением элемента international_regulations является External_reference
Элемент ПИМ:
PATH
Ссылочный путь:
property_definition
external_identification_item = property_definition
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment <=
external_identification_assignment <=
identification_assignment
identification_assignment.role ->
identification_role
{[identification_role.name = 'external reference']
[identification_role.description = 'international regulations']}
#2: Если значением элемента international_regulations является Document_reference_with_address
Элемент ПИМ:
PATH
Ссылочный путь:
property_definition
/DOC_REF(property_definition,'international regulations')/
document
{/CLASS_ID(document, 'document reference with address')/}
5.1.12.8.2 regulation для external_reference (как national_regulations)
#1: Если значением элемента national_regulations является External_reference
Элемент ПИМ:
PATH
Ссылочный путь:
property_definition
external_identification_item = property_definition
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment <=
external_identification_assignment <=
identification_assignment
identification_assignment.role ->
identification_role
{[identification_role.name = 'external reference']
[identification_role.description = 'national regulations']}
#2: Если значением элемента national_regulations является Document_reference_with_address
Элемент ПИМ:
PATH
Ссылочный путь:
property_definition
/DOC_REF(property_definition,'national regulations')/
document
{/CLASS_ID(document, 'document reference with address')/}
5.1.12.8.3 regulation для external_reference (как standards)
#1: Если значением элемента standards является External_reference
Элемент ПИМ:
PATH
Ссылочный путь:
property_definition
external_identification_item = property_definition
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment <=
external_identification_assignment <=
identification_assignment
identification_assignment.role ->
identification_role
{[identification_role.name = 'external reference']
[identification_role.description = 'standards']}
#2: Если значением элемента standards является Document_reference_with_address
Элемент ПИМ:
PATH
Ссылочный путь:
property_definition
/DOC_REF(property_definition,'standards')/
document
{/CLASS_ID(document, 'document reference with address')/}
5.1.12.9 Прикладной элемент RESEARCH_SHIP
Элемент ПИМ:
product_related_product_category
Источник:
ИСО 10303-41
Ссылочный путь:
{[/PROD_CAT_NAME('research ship')/]
[/CLASS(product_related_product_category,'research ship','Shiptype')/]
[/CLASS(product_related_product_category, 'Shiptype', 'functional definition')/]
[/CLASS(product_related_product_category,'functional definition', 'definition')/]
[/CLASS(product_related_product_category, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_related_product_category,'versionable object')/]}
5.1.12.9.1 description
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.1)
5.1.12.9.2 has_type
Элемент ПИМ:
product_category.name
Источник:
ИСО 10303-41
Ссылочный путь:
/PROD_CAT_NAME('research ship')/
product_category <-
product_category_relationship.category product_category_relationship
{product_category_relationship.name = 'research ship types'}
product_category_relationship.sub_category ->
product_category
{product_category.name = 'user defined'}
5.1.12.9.3 user_def_function
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.2)
5.1.12.9.4 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.3)
5.1.12.9.5 research_ship для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.4)
5.1.12.9.6 research_ship для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.5)
5.1.12.10 Прикладной элемент SHIP_DESIGNATION
Элемент ПИМ:
product_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(product_definition, 'ship designation', 'general characteristics definition')/]
[/CLASS(product_definition, 'general characteristics definition', 'definition')/]
[/CLASS(product_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_definition,'versionable object')/]}
5.1.12.10.1 call_sign
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/HAS_ID_1_ROLE(product_definition, 'call sign')/
5.1.12.10.2 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
product_definition.description
Источник:
ИСО 10303-41
5.1.12.10.3 flag_state
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/HAS_ID_1_ROLE(product_definition, 'flag state')/
5.1.12.10.4 port_of_registration
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/HAS_ID_1_ROLE(product_definition, 'port of registration')/
5.1.12.10.5 ship_identification
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/HAS_ID_2_ROLES(product_definition, 'IMO number', 'pennant hull number')/
5.1.12.10.6 ship_name
Элемент ПИМ:
product_definition.name
Источник:
ИСО 10303-41
Ссылочный путь:
/NAME_ASSGN(product_definition)/
5.1.12.10.7 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition)/
5.1.12.10.8 ship_designation для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_PRODUCT/
{/CLASS_ID(product,'ship')/}
5.1.12.10.9 ship_designation для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
product_definition
identification_item= product_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.12.11 Прикладной элемент Shiptype
#1: Значением элемента Shiptype является carrier
#2: Значением элемента Shiptype является navy_ship
#3: Значением элемента Shiptype является research_ship
#4: Значением элемента Shiptype является working_ship
Элемент ПИМ:
#1: /SUBTYPE(carrier)/ (см. 5.1.12.1)
#2: /SUBTYPE(navy_ship)/ (см. 5.1.12.5)
#3: /SUBTYPE(research_ship)/ (см. 5.1.12.9)
#4: /SUBTYPE(working_ship)/ (см. 5.1.12.13)
5.1.12.11.1 description
Элемент ПИМ:
product_category.description
Источник:
ИСО 10303-41
Ссылочный путь:
product_related_product_category <=
product_category
product_category.description
5.1.12.11.2 user_def_function
Примечание - Атрибут унаследован из супертипа Function_definition (см. 5.1.4.3).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Ссылочный путь:
product_related_product_category <=
product_category
{product_category.name = 'user defined'}
product_category<-
product_category_relationship.category
product_category_relationship
product_category_relationship.sub_category ->
product_category
product_category.name
5.1.12.11.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_related_product_category)/
5.1.12.11.4 Shiptype для ship (как defined_for)
Элемент ПИМ:
PATH
Ссылочный путь:
product_related_product_category
product_related_product_category.products[i] ->
product
{/CLASS_ID(product,'ship')/}
5.1.12.11.5 Shiptype для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_related_product_category
identification_item = product_related_product_category <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.12.12 Прикладной элемент SHIPYARD_DESIGNATION
Элемент ПИМ:
product_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(product_definition, 'shipyard designation','general characteristics definition')/]
[/CLASS(product_definition, 'general characteristics definition', 'definition')/]
[/CLASS(product_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_definition, 'versionable object')/]}
5.1.12.12.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
product_definition.description
Источник:
ИСО 10303-41
5.1.12.12.2 role
Элемент ПИМ:
organization_assignment.role
Источник:
ИСО 10303-41
Ссылочный путь:
/ORG_ASSGN_PART(product_definition)/
{organization_assignment.role -> organization_role
{(organization_role.name = 'prime design')
(organization_role.name ='prime build')
(organization_role.name ='prime repair')
(organization_role.name ='prime')
(organization_role.name ='subcontractor')}}
5.1.12.12.3 shipyard
Элемент ПИМ:
organization_assignment.assigned_organization
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/ORG_ASSGN(product_definition,'shipyard')/
5.1.12.12.4 shipyard_new_building_id
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Ссылочный путь:
/HAS_ID_1_ROLE(product_definition, 'shipyard new building id')/
5.1.12.12.5 shipyard_project_name
Элемент ПИМ:
organizational_project.name
Источник:
ИСО 10303-41
Ссылочный путь:
/ORG_ASSGN(product_definition,'shipyard')/ <-
organizational_project.responsible_organizations[i]
organizational_project
{organizational_project.description = 'shipyard project name'}
organizational_project
organizational_project.name
5.1.12.12.6 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition)/
5.1.12.12.7 shipyard_designation для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа General_characteristics_definition (см. 5.1.4.4).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROD_DEF_PRODUCT/
{/CLASS_ID(product,'ship')/}
5.1.12.12.8 shipyard_designation для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
product_definition
identification_item= product_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.12.13 Прикладной элемент WORKING_SHIP
Элемент ПИМ:
product_related_product_category
Источник:
ИСО 10303-41
Ссылочный путь:
{[/PROD_CAT_NAME('working ship')/]
[/CLASS(product_related_product_category,'working ship,'Shiptype')/]
[/CLASS(product_related_product_category, 'Shiptype', 'functional definition')/]
[/CLASS(product_related_product_category,'functional definition', 'definition')/]
[/CLASS(product_related_product_category,'definition', 'versionable object')/]
[/ROOT_CLASS(product_related_product_category,'versionable object')/]}
5.1.12.13.1 description
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.1)
5.1.12.13.2 has_type
Элемент ПИМ:
product_category.name
Источник:
ИСО 10303-41
Ссылочный путь:
/PROD_CAT_NAME('working ship')/
product_category <-
product_category_relationship.category
product_category_relationship
{product_category_relationship.name = 'working ship types'}
product_category_relationship.sub_category ->
product_category
{(product_category.name = 'Tug')
(product_category.name = 'Sealer')
(product_category.name = 'Fire fighter')
(product_category.name = 'Drilling vessel')
(product_category.name = 'Pipe laying vessel')
(product_category.name = 'Crane vessel')
(product_category.name = 'Dredger')
(product_category.name = 'Supply vessel')
(product_category.name = 'Ice breaker')
(product_category.name = 'Fishing vessel')
(product_category.name = 'Floating dock')
(product_category.name = 'Pilot boat')
(product_category.name = 'Floating hotel')
(product_category.name = 'Well stimulation vessel')
(product_category.name = 'Pusher')
(product_category.name = 'Stern trawler')
(product_category.name = 'Reefer')
(product_category.name = 'Offshore supply vessel')
(product_category.name = 'Oil production vessel')
(product_category.name = 'Oil storage vessel')
(product_category.name = 'Oil production and storage vessel')
(product_category.name = 'Shuttle tanker')
(product_category.name = 'FPSO')
(product_category.name = 'FPGO')
(product_category.name = 'user defined')}
5.1.12.13.3 user_def_function
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.2)
5.1.12.13.4 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.3)
5.1.12.13.5 working_ship для ship (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.4)
5.1.12.13.6 working_ship для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
/SUPERTYPE(Shiptype)/ (см. 5.1.12.11.5)
5.1.13 Функциональная единица ship_measures
5.1.13.1 Прикладной элемент CENTRE_LOCATION
Элемент ПИМ:
compound_representation_item
Источник:
ИСО 10303-43
Правила:
Ссылочный путь:
/ROOT_CLASS(compound_representation_item, 'centre location')/
5.1.13.1.1 longitudinal_location
Элемент ПИМ:
length_measure
Источник:
ИСО 10303-43
Ссылочный путь:
compound_representation_item
compound_representation_item. item_element ->
compound_item_definition = list_representation_item
list_representation_item[ i] ->
representation_item =>
{representation_item. name = 'longitudinal location'}
value_representation_item
{value_representation_item. value_component ->
measure_value = length_measure}
5.1.13.1.2 transversal_location
Элемент ПИМ:
length_measure
Источник:
ИСО 10303-43
Ссылочный путь:
compound_representation_item
compound_representation_item. item_element ->
compound_item_definition = list_representation_item
list_representation_item[ i] -> representation_item =>
{representation_item. name = 'transversal location'}
value_representation_item
{value_representation_item. value_component ->
measure_value = length_measure}
5.1.13.1.3 vertical_location
Элемент ПИМ:
length_measure
Источник:
ИСО 10303-43
Ссылочный путь:
compound_representation_item
compound_representation_item. item_element ->
compound_item_definition = list_representation_item
list_representation_item[ i] ->
representation_item =>
{representation_item. name = 'vertical location'}
value_representation_item
{value_representation_item. value_component ->
measure_value = length_measure}
5.1.13.2 Прикладной элемент DERIVED_UNIT
Примечание - Дополнительное описание использования параметров и единиц приведено в L.7.
Элемент ПИМ:
derived_unit
Источник:
ИСО 10303-41
Ссылочный путь:
(derived_unit
{/NAME_ASSGN_WITH_VAL(derived_unit, 'airflow volume unit')/}
derived_unit.elements[i] ->
[derived_unit_element
{[derived_unit_element.unit ->
([length_unit] [si_unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 3]}]
[derived_unit_element
{[derived_unit_element.unit ->
([time_unit] [si_unit])
([time_unit] [conversion_based_unit])
([time_unit] [context_dependent_unit])]
([time_unit][context_dependent_unit])]
[derived_unit_element.exponent = -1]}])
(derived_unit
{/NAME_ASSGN_WITH_VAL(derived_unit, 'area unit')/}
derived_unit.elements[i] ->
derived_unit_element
derived_unit_element.unit ->
[([length_unit] [si_unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 2]
(derived_unit
{/NAME_ASSGN_WITH_VAL(derived_unit, 'volume unit')/}
derived_unit.elements[i] ->
derived_unit_element
derived_unit_element.unit ->
[([length_unit] [si_unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 3]
(derived_unit
{/NAME_ASSGN_WITH_VAL(derived_unit,
'coefficient of thermal expansion unit')/}
derived_unit.elements[i] ->
[derived_unit_element
{[derived_unit_element.unit ->
([length_unit] [si_unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 1]}]
[derived_unit_element
{[derived_unit_element.unit ->
([length_unit] [si unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = -1]}]
[derived_unit_element
{[derived_unit_element.unit ->
([thermodynamic_temperature_unit] [si_unit])
([thermodynamic_temperature_unit] [conversion_based_unit])
([thermodynamic_temperature_unit] [context_dependent_unit])]
[derived_unit_element.exponent = -1]}])
(derived_unit
{/NAME_ASSGN_WITH_VAL(derived_unit, 'coefficient of vicosity unit')/}
derived_unit.elements[i] ->
[derived_unit_element
{[derived_unit_element.unit ->
([mass_unit] [si_unit])
([mass_unit] [conversion_based_unit])
([mass_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 1]}]
[derived_unit_element
{[derived_unit_element.unit ->
([length_unit] [si_unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = -1]}]
[derived_unit_element
{[derived_unit_element.unit ->
([time_unit] [si_unit])
([time_unit] [conversion_based_unit])
([time_unit] [context_dependent_unit])]
[derived_unit_element.exponent = -1]}])
(derived_unit
{/NAME_ASSGN_WITH_VAL(derived_unit, 'specific heat capacity unit')/}
derived_unit.elements[i] ->
[derived_unit_element
{[derived_unit_element.unit ->
([length_unit] [si_unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 2]}]
[derived_unit_element
{[derived_unit_element.unit ->
([time_unit] [si_unit])
([time_unit] [conversion_based_unit])
([time_unit] [context_dependent_unit])]
[derived_unit_element.exponent = -2]}]
[derived_unit_element
{[derived_unit_element.unit ->
([thermodynamic_temperature_unit] [si_unit])
([thermodynamic_temperature_unit] [conversion_based_unit])
([thermodynamic_temperature_unit] [context_dependent_unit])]
[derived_unit_element.exponent = -1]}])
(derived_unit
{/NAME_ASSGN_WITH_VAL(derived_unit, 'thermal conductivity unit')/}
derived_unit.elements[i] ->
[derived_unit_element
{[derived_unit_element.unit ->
([mass_unit] [si_unit])
([mass_unit] [conversion_based_unit])
([mass_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 1]}]
[derived_unit_element
{[derived_unit_element.unit ->
([length_unit] [si_unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 1]}]
[derived_unit_element
{[derived_unit_element.unit ->
([time_unit] [si_unit])
([time_unit] [conversion_based_unit])
([time_unit] [context_dependent_unit])]
[derived_unit_element.exponent = -3]}]
[derived_unit_element
{[derived_unit_element.unit ->
([thermodynamic_temperature_unit] [si_unit])
([thermodynamic_temperature_unit] [conversion_based_unit])
([thermodynamic_temperature_unit] [context_dependent_unit])]
[derived_unit_element.exponent = -1]}])
(derived_unit
{/NAME_ASSGN_WITH_VAL(derived_unit, 'inertia moment unit')/}
derived_unit.elements[i] ->
derived_unit_element
{[derived_unit_element.unit ->
([length_unit] [si_unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 4]})
(derived_unit
{/NAME_ASSGN_WITH_VAL(derived_unit, 'moment unit')/}
derived_unit.elements[i] ->
[derived_unit_element
{[derived_unit_element.unit ->
([mass_unit] [si_unit])
([mass_unit] [conversion_based_unit])
([mass_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 1]}]
[derived_unit_element
{[derived_unit_element.unit ->
([length_unit] [si_unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 2]}]
[derived_unit_element
{[derived_unit_element.unit ->
([time_unit] [si_unit])
([time_unit] [conversion_based_unit])
([time_unit] [context_dependent_unit])]
[derived_unit_element.exponent = -2]}])
(derived_unit
{/NAME_ASSGN_WITH_VAL(derived_unit, 'speed unit')/}
derived_unit.elements[i] ->
[derived_unit_element {[derived_unit_element.unit ->
([length_unit] [si_unit])
([length_unit] [conversion_based_unit])
([length_unit] [context_dependent_unit])]
[derived_unit_element.exponent = 1]}]
[derived_unit_element {[derived_unit_element.unit ->
([time_unit] [si_unit])
([time_unit] [conversion_based_unit])
([time_unit] [context_dependent_unit])]
[derived_unit_element.exponent = -1]}])
5.1.13.3 Прикладной элемент NAMED_UNIT
Примечание - Дополнительное описание использования параметров и единиц приведено в L.7.
Элемент ПИМ:
named_unit
Источник:
ИСО 10303-41
Ссылочный путь:
named_unit =>
[(si_unit)
(conversion_based_unit)
(context_dependent_unit)]
[(length_unit)
(luminous_intensity_unit)
(mass_unit)
(plane_angle_unit)
(ratio_unit)
(thermodynamic_temperature_unit)]
5.1.13.4 Прикладной элемент PRECISION
Элемент ПИМ:
uncertainty_measure_with_unit
Источник:
ИСО 10303-43
5.1.13.4.1 minimum_point_spacing
Элемент ПИМ:
measure_with_unit.value_component
Источник:
ИСО 10303-43
Ссылочный путь:
uncertainty_measure_with_unit
{uncertainty_measure_with_unit.name = 'distance_accuracy_value'}
uncertainty_measure_with_unit <=
measure_with_unit
{[measure_with_unit.unit_component ->
unit
unit = named_unit
named_unit =>
([length_unit][si_unit])
([length_unit][conversion_based_unit])
([length_unit][context_dependent_unit])]
[measure_with_unit.value_component >
measure_value = positive_length_measure]}
5.1.14 Функциональная единица ship_moulded_form
5.1.14.1 Прикладной элемент MOULDED_FORM
Элемент ПИМ:
product_definition
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(product_definition, 'moulded form', 'item')/]
[/CLASS(product_definition, 'item', 'definable object')/]
[/ROOT_CLASS(product_definition, 'definable object')/]}
5.1.14.1.1 description
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
product_definition.description
Источник:
ИСО 10303-41
5.1.14.1.2 name
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
product_definition.name
Источник:
ИСО 10303-41
Ссылочный путь:
/NAME_ASSGN(product_definition)/
5.1.14.1.3 moulded_form для external_reference (как documentation)
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
#1: Если "как documentation" относится к External_reference
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition
product_definition = external_identification_item
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment
#2: Если "как documentation" относится к Document_reference_with_address
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition
/DOC_REF(product_definition,'documentation')/
document
{/CLASS_ID(document, 'document reference with address')/}
5.1.14.1.4 moulded_form для global_id (как id)
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3) или Item_structure (см. 5.1.8.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_definition
identification_item = product_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.14.1.5 moulded_form для ship (как ship_context)
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition
product_definition.formation->
product_definition_formation
{product_definition_formation.id= 'moulded form'}
product_definition_formation.of_product ->
product
{/CLASS_ID(product, 'ship')/}
5.1.14.2 Прикладной элемент MOULDED_FORM_BOUNDARY_RELATIONSHIP
Элемент ПИМ:
product_definition_relationship
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(product_definition_relationship, 'moulded form boundary relationship', 'moulded form relationship')/]
[/CLASS(product_definition_relationship, 'moulded form relationship', 'item relationship')/]
[/CLASS(product_definition_relationship, 'item relationship', 'definable object')/]
[/ROOT_CLASS(product_definition_relationship, 'definable object')/]
[/CLASS(product_definition_relationship, 'item relationship', 'versionable object')/]
[/ROOT_CLASS(product_definition_relationship, 'versionable object')/]}
5.1.14.2.1 description
Примечание - Атрибут унаследован из супертипа Moulded_form_relationship (см. 5.1.14.5).
Элемент ПИМ:
product_definition_relationship.description
Источник:
ИСО 10303-41
5.1.14.2.2 version_id
Примечание - Атрибут унаследован из супертипа Moulded_form_relationship (см. 5.1.14.5).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition_relationship)/
5.1.14.2.3 moulded_form_boundary_relationship для external_instance_reference (как external_item_1)
Примечание - Атрибут унаследован из супертипа Moulded_form_relationship (см. 5.1.14.5).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Ссылочный путь:
product_definition_relationship
{product_definition_relationship.relating_product_definition ->
product_definition
[/CLASS_ID(product_definition, 'moulded form')/]
[/EXT_INST_REF(product_definition, 'ship moulded form schema', 'moulded form')/]}
5.1.14.2.4 moulded_form_boundary_relationship для external_instance_reference (как external_item_2)
Примечание - Атрибут унаследован из супертипа Moulded_form_relationship (см. 5.1.14.5).
Элемент ПИМ:
PATH
Источник:
ИСО 10303-41
Ссылочный путь:
product_definition_relationship
{product_definition_relationship. related_product_definition ->
product_definition
[/CLASS_ID(product_definition, 'moulded form')/]
[/EXT_INST_REF(product_definition, 'ship moulded form schema', 'moulded form')/]}
5.1.14.2.5 moulded_form_boundary_relationship для global_id (как id)
Примечание - Атрибут унаследован из супертипа Moulded_form_relationship (см. 5.1.14.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_definition_relationship
identification_item = product_definition_relationship <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.14.2.6 moulded_form_boundary_relationship для moulded_form (как item_1)
Примечание - Атрибут унаследован из супертипа Moulded_form_relationship (см. 5.1.14.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition
{/CLASS_ID(product_definition, 'moulded form')/}
5.1.14.2.7 moulded_form_boundary_relationship для moulded_form (как item_2)
Примечание - Атрибут унаследован из супертипа Moulded_form_relationship (см. 5.1.14.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_definition_relationship
product_definition_relationship.related_product_definition ->
product_definition
{/CLASS_ID(product_definition, 'moulded form')/}
5.1.14.3 Прикладной элемент MOULDED_FORM_DESIGN_DEFINITION
Элемент ПИМ:
product_definition_shape
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(product_definition_shape, 'moulded form design definition', 'design definition')/]
[/CLASS(product_definition_shape, 'design definition', 'definition')/]
[/CLASS(product_definition_shape, 'definition', 'versionable object')/]
[/ROOT_CLASS(product_definition_shape, 'versionable object')/]}
5.1.14.3.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
property_definition.description
Источник:
ИСО 10303-41
5.1.14.3.2 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition_shape)/
5.1.14.3.3 moulded_form_design_definition для moulded_form_boundary_relationship (как borders)
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape =>
property_definition
property_definition.definitions->
characterized_definition = characterized_product_definition
characterized_product_definition = product_definition
product_definition <-
product_definition_relationship.relating_product_definition
product_definition_relationship
{/CLASS_ID(product_definition_relationship, 'moulded form boundary relationship')/}
5.1.14.3.4 moulded_form_design_definition для plane (как borders)
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <-
shape_aspect.of_shape
shape_aspect
{shape_aspect.name = 'border'}
shape_aspect = represented_definition <-
/PDR_NAME('border representation')/ ->
representation
representation.items[i] ->
representation_item =>
{representation_item.name = '.UNUSED.'}
geometric_representation_item =>
plane
5.1.14.3.5 moulded_form_design_definition для ship_curve (как borders)
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <-
shape_aspect.of_shape
shape_aspect
{shape_aspect.name = 'border'}
shape_aspect = represented_definition <-
/PDR_NAME('border representation')/ ->
representation
representation.items[i] ->
compound_representation_item
{/CLASS_ID(compound_representation_item, 'ship curve')/}
5.1.14.3.6 moulded_form_design_definition для spacing_position (как borders)
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <-
shape_aspect.of_shape
shape_aspect
{shape_aspect.name = 'border'}
shape_aspect = represented_definition <-
/PDR_NAME('border representation')/ ->
representation
representation.items[i] ->
compound_representation_item
{/CLASS_ID(compound_representation_item, 'spacing position')/}
5.1.14.3.7 moulded_form_design_definition для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <=
/PROP_TO_PROD_DEF/
{/CLASS_ID(product_definition, 'moulded form')/}
5.1.14.3.8 moulded_form_design_definition для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_definition_shape
identification_item = product_definition_shape <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.14.3.9 moulded_form_design_definition для derived_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <=
property_definition
/PROP_DEF_TO_UNITS('local units')/
unit
unit = derived_unit
derived_unit
5.1.14.3.10 moulded_form_design_definition для named_unit (как local_units)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <=
property_definition
/PROP_DEF_TO_UNITS('local units')/
unit
unit = named_unit
named_unit
5.1.14.3.11 moulded_form_design_definition для edge_based_wireframe_shape (как moulded_surface)
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <-
shape_aspect.of_shape
shape_aspect
{shape_aspect.name = 'moulded surface'}
shape_aspect = represented_definition <-
/PDR_NAME('surface representation')/ ->
representation=>
shape_representation =>
edge_based_wireframe_shape_representation
5.1.14.3.12 moulded_form_design_definition для moulded_form_shape_representation (как moulded_surface)
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <-
shape_aspect.of_shape
shape_aspect
{shape_aspect.name = 'moulded surface'}
shape_aspect = represented_definition <-
/PDR_NAME('surface representation')/ ->
representation =>
shape_representation
{/CLASS_ID(shape_representation, 'moulded form shape representation')/}
5.1.14.3.13 moulded_form_design_definition для non_manifold_surface_shape (как moulded_surface)
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <-
shape_aspect.of_shape
shape_aspect
{shape_aspect.name = 'moulded surface'}
shape_aspect = represented_definition <-
/PDR_NAME('surface representation')/ ->
representation =>
shape_representation =>
non_manifold_surface_shape_representation
5.1.14.3.14 moulded_form_design_definition для ship_surface (как moulded_surface)
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <-
shape_aspect.of_shape
shape_aspect
{shape_aspect.name = 'moulded surface'}
shape_aspect = represented_definition <-
/PDR_NAME('surface representation')/ ->
representation
representation.items[i] ->
compound_representation_item
{/CLASS_ID(compound_representation_item, ship_surface)/}
5.1.14.3.15 moulded_form_design_definition для edge_based_wireframe_shape (как representations)
Примечание - Атрибут унаследован из супертипа Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <=
property_definition <- represented_definition <-
/SDR_NAME('moulded form design representation')/
property_definition_representation.used_representation ->
representation =>
shape_representation =>
edge_based_wireframe_shape_representation
5.1.14.3.16 moulded_form_design_definition для non_manifold_surface_shape (как representations)
Примечание - Атрибут унаследован из супертипа Design_definition (см. 5.1.4.2).
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_shape <=
property_definition <-
represented_definition <-
/SDR_NAME('moulded form design representation')/
property_definition_representation.used_representation ->
representation =>
shape_representation =>
non_manifold_surface_shape_representation
5.1.14.3.17 status
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
product_definition_shape <=
/PROP_DEF_REP_HELP('moulded form design parameters')/
representation
representation.items [i] ->
representation_item =>
{representation_item.name = 'status'}
descriptive_representation_item
{(descriptive_representation_item.description = 'partial')
(descriptive_representation_item.description = 'complete')}
5.1.14.4 Прикладной элемент MOULDED_FORM_FUNCTIONAL_DEFINITION
Элемент ПИМ:
property_definition
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(property_definition, 'moulded form functional definition', 'functional definition')/]
[/CLASS(property_definition, 'functional definition', 'definition')/]
[/CLASS(property_definition, 'definition', 'versionable object')/]
[/ROOT_CLASS(property_definition, 'versionable object')/]}
5.1.14.4.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через супертип Functional_definition (см. 5.1.4.3), который наследуется из супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
property_definition.description
Источник:
ИСО 10303-41
5.1.14.4.2 the_function
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-45
Правила:
Ссылочный путь:
/PROP_DEF_REP_HELP('moulded form function parameters')/
representation
representation.items [i] ->
representation_item =>
{representation_item.name = 'function'}
descriptive_representation_item
{(descriptive_representation_item.description = 'ship hull')
(descriptive_representation_item.description = 'propeller')
(descriptive_representation_item.description = 'rudder')
(descriptive_representation_item.description = 'bulbous bow')
(descriptive_representation_item.description = 'bulbous stern')
(descriptive_representation_item.description = 'appendage')
(descriptive_representation_item.description = 'thruster')
(descriptive_representation_item.description = 'keel')
(descriptive_representation_item.description = 'transom')
(descriptive_representation_item.description = 'double bottom')
(descriptive_representation_item.description = 'double ship hull')
(descriptive_representation_item.description = 'deck')
(descriptive_representation_item.description = 'superstructure')
(descriptive_representation_item.description = 'horizontal girder')
(descriptive_representation_item.description = 'longitudinal girder')
(descriptive_representation_item.description = 'longitudinal bulkhead')
(descriptive_representation_item.description = 'transverse bulkhead')
(descriptive_representation_item.description = 'frame')
(descriptive_representation_item.description = 'pressure hull')
(descriptive_representation_item.description = 'non-structural bulkhead')
(descriptive_representation_item.description = 'grating')
(descriptive_representation_item.description = 'user defined')}
5.1.14.4.3 user_def_function
Примечание - Атрибут унаследован из супертипа Functional_definition (см. 5.1.4.3).
Элемент ПИМ:
descriptive_representation_item.description
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/PROP_DEF_REP_HELP('moulded form function parameters')/
representation
representation.items [i] ->
representation_item =>
{representation_item.name = 'user def function'}
descriptive_representation_item
descriptive_representation_item.description
5.1.14.4.4 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через супертип Functional_definition (см. 5.1.4.3), который наследуется от супертипа Definition (см. 5.1.4.1).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(property_definition)/
5.1.14.4.5 moulded_form_functional_definition для moulded_form (как defined_for)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Functional_definition (см. 5.1.4.3).
Элемент ПИМ:
PATH
Ссылочный путь:
/PROP_TO_PROD_DEF/
{/CLASS_ID(product_definition, 'moulded form')/}
5.1.14.4.6 moulded_form_functional_definition для global_id (как id)
Примечание - Атрибут унаследован из супертипа Definition (см. 5.1.4.1) через супертип Functional_definition (см. 5.1.4.3).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
property_definition
identification_item = product_definition <-
property_definition
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.14.5 Прикладной элемент MOULDED_FORM_RELATIONSHIP
Элемент ПИМ:
product_definition_relationship
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(product_definition_relationship, 'moulded form relationship', 'item relationship')/]
[/CLASS(product_definition_relationship, 'item relationship', 'definable object')/]
[/ROOT_CLASS(product_definition_relationship, 'definable object')/]
[/CLASS(product_definition_relationship, 'item relationship', 'versionable object')/]
[/ROOT_CLASS(product_definition_relationship, 'versionable object')/]}
5.1.14.5.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через Item_relationship (см. 5.1.8.4).
Элемент ПИМ:
product_definition_relationship.description
Источник:
ИСО 10303-41
5.1.14.5.2 version_id
Примечание - Атрибут унаследован из супертипа Item_relationship (см. 5.1.8.4).
Элемент ПИМ:
applied_identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(product_definition_relationship)/
5.1.14.5.3 moulded_form_relationship для external_instance_reference (как external_item_1)
Примечание - Атрибут унаследован из супертипа Item_relationship (см. 5.1.8.4).
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_relationship
{product_definition_relationship.relating_product_definition ->
product_definition
[/CLASS_ID(product_definition, 'moulded form')/]
[/EXT_INST_REF(product_definition, 'ship moulded form schema', 'moulded form')/]}
5.1.14.5.4 moulded_form_relationship для external_instance_reference (как external_item_2)
Примечание - Атрибут унаследован из супертипа Item_relationship (см. 5.1.8.4).
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition_relationship
{product_definition_relationship.related_product_definition ->
product_definition
[/CLASS_ID(product_definition, 'moulded form')/]
[/EXT_INST_REF(product_definition, 'ship moulded form schema', 'moulded form')/]}
5.1.14.5.5 moulded_form_relationship для global_id (как id)
Примечание - Атрибут унаследован из супертипа Item_relationship (см. 5.1.8.4).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_definition_relationship
identification_item = product_definition_relationship <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.14.5.6 moulded_form_relationship для moulded_form (как item_1)
Примечание - Атрибут унаследован из супертипа Item_relationship (см. 5.1.8.4).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_definition_relationship
product_definition_relationship.relating_product_definition ->
product_definition
{/CLASS_ID(product_definition, 'moulded form')/}
5.1.14.5.7 moulded_form_relationship для moulded_form (как item_2)
Примечание - Атрибут унаследован из супертипа Item_relationship (см. 5.1.8.4).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_definition_relationship
product_definition_relationship.related_product_definition ->
product_definition
{/CLASS_ID(product_definition, 'moulded form')/}
5.1.14.6 Прикладной элемент MOULDED_FORM_REPRESENTATION_ITEM
#1: значением элемента moulded form representation item является ship_curve
#2: значением элемента moulded form representation item является ship_point
#3: значением элемента moulded form representation item является ship_surface
Элемент ПИМ:
#1: /SUBTYPE(ship_curve)/ (см. 5.1.2.1)
#2: /SUBTYPE(ship_point)/ (см. 5.1.2.3)
#3: /SUBTYPE(ship_surface)/ (см. 5.1.2.4)
5.1.14.7 Прикладной элемент MOULDED_FORM_REPRESENTATION_RELATIONSHIP
Элемент ПИМ:
representation_relationship
Источник:
ИСО 10303-43
Ссылочный путь:
/ROOT_CLASS(representation_relationship,
'moulded form representation relationship')/
5.1.14.7.1 description
Элемент ПИМ:
representation_relationship.description
Источник:
ИСО 10303-43
5.1.14.7.2 id
Элемент ПИМ:
representation_relationship.name
Источник:
ИСО 10303-43
5.1.14.7.3 moulded_form_representation_relationship для moulded_form_representation (как rep_1)
Элемент ПИМ:
PATH
Ссылочный путь:
representation_relationship
representation_relationship.rep_1 ->
representation =>
shape_representation
{CLASS_ID<shape_representation, 'moulded form shape representation'>
5.1.14.7.4 moulded_form_representation_relationship для moulded_form_representation (как rep_2)
Элемент ПИМ:
PATH
Ссылочный путь:
representation_relationship
representation_relationship.rep_2 ->
representation =>
shape_representation
{CLASS_ID<shape_representation, 'moulded form shape representation'>
5.1.14.8 Прикладной элемент MOULDED_FORM_SHAPE_REPRESENTATION
#1: Значением элемента Moulded_form_shape_representation является Offset_table_shape_representation
#2: Значением элемента Moulded_form_shape_representation является Surface_shape_representation
#3: Значением элемента Moulded_form_shape_representation является Wireframe_shape_representation
Элемент ПИМ:
#1: /SUBTYPE(Offset_table_shape_representation)/ (см. 5.1.10.2)
#2: /SUBTYPE(Surface_shape_representation)/ (см. 5.1.15.2)
#3: /SUBTYPE(Wireframe_shape_representation)/ (см. 5.1.16.4)
5.1.14.8.1 moulded_form_representation_id
Элемент ПИМ:
representation.id
Источник:
ИСО 10303-43
Ссылочный путь:
/ID_ASSGN(representation)/
5.1.14.8.2 moulded_form_shape_representation для symmetry (как moulded_form_symmetry)
Элемент ПИМ:
PATH
Ссылочный путь:
shape_representation <=
representation
representation.items[i] ->
representation_item =>
({representation_item.name = 'rotational axis'}
geometric_representation_item =>
placement =>
axis1_placement)
({representation_item.name = 'symmetry plane'}
geometric_representation_item =>
surface =>
elementary_surface =>
plane)
5.1.14.9 Прикладной элемент PLANAR_SYMMETRY
Элемент ПИМ:
plane
Источник:
ИСО 10303-42
5.1.14.9.1 planar_symmetry для plane (как the_symmetry_plane)
Элемент ПИМ:
IDENTICAL MAPPING
5.1.14.10 Прикладной элемент ROTATIONAL_SYMMETRY
Элемент ПИМ:
axis1_placement
Источник:
ИСО 10303-42
5.1.14.10.1 rotational_symmetry для axis1_placement (как the_rotational_axis)
Элемент ПИМ:
IDENTICAL MAPPING
5.1.14.11 Прикладной элемент SHIP_MOULDED_FORM
Элемент ПИМ:
[product_definition]
[group]
Источник:
ИСО 10303-41, ИСО 10303-41
Ссылочный путь:
{[/CLASS(product_definition, 'ship moulded form', 'item structure')/]
[/CLASS(product_definition, 'item structure ', 'definable object')/]
[/CLASS(product_definition, 'item structure', 'versionable object')/]
[/CLASS(product_definition, 'ship moulded form', 'item')/]
[/CLASS(product_definition, 'item','definable object')/]
[/ROOT_CLASS(product_definition, 'definable object')/]
[/ROOT_CLASS(product_definition, 'versionable object')/]
[product_definition
/LINK_TO_GROUP(product_definition)/]}
5.1.14.11.1 description
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
product_definition.description
Источник:
ИСО 10303-41
5.1.14.11.2 name
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
product_definition.name
Источник:
ИСО 10303-41
Ссылочный путь:
/NAME_ASSGN(product_definition)/
5.1.14.11.3 version_id
Примечание - Атрибут унаследован из супертипа Item_structure (см. 5.1.8.5).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(group)/
5.1.14.11.4 ship_moulded_form для external_reference (как documentation)
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
#1: Если "как documentation" относится к External_reference
Элемент ПИМ:
PATH
Ссылочный путь:
product definition
product_definition = external_identification_item
external_identification_item <-
applied_external_identification_assignment.items[i]
applied_external_identification_assignment
#2: Если "как documentation" относится к Document_reference_with_address
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition
/DOC_REF(product_definition,'documentation')/
document
{/CLASS_ID(document, 'document reference with address')/}
5.1.14.11.5 ship_moulded_form для external_instance_reference (как external_items)
Примечание - Атрибут унаследован из супертипа Item_structure (см. 5.1.8.5).
Элемент ПИМ:
PATH
Ссылочный путь:
group <-
/GROUPS(product_definition, 'item structure')/
([/CLASS_ID(product_definition, 'moulded form')/]
[/EXT_INST_REF(product_definition, 'ship moulded form schema','moulded form')/])
5.1.14.11.6 ship_moulded_form для external_instance_reference (как external_relationships)
Примечание - Атрибут унаследован из супертипа Item_structure (см. 5.1.8.5).
Элемент ПИМ:
PATH
Ссылочный путь:
group <-
/GROUPS(product_definition_relationship, 'item structure')/
([/CLASS_ID(product_definition_relationship, 'moulded form relationship')/]
[/EXT_INST_REF(product_definition_relationship, 'ship moulded form schema', 'moulded form relationship')/])
5.1.14.11.7 ship_moulded_form для global_id (как id)
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3) или Item_structure (см. 5.1.8.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
product_definition
identification_item = product_definition <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.14.11.8 ship_moulded_form для moulded_form (как items)
Примечание - Атрибут унаследован из супертипа Item_structure (см. 5.1.8.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
group <-
/GROUPS(product_definition, 'item structure')/
{/CLASS_ID(product_definition, 'moulded form')/}
5.1.14.11.9 ship_moulded_form для moulded_form_relationship (как relationships)
Примечание - Атрибут унаследован из супертипа Item_structure (см. 5.1.8.5).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
group <-
/GROUPS(product_definition_relationship, 'item structure')/
{/CLASS_ID(product_definition_relationship, 'moulded form relationship')/}
5.1.14.11.10 ship_moulded_form для ship (как ship_context)
Примечание - Атрибут унаследован из супертипа Item (см. 5.1.8.3).
Элемент ПИМ:
PATH
Ссылочный путь:
product_definition
product_definition.formation->
product_definition_formation
{product_definition_formation.id = 'ship moulded form'}
product_definition_formation.of_product ->
product
{/CLASS_ID(product, 'ship')/}
5.1.14.12 Прикладной элемент SHIP_MOULDED_FORM_REVISION
Элемент ПИМ:
group
Источник:
ИСО 10303-41
Ссылочный путь:
{[/CLASS(group,'ship moulded form revision', 'revision with context')/]
[/CLASS(group, 'revision with context', 'revision')/]
[/CLASS(group, 'revision', 'versionable_object')/]
[/ROOT_CLASS(group, 'versionable_object')/]}
5.1.14.12.1 description
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через супертип Revision (см. 5.1.3.14), который наследуется из супертипа Revision (см. 5.1.3.13).
Элемент ПИМ:
group.description
Источник:
ИСО 10303-41
Правила:
5.1.14.12.2 name
Примечание - Атрибут унаследован из супертипа Revision (см. 5.1.3.14), который наследуется из супертипа Revision (см. 5.1.3.13).
Элемент ПИМ:
group.name
Источник:
ИСО 10303-41
5.1.14.12.3 version_id
Примечание - Атрибут унаследован из супертипа Versionable_object (см. 5.1.9.17) через супертип Revision (см. 5.1.3.14), который наследуется из супертипа Revision (см. 5.1.3.13).
Элемент ПИМ:
identification_assignment.assigned_id
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
/VERSION_ID(group)/
5.1.14.12.4 ship_moulded_form_revision для ship_moulded_form (как context_of_revision)
Примечание - Атрибут унаследован из супертипа Revision_with_context (см. 5.1.3.14).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
group <-
/(RELATE_GROUP_2_DO(product_definition, 'ship moulded form')/
5.1.14.12.5 ship_moulded_form_revision для moulded_form_design_definition (как members)
Примечание - Атрибут унаследован из супертипа Revision (см. 5.1.3.14), который наследуется из супертипа Revision (см. 5.1.3.13).
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
group <-
(/RELATE_GROUP_2_VO(product_definition_shape,'moulded form design definition')/)
(/RELATE_GROUP_2_VO(applied_external_identification_assignment,'external instance reference')/)
5.1.14.13 Прикладной элемент SYMMETRY
#1: если значением элемента symmetry является planar_symmetry
#2: если значением элемента symmetry является rotational_symmetry
Элемент ПИМ:
#1: /SUBTYPE(planar_symmetry)/ (см. 5.1.14.9)
#2: /SUBTYPE(rotational_symmetry)/ (см. 5.1.14.10)
5.1.15 Функциональная единица surface_representations
5.1.15.1 Прикладной элемент NON_MANIFOLD_SURFACE_SHAPE
Элемент ПИМ:
non_manifold_surface_shape_representation
Источник:
ИСО 10303-508
Правила:
5.1.15.2 Прикладной элемент SURFACE_SHAPE_REPRESENTATION
Элемент ПИМ:
non_manifold_surface_shape_representation
Источник:
ИСО 10303-508
Правила:
Ссылочный путь:
{[/CLASS(non_manifold_surface_shape_representation,'surface shape representation','moulded form shape representation')/]
[/ROOT_CLASS(non_manifold_surface_shape_representation,'moulded form shape representation')/]}
5.1.15.2.1 moulded_form_representation_id
Примечание - Атрибут унаследован из супертипа Moulded_form_shape_representation (см. 5.1.14.8)
Элемент ПИМ:
/SUPERTYPE(Moulded_form_shape_representation)/ (см. 5.1.14.8.1)
5.1.15.2.2 surface_shape_representation для face_based_surface_model (как items)
Элемент ПИМ:
PATH
Ссылочный путь:
non_manifold_surface_shape_representation <=
shape_representation <=
representation
representation items[i] ->
face_based_surface_model
5.1.15.2.3 surface_shape_representation для symmetry (как moulded_form_symmetry)
Примечание - Атрибут унаследован из супертипа Moulded_form_shape_representation (см. 5.1.14.8).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_shape_representation)/ (см. 5.1.14.8.2)
5.1.15.3 SURFACE_WITH_IDENTIFIER
элемент AIM:
surface
Источник:
ИСО 10303-508
Ссылочный путь:
/ROOT_CLASS(surface,'surface with identifier')/
5.1.15.3.1 surface_with_identifier для global_id (как id)
Элемент AIM:
PATH
Правила:
Ссылочный путь:
surface
identification_item = surface <-
applied_identification_assignment.items[i]
applied_identification_assignment
5.1.16 Функциональная единица wireframe_representations
5.1.16.1 Прикладной элемент DGE_BASED_WIREFRAME_SHAPE
Элемент ПИМ:
edge_based_wireframe_shape_representation
Источник:
ИСО 10303-501
ИСО 10303-501
5.1.16.2 Прикладной элемент KNOT
Элемент ПИМ:
[vertex_point]
[compound_representation_item]
Источник:
ИСО 10303-42, ИСО 10303-42
Ссылочный путь:
{[/ROOT_CLASS(vertex_point, 'knot')/]
[/ROOT_CLASS(compound_representation_item, 'knot')/]}
5.1.16.2.1 knot для ship_curve (как intersecting_ship_curves)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('intersecting ship curve')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'ship curve')/}
5.1.16.2.2 knot для vector (как tangent_information)
Элемент ПИМ:
PATH
Ссылочный путь:
/COMPOUND('tangent vector')/
geometric_representation_item =>
vector
5.1.16.3 Прикладной элемент SHIP_CURVE_SEGMENT
Элемент ПИМ:
[edge_curve]
[compound_representation_item]
Источник:
ИСО 10303-42, ИСО 10303-42
Ссылочный путь:
{[/ROOT_CLASS(edge_curve, 'ship curve segment')/]
[/ROOT_CLASS(compound_representation_item, 'ship curve segment')/]}
5.1.16.3.1 ship_curve_segment для ship_curve (как part_of_ship_curve)
Элемент ПИМ:
PATH
Правила:
Ссылочный путь:
/COMPOUND('ship curve segment')/
compound_representation_item
{/CLASS_ID(compound_representation_item, 'ship curve')/}
5.1.16.4 Прикладной элемент WIREFRAME_SHAPE_REPRESENTATION
Элемент ПИМ:
shape_representation
Источник:
ИСО 10303-41
Правила:
Ссылочный путь:
{[/CLASS(shape_representation,'wireframe shape representation','moulded form shape representation')/]
[/ROOT_CLASS(shape_representation,'moulded form shape representation')/]}
5.1.16.4.1 moulded_form_representation_id
Примечание - Атрибут унаследован из супертипа Moulded_form_shape_representation (см. 5.1.14.8).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_shape_representation)/ (см. 5.1.14.8.1)
5.1.16.4.2 wireframe_shape_representation для ship_curve (как items)
Элемент ПИМ:
PATH
Ссылочный путь:
shape_representation <=
representation
representation.items[i] ->
representation_item =>
compound_representation_item
{/CLASS_ID(compound_representation_item, 'ship curve')/}
5.1.16.4.3 wireframe_shape_representation для symmetry (как moulded_form_symmetry)
Примечание - Атрибут унаследован из супертипа Moulded_form_shape_representation (см. 5.1.14.8).
Элемент ПИМ:
/SUPERTYPE(Moulded_form_shape_representation)/ (см. 5.1.14.8.2)
5.2 Сокращенный EXPRESS-листинг прикладной интерпретированной модели
В данном разделе определена EXPRESS-схема, использующая элементы из интегрированных ресурсов и AIC <1> и содержащая типы, специализированные объекты, правила и функции, относящиеся к настоящему стандарту. В данном разделе также определены модификации текстового материала для конструктивов, импортируемых из других интегрированных ресурсов и AIC. Определения и фрагменты языка EXPRESS, представленные в интегрированных ресурсах для конструктивов, используемых в ПИМ, могут включать в себя элементы списка выбора и подтипы, не импортируемые в ПИМ. Требования, установленные в интегрированных ресурсах, относящиеся к элементам списка выбора и подтипам, применяются исключительно к тем элементам, которые импортируются в ПИМ.
--------------------------------
<1> Прикладные интерпретированные конструктивы.
*)
SCHEMA ship_moulded_form_SCHEMA;
USE FROM aic_non_manifold_surface
(non_manifold_surface_shape_representation);
-- ИСО 10303-508
USE FROM aic_edge_based_wireframe
(edge_based_wireframe_shape_representation);
-- ИСО 10303-501
USE FROM aic_topologically_bounded_surface
(advanced_face);
-- ИСО 10303-511
USE FROM action_schema
(action,
action_method,
action_relationship,
action_request_solution,
executed_action,
versioned_action_request);
-- ИСО 10303-41
USE FROM approval_schema
(approval,
approval_date_time,
approval_person_organization);
-- ИСО 10303-41
USE FROM application_context_schema
(application_context,
application_protocol_definition);
-- ИСО 10303-41
USE FROM basic_attribute_schema
(object_role);
-- ИСО 10303-41
USE FROM date_time_schema
(calendar_date,
date_and_time,
date_time_role,
ordinal_date,
week_of_year_and_day_date);
-- ИСО 10303-41
USE FROM document_schema
(document,
document_representation_type,
document_usage_constraint);
-- ИСО 10303-41
USE FROM external_reference_schema
(external_source,
external_source_relationship,
externally_defined_item);
-- ИСО 10303-41
USE FROM effectivity_schema
(effectivity,
serial_numbered_effectivity);
-- ИСО 10303-41
REFERENCE FROM geometry_schema
(dummy_gri);
-- ИСО 10303-42
USE FROM geometric_model_schema
(faceted_brep,
geometric_curve_set);
USE FROM geometry_schema
(axis1_placement,
axis2_placement_2d,
axis2_placement_3d,
b_spline_curve,
b_spline_surface,
b_spline_curve_with_knots,
b_spline_surface_with_knots,
bezier_curve,
bezier_surface,
bounded_curve,
bounded_pcurve,
bounded_surface_curve,
cartesian_point,
circle,
composite_curve_on_surface,
conical_surface,
curve,
cylindrical_surface,
degenerate_pcurve,
degenerate_toroidal_surface,
direction,
elementary_surface,
ellipse,
-- ИСО 10303-42
evaluated_degenerate_pcurve,
geometric_representation_item,
geometric_representation_context,
hyperbola,
intersection_curve,
line,
oriented_surface,
parabola,
plane,
point_on_curve,
point_on_surface,
quasi_uniform_curve,
quasi_uniform_surface,
rational_b_spline_curve,
rational_b_spline_surface,
seam_curve,
spherical_surface,
surface_of_linear_extrusion,
surface_of_revolution,
toroidal_surface,
uniform_curve,
uniform_surface,
vector);
USE FROM group_schema
(group,
group_relationship);
-- ИСО 10303-41
USE FROM management_resources_schema
(action_request_assignment,
action_assignment,
approval_assignment,
classification_assignment,
classification_role,
date_and_time_assignment,
document_reference,
effectivity_assignment,
external_identification_assignment,
group_assignment,
identification_assignment,
identification_role,
identification_assignment_relationship,
organization_assignment,
person_assignment,
person_and_organization_assignment);
-- ИСО 10303-41
USE FROM material_property_definition_schema
(property_definition_relationship);
-- ИСО 10303-41
USE FROM measure_schema
(amount_of_substance_measure,
amount_of_substance_unit,
area_measure,
celsius_temperature_measure,
conversion_based_unit,
context_dependent_measure,
context_dependent_unit,
count_measure,
derived_unit,
electric_current_measure,
electric_current_unit,
global_unit_assigned_context,
length_measure,
length_measure_with_unit,
length_unit,
luminous_intensity_measure,
luminous_intensity_unit,
mass_measure,
mass_measure_with_unit,
mass_unit,
measure_with_unit,
named_unit,
plane_angle_measure,
-- ИСО 10303-41
plane_angle_measure_with_unit,
plane_angle_unit,
positive_length_measure,
positive_plane_angle_measure,
ratio_measure,
ratio_unit,
si_unit,
solid_angle_measure,
solid_angle_measure_with_unit,
solid_angle_unit,
thermodynamic_temperature_measure,
thermodynamic_temperature_unit,
time_measure,
time_unit,
volume_measure);
USE FROM person_organization_schema
(address,
person,
person_and_organization,
person_and_organization_role,
personal_address,
organization,
organizational_address,
organizational_project);
-- ИСО 10303-41
USE FROM product_definition_schema
(product,
product_category_relationship,
product_definition,
product_definition_relationship,
product_related_product_category);
-- ИСО 10303-41
USE FROM product_property_definition_schema
(characterized_definition,
characterized_object,
product_definition_shape,
property_definition,
shape_aspect);
-- ИСО 10303-41
USE FROM product_property_representation_schema
(property_definition_representation,
shape_definition_representation,
shape_representation);
-- ИСО 10303-41
USE FROM qualified_measure_schema
(descriptive_representation_item);
-- ИСО 10303-41
USE FROM representation_schema
(compound_representation_item,
global_uncertainty_assigned_context,
item_defined_transformation,
list_representation_item,
mapped_item,
parametric_representation_context,
representation,
representation_item,
representation_map,
representation_relationship,
set_representation_item,
value_representation_item);
-- ИСО 10303-43
REFERENCE FROM support_resource_schema
(bag_to_set);
-- ИСО 10303-41
REFERENCE FROM topology_schema
(dummy_tri);
-- ИСО 10303-42
USE FROM topology_schema
(edge,
edge_curve,
edge_loop,
face,
face_surface,
oriented_edge,
oriented_face,
poly_loop,
subface,
vertex_point);
(*
-- ИСО 10303-42
Примечание - Указанные выше схемы приведены в следующих частях ИСО 10303:
aic_non_manifold_surface
ИСО 10303-508
aic_topological_bounded_surface
ИСО 10303-511
aic_edge_based_wireframe
ИСО 10303-501
action_schema
ИСО 10303-41
approval_schema
ИСО 10303-41
basic_attribute_schema
ИСО 10303-41
date_time_schema
ИСО 10303-41
document_schema
ИСО 10303-41
external_reference_schema
ИСО 10303-41
geometry_schema
ИСО 10303-42
group_schema
ИСО 10303-41
management_resources_schema
ИСО 10303-41
material_property_definition_schema
ИСО 10303-41
measure_schema
ИСО 10303-41
person_organization_schema
ИСО 10303-41
product_definition_schema
ИСО 10303-41
product_property_definition_schema
ИСО 10303-41
product_property_representation_schema
ИСО 10303-41
qualified_measure_schema
ИСО 10303-45
representation_schema
ИСО 10303-43
support_resource_schema
ИСО 10303-41
topology_schema
ИСО 10303-42
5.2.1 Фундаментальные понятия и допущения
5.2.2 Типы теоретических обводов судна
5.2.2.1 Тип action_item
Тип action_item определяет объекты product, product_definition, property_definition, product_definition_relationship, product_definition_shape, product_related_product_category, action_request_solution и executed_action, которым может быть присвоен объект action.
EXPRESS-спецификация:
*)
TYPE action_item = SELECT
(product,
product_definition,
property_definition,
product_definition_relationship,
product_definition_shape,
product_related_product_category,
action_request_solution,
executed_action);
END_TYPE;
(*
5.2.2.2 Тип action_request_item
Тип action_request_item определяет объекты action и executed_action, которым может быть присвоен объект action_request.
*)
TYPE action_request_item = SELECT
(action,
executed_action);
END_TYPE;
(*
5.2.2.3 Тип approval_item
Тип approval_item определяет объекты product_definition, product_definition_shape, property_definition и product_related_product_category, которым может быть присвоен объект approval.
EXPRESS-спецификация:
*)
TYPE approval_item = SELECT
(product_definition,
product_definition_shape,
property_definition,
product_related_product_category);
END_TYPE;
(*
5.2.2.4 Тип classification_item
Тип classification_item идентифицирует action, action_request_solution, applied_action_request_assignment, approval, axis2_placement_3d, compound_representation_item, external_source, document, document_reference, edge_curve, executed_action, group, identification_assignment_relationship, measure_with_unit, product, product_definition, product_definition_relationship, product_definition_shape, product_related_product_category, property_definition, property_definition_representation, representation, representation_item, representation_relationship, shape_representation, surface, vertex_point и versioned_action_request, для которых может быть назначена классификация.
EXPRESS-спецификация:
*)
TYPE classification item = SELECT
(action,
action_request_solution,
applied_action_request_assignment,
approval,
axis2_placement_3d,
compound_representation_item,
document,
document_reference,
edge_curve,
executed_action,
external_source,
group,
identification_assignment_relationship,
measure_with_unit,
product,
product_definition,
product_definition_relationship,
product_definition_shape,
product_related_product_category,
property_definition,
property_definition_representation,
representation,
representation_item,
representation_relationship,
shape_representation,
surface,
vertex_point,
versioned_action_request);
END_TYPE;
(*
5.2.2.5 Тип date_and_time_item
Объект date_and_time_item определяет объекты action, action_request_solution, product_definition, executed_action и versioned_action_request, которым может быть присвоена дата.
EXPRESS-спецификация:
*)
TYPE date_and_time_item = SELECT
(action_request_solution,
executed_action,
versioned_action_request,
product_definition,
action);
END_TYPE;
(*
5.2.2.6 Тип document_reference_item
Тип document_reference_item определяет объекты action, product, property_definition или product_definition, которым может присваиваться объект document.
EXPRESS-спецификация:
*)
TYPE document_reference_item = SELECT
(action, product,
property_definition,
product_definition);
END_TYPE;
(*
5.2.2.7 Тип effectivity_item
Тип effectivity_item определяет объекты product_definition, property_definition, product_definition_shape и product_related_product_category, которым может присваиваться объект effectivity.
EXPRESS-спецификация:
*)
TYPE effectivity_item = SELECT
(product_definition,
property_definition,
product_definition_shape,
product_related_product_category);
END_TYPE;
(*
5.2.2.8 Тип external_identification_item
Тип external_identification_item определяет объекты action, document, product, product_definition, product_definition_relationship и property_definition, которым может присваиваться объект external_identification.
EXPRESS-спецификация:
*)
TYPE external_identification_item = SELECT
(action,
document,
product,
product_definition,
product_definition_relationship,
property_definition);
END_TYPE;
(*
5.2.2.9 Тип group_item
Тип group_item определяет объекты approval, identification_assignment_relationship, product_definition, product_definition_relationship и shape_aspect, которым может присваиваться объект group.
EXPRESS-спецификация:
*)
TYPE group_item = SELECT
(approval,
identification_assignment_relationship,
product_definition,
product_definition_relationship);
END_TYPE;
(*
5.2.2.10 Тип identification_item
Тип identification_item идентифицирует action, action_request_solution, executed_action, property_definition, product_definition_shape, group, product, product_definition, product_definition_relationship, product_related_product_category, compound_representation_item, versioned_action_request, surface и document, которым может быть назначена идентификация.
EXPRESS-спецификация:
*)
TYPE identification_item = SELECT
(action,
action_request_solution,
compound_representation_item,
document,
executed_action,
group,
product,
product_definition,
product_definition_relationship,
product_definition_shape,
product_related_product_category,
property_definition,
surface,
versioned_action_request);
END_TYPE;
(*
5.2.2.11 Тип organization_item
Тип organization_item определяет объекты document, product_definition, property_definition, которым может определяться объект organization.
EXPRESS-спецификация:
*)
TYPE organization_item = SELECT (document,
product_definition,
property_definition);
END_TYPE;
(*
5.2.2.12 Тип person_item
Тип person_item определяет объект document, для которого может определяться объект person.
EXPRESS-спецификация:
*)
TYPE person_item = SELECT
(document);
END_TYPE;
(*
5.2.2.13 Тип person_and_organization_item
Тип person_and_organization_item задает объект person_and_organization для объектов action, action_request_solution, executed_action, document и versioned_action_request, для которого может быть идентифицирован объект person_and_organization.
EXPRESS-спецификация:
*)
TYPE person_and_organization_item = SELECT
(action_request_solution,
document,
executed_action,
versioned_action_request,
action);
END_TYPE;
(*
5.2.3 Объекты теоретических обводов судна
5.2.3.1 Определения объектов теоретических обводов судна
5.2.3.1.1 Объект applied_action_assignment
Объект applied_action_assignment задает те объекты action_items, которым присваивается объект action_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_action_assignment
SUBTYPE OF (action_assignment);
items : SET [1:?] OF action_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов action_item, к которым применяется конкретный объект action_assignment.
5.2.3.1.2 Объект applied_action_request_assignment
Объект applied_action_request_assignment задает те объекты action_request_items, которым присваивается привязанный объект action_request_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_action_request_assignment
SUBTYPE OF (action_request_assignment);
items : SET [1:?] OF action_request_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов action_request_item, для которых применяется конкретный объект action_request_assignment.
Соответствующие глобальные правила:
Для объекта applied_action_request_assignment применяется следующее глобальное правило, определенное в настоящем стандарте:
- change_impact_with_versionable_object_change_event (см. 5.2.4.26).
5.2.3.1.3 Объект applied_approval_assignment
Объект applied_approval_assignment задает те объекты approval_items, которым присваивается объект approval_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_approval_assignment
SUBTYPE OF (approval_assignment);
items : SET [1:?] OF approval_item;
WHERE
wr1: NOT((SELF\approval_assignment.role.name = 'proposed alternative')) OR
(SIZEOF(QUERY( app <*
USEDIN (SELF\approval_assignment.assigned_approval,
'SHIP_MOULDED_FORM_SCHEMA.APPROVAL_ASSIGNMENT.ASSIGNED_APPROVAL') |
('SHIP_MOULDED_FORM_SCHEMA.APPLIED_APPROVAL_ASSIGNMENT'
IN TYPEOF (app)) AND
(app\approval_assignment.role.name='subject')))=1);
END_ENTITY;
(*
Определение атрибута:
items: набор объектов approval_item, к которым применяется конкретный объект approval_assignment.
Формальное высказывание:
WR1: Каждый объект applied_approval_assignment с атрибутом role, определяющим объект object_role со значением атрибута name, равным 'proposed alternative', должен указывать объект approval через атрибут assigned_approval. Этот объект approval должен быть указан другим объектом applied_approval_assignment через атрибут assigned_approval с атрибутом role, определяющим объект object_role со значением атрибута name, равным 'subject'.
Соответствующие глобальные правила:
Для объекта applied_approval_assignment применяется следующее глобальное правило, определенное в настоящем стандарте:
- approval_history_approves_same_definition (см. 5.2.4.9).
5.2.3.1.4 Объект applied_classification_assignment
Объект applied_classification_assignment задает те объекты classification_items, которым присваивается привязанный объект classification_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_classification_assignment
SUBTYPE OF (classification_assignment);
items : SET [1:?] OF classification_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов classification_item, к которым применяется конкретный объект classification_assignment.
Соответствующие глобальные правила:
Для объекта applied_classification_assignment применяются следующие глобальные правила, определенные в настоящем стандарте:
- action_request_solution_with_identification_assignment (см. 5.2.4.2);
- action_with_identification_assignment (см. 5.2.4.3);
- centre_location_compound_representation_has_specified_name (см. 5.2.4.25);
- class_and_statutory_designation_has_properties (см. 5.2.4.28);
- class_parameters_has_properties (см. 5.2.4.30);
- compound_representation_item_with_class_id_knot (см. 5.2.4.32);
- compound_representation_item_with_section_identifier (см. 5.2.4.33);
- compound_representation_item_with_hydrostatic_properties (см. 5.2.4.31);
- floating_position_compound_representation_with_name (см. 5.2.4.43);
- global_axis_placement_has_properties (см. 5.2.4.44);
- global_id_is_unique (см. 5.2.4.45);
- hull_moulded_form_design_parameter_with_class_references (см. 5.2.4.46);
- hydrostatic_properties_with_specified_class (см. 5.2.4.47);
- hydrostatic_property_with_specified_name (см. 5.2.4.48);
- offset_point_table_model_compound_representation_has_name (см. 5.2.4.54);
- principal_characteristics_has_properties (см. 5.2.4.55);
- product_definition_for_regulation (см. 5.2.4.64);
- product_definition_for_class_notation (см. 5.2.4.57);
- product_definition_for_owning_company (см. 5.2.4.62);
- product_definition_relationship_with_identification_assignment (см. 5.2.4.69);
- product_definition_shape_with_identification_assignment (см. 5.2.4.70);
- product_definition_for_call_sign (см. 5.2.4.56);
- product_definition_for_flag_state (см. 5.2.4.58);
- product_definition_for_port_of_registration (см. 5.2.4.63);
- product_definition_for_shipyard (см. 5.2.4.65);
- product_definition_for_managing_company (см. 5.2.4.60);
- product_definition_for_ordering_company (см. 5.2.4.61);
- product_definition_for_stability_definition (см. 5.2.4.66);
- product_definition_for_hydrostatic_definition_requires_reference (см. 5.2.4.59);
- product_definition_with_identification_assignment (см. 5.2.4.71);
- product_definition_relationship_related_to_class_moulded_form (см. 5.2.4.68);
- product_related_product_category_with_identification_assignment (см. 5.2.4.72);
- product_with_identification_assignment (см. 5.2.4.73);
- propeller_moulded_form_design_parameter_with_class_references (см. 5.2.4.74);
- property_definition_for_class_notation (см. 5.2.4.78);
- property_definition_for_rudder_moulded_form_design_parameter (см. 5.2.4.86);
- property_definition_for_moulded_form_function_parameters (см. 5.2.4.84);
- property_definition_for_local_coordinate_system_with_position (см. 5.2.4.83);
- property_definition_for_class_society (см. 5.2.4.79);
- property_definition_for_thruster_moulded_form_design_parameter (см. 5.2.4.87);
- property_definition_with_identification_assignment (см. 5.2.4.89);
- property_definition_for_deck_moulded_form_design_parameter (см. 5.2.4.80);
- property_definition_for_thruster_propeller_parameter (см. 5.2.4.88);
- property_definition_for_appendage_moulded_form_design_parameter (см. 5.2.4.75);
- property_definition_for_bottom_moulded_form_design_parameter (см. 5.2.4.76);
- property_definition_for_bulb_moulded_form_design_parameter (см. 5.2.4.77);
- property_definition_for_local_coordinate_system (см. 5.2.4.82);
- property_definition_of_propeller_moulded_form_design_parameter (см. 5.2.4.85);
- property_definition_for_hull_moulded_form_design_parameter (см. 5.2.4.81);
- representation_for_stability_table_restricted_by_class_id (см. 5.2.4.111);
- representation_for_offset_point_table_model_for_section (см. 5.2.4.105);
- representation_for_hydrostatic_table_restricted (см. 5.2.4.98);
- representation_for_midship_tumble_restricted_by_class_id (см. 5.2.4.102);
- representation_for_hydrostatic_table_restricted_by_class_id (см. 5.2.4.99);
- representation_for_propeller_location_restricted_by_class_id (см. 5.2.4.107);
- representation_for_offset_table_shape_representation_restricted (см. 5.2.4.106);
- representation_for_hydrostatic_table_constrained (см. 5.2.4.97);
- representation_for_stability_table_restricted (см. 5.2.4.110);
- representation_item_for_transformation_to_parent (см. 5.2.4.125);
- ship_curve_has_name (см. 5.2.4.135);
- ship_curve_segment_has_class (см. 5.2.4.136);
- ship_curve_with_spacing_position_has_class (см. 5.2.4.137);
- ship_designation_has_one_specified_names (см. 5.2.4.138);
- ship_overall_dimensions_has_properties (см. 5.2.4.140);
- ship_point_compound_representation_has_name (см. 5.2.4.141);
- ship_surface_compound_representation_has_name (см. 5.2.4.142);
- spacing_position_compound_representation_has_name (см. 5.2.4.143);
- spacing_position_with_offset_compound_representation_has_class (см. 5.2.4.144);
- spacing_position_with_offset_compound_representation_has_name (см. 5.2.4.145);
- stability_properties_for_floating_position_has_name (см. 5.2.4.147);
- stability_properties_for_floating_position_has_class (см. 5.2.4.146);
- stability_property_has_name (см. 5.2.4.148);
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.152, а не 5.2.153.
- valid_product_definition_for_class_moulded_form (см. 5.2.4.153);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.164, а не 5.2.4.165.
- versioned_action_request_with_identification_assignment (см. 5.2.4.165).
5.2.3.1.5 Объект applied_date_and_time_assignment
Объект applied_date_and_time_assignment задает те объекты date_and_time_items, которым присваивается указанный объект date_and_time_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_date_and_time_assignment
SUBTYPE OF (date_and_time_assignment);
items : SET [1:?] OF date_and_time_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов date_and_time_item, для которых применяется конкретный объект date_and_time_assignment.
Соответствующие глобальные правила:
Для объекта applied_date_and_time_assignment применяются следующие глобальные правила, определенные в настоящем стандарте:
- caused_when_for_check (см. 5.2.4.20);
- caused_when_for_version_creation (см. 5.2.4.22);
- caused_when_for_version_deletion (см. 5.2.4.24);
- caused_when_for_version_modification (см. 5.2.4.23);
- caused_when_for_envisaged_version_creation (см. 5.2.4.21);
- date_time_for_change_plan (см. 5.2.4.34);
- date_time_for_change_realisation (см. 5.2.4.36);
- date_time_for_change_request (см. 5.2.4.35).
5.2.3.1.6 Объект applied_document_reference
Объект applied_document_reference задает те объекты document_reference_items, которым присваивается привязанный объект document_reference.
EXPRESS-спецификация:
*)
ENTITY applied_document_reference
SUBTYPE OF (document_reference);
items : SET [1:?] OF document_reference_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов document_reference_item, для которых применяется конкретный объект document_reference.
5.2.3.1.7 Объект applied_effectivity_assignment
Объект applied_effectivity_assignment задает те объекты effectivity_items, которым присваивается привязанный объект effectivity_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_effectivity_assignment
SUBTYPE OF (effectivity_assignment);
items : SET [1:?] OF effectivity_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов effectivity_item, для которых применяется конкретный объект effectivity_assignment.
5.2.3.1.8 Объект applied_external_identification_assignment
Объект applied_external_identification_assignment задает те объекты external_identification_items, которым присваивается привязанный объект external_identification_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_external_identification_assignment
SUBTYPE OF (external_identification_assignment);
items : SET [1:?] OF external_identification_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов external_identification_item, для которых применяется конкретный объект external_identification_assignment.
Соответствующие глобальные правила:
Для объекта applied_external_identification_assignment применяется следующее глобальное правило, определенное в настоящем стандарте:
- document_reference_with_address_has_at_least_one_references (см. 5.2.4.39).
5.2.3.1.9 Объект applied_group_assignment
Объект applied_group_assignment задает те объекты group_items, которым присваивается привязанный объект group_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_group_assignment
SUBTYPE OF (group_assignment);
items : SET [1:?] OF group_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов group_item, для которых применяется конкретный объект group_assignment.
Соответствующие глобальные правила:
Для объекта applied_group_assignment применяются следующие глобальные правила, определенные в настоящем стандарте:
- approval_history_approves_same_definition (см. 5.2.4.9);
- approval_history_has_at_least_one_member (см. 5.2.4.10);
- approvals_references_approval_history (см. 5.2.4.11);
- change_impact_with_versionable_object_change_event (см. 5.2.4.26);
- members_is_referenced_by_at_least_one_revision (см. 5.2.4.52);
- revision_with_context_referenced_for_context_of_revision (см. 5.2.4.134);
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.158, а не 5.2.4.159.
- version_history_referenced_by_multiple_roles (см. 5.2.4.159);
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.156, а не 5.2.4.157.
- version_history_is_referenced_by_at_least_one_versions (см. 5.2.4.157);
- unique_approvals_in_approval_history (см. 5.2.4.150);
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.157, а не 5.2.4.158.
- version_history_referenced_by_exactly_one_current_version (см. 5.2.4.158);
ИС МЕГАНОРМ: примечание.
Здесь и далее в официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.155, а не 5.2.4.156.
- version_history_has_exactly_one_assigned_group (см. 5.2.4.156);
- versions_is_referenced_by_at_least_one_version_history (см. 5.2.4.166).
5.2.3.1.10 Объект applied_identification_assignment
Объект applied_identification_assignment задает те объекты identification_items, которым присваивается привязанный объект identification_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_identification_assignment
SUBTYPE OF (identification_assignment);
items : SET [1:?] OF identification_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов identification_item, для которых применяется конкретный объект identification_assignment.
Соответствующие глобальные правила:
Для объекта applied_identification_assignment применяются следующие глобальные правила, определенные в настоящем стандарте:
- compound_representation_item_with_section_identifier (см. 5.2.4.33);
- global_id_is_unique (см. 5.2.4.45);
- product_definition_for_port_of_registration (см. 5.2.4.63);
- product_definition_for_call_sign (см. 5.2.4.56);
- product_definition_for_flag_state (см. 5.2.4.58);
- representation_for_offset_point_table_model_for_point (см. 5.2.4.104);
- ship_designation_has_one_specified_names (см. 5.2.4.138);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.160, а не 5.2.4.161.
- version_relationship_associates_with_versionable_object (см. 5.2.4.161);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.163, а не 5.2.4.164.
- versionable_object_has_one_version_id (см. 5.2.4.164).
5.2.3.1.11 Объект applied_organization_assignment
Объект applied_organization_assignment задает те объекты organization_items, которым присваивается привязанный объект organization_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_organization_assignment
SUBTYPE OF (organization_assignment);
items : SET [1:?] OF organization_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов organization_item, для которых применяется конкретный объект organization_assignment.
Соответствующие глобальные правила:
Для объекта applied_organization_assignment применяются следующие глобальные правила, определенные в настоящем стандарте:
- property_definition_for_class_society (см. 5.2.4.79);
- product_definition_for_managing_company (см. 5.2.4.60);
- product_definition_for_ordering_company (см. 5.2.4.61);
- product_definition_for_owning_company (см. 5.2.4.62);
- product_definition_for_shipyard (см. 5.2.4.65).
5.2.3.1.12 Объект applied_person_assignment
Объект applied_person_assignment задает те объекты person_items, которым присваивается привязанный объект person_assignment.
EXPRESS-спецификация:
*);
ENTITY applied_person_assignment
SUBTYPE OF (person_assignment);
items : SET [1:?] OF person_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов person_item, для которых применяется конкретный объект person_assignment.
Соответствующие глобальные правила:
Для объекта applied_organization_assignment применяются следующие глобальные правила, определенные в настоящем стандарте:
- document_has_exactly_one_author (см. 5.2.4.38).
5.2.3.1.13 Объект applied_person_and_organization_assignment
Объект applied_person_and_organization_assignment задает те объекты person_and_organization_items, которым присваивается объект person_and_organization_assignment.
EXPRESS-спецификация:
*)
ENTITY applied_person_and_organization_assignment
SUBTYPE OF (person_and_organization_assignment);
items : SET [1:?] OF person_and_organization_item;
END_ENTITY;
(*
Определение атрибута:
items: набор объектов person_and_organization_item, для которых применяется конкретный объект person_and_organization_assignment.
Определение атрибута:
items: набор объектов person_item, для которых применяется конкретный объект person_assignment.
Соответствующие глобальные правила:
Для объекта applied_organization_assignment применяются следующие глобальные правила, определенные в настоящем стандарте:
- author_for_change_plan (см. 5.2.4.12);
- author_for_change_realisation (см. 5.2.4.13);
- author_for_change_request (см. 5.2.4.14);
- caused_by_for_check (см. 5.2.4.15);
- caused_by_for_envisaged_version_creation (см. 5.2.4.16);
- caused_by_for_version_creation (см. 5.2.4.17);
- caused_by_for_version_deletion (см. 5.2.4.18);
- caused_by_for_version_modification (см. 5.2.4.19);
- initiator_for_change_request (см. 5.2.4.50).
5.2.3.1.14 Объект class
Объект class является типом объекта group, который задает тип присвоения классификации.
EXPRESS-спецификация:
*)
ENTITY class
SUBTYPE OF (group);
WHERE
WR1: (SIZEOF(QUERY ( oa <* USEDIN(SELF,
'SHIP_MOULDED_FORM_SCHEMA.GROUP_ASSIGNMENT.ASSIGNED_GROUP')|
NOT ('SHIP_MOULDED_FORM_SCHEMA.APPLIED_GROUP_ASSIGNMENT'
IN TYPEOF(oa))
)) =0);
END_ENTITY;
(*
Формальное высказывание:
WR1: Каждый объект class не должен привязываться каким-либо объектом applied_group_assignment через атрибут assigned_group.
5.2.3.2 Модификация (изменение) объектов, импортированных в теоретические обводы судна
5.2.3.2.1 Изменение объекта action
Основное описание объекта action дано в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта action применяются следующие глобальные правила, определенные в настоящем стандарте:
- action_request_solution_connected_to_action (см. 5.2.4.1);
- caused_by_for_check (см. 5.2.4.15);
- caused_by_for_envisaged_version_creation (см. 5.2.4.16);
- caused_by_for_version_creation (см. 5.2.4.17);
- caused_by_for_version_modification (см. 5.2.4.19);
- caused_by_for_version_deletion (см. 5.2.4.18);
- caused_when_for_check (см. 5.2.4.20);
- caused_when_for_envisaged_version_creation (см. 5.2.4.21);
- caused_when_for_version_creation (см. 5.2.4.22);
- caused_when_for_version_deletion (см. 5.2.4.24);
- caused_when_for_version_modification (см. 5.2.4.23);
- envisaged_version_creation_has_mandatory_attribute_description (см. 5.2.4.40);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.153, а не 5.2.4.154.
- version_creation_has_mandatory_attribute_description (см. 5.2.4.154);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.154, а не 5.2.4.155.
- version_deletion_has_mandatory_attribute_description (см. 5.2.4.155);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.159, а не 5.2.4.160.
- version_modification_has_mandatory_attribute_description (см. 5.2.4.160).
5.2.3.2.2 Изменение объекта action_request_solution
Основное описание объекта action_request_solution приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта action_request_solution применяются следующие глобальные правила, определенные в настоящем стандарте:
- action_request_solution_connected_to_action (см. 5.2.4.1);
- change_plan_has_mandatory_attribute_description (см. 5.2.4.27);
- date_time_for_change_plan (см. 5.2.4.34).
5.2.3.2.3 Изменение объекта approval
Основное описание объекта approval приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта action_request_solution применяются следующие глобальные правила, определенные в настоящем стандарте:
- approval_event_with_approval_date_time (см. 5.2.4.8);
- approval_event_with_approval_person_organization (см. 5.2.4.7);
- no_approvals_except_in_approval_history (см. 5.2.4.53).
5.2.3.2.4 Изменение объекта approval_date_time
Основное описание объекта approval_date_time приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта approval_date_time применяется следующее глобальное правило, определенное в настоящем стандарте:
- approval_event_with_approval_date_time (см. 5.2.4.8).
5.2.3.2.5 Изменение объекта approval_person_organization
Основное описание объекта approval_person_organization приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта approval_person_organization применяется следующее глобальное правило, определенные в настоящем стандарте:
- approval_event_with_approval_person_organization (см. 5.2.4.7).
5.2.3.2.6 Изменение объекта compound_representation_item
Основное описание объекта compound_representation_item приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта compound_representation_item применяются следующие глобальные правила, определенные в настоящем стандарте:
- centre_location_compound_representation_has_specified_name (см. 5.2.4.25);
- compound_representation_item_with_section_identifier (см. 5.2.4.33);
- compound_representation_item_with_class_id_knot (см. 5.2.4.32);
- compound_representation_item_with_hydrostatic_properties (см. 5.2.4.31);
- floating_position_compound_representation_with_name (см. 5.2.4.43);
- hydrostatic_properties_with_specified_class (см. 5.2.4.47);
- hydrostatic_property_with_specified_name (см. 5.2.4.48);
- offset_point_table_model_compound_representation_has_name (см. 5.2.4.54);
- ship_curve_has_name (см. 5.2.4.135);
- ship_curve_segment_has_class (см. 5.2.4.136);
- ship_curve_with_spacing_position_has_class (см. 5.2.4.137);
- ship_point_compound_representation_has_name (см. 5.2.4.141);
- ship_surface_compound_representation_has_name (см. 5.2.4.142);
- spacing_position_compound_representation_has_name (см. 5.2.4.143);
- spacing_position_with_offset_compound_representation_has_name (см. 5.2.4.145);
- spacing_position_with_offset_compound_representation_has_class (см. 5.2.4.144);
- stability_properties_for_floating_position_has_name (см. 5.2.4.147);
- stability_properties_for_floating_position_has_class (см. 5.2.4.146);
- stability_property_has_name (см. 5.2.4.148).
5.2.3.2.7 Изменение объекта date_time_role
Основное описание объекта date_time_role приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта date_time_role применяются следующие глобальные правила, определенные в настоящем стандарте:
- caused_when_for_check (см. 5.2.4.20);
- caused_when_for_envisaged_version_creation (см. 5.2.4.21);
- caused_when_for_version_creation (см. 5.2.4.22);
- caused_when_for_version_deletion (см. 5.2.4.24);
- caused_when_for_version_modification (см. 5.2.4.23);
- date_time_for_change_plan (см. 5.2.4.34);
- date_time_for_change_realisation (см. 5.2.4.36);
- date_time_for_change_request (см. 5.2.4.35).
5.2.3.2.8 Изменение объекта document
Основное описание объекта document приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта document применяются следующие глобальные правила, определенные в настоящем стандарте:
- document_has_exactly_one_author (см. 5.2.4.38);
- document_reference_with_address_has_at_least_one_references (см. 5.2.4.39).
5.2.3.2.9 Изменение объекта document_representation_type
Основное описание объекта document_representation_type приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта document_representation_type применяются следующие глобальные правила, определенные в настоящем стандарте:
- document_has_at_least_one_references (см. 5.2.4.37);
- document_has_exactly_one_author (см. 5.2.4.38).
5.2.3.2.10 Изменение объекта executed_action
Основное описание объекта executed_action приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта executed_action применяются следующие глобальные правила, определенные в настоящем стандарте:
- author_for_change_realisation (см. 5.2.4.13);
- date_time_for_change_realisation (см. 5.2.4.36).
5.2.3.2.11 Изменение объекта external_source
Основное описание объекта external_source приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта external_source применяется следующее глобальное правило, определенное в настоящем стандарте:
- mandatory_entity_type_for_external_instance_reference (см. 5.2.4.51).
5.2.3.2.12 Изменение объекта external_source_relationship
Основное описание объекта external_source_relationship приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Для объекта external_source_relationship применяется следующее глобальное правило, определенное в настоящем стандарте:
- mandatory_entity_type_for_external_instance_reference (см. 5.2.4.51).
5.2.3.2.13 Изменение объекта group
Основное описание объекта group приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта group применяются следующие глобальные правила, определенные в настоящем стандарте:
- approval_history_has_at_least_one_member (см. 5.2.4.10);
- approvals_references_approval_history (см. 5.2.4.11);
- change_impact_with_versionable_object_change_event (см. 5.2.4.26);
- class_and_statutory_designation_has_properties (см. 5.2.4.28);
- class_parameters_has_properties (см. 5.2.4.30);
- global_axis_placement_has_properties (см. 5.2.4.44);
- members_is_referenced_by_at_least_one_revision (см. 5.2.4.52);
- principal_characteristics_has_properties (см. 5.2.4.55):
- product_definition_for_regulation (см. 5.2.4.64);
- product_definition_for_shipyard (см. 5.2.4.65);
- product_definition_for_owning_company (см. 5.2.4.62);
- product_definition_for_ordering_company (см. 5.2.4.61);
- product_definition_for_managing_company (см. 5.2.4.60);
- product_definition_for_class_notation (см. 5.2.4.57);
- product_definition_for_port_of_registration (см. 5.2.4.63);
- product_definition_for_flag_state (см. 5.2.4.58);
- product_definition_for_call_sign (см. 5.2.4.56);
- product_related_product_category_with_identification_assignment (см. 5.2.4.72);
- property_definition_for_local_coordinate_system_with_position (см. 5.2.4.83);
- property_definition_for_class_notation (см. 5.2.4.78);
- property_definition_for_class_society (см. 5.2.4.79);
- representation_item_for_transformation_to_parent (см. 5.2.4.125);
- revision_has_mandatory_attribute_description (см. 5.2.4.133);
- revision_with_context_referenced_for_context_of_revision (см. 5.2.4.134);
- ship_designation_has_one_specified_names (см. 5.2.4.138);
- spacing_position_compound_representation_has_name (см. 5.2.4.143);
- spacing_position_with_offset_compound_representation_has_class (см. 5.2.4.144);
- spacing_position_with_offset_compound_representation_has_name (см. 5.2.4.145);
- unique_approvals_in_approval_history (см. 5.2.4.150);
- version_history_has_exactly_one_assigned_group (см. 5.2.4.156);
- version_history_is_referenced_by_at_least_one_versions (см. 5.2.4.157);
- version_history_referenced_by_exactly_one_current_version (см. 5.2.4.158);
- version_history_referenced_by_multiple_roles (см. 5.2.4.159);
- versions_is_referenced_by_at_least_one_version_history (см. 5.2.4.166).
5.2.3.2.14 Изменение объекта group_assignment
Основное описание объекта group_assignment приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта group_assignment применяются следующее глобальное правило, определенное в настоящем стандарте:
- valid_product_definition_for_class_moulded_form (см. 5.2.4.153).
5.2.3.2.15 Изменение объекта identification_assignment_relationship
Основное описание объекта identification_assignment_relationship приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта identification_assignment_relationship применяются следующие глобальные правила, определенные в настоящем стандарте:
- alternative_version_relationship_has_mandatory_description (см. 5.2.4.4);
- alternative_version_relationship_has_unique_versions (см. 5.2.4.5);
- alternative_version_relationship_versionable_object (см. 5.2.4.6);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.161, а не 5.2.4.162.
- version_relationship_has_mandatory_attribute_description (см. 5.2.4.162);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.162, а не 5.2.4.163.
- version_relationship_has_unique_versions (см. 5.2.4.163).
5.2.3.2.16 Изменение объекта identification_role
Основное описание объекта identification_role приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта identification_role применяются следующие глобальные правила, определенные в настоящем стандарте:
- global_id_is_unique (см. 5.2.4.45);
- identification_role_optional_attribute_description_required (см. 5.2.4.49);
- representation_has_global_unit_assigned_context (см. 5.2.4.114).
5.2.3.2.17 Изменение объекта mapped_item
Основное описание объекта identification_role приведено в ИСО 10303-43. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта identification_role применяется следующее глобальное правило, определенное в настоящем стандарте:
- representation_item_for_transformation_to_parent (см. 5.2.4.125).
5.2.3.2.18 Изменение объекта object_role
Основное описание объекта object_role приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта object_role применяется следующее глобальное правило, определенное в настоящем стандарте:
- approvals_references_approval_history (см. 5.2.4.11).
5.2.3.2.19 Изменение объекта person_and_organization_role
Основное описание объекта person_and_organization_role приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта person_and_organization_role применяются следующие глобальные правила, определенные в настоящем стандарте:
- author_for_change_plan (см. 5.2.4.12);
- author_for_change_realisation (см. 5.2.4.13);
- author_for_change_request (см. 5.2.4.14);
- caused_by_for_check (см. 5.2.4.15);
- caused_by_for_envisaged_version_creation (см. 5.2.4.16);
- caused_by_for_version_creation (см. 5.2.4.17);
- caused_by_for_version_deletion (см. 5.2.4.18);
- caused_by_for_version_modification (см. 5.2.4.19);
- initiator_for_change_request (см. 5.2.4.50).
5.2.3.2.20 Изменение объекта product_definition
Основное описание объекта product_definition приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта product_definition применяются следующие глобальные правила, определенные в настоящем стандарте:
- class_and_statutory_designation_has_properties (см. 5.2.4.28);
- class_parameters_has_properties (см. 5.2.4.30);
- product_definition_for_call_sign (см. 5.2.4.56);
- product_definition_for_flag_state (см. 5.2.4.58);
- product_definition_for_managing_company (см. 5.2.4.60);
- product_definition_for_ordering_company (см. 5.2.4.61);
- product_definition_for_owning_company (см. 5.2.4.62);
- product_definition_for_port_of_registration (см. 5.2.4.63);
- product_definition_for_regulation (см. 5.2.4.64);
- product_definition_for_shipyard (см. 5.2.4.65);
- property_definition_for_class_notation (см. 5.2.4.78);
- ship_designation_has_one_specified_names (см. 5.2.4.138);
- valid_product_definition_for_class_moulded_form (см. 5.2.4.153).
5.2.3.2.21 Изменение объекта product_definition_shape
Основное описание объекта product_definition_shape приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта product_definition_shape применяется следующее глобальное правило, определенное в настоящем стандарте:
- product_definition_shape_with_identification_assignment (см. 5.2.4.70).
5.2.3.2.22 Изменение объекта product_definition_relationship
Основное описание объекта product_definition_relationship приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта product_definition_relationship применяются следующие глобальные правила, определенные в настоящем стандарте:
- product_definition_relationship_references_are_distinct (см. 5.2.4.67);
- product_definition_relationship_related_to_class_moulded_form (см. 5.2.4.68);
- ship_moulded_form_revision_has_description (см. 5.2.4.139).
5.2.3.2.23 Изменение объекта property_definition
Основное описание объекта property_definition приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта property_definition применяются следующие глобальные правила, определенные в настоящем стандарте:
- class_and_statutory_designation_has_properties (см. 5.2.4.28);
- hull_moulded_form_design_parameter_with_class_references (см. 5.2.4.46);
- product_definition_for_hydrostatic_definition_requires_reference (см. 5.2.4.59);
- product_definition_for_regulation (см. 5.2.4.64);
- product_definition_for_stability_definition (см. 5.2.4.66);
- propeller_moulded_form_design_parameter_with_class_references (см. 5.2.4.74);
- property_definition_for_appendage_moulded_form_design_parameter (см. 5.2.4.75);
- property_definition_for_bottom_moulded_form_design_parameter (см. 5.2.4.76);
- property_definition_for_bulb_moulded_form_design_parameter (см. 5.2.4.77);
- property_definition_for_class_notation (см. 5.2.4.78);
- property_definition_for_class_society (см. 5.2.4.79);
- property_definition_for_hull_moulded_form_design_parameter (см. 5.2.4.81);
- property_definition_for_local_coordinate_system (см. 5.2.4.82);
- property_definition_for_local_coordinate_system_with_position (см. 5.2.4.83);
- property_definition_for_moulded_form_function_parameters (см. 5.2.4.84);
- property_definition_of_propeller_moulded_form_design_parameter (см. 5.2.4.85);
- property_definition_for_rudder_moulded_form_design_parameter (см. 5.2.4.86);
- property_definition_for_thruster_moulded_form_design_parameter (см. 5.2.4.87);
- property_definition_for_thruster_propeller_parameter (см. 5.2.4.88);
- representation_item_for_transformation_to_parent (см. 5.2.4.125);
- ship_overall_dimensions_has_properties (см. 5.2.4.140).
5.2.3.2.24 Изменение объекта property_definition_representation
Основное описание объекта property_definition_representation приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта property_definition_representation применяются следующие глобальные правила, определенные в настоящем стандарте:
- class_and_statutory_designation_has_properties (см. 5.2.4.28);
- class_notation_with_named_representation_items (см. 5.2.4.29);
- class_parameters_has_properties (см. 5.2.4.30);
- global_axis_placement_has_properties (см. 5.2.4.44);
- hull_moulded_form_design_parameter_with_class_references (см. 5.2.4.46);
- principal_characteristics_has_properties (см. 5.2.4.55):
- propeller_moulded_form_design_parameter_with_class_references (см. 5.2.4.74);
- property_definition_for_appendage_moulded_form_design_parameter (см. 5.2.4.75);
- property_definition_for_bottom_moulded_form_design_parameter (см. 5.2.4.76);
- property_definition_for_bulb_moulded_form_design_parameter (см. 5.2.4.77);
- property_definition_for_hull_moulded_form_design_parameter (см. 5.2.4.81);
- property_definition_for_local_coordinate_system (см. 5.2.4.82);
- property_definition_for_local_coordinate_system_with_position (см. 5.2.4.83);
- property_definition_for_moulded_form_function_parameters (см. 5.2.4.84);
- property_definition_of_propeller_moulded_form_design_parameter (см. 5.2.4.85);
- property_definition_for_rudder_moulded_form_design_parameter (см. 5.2.4.86);
- property_definition_for_thruster_moulded_form_design_parameter (см. 5.2.4.87);
- property_definition_for_thruster_propeller_parameter (см. 5.2.4.88);
- representation_for_class_and_statutory_designation (см. 5.2.4.93);
- representation_for_global_axis_placement (см. 5.2.4.95);
- representation_for_local_coordinate_system (см. 5.2.4.100);
- representation_of_local_coordinate_system_with_position_reference (см. 5.2.4.101);
- representation_items_optional_for_class_notation (см. 5.2.4.126);
- representation_items_optional_for_principal_characteristics (см. 5.2.4.128);
- representation_restricted_by_name_principal_characteristics (см. 5.2.4.131);
- representation_restricted_by_name_class_notation (см. 5.2.4.129);
- representation_restricted_by_name_class_parameters (см. 5.2.4.130);
- ship_overall_dimensions_has_properties (см. 5.2.4.140).
5.2.3.2.25 Изменение объекта representation
Основное описание объекта representation приведено в ИСО 10303-43. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта representation применяются следующие глобальные правила, определенные в настоящем стандарте:
- class_notation_with_named_representation_items (см. 5.2.4.29);
- hull_moulded_form_design_parameter_with_class_references (см. 5.2.4.46);
- propeller_moulded_form_design_parameter_with_class_references (см. 5.2.4.74);
- representation_for_moulded_form_function_parameters (см. 5.2.4.103);
- representation_for_local_coordinate_system (см. 5.2.4.100);
- representation_for_offset_point_table_model_for_section (см. 5.2.4.105);
- representation_for_deck_moulded_form_design_parameter (см. 5.2.4.94);
- representation_for_class_and_statutory_designation (см. 5.2.4.93);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: один и тот же абзац приведен дважды.
- representation_for_class_and_statutory_designation (см. 5.2.4.93);
- representation_for_global_axis_placement (см. 5.2.4.95);
- representation_for_rudder_moulded_form_design_parameter (см. 5.2.4.109);
- representation_for_propeller_moulded_form_design_parameter (см. 5.2.4.108);
- representation_for_propeller_location_restricted_by_class_id (см. 5.2.4.107);
- representation_for_hydrostatic_table_restricted_by_class_id (см. 5.2.4.99);
- representation_for_offset_point_table_model_for_point (см. 5.2.4.104);
- representation_for_hydrostatic_table_restricted (см. 5.2.4.98);
- representation_for_hydrostatic_table_constrained (см. 5.2.4.97);
- representation_for_stability_table_restricted_by_class_id (см. 5.2.4.111);
- representation_for_stability_table_restricted (см. 5.2.4.110);
- representation_for_offset_table_shape_representation_restricted (см. 5.2.4.106);
- representation_for_thruster_moulded_form_design_parameter (см. 5.2.4.112);
- representation_for_bottom_moulded_form_design_parameter (см. 5.2.4.91);
- representation_for_appendage_moulded_form_design_parameter (см. 5.2.4.90);
- representation_for_hull_moulded_form_design_parameter (см. 5.2.4.96);
- representation_for_midship_tumble_restricted_by_class_id (см. 5.2.4.102);
- representation_for_bulb_moulded_form_design_parameter (см. 5.2.4.92);
- representation_has_global_unit_assigned_context (см. 5.2.4.114);
- representation_has_global_uncertainty_assigned_context (см. 5.2.4.113);
- representation_items_for_deck_moulded_form_design_parameter (см. 5.2.4.118);
- representation_items_for_rudder_moulded_form_design_parameter (см. 5.2.4.123);
- representation_items_optional_for_owner_designation (см. 5.2.4.127);
- representation_items_propeller_moulded_form_design_parameter (см. 5.2.4.122);
- representation_items_for_hull_moulded_form_design_parameter (см. 5.2.4.119);
- representation_items_for_bulb_moulded_form_design_parameter (см. 5.2.4.117);
- representation_items_of_thruster_moulded_form_design_parameter (см. 5.2.4.124);
- representation_item_for_transformation_to_parent (см. 5.2.4.125);
- representation_items_optional_for_class_notation (см. 5.2.4.126);
- representation_items_optional_for_principal_characteristics (см. 5.2.4.128);
- representation_items_propeller_moulded_form_design_parameter (см. 5.2.4.122);
- representation_items_for_bottom_moulded_form_design_parameter (см. 5.2.4.116);
- representation_items_appendage_moulded_form_design_parameter (см. 5.2.4.115);
- representation_items_for_moulded_form_function_parameters (см. 5.2.4.121);
- representation_items_for_moulded_form_design_parameters (см. 5.2.4.120);
- representation_of_local_coordinate_system_with_position_reference (см. 5.2.4.101);
- representation_restricted_by_name_principal_characteristics (см. 5.2.4.131);
- representation_restricted_by_name_class_notation (см. 5.2.4.129);
- representation_restricted_by_name_class_parameters (см. 5.2.4.130);
- representation_restricted_by_name_ship_overall_dimensions (см. 5.2.4.132);
- user_def_appendage_type_description_required (см. 5.2.4.151);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.151, а не 5.2.4.152.
- user_def_function_description_required (см. 5.2.4.152).
5.2.3.2.26 Изменение объекта representation_item
Основное описание объекта representation_item приведено в ИСО 10303-43. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта representation_item применяются следующие глобальные правила, определенные в настоящем стандарте:
- class_notation_with_named_representation_items (см. 5.2.4.29);
- representation_for_class_and_statutory_designation (см. 5.2.4.93);
- representation_for_global_axis_placement (см. 5.2.4.95);
- representation_for_local_coordinate_system (см. 5.2.4.100);
- representation_of_local_coordinate_system_with_position_reference (см. 5.2.4.101);
- representation_items_optional_for_class_notation (см. 5.2.4.126);
- representation_items_optional_for_owner_designation (см. 5.2.4.127);
- representation_items_optional_for_principal_characteristics (см. 5.2.4.128);
- representation_restricted_by_name_class_notation (см. 5.2.4.129);
- representation_restricted_by_name_class_parameters (см. 5.2.4.130);
- representation_restricted_by_name_principal_characteristics (см. 5.2.4.131).
5.2.3.2.27 Изменение объекта versioned_action_request
Основное описание объекта versioned_action_request приведено в ИСО 10303-41. Уточнение данного описания приведено в настоящем стандарте.
Соответствующие глобальные правила:
Для объекта versioned_action_request применяются следующие глобальные правила, определенные в настоящем стандарте:
- author_for_change_request (см. 5.2.4.14);
- date_time_for_change_request (см. 5.2.4.35);
- initiator_for_change_request (см. 5.2.4.50).
5.2.4 Определения правил в теоретических обводах судна
5.2.4.1 Правило action_request_solution_connected_to_action
Правило action_request_solution_connected_to_action определяет, что каждый экземпляр типа объекта action_request_solution с классификацией 'change plan' должен быть связан с экземпляром типа объекта action с классификацией 'change' через экземпляр объекта action_method.
EXPRESS-спецификация:
*)
RULE
action_request_solution_connected_to_action FOR(action_request_solution,
action);
LOCAL
t1_set: SET OF action_request_solution := [];
t2_set: SET OF action := [];
set_3 : SET OF ACTION_METHOD := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action_request_solution |
VALUE_IN(WHICH_CLASS(a), 'change plan'));
t2_set := QUERY(b <* action | VALUE_IN(WHICH_CLASS(b), 'change'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
set_3 := [];
REPEAT j := 1 TO HIINDEX(t2_set);
set_3 := set_3 + [t2_set[j].chosen_method];
END_REPEAT;
violate := VALUE_IN(set_3, t1_set[i].method);
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
action_request_solution: набор всех экземпляров объектов action_request_solution.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: Каждый экземпляр объекта action_method со значением chosen_method для экземпляра объекта action должен одновременно иметь значение method для экземпляра объекта action_request_solution.
5.2.4.2 Правило action_request_solution_with_identification_assignment
Правило action_request_solution_with_identification_assignment задает перечень объектов, для которых требуется идентификация. Идентификация определяется объектом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE action_request_solution_with_identification_assignment FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF action_request_solution := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := [ 'change plan'];
violation: LOGICAL := FALSE;
END_LOCAL;
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объекта applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта action_request_solution, на который ссылается объект applied_classification_assignment с объектом assigned_class, чей атрибут name имеет значение 'change plan', должен требоваться объект applied_identification_assignment для определения идентификатора экземпляра.
5.2.4.3 Правило action_with_identification_assignment
Правило action_with_identification_assignment задает перечень объектов, для которых требуется идентификация. Идентификация определяется объектом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE action_with_identification_assignment FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set:SET OF action := [];
t2_set:SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := [ 'change', 'versionable object change event', 'check'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances *)
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объекта applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта action, на который ссылается объект applied_classification_assignment с объектом assigned_class, чей атрибут name имеет значение 'change', 'versionable object change event' или 'check', должен требоваться объект applied_identification_assignment для определения идентификатора экземпляра.
5.2.4.4 Правило alternative_version_relationship_has_mandatory_description
Правило alternative_version_relationship_has_mandatory_description определяет, что для экземпляра объекта identification_assignment_relationship с идентификатором класса 'alternative version relationship' приведен экземпляр необязательного атрибута description.
EXPRESS-спецификация:
*)
RULE alternative_version_relationship_has_mandatory_description FOR
(identification_assignment_relationship);
LOCAL
t1_set: SET OF identification_assignment_relationship := [];
violate: LOGICAL := FALSE;
END_LOCAL;
(* get all instances of identification_assignment_relationship *)
(* being classified as 'alternative version relationship' *)
t1_set := QUERY(i <* identification_assignment_relationship |
VALUE_IN(WHICH_CLASS(i), 'alternative version relationship'));
(* from all instances found above, find those for which attribute description
is not instantiated *)
violate := (SIZEOF(QUERY(k <* t1_set | NOT EXISTS (k.description))) > 0);
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
identification_assignment_relationship: набор всех экземпляров объектов identification_assignment_relationship.
Формальные высказывания:
WR1: Необязательный атрибут description должен существовать для каждого экземпляра объекта identification_assignment_relationship, у которого есть объект applied_classification_assignment со значением 'alternative version relationship' для assigned_class.name.
5.2.4.5 Правило alternative_version_relationship_has_unique_versions
Правило alternative_version_relationship_has_unique_versions определяет, что для всех экземпляров объекта identification_assignment_relationship с классификацией 'alternative version relationship', версифицируемые объекты (versionable objects) alternative_1 и alternative_2 должны быть разными, то есть у них должны быть разные version_ids.
EXPRESS-спецификация:
*)
RULE alternative_version_relationship_has_unique_versions
FOR (identification_assignment_relationship);
LOCAL
t1_set: SET OF identification_assignment_relationship := [];
violate: LOGICAL := FALSE;
END_LOCAL;
(* get all instances of identification_assignment_relationship with *)
(* class 'alternative version relationship' *)
t1_set := QUERY(a <* identification_assignment_relationship |
VALUE_IN(WHICH_CLASS(a), 'alternative version relationship'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
violate :=
( t1_set[i].relating_identification_assignment.assigned_id =
t1_set[i].related_identification_assignment.assigned_id );
END_REPEAT;
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
identification_assignment_relationship: набор всех экземпляров объектов identification_assignment_relationship.
Формальные высказывания:
WR1: Объекты assigned_ids объекта related_identification_assignment и объекта relating_identification_assignment каждого экземпляра объекта identification_assignment_relationship, у которого имеется объект applied_classification_assignment, значение applied_classification_assignment.assigned_class.name которого равно 'alternative version relationship', должны отличаться.
5.2.4.6 Правило alternative_version_relationship_versionable_object
Правило alternative_version_relationship_versionable_object задает экземпляр объекта identification_assignment_relationship с классификацией 'alternative version relationship', который связывает только экземпляры типа applied_identification_assignment, чей атрибут items указывает на экземпляры класса со значением 'versionable object'.
EXPRESS-спецификация:
*)
RULE alternative_version_relationship_versionable_object
FOR (applied_identification_assignment,
identification_assignment_relationship);
LOCAL
violate: LOGICAL := FALSE;
END_LOCAL;
(* get all instances of applied_identification_assignment *)
REPEAT i := 1 TO HIINDEX(applied_identification_assignment) BY 1 WHILE NOT violate;
IF ( (SIZEOF(USEDIN(applied_identification_assignment[i],
('SHIP_MOULDED_FORM_SCHEMA.IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.'
+'RELATING_IDENTIFICATION_ASSIGNMENT'))) > 0) OR
(SIZEOF(USEDIN(applied_identification_assignment[i],
('SHIP_MOULDED_FORM_SCHEMA.IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.'
+'RELATED_IDENTIFICATION_ASSIGNMENT'))) > 0) ) THEN
REPEAT j := 1 to HIINDEX(applied_identification_assignment [i].items) BY 1
WHILE NOT violate;
violate:=NOTVALUE_IN(which_class(applied_identification_assignment
[i].items[j]),'versionable object');
END_REPEAT;
END_IF;
END_REPEAT;
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_identification_assignment: набор всех экземпляров объектов applied_identification_assignment.
identification_assignment_relationship: набор всех экземпляров объектов identification_assignment_relationship.
Формальные высказывания:
WR1: Каждый экземпляр объекта identification_assignment_relationship, у которого имеется объект applied_classification_assignment со значением 'alternative version relationship' для атрибута assigned_class.name, должен указывать только экземпляры объекта applied_identification_assignment с атрибутом items, чье значение указывает на экземпляр, у которого есть объект applied_classification_assignment со значением 'versionable object' для assigned_class.name.
5.2.4.7 Правило approval_event_with_approval_person_organization
Правило approval_event_with_approval_person_organization определяет, что на экземпляр объекта approval с идентификатором класса 'approval event' приведена ссылка только из одного экземпляра объекта approval_person_organization через authorized_approval.
EXPRESS-спецификация:
*)
RULE
approval_event_with_approval_person_organization
FOR(approval);
LOCAL
t1_set:SET OF approval := [];
t2_set:SET OF approval_person_organization := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* approval |
VALUE_IN(WHICH_CLASS(i), 'approval event'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPROVAL_PERSON_ORGANIZATION.' +
'AUTHORIZED_APPROVAL'));
violate := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
approval: набор всех экземпляров объектов approval.
Формальные высказывания:
WR1: На каждый экземпляр объекта approval, у которого имеется объект applied_classification_assignment, чей assigned_class является group со значением 'approval event' для атрибута name, ссылается только экземпляр объекта approval_person_organization через authorized_approval.
5.2.4.8 Правило approval_event_with_approval_date_time
Правило approval_event_with_approval_date_time определяет, что на экземпляр объекта approval с идентификатором класса 'approval event' приведена ссылка только из одного экземпляра объекта approval_date_time через dated_approval.
EXPRESS-спецификация:
*)
RULE
approval_event_with_approval_date_time
FOR(approval);
LOCAL
t1_set: SET OF approval := [];
t2_set: SET OF approval_date_time := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* approval |
VALUE_IN(WHICH_CLASS(i), 'approval event'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPROVAL_DATE_TIME.' +
'DATED_APPROVAL')); violate := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
approval: набор всех экземпляров объектов approval.
Формальные высказывания:
WR1: На каждый экземпляр объекта approval, у которого имеется объект applied_classification_assignment, чей assigned_class является объектом group со значением 'approval event' для атрибута name, ссылается только экземпляр объекта approval_date_time через dated_approval.
5.2.4.9 Правило approval_history_approves_same_definition
Правило approval_history_approves_same_definition определяет, что все члены в объекте group с идентификатором класса 'approval history' должны утверждать один и тот же экземпляр с классификацией 'definition'.
EXPRESS-спецификация:
*)
RULE
approval_history_approves_same_definition
FOR (applied_group_assignment, applied_approval_assignment);
LOCAL
t2_set: SET OF APPLIED_GROUP_ASSIGNMENT := [];
t3_set: SET OF APPROVAL :=[];
t4_set: SET OF group_item :=[];
t5_set: SET OF APPLIED_APPROVAL_ASSIGNMENT := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t2_set := QUERY(a <* APPLIED_GROUP_ASSIGNMENT |
VALUE_IN(WHICH_CLASS(a.ASSIGNED_GROUP),
'approval history'));
t3_set := QUERY(b <* t2_set[1].items |
'SHIP_MOULDED_FORM_SCHEMA.APPROVAL' IN TYPEOF(b));
t4_set := QUERY(b <* t2_set[1].items |
VALUE_IN(WHICH_CLASS(b), 'DEFINITION'));
violate := NOT(SIZEOF(t4_set) = 1);
REPEAT i := 1 TO HIINDEX(t3_set) WHILE NOT violate;
t5_set := QUERY(a <* APPLIED_APPROVAL_ASSIGNMENT |
(a.ASSIGNED_APPROVAL = t3_set[i]) AND
(NOT (VALUE_IN(a.items, t4_set[1]))));
violate := (SIZEOF(t5_set) > 0);
END_REPEAT;
WHERE
WR1: NOT violate;
wr2: (SIZEOF(t4_set) = 1);
END_RULE;
(*
Определения аргументов:
applied_group_assignment: набор всех экземпляров объектов applied_group_assignment.
applied_approval_assignment: набор всех экземпляров объектов applied_approval_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта approval, входящий в состав атрибута items экземпляра объекта applied_group_assignment, чей объект assigned_group является экземпляром объекта group, у которого имеется объект applied_classification_assignment, чей объект assigned_classification представляет собой объект group со значением 'approval history' для атрибута name, должен представлять собой assigned_approval экземпляра объекта applied_approval_assignment, который собирает такой же экземпляр, имеющий объект applied_classification_assignment, чей объект assigned_classification представляет собой объект group со значением 'definition' для атрибута name в своем атрибуте items.
5.2.4.10 Правило approval_history_has_at_least_one_member
Правило approval_history_has_at_least_one_member определяет, что каждый объект group с идентификатором класса 'approval history' используется только одним объектом applied_group_assignment.
EXPRESS-спецификация:
*)
RULE
approval_history_has_at_least_one_member
FOR (group, applied_group_assignment);
LOCAL
t1_set: SET OF GROUP := [];
t2_set: SET OF APPLIED_GROUP_ASSIGNMENT := [];
violate: LOGICAL := FALSE;
END_LOCAL;
T1_set := QUERY(i <* group | VALUE_IN(WHICH_CLASS(i),
'approval history'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
t2_set := QUERY(a <* APPLIED_GROUP_ASSIGNMENT |
a.ASSIGNED_GROUP = t1_set[i]);
violate := NOT(SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_group_assignment: набор всех экземпляров объектов applied_group_assignment.
group: набор всех экземпляров объектов group.
Формальные высказывания:
WR1: Каждый экземпляр объекта group, имеющий объект applied_classification_assignment, чей assigned_classification представляет собой объект group со значением 'approval history' для атрибута name, должен представлять собой объект assigned_group только в одном экземпляре объекта applied_group_assignment.
5.2.4.11 Правило approvals_references_approval_history
Правило approvals_references_approval_history определяет, что на каждый экземпляр типа group с классификацией 'approval history' должна быть дана ссылка только присваиваниями типа applied_group_assignment со значением роли 'approvals' через атрибут assigned_group.
EXPRESS-спецификация:
*)
RULE approvals_references_approval_history FOR(applied_group_assignment, group);
LOCAL
t1_set: SET OF group := [];
a_set: SET OF applied_group_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* group | VALUE_IN(WHICH_CLASS(a), 'approval history'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_group_assignment |
NOT ((b.assigned_group = t1_set[i]) AND (b.role.name = 'approvals')));
violate := SIZEOF(a_set) > 0;
END_REPEAT;
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_group_assignment: набор всех экземпляров объектов applied_group_assignment.
group: набор всех экземпляров объектов group.
Формальные высказывания:
WR1: На каждый экземпляр объекта group, у которого имеется объект applied_classification_assignment, чей атрибут assigned_classification идентифицирует объект со значением 'approval history' для атрибута name, должна быть дана ссылка только из экземпляров типа applied_group_assignment со значением роли 'approvals', через атрибут assigned_group.
5.2.4.12 Правило author_for_change_plan
Правило author_for_change_plan определяет, что на экземпляр объекта action_request_solution с классификацией 'change plan' приведена ссылка только из одного экземпляра присваивания типа applied_person_and_organization_assignment со значением роли (role) 'author'.
EXPRESS-спецификация:
*)
RULE
author_for_change_plan
FOR(applied_person_and_organization_assignment, action_request_solution);
LOCAL
t1_set: SET OF action_request_solution := [];
a_set: SET OF applied_person_and_organization_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action_request_solution |
VALUE_IN(WHICH_CLASS(a), 'change plan'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_person_and_organization_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'author')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_person_and_organization_assignment: набор всех экземпляров объектов applied_person_and_organization_assignment.
action_request_solution: набор всех экземпляров объектов action_request_solution.
Формальные высказывания:
WR1: На каждый экземпляр объекта action_request_solution с классификацией 'change plan' приведена ссылка только из одного экземпляра объекта applied_person_and_organization_assignment со значением роли 'author'.
5.2.4.13 Правило author_for_change_realisation
Правило author_for_change_realisation определяет, что на экземпляр объекта executed_action с классификацией 'change realization' приведена ссылка только из одного экземпляра присваивания типа applied_person_and_organization_assignment, у которого роль имеет значение 'author'.
EXPRESS-спецификация:
*)
RULE
author_for_change_realisation
FOR(applied_person_and_organization_assignment,executed_action);
LOCAL
t1_set: SET OF executed_action := [];
a_set: SET OF applied_person_and_organization_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* executed_action |
VALUE IN(WHICH_CLASS(a), 'change realization'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_person_and_organization_assignment |
(VALUE IN(b.items, t1_set[i]) AND
(b.role.name = 'author')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_person_and_organization_assignment: набор всех экземпляров объектов applied_person_and_organization_assignment.
executed_action: набор всех экземпляров объектов executed_action.
Формальные высказывания:
WR1: На каждый экземпляр объекта executed_action с классификацией 'change realization' приведена ссылка только из одного экземпляра объекта applied_person_and_organization_assignment со значением роли 'author'.
5.2.4.14 Правило author_for_change_request
Правило author_for_change_request определяет, что на экземпляр объекта versioned_action_request со значением 'change request' для class приведена ссылка только из одного экземпляра присваивания типа applied_person_and_organization_assignment, у которого role имеет значение 'author'.
EXPRESS-спецификация:
*)
RULE
author_for_change_request
FOR(applied_person_and_organization_assignment, versioned_action_request);
LOCAL
t1_set: SET OF versioned_action_request := [];
a_set: SET OF applied_person_and_organization_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* versioned_action_request |
VALUE_IN(WHICH_CLASS(a), 'change request'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_person_and_organization_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'author')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_person_and_organization_assignment: набор экземпляров объектов applied_person_and_organization_assignment.
versioned_action_request: набор всех экземпляров объектов versioned_action_request.
Формальные высказывания:
WR1: На каждый экземпляр объекта versioned_action_request с классификацией 'change request' для class приведена ссылка только из одного экземпляра объекта applied_person_and_organization_assignment со значением роли 'author'.
5.2.4.15 Правило caused_by_for_check
Правило caused_by_for_check определяет, что на экземпляр объекта action с классификацией 'check' приведена ссылка только из одного экземпляра присваивания типа applied_person_and_organization_assignment со значением роли 'caused_by'.
EXPRESS-спецификация:
*)
RULE
caused_by_for_check
FOR(applied_person_and_organization_assignment, action);
LOCAL
t1_set: SET OF action := [];
a_set: SET OF applied_person_and_organization_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action | VALUE_IN(WHICH_CLASS(a), 'check'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_person_and_organization_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'caused by')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_person_and_organization_assignment: набор экземпляров объектов applied_person_and_organization_assignment.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: На каждый экземпляр объекта action с классификацией 'check' приведена ссылка только из одного экземпляра объекта applied_person_and_organization_assignment со значением роли 'caused by'.
5.2.4.16 Правило caused_by_for_envisaged_version_creation
Правило caused_by_for_envisaged_version_creation определяет, что на экземпляр объекта action с классификацией 'envisaged version creation' приведена ссылка только из одного экземпляра присваивания типа applied_person_and_organization_assignment со значением роли 'caused_by'.
EXPRESS-спецификация:
*)
RULE
caused_by_for_envisaged_version_creation FOR(applied_person_and_organization_
assignment, action);
LOCAL
t1_set: SET OF action := [];
r a_set: SET OF applied_person_and_organization_assignment := [];
violate: LOGICAL := FALSE; f
END_LOCAL;
t1_set := QUERY(a <* action |
VALUE_IN(WHICH_CLASS(a), 'envisaged version creation'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_person_and_organization_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'caused by')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_person_and_organization_assignment: набор всех экземпляров объектов applied_person_and_organization_assignment.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: На каждый экземпляр объекта action с классификацией 'change realization' приведена ссылка только из одного экземпляра объекта applied_person_and_organization_assignment со значением роли 'caused by'.
5.2.4.17 Правило caused_by_for_version_creation
Правило caused_by_for_version_creation определяет, что на экземпляр объекта action с классификацией 'version creation' приведена ссылка только из одного экземпляра присваивания типа applied_person_and_organization_assignment со значением роли 'caused by'.
EXPRESS-спецификация:
*)
RULE
caused_by_for_version_creation
FOR(applied_person_and_organization_assignment, action);
LOCAL
t1_set: SET OF action := [];
a_set: SET OF applied_person_and_organization_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action |
VALUE_IN(WHICH_CLASS(a), 'version creation'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_person_and_organization_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'caused by')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_person_and_organization_assignment: набор всех экземпляров объектов applied_person_and_organization_assignment.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: На каждый экземпляр объекта action с классификацией 'version creation' приведена ссылка только из одного экземпляра объекта applied_person_and_organization_assignment со значением роли 'caused by'.
5.2.4.18 Правило caused_by_for_version_deletion
Правило caused_by_for_version_deletion определяет, что на экземпляр объекта action с классификацией 'version deletion' приведена ссылка только из одного экземпляра присваивания типа applied_person_and_organization_assignment со значением роли 'caused_by'.
EXPRESS-спецификация:
*)
RULE
caused_by_for_version_deletion
FOR(applied_person_and_organization_assignment, action);
LOCAL
t1_set: SET OF action := [];
a_set: SET OF applied_person_and_organization_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action |
VALUE_IN(WHICH_CLASS(a), 'version deletion'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_person_and_organization_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'caused by')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_person_and_organization_assignment: набор всех экземпляров объектов applied_person_and_organization_assignment.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: На каждый экземпляр объекта action с классификацией 'version deletion' приведена ссылка только из одного экземпляра объекта applied_person_and_organization_assignment со значением роли 'caused by'.
5.2.4.19 Правило caused_by_for_version_modification
Правило caused_by_for_version_modification определяет, что на экземпляр объекта action с классификацией 'version modification' приведена ссылка только из одного экземпляра присваивания типа applied_person_and_organization_assignment со значением роли 'caused_by'.
EXPRESS-спецификация:
*)
RULE
caused_by_for_version_modification
FOR(applied_person_and_organization_assignment, action);
LOCAL
t1_set: SET OF action := [];
a_set: SET OF applied_person_and_organization_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action |
VALUE_IN(WHICH_CLASS(a), 'version modification'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_person_and_organization_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'caused by')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_person_and_organization_assignment: набор всех экземпляров объектов applied_person_and_organization_assignment.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: На каждый экземпляр объекта action с классификацией 'version modification' приведена ссылка только из одного экземпляра объекта applied_person_and_organization_assignment со значением роли 'caused by'.
5.2.4.20 Правило caused_when_for_check
Правило caused_when_for_check определяет, что на экземпляр объекта action с классификацией 'check' приведена ссылка только из одного экземпляра присваивания типа applied_date_and_time_assignment со значением роли 'caused when'.
EXPRESS-спецификация:
*)
RULE
caused_when_for_check
FOR(applied_date_and_time_assignment, action);
LOCAL
t1_set: SET OF action := [];
a_set: SET OF applied_date_and_time_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action | VALUE_IN(WHICH_CLASS(a), 'check'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_date_and_time_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'caused when')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_date_and_time_assignment: набор всех экземпляров объектов applied_date_and_time_assignment.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: На каждый экземпляр объекта action с классификацией 'check' приведена ссылка только из одного экземпляра объекта applied_date_and_time_assignment со значением роли 'caused when'.
5.2.4.21 Правило caused_when_for_envisaged_version_creation
Правило caused_when_for_envisaged_version_creation определяет, что на экземпляр объекта action с классификацией 'envisaged version creation' приведена ссылка только из одного экземпляра присваивания типа applied_date_and_time_assignment со значением роли 'caused when'.
EXPRESS-спецификация:
*)
RULE
caused_when_for_envisaged_version_creation FOR(applied_date_and_time_assignment, action);
LOCAL
t1_set: SET OF action := [];
a_set: SET OF applied_date_and_time_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action | VALUE_IN(WHICH_CLASS(a),
'envisaged version creation'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_date_and_time_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'caused when')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_date_and_time_assignment: набор всех экземпляров объектов applied_date_and_time_assignment.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: На каждый экземпляр объекта action с классификацией 'envisaged version creation' приведена ссылка только из одного экземпляра объекта applied_date_and_time_assignment со значением роли 'caused when'.
5.2.4.22 Правило caused_when_for_version_creation
Правило caused_when_for_version_creation определяет, что на экземпляр объекта action с классификацией 'version creation' приведена ссылка только из одного экземпляра присваивания типа applied_date_and_time_assignment со значением роли 'caused when'.
EXPRESS-спецификация:
*)
RULE
caused_when_for_version_creation
FOR(applied_date_and_time_assignment, action);
LOCAL
t1_set: SET OF action := [];
a_set: SET OF applied_date_and_time_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action |
VALUE_IN(WHICH_CLASS(a), 'version creation'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_date_and_time_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'caused when')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_date_and_time_assignment: набор всех экземпляров объектов applied_date_and_time_assignment.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: На каждый экземпляр объекта action с классификацией 'version creation' приведена ссылка только из одного экземпляра объекта applied_date_and_time_assignment со значением роли 'caused when'.
5.2.4.23 Правило caused_when_for_version_modification
Правило caused_when_for_version_modification определяет, что на экземпляр объекта action с классификацией 'version modification' приведена ссылка только из одного экземпляра присваивания типа applied_date_and_time_assignment со значением роли 'caused when'.
EXPRESS-спецификация:
*)
RULE
caused_when_for_version_modification FOR(applied_date_and_time_assignment, action);
LOCAL
t1_set: SET OF action := [];
a_set: SET OF applied_date_and_time_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action |
VALUE_IN(WHICH_CLASS(a), 'version modification'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_date_and_time_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'caused when')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_date_and_time_assignment: набор всех экземпляров объектов applied_date_and_time_assignment.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: На каждый экземпляр объекта action с классификацией 'version modification' приведена ссылка только из одного экземпляра объекта applied_date_and_time_assignment со значением роли 'caused when'.
5.2.4.24 Правило caused_when_for_version_deletion
Правило caused_when_for_version_deletion определяет, что на экземпляр объекта action с классификацией 'version deletion' приведена ссылка только из одного экземпляра присваивания типа applied_date_and_time_assignment со значением роли 'caused when'.
EXPRESS-спецификация:
*)
RULE
caused_when_for_version_deletion FOR(applied_date_and_time_assignment, action);
LOCAL
t1_set: SET OF action := [];
a_set: SET OF applied_date_and_time_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action |
VALUE_IN(WHICH_CLASS(a), 'version deletion'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_date_and_time_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'caused when')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_date_and_time_assignment: набор всех экземпляров объектов applied_date_and_time_assignment.
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: На каждый экземпляр объекта action с классификацией 'version deletion' приведена ссылка только из одного экземпляра объекта applied_date_and_time_assignment со значением роли 'caused when'.
5.2.4.25 Правило centre_location_compound_representation_has_specified_name
Правило centre_location_compound_representation_has_specified_name определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'centre location' в объекте list_representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE centre_location_compound_representation_has_specified_name
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['longitudinal location', 'transversal
location', 'vertical location'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'centre location' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'centre location');
(* get all instances of compound_representation_item that have class id
'centre location' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not exactly one rep_item for each name in the arg_list
*)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, имеющего объект hat has an applied_classification_assignment со значением атрибута assigned_classification.name, равным 'centre location', должен быть свой атрибут item_element, экземпляр которого должен создаваться как list_representation_item, который должен для каждого из следующих значений: 'longitudinal location', 'transversal location', 'vertical location' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.26 Правило change_impact_with_versionable_object_change_event
Правило change_impact_with_versionable_object_change_event определяет, что каждое присваивание типа applied_action_request_assignment со значением 'change impact' для role должно ссылаться хотя бы на один элемент с классификацией 'versionable object change event' через его атрибут items.
EXPRESS-спецификация:
*)
RULE
change_impact_with_versionable_object_change_event
FOR(applied_action_request_assignment);
LOCAL
t1_set: SET OF applied_action_request_assignment := [];
a_set: SET OF action := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(b <* applied_action_request_assignment |
(b.role.name= 'change impact'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* t1_set[i].items |
('SHIP_MOULDED_FORM_SCHEMA.ACTION' IN TYPEOF(b)) AND
VALUE_IN(WHICH_CLASS(b), 'versionable object change event'));
violate := SIZEOF(a_set) = 0;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_action_request_assignment: набор всех экземпляров объектов applied_action_request_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта applied_action_request_assignment, значение для role которого равно 'change impact', должен ссылаться хотя бы на один экземпляр, содержащий объект applied_classification_assignment, чей объект assigned_class представляет собой объект group с атрибутом name, равным 'versionable object change event', через его атрибут items.
5.2.4.27 Правило change_plan_has_mandatory_attribute_description
Правило change_plan_has_mandatory_attribute_description определяет, что для экземпляра объекта action_request_solution со значением идентификатора класса 'alternative version relationship' приведен экземпляр необязательного атрибута description.
EXPRESS-спецификация:
*)
RULE
change_plan_has_mandatory_attribute_description
FOR (action_request_solution);
LOCAL
t1_set: SET OF action_request_solution := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* action_request_solution |
VALUE_IN(WHICH_CLASS(i), 'change plan'));
violate := (SIZEOF(QUERY(k <* t1_set |
NOT EXISTS (k.description))) > 0);
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
action_request_solution: набор всех экземпляров объектов action_request_solution.
Формальные высказывания:
WR1: Необязательный атрибут description должен быть для каждого экземпляра объекта action_request_solution, содержащего объект applied_classification_assignment, чей объект assigned_class представляет собой group с атрибутом name, значение которого равно 'change plan'.
5.2.4.28 Правило class_and_statutory_designation_has_properties
Правило class_and_statutory_designation_has_properties определяет, что на объект product_definition с идентификатором класса 'class and statutory designation' должна быть дана ссылка из одного объекта property_definition_representation со значением 'class and statutory designation' для name через объект property_definition.
EXPRESS-спецификация:
*)
RULE class_and_statutory_designation_has_properties FOR (property_definition_
representation, applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_list: LIST OF product_definition := [];
t2_set: SET OF property_definition_representation := [];
t3_list: LIST OF property_definition := [];
t4_list: LIST OF product_definition := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'class and statutory designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_list := t1_list + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
t2_set := QUERY(i <* PROPERTY_DEFINITION_REPRESENTATION |
i.NAME = 'class and statutory designation');
REPEAT i := 1 TO HIINDEX(t2_set);
t3_list := t3_list + t2_set[i].definition;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_list);
t4_list := t4_list + t3_list[i].definition;
END_REPEAT;
violation := t1_list <> t4_list;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
property_definition_representation: набор всех экземпляров объектов property_definition_representation.
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый экземпляр объекта product_definition, содержащий объект applied_classification_assignment, чей атрибут assigned_classification представляет собой group со значением 'class and statutory designation' для атрибута name, должна быть дана ссылка только их одного экземпляра объекта property_definition через атрибут definition, на который, в свою очередь, приведена ссылка из экземпляра объекта property_definition_representation через атрибут definition, значение атрибута name которого равно 'class and statutory designation'.
5.2.4.29 Правило class_notation_with_named_representation_items
Правило class_notation_with_named_representation_items определяет наличие для атрибута items объекта representation для каждой записи в перечне одного или нескольких объектов representation_items, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, значение атрибута name которого равно 'class notation'.
EXPRESS-спецификация:
*)
RULE class_notation_with_named_representation_items FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['class notations hull',
violation: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'class notation')
)
) > 0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) < 1);
END_REPEAT;
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Каждый экземпляр объекта representation, представляющего собой объект the used_representation в экземпляре объекта property_definition_representation, значение атрибута name которого равно 'class notation', должен для каждого из следующих значений 'class notations hull' или 'class notations machinery' собирать хотя бы один экземпляр объекта representation_item в его атрибуте items, чей атрибут name равен этому значению.
5.2.4.30 Правило class_parameters_has_properties
Правило class_parameters_has_properties определяет, что на объект product_definition с идентификатором класса 'class parameters' приведена ссылка из одного объекта property_definition_representation со значением 'class parameters' для name через объект property_definition.
EXPRESS-спецификация:
*)
RULE class_parameters_has_properties FOR (property_definition_representation,
applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: LIST OF product_definition := [];
t2_set: SET OF property_definition_representation := [];
t3_set: LIST OF property_definition := [];
t4_set: LIST OF product_definition := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'class parameters');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
t2_set:= QUERY(i <* PROPERTY_DEFINITION_REPRESENTATION |
i.NAME = 'class parameters');
REPEAT i := 1 TO HIINDEX(t2_set);
t3_set := t3_set + t2_set[i].definition;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_set);
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
violation := t1_set <> t4_set;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
property_definition_representation: набор всех экземпляров объектов property_definition_representation.
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый экземпляр объекта product_definition, содержащий объект applied_classification_assignment, чей атрибут assigned_class представляет собой group со значением 'class parameters' для атрибута name, должна быть дана ссылка только их одного экземпляра объекта property_definition через атрибут definition, на который в свою очередь приведена ссылка из экземпляра объекта property_definition_representation через атрибут definition, значение атрибута name которого равно 'class parameters'.
5.2.4.31 Правило compound_representation_item_with_hydrostatic_properties
Правило compound_representation_item_with_hydrostatic_properties определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'hydrostatic properties for constant floating position' в объекте list_representation_item для каждой записи в перечне одного или нескольких объектов representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE
compound_representation_item_with_hydrostatic_properties
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t2_set: LIST OF representation_item := [];
arg_list: LIST OF STRING := ['hydrostatic property value']
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'hydrostatic
properties for constant floating position' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'hydrostatic properties for constant
floating position');
(* get all instances of compound_representation_item that have class id
'hydrostatic properties for constant floating position' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not one or more rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) < 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, имеющего объект applied_classification_assignment со значением атрибута assigned_class.name, равным 'hydrostatic properties for constant floating position', должен быть свой атрибут item_element, экземпляр которого создавался как list_representation_item, который должен для каждого из следующих значений: 'hydrostatic property value' забирать хотя бы один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.32 Правило compound_representation_item_with_class_id_knot
Правило compound_representation_item_with_class_id_knot определяет наличие для атрибута item_element объекта compound_representation_item с идентификатором класса 'knot' в объекте list_representation_item двух или более объектов compound_representation_item с идентификатором класса 'ship curve'.
EXPRESS-спецификация:
*)
RULE compound_representation_item_with_class_id_knot
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
c_a_set2: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t2_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t3_set: SET OF REPRESENTATION_ITEM := [];
l_rep_item : list_representation_item;
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'knot' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'knot');
(* get all instances of compound_representation_item that have class id 'knot' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'ship curve' *)
c_a_set2 := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'ship curve');
(* get all instances of compound_representation_item that have class id 'ship curve' *)
REPEAT i := 1 TO HIINDEX(c_a_set2);
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items);
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found in the first list;
then iterate over all item_element for each compound_representation_item, check
that the intersection of these item_elements and the second list of compound_
representation_item is greater then or equal to 2 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE (NOT violation);
l_rep_item := t1_set[i].item_element;
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element);
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := (SIZEOF(t3_set * t2_set) < 2);
t3_set:= [];
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class.name равен значению 'knot', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен собирать хотя бы два экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class равен значению 'ship curve'.
5.2.4.33 Правило compound_representation_item_with_section_identifier
Правило compound_representation_item_with_section_identifier определяет, что на экземпляр объекта compound_representation_item с идентификатором класса 'section of offset point table' приведена ссылка только из одного экземпляра объекта applied_identification_assignment через items, атрибут role которого имеет значение 'section identifier'.
EXPRESS-спецификация:
*)
RULE compound_representation_item_with_section_identifier
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF compound_representation_item := [];
t2_set: SET OF applied_identification_assignment := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'section of offset
point table' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'section of offset point table');
(* get all instances of compound_representation_item that have class id
'section of offset point table' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of compound_representation_item in t1_set:
get the applied_identification_assignment instances that are referencing
a compound_representation_item instance via items, filter out those applied_
identification_assignment instances whose attribute role has the value 'section
identifier' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.
'+'APPLIED_IDENTIFICATION_ASSIGNMENT' + '.ITEMS'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.role.name =
'section identifier')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект compound_representation_item, на который дана ссылка из объекта applied_classification_assignment, где name = 'section of offset point table', приведена ссылка только из одного объекта applied_identification_assignment.items, где applied_identification_assignment.role = 'section identifier'.
5.2.4.34 Правило date_time_for_change_plan
Правило date_time_for_change_plan определяет, что на экземпляр объекта action_request_solution с классификацией 'change plan' приведена ссылка только из одного экземпляра присваивания типа applied_date_and_time_assignment со значением роли 'date time'.
EXPRESS-спецификация:
*)
RULE
date_time_for_change_plan
FOR(applied_date_and_time_assignment, action_request_solution);
LOCAL
t1_set: SET OF action_request_solution := [];
a_set: SET OF applied_date_and_time_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* action_request_solution |
VALUE_IN(WHICH_CLASS(a), 'change plan'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_date_and_time_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'date time')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_date_and_time_assignment: набор всех экземпляров объектов applied_date_and_time_assignment.
action_request_solution: набор всех экземпляров объектов action_request_solution.
Формальные высказывания:
WR1: На каждый экземпляр объекта action_request_solution с классификацией 'change plan' для role приведена ссылка только из одного экземпляра объекта applied_date_and_time_assignment со значением роли 'date time'.
5.2.4.35 Правило date_time_for_change_request
Правило date_time_for_change_request определяет, что на экземпляр объекта versioned_action с классификацией 'change request' приведена ссылка только из одного экземпляра присваивания типа applied_date_and_time_assignment со значением роли 'date time'.
EXPRESS-спецификация:
*)
RULE
date_time_for_change_request
FOR(applied_date_and_time_assignment, versioned_action_request);
LOCAL
t1_set: SET OF versioned_action_request := [];
a_set: SET OF applied_date_and_time_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* versioned_action_request |
VALUE_IN(WHICH_CLASS(a), 'change request'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_date_and_time_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'date time')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_date_and_time_assignment: набор всех экземпляров объектов applied_date_and_time_assignment.
versioned_action_request: набор всех экземпляров объектов versioned_action_request.
Формальные высказывания:
WR1: На каждый экземпляр объекта versioned_action_request с классификацией 'change request' приведена ссылка только из одного экземпляра объекта applied_date_and_time_assignment со значением роли 'date time'.
5.2.4.36 Правило date_time_for_change_realisation
Правило date_time_for_change_realisation определяет, что на экземпляр объекта executed_action с классификацией 'change realization' приведена ссылка только из одного экземпляра присваивания типа applied_date_and_time_assignment со значением роли 'date time'.
EXPRESS-спецификация:
*)
RULE
date_time_for_change_realisation
FOR(applied_date_and_time_assignment, executed_action);
LOCAL
t1_set: SET OF executed_action := [];
a_set: SET OF applied_date_and_time_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* executed_action |
VALUE_IN(WHICH_CLASS(a), 'change realisation'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_date_and_time_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'date time')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_date_and_time_assignment: набор всех экземпляров объектов applied_date_and_time_assignment.
executed_action: набор всех экземпляров объектов executed_action.
Формальные высказывания:
WR1: На каждый экземпляр объекта executed_action с классификацией 'change realization' приведена ссылка только из одного экземпляра объекта applied_date_and_time_assignment со значением роли 'date time'.
5.2.4.37 Правило document_has_at_least_one_references
Правило document_has_at_least_one_references определяет, что на экземпляр объекта document с классификацией 'document' приведена ссылка хотя бы из одного экземпляра объекта document_representation_type через represented_document.
EXPRESS-спецификация:
*)
RULE document_has_at_least_one_references
FOR(document);
LOCAL
t1_set: SET OF document := [];
t2_set: SET OF document_representation_type := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* document | VALUE_IN(WHICH_CLASS(i),'document'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.DOCUMENT_REPRESENTATION_TYPE.'+
'REPRESENTED_DOCUMENT'));
violate := SIZEOF(t2_set) < 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
document: набор всех экземпляров объектов document.
Формальные высказывания:
WR1: На каждый экземпляр объекта document, содержащего объект applied_classification_assignment, где assigned_class представляет собой group со значением атрибута name, равным 'document', должна быть дана ссылка из одного или нескольких экземпляров объекта document_representation_type через атрибут represented_document.
5.2.4.38 Правило document_has_exactly_one_author
Правило document_has_exactly_one_author определяет, что на каждый экземпляр типа document должна быть дана ссылка только из одного экземпляра типа applied_person_assignment или applied_organization_assignment, или applied_person_and_organization_assignment, где последний экземпляр содержит роль со значением 'author'.
EXPRESS-спецификация:
*)
RULE document_has_exactly_one_author
FOR(document);
LOCAL
bag_1: BAG OF applied_person_assignment := [];
bag_2: BAG OF applied_person_and_organization_assignment := [];
bag_3: BAG OF applied_organization_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
REPEAT i := 1 TO SIZEOF(document) WHILE (NOT violate);
bag_1 := USEDIN(document[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_PERSON_ASSIGNMENT.ITEMS');
bag_1 := QUERY( assign <* bag_1 | assign.role.name = 'author');
bag_2 := USEDIN(document[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS');
bag_2 := QUERY( assign <* bag_2 | assign.role.name = 'author');
bag_3 := USEDIN(document[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS');
bag_3 := QUERY( assign <* bag_3 | assign.role.name = 'author');
violate := NOT ((SIZEOF( bag_1 ) + SIZEOF( bag_2 )+ SIZEOF( bag_3 )) = 1);
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
document: набор всех экземпляров объектов document.
Формальные высказывания:
WR1: На каждый экземпляр объекта document должна быть дана ссылка только из одного экземпляра объекта applied_person_assignment, applied_organization_assignment или applied_person_and_organization_assignment со значением роли 'author'.
5.2.4.39 Правило document_reference_with_address_has_at_least_one_references
Правило document_reference_with_address_has_at_least_one_references определяет, что на экземпляр объекта document с идентификатором класса 'document reference with address' должна быть дана ссылка хотя бы из одного экземпляра объекта applied_external_identification_assignments через items.
EXPRESS-спецификация:
*)
RULE document_reference_with_address_has_at_least_one_references
FOR(document);
LOCAL
t1_set: SET OF document := [];
t2_set: SET OF applied_external_identification_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* document | VALUE_IN(WHICH_CLASS(i), 'document reference with address'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violate := SIZEOF(t2_set) < 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
document: набор всех экземпляров объектов document.
Формальные высказывания:
WR1: На каждый экземпляр объекта document, содержащего объект applied_classification_assignment, где assigned_class представляет собой group со значением атрибута name, равным 'document reference with address', должна быть дана ссылка из одного или нескольких экземпляров объекта applied_external_identification_assignments через атрибут items.
5.2.4.40 Правило envisaged_version_creation_has_mandatory_attribute_description
Правило envisaged_version_creation_has_mandatory_attribute_description определяет, что для экземпляра объекта action с идентификатором класса 'alternative version relationship' приведен экземпляр необязательного атрибута description.
EXPRESS-спецификация:
*)
RULE
envisaged_version_creation_has_mandatory_attribute_description
FOR (action);
LOCAL
t1_set: SET OF action := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* action | VALUE_IN(WHICH_CLASS(i),
'envisaged version creation'));
violate := (SIZEOF(QUERY(k <* t1_set |
NOT EXISTS (k.description))) > 0);
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: Необязательный атрибут description должен быть для каждого экземпляра объекта action, содержащего объект applied_classification_assignment, чей объект assigned_class представляет собой group с атрибутом name, значение которого равно 'envisaged version creation'.
5.2.4.41 Правило executed_action_with_identification_assignment
Правило executed_action_with_identification_assignment задает перечень объектов, для которых требуется идентификация. Идентификация определяется объектом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE executed_action_with_identification_assignment
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF executed_action := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := [ 'change realization'];
violation: LOGICAL := FALSE;
END_LOCAL;
REPEAT j:= 1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.APPLIED_
IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | j.role.name = 'globally unambiguous
identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта executed_action, на который приведена ссылка из объекта application_classification_assignment, чей объект assigned_class содержит атрибут name со значением 'change realization', должен требоваться объект application_identification_assignment для определения идентификатора экземпляра.
5.2.4.42 Правило external_instance_reference_has_same_identifier
Правило external_instance_reference_has_same_identifier подтверждает, что глобальный идентификатор, хранящийся в атрибуте assigned_id объекта applied_external_identification_assignment, идентичен глобальному идентификатору, хранящемуся в атрибуте assigned_id объекта applied_identification_assignment, для каждого объекта, на который приведена ссылка из обоих объектов, applied_external_identification_assignment и applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE external_instance_reference_has_same_identifier FOR (
applied_external_identification_assignment);
LOCAL
violation : LOGICAL := FALSE;
extref_set : SET OF applied_external_identification_assignment := [];
aia_set : SET OF applied_identification_assignment := [];
END_LOCAL;
extref_set := QUERY ( i <* applied_external_identification_assignment |
(i.role.name = 'external instance reference') );
REPEAT i := 1 TO HIINDEX(extref_set) BY 1 WHILE NOT violation;
aia_set := bag_to_set(USEDIN(extref_set[i].items[1],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violation := NOT (aia_set[1].assigned_id = extref_set[i].assigned_id);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE; -- external_instance_reference_has_same_identifier
(*
Определения аргументов:
applied_external_identification_assignment: набор всех экземпляров объектов applied_external_identification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра, на который приведена ссылка и из объекта applied_external_identification_assignment в роли со значением 'external instance reference', и из объекта applied_identification_assignment, значение, хранящееся в атрибуте assigned_id каждого из этих объектов присваивания, должно быть одинаковым.
5.2.4.43 Правило floating_position_compound_representation_with_name
Правило floating_position_compound_representation_with_name определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'floating position' в объекте list_representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE floating_position_compound_representation_with_name
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['moulded form displacement', 'draught at amidships',
'length of waterline', 'breadth of waterline', 'angle of trim', 'angle of heel'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'floating position' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'floating position');
(* get all instances of compound_representation_item that have class id 'floating
position' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of them
has not exactly one rep_item for each name in the arg_list *)
REPEAT i:= 1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:= 1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class.name равен 'floating position', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который для каждого из следующих значений: 'moulded form displacement', 'draught at amidships', 'length of waterline', 'breadth of waterline', 'angle of trim', 'angle of heel' должен забирать только один экземпляр объекта representation_item, чей атрибут name равен этому значению.
5.2.4.44 Правило global_axis_placement_has_properties
Правило global_axis_placement_has_properties определяет, что на объект product_definition с идентификатором класса 'global axis placement' приведена ссылка из одного объекта property_definition_representation со значением 'global axis placement' для name через объект property_definition.
EXPRESS-спецификация:
*)
RULE global_axis_placement_has_properties
FOR (property_definition_representation,
group, applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: LIST OF product_definition := [];
t2_set: SET OF property_definition_representation := [];
t3_set: LIST OF property_definition := [];
t4_set: LIST OF product_definition := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'global axis placement');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
t2_set:= QUERY(i <* PROPERTY_DEFINITION_REPRESENTATION |
i.NAME = 'global axis placement');
REPEAT i := 1 TO HIINDEX(t2_set);
t3_set := t3_set + t2_set[i].definition;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_set);
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
violation := t1_set <> t4_set;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
property_definition_representation: набор всех экземпляров объектов property_definition_representation.
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый экземпляр объекта product_definition, содержащий объект applied_classification_assignment, чей атрибут assigned_class представляет собой group со значением 'global axis placement' для атрибута name, должна быть дана ссылка только их одного экземпляра объекта property_definition через атрибут definition, на который, в свою очередь, должна быть дана ссылка из экземпляра объекта property_definition_representation через атрибут definition, значение атрибута name которого равно 'global axis placement'.
5.2.4.45 Правило global_id_is_unique
Правило global_id_is_unique определяет, что глобальные идентификаторы определяемых предметов являются уникальными и что каждый идентификатор присваивается только одному определяемому предмету.
EXPRESS-спецификация:
*)
RULE global_id_is_unique
FOR (APPLIED_IDENTIFICATION_ASSIGNMENT);
LOCAL
set_1: SET OF APPLIED_IDENTIFICATION_ASSIGNMENT:= [];
bag_2: BAG OF STRING := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all instances of guid *)
set_1 := QUERY(i <* APPLIED_IDENTIFICATION_ASSIGNMENT |
(i.role.name = 'globally unambiguous identifier'));
REPEAT i := 1 TO HIINDEX(set_1);
bag_2 := bag_2 + [set_1[i].assigned_id];
END_REPEAT;
violation := SIZEOF (QUERY(i <* set_1 | (SIZEOF(i.items) = 1))) <> v SIZEOF(set_1);
WHERE
WR1: VALUE_UNIQUE(bag_2);
WR2: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_identification_assignment: набор всех экземпляров объектов applied_identification_assignment.
Формальные высказывания:
WR1: У каждого объекта applied_identification_assignment имеется атрибут role, указывающий объект identification_role с name = 'globally unambiguous identifier', и должно быть уникальное значение для assigned_id.
WR2: Каждый объект applied_identification_assignment, содержащий атрибут role, указывающий объект identification_role с name = 'globally unambiguous identifier', должен указывать только один определяемый предмет в атрибуте tems.
5.2.4.46 Правило hull_moulded_form_design_parameter_with_class_references
Правило hull_moulded_form_design_parameter_with_class_references определяет, что на экземпляр объекта property_definition с идентификатором класса 'hull moulded form design parameter' приведена ссылка не более чем из одного экземпляра объекта property_definition_representation, чей атрибут used_representation указывает на представление (representation) с идентификатором класса 'midship_tumble'.
EXPRESS-спецификация:
*)
RULE hull_moulded_form_design_parameter_with_class_references FOR(APPLIED_
CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
t3_set: SET OF representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id
'hull moulded form design parameter' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'hull moulded form design parameter');
(* get all instances of property_definition that have class id
'hull moulded form design parameter' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing a property_
definition instance via definition, get those property_definition_representation.used_
representation instances whose class id is 'midship_tumble' and make sure their number
is less than or equal to 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'DEFINITION'));
REPEAT j := 1 to HIINDEX(t2_set) ;
t3_set := t3_set + t2_set[j].used_representation;
END_REPEAT;
violation := SIZEOF(QUERY(t2_inst <* t3_set | 'midship tumble' IN WHICH_CLASS(t2_inst))) > 1;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый экземпляр объекта property_definition, содержащий объект applied_classification_assignment, где у assigned_class имеется атрибут name со значением 'hull moulded form design parameter', должна быть дана ссылка из одного или менее экземпляров объекта property_definition_representation, который указывает представление (representation) через свой атрибут used_representation, содержащий объект applied_classification_assignment, где у assigned_class имеется атрибут name о значением 'midship tumble'.
5.2.4.47 Правило hydrostatic_properties_with_specified_class
Правило hydrostatic_properties_with_specified_class определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'hydrostatic properties for constant floating position' в объекте list_representation_item только одного объекта compound_representation_item с идентификатором класса 'floating position'.
EXPRESS-спецификация:
*)
RULE
hydrostatic_properties_with_specified_class
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
c_a_set2 : SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t2_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t3_set: SET OF REPRESENTATION_ITEM := [];
l_rep_item : list_representation_item;
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'hydrostatic properties
for constant floating position' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'hydrostatic properties for constant
floating position');
(* get all instances of compound_representation_item that have class id
'hydrostatic properties for constant floating position' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'floating position' *)
c_a_set2 := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'floating position');
(* get all instances of compound_representation_item that have class id
'floating position' *)
REPEAT i := 1 TO HIINDEX(c_a_set2);
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items);
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found in the first list; then
iterate over all item_element for each compound_representation_item, check that
the intersection of these item_elements and and the second list of compound_
representation_item is equal 1 *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
l_rep_item := t1_set[i].item_element;
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element);
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := (SIZEOF(t3_set * t2_set) <> 1);
t3_set:= [];
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class.name равен значению 'hydrostatic properties for constant floating position', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен забирать только один экземпляр объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class равен значению 'floating position'.
5.2.4.48 Правило hydrostatic_property_with_specified_name
Правило hydrostatic_property_with_specified_name определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'hydrostatic property' в объекте list_representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE hydrostatic_property_with_specified_name
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['property type'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'hydrostatic property' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'hydrostatic property');
(* get all instances of compound_representation_item that have class id
'hydrostatic property' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment со значением атрибута assigned_class.name равным 'hydrostatic property', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из следующих значений 'property type' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.49 Правило identification_role_optional_attribute_description_required
Правило identification_role_optional_attribute_description_required определяет, что для всех экземпляров типа identification_role представлен необязательный атрибут description, если значение атрибута name этого экземпляра равно 'external reference'.
EXPRESS-спецификация:
*)
RULE identification_role_optional_attribute_description_required FOR
(identification_role);
WHERE
WR1: SIZEOF(QUERY(i <* identification_role |
((i.name = 'external reference')
AND NOT(EXISTS (i.description))))) = 0;
END_RULE;
(*
Определения аргументов:
identification_role: набор всех экземпляров объектов identification_role.
Формальные высказывания:
WR1: Необязательный атрибут description каждого экземпляра объекта identification_role существует, если имя (name) равно 'external reference'.
5.2.4.50 Правило initiator_for_change_request
Правило initiator_for_change_request определяет, что на экземпляр объекта versioned_action_request с классификацией 'change request' приведена ссылка только из одного экземпляра присваивания типа applied_person_and_organization_assignment со значением роли 'initiator'.
EXPRESS-спецификация:
*)
RULE
initiator_for_change_request
FOR(applied_person_and_organization_assignment,
versioned_action_request);
LOCAL
t1_set: SET OF versioned_action_request := [];
a_set: SET OF applied_person_and_organization_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* versioned_action_request |
VALUE_IN(WHICH_CLASS(a), 'change request'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_person_and_organization_assignment |
(VALUE_IN(b.items, t1_set[i]) AND
(b.role.name = 'initiator')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_person_and_organization_assignment: набор всех экземпляров объектов applied_person_and_organization_assignment.
versioned_action_request: набор всех экземпляров объектов versioned_action_request.
Формальные высказывания:
WR1: На каждый экземпляр объекта versioned_action_request с классификацией 'change request' приведена ссылка только из одного экземпляра объекта applied_person_and_organization_assignment со значением роли 'initiator'.
5.2.4.51 Правило mandatory_entity_type_for_external_instance_reference
Правило mandatory_entity_type_for_external_instance_reference определяет, что каждый экземпляр объекта external_source, где объект description имеет значение 'schema name', должно быть в обязательном порядке объектом relating_source экземпляра объекта external_source_relationship, где related_source представляет собой экземпляр объекта external_source, содержащий description со значением 'entity type'.
EXPRESS-спецификация:
*)
RULE mandatory_entity_type_for_external_instance_reference FOR(external_source,
external_source_relationship);
LOCAL
bag_1: BAG OF external_source := [];
violate: LOGICAL := FALSE;
END_LOCAL;
bag_1 := QUERY(a <* external_source | a.description = 'schema name');
REPEAT i := 1 TO SIZEOF(bag_1) WHILE (NOT violate);
violate := (SIZEOF( QUERY(
a <* external_source_relationship | (a.relating_source :=: bag_1[i]) AND
(a.related_source.description = 'entity type'))) = 0 );
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
external_source: набор всех экземпляров объектов external_source.
external_source_relationship: набор всех экземпляров объектов external_source_relationship.
Формальные высказывания:
WR1: Каждый экземпляр объекта external_source, где объект description имеет значение 'schema name', должно быть в обязательном порядке объектом relating_source экземпляра объекта external_source_relationship, где related_source представляет собой экземпляр объекта external_source, содержащий description со значением 'entity type'.
5.2.4.52 Правило members_is_referenced_by_at_least_one_revision
Правило members_is_referenced_by_at_least_one_revision определяет, что на каждый экземпляр типа group с классификацией 'revision' должна быть дана ссылка хотя бы из одного присваивания типа applied_group_assignment со значением роли 'members' через атрибут assigned_group.
EXPRESS-спецификация:
*)
RULE members_is_referenced_by_at_least_one_revision FOR(applied_group_assignment, group);
LOCAL
t1_set: SET OF group := [];
a_set: SET OF applied_group_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* group | VALUE_IN(WHICH_CLASS(a), 'revision'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_group_assignment |
(b.assigned_group :=: t1_set[i]) AND (b.role.name = 'members'));
violate := SIZEOF(a_set) < 1;
END_REPEAT;
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_group_assignment: набор всех экземпляров объектов applied_group_assignment.
group: набор всех экземпляров объектов group.
Формальные высказывания:
WR1: На каждый экземпляр объекта group, содержащий объект applied_classification_assignment, чей assigned_class идентифицирует объект с атрибутом name со значением 'revision', должна быть дана ссылка из одного или нескольких экземпляров типа объекта applied_group_assignment со значением роли 'members' через атрибут assigned_group.
5.2.4.53 Правило no_approvals_except_in_approval_history
Правило no_approvals_except_in_approval_history определяет, что не должно быть экземпляров типа объекта approval с классификацией 'approval event', не входящих в состав объекта group с классификацией 'approval history'.
EXPRESS-спецификация:
*)
RULE
no_approvals_except_in_approval_history
FOR (approval);
LOCAL
t1_set: SET OF approval := [];
t2_set: SET OF APPLIED_GROUP_ASSIGNMENT := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* approval | VALUE_IN(WHICH_CLASS(a), 'approval event'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_GROUP_ASSIGNMENT.ITEMS'));
violate := (SIZEOF(t2_set) = 0);
REPEAT k := 1 TO HIINDEX(t2_set) WHILE NOT violate;
violate := NOT (VALUE_IN(WHICH_CLASS(t2_set[k].ASSIGNED_GROUP), 'approval history'));
END_REPEAT;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
approval: набор всех экземпляров объектов approval.
Формальные высказывания:
WR1: Каждый экземпляр объекта approval, содержащий объект applied_classification_assignment, чей объект assigned_class представляет собой group со значением 'approval event' для атрибута name, должен собираться в объекте items экземпляра объекта applied_group_assignment, чей объект assigned_group содержит объект applied_classification_assignment, где assigned_class представляет собой group со значением 'approval history' для атрибута name.
5.2.4.54 Правило offset_point_table_model_compound_representation_has_name
Правило offset_point_table_model_compound_representation_has_name определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'offset point table model' в объекте list_representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE offset_point_table_model_compound_representation_has_name
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['offset point table type'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'offset point table model' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'offset point table model');
(* get all instances of compound_representation_item that have class id
'offset point table model' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, имеющего объект applied_classification_assignment со значением атрибута assigned_class.name равным 'offset point table model', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из следующих значений 'offset point table type' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.55 Правило principal_characteristics_has_properties
Правило principal_characteristics_has_properties определяет, что на объект product_definition с идентификатором класса 'principal characteristics' приведена ссылка из одного объекта property_definition_representation со значением имени 'principal characteristics' через объект property_definition.
EXPRESS-спецификация:
*)
RULE principal_characteristics_has_properties
FOR (property_definition_representation, applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: LIST OF product_definition := [];
t2_set: SET OF property_definition_representation := [];
t3_set: LIST OF property_definition := [];
t4_set: LIST OF product_definition := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'principal characteristics');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
t2_set:= QUERY(i <* PROPERTY_DEFINITION_REPRESENTATION |
i.NAME = 'principal characteristics');
REPEAT i := 1 TO HIINDEX(t2_set);
t3_set := t3_set + t2_set[i].definition;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_set);
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
violation := t1_set <> t4_set;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
property_definition_representation: набор всех экземпляров объектов property_definition_representation.
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый экземпляр объекта product_definition, содержащий объект applied_classification_assignment, чей атрибут assigned_class представляет собой group со значением 'principal characteristics' для атрибута name, должна быть дана ссылка только их одного экземпляра объекта property_definition через атрибут definition, на который, в свою очередь, приведена ссылка из экземпляра объекта property_definition_representation через атрибут definition, атрибут name которого имеет значение 'principal characteristics'.
5.2.4.56 Правило product_definition_for_call_sign
Правило product_definition_for_call_sign определяет, что на экземпляр объекта product_definition с идентификатором класса 'ship designation' приведена ссылка только из одного экземпляра объекта applied_identification_assignment через items, атрибут role.name которого имеет значение 'call sign'.
EXPRESS-спецификация:
*)
RULE
product_definition_for_call_sign
FOR(applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2 set: SET OF applied_identification_assignment := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = 'ship designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set |
t2_inst.role.name = 'call sign')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определение аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект product_definition, на который дана ссылка из объекта applied_classification_assignment с классификацией 'ship designation', приведена ссылка только из одного атрибута items объекта applied_identification_assignment, где для объекта applied_identification_assignment атрибут role.name = 'call sign'.
5.2.4.57 Правило product_definition_for_class_notation
Правило product_definition_for_class_notation определяет, что на объект product_definition с идентификатором класса 'class and statutory designation' приведена ссылка только из одного экземпляра объекта property_definition с идентификатором класса 'class notation' через definition.
EXPRESS-спецификация:
*)
RULE
product_definition_for_class_notation
FOR(applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2_set: SET OF property_definition := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'class and statutory designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | 'class notation'
IN WHICH_CLASS(t2_inst))) = 1);
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый экземпляр объекта product_definition, содержащий объект applied_classification_assignment, чей атрибут assigned_class содержит объект с атрибутом name со значением 'class and statutory designation', должна быть дана ссылка только из одного экземпляра объекта property_definition, содержащего объект applied_classification_assignment, где assigned_class является объектом с атрибутом name со значением 'class notation', через атрибут definition.
5.2.4.58 Правило product_definition_for_flag_state
Правило product_definition_for_flag_state определяет, что на экземпляр объекта product_definition с идентификатором класса 'ship designation' приведена ссылка только из одного экземпляра объекта applied_identification_assignment через items, атрибут role.name которого имеет значение 'flag state'.
EXPRESS-спецификация:
*)
RULE
product_definition_for_flag_state
FOR(applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2_set: SET OF applied_identification_assignment := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = 'ship designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.role.name =
'flag state')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект product_definition, на который дана ссылка из объекта applied_classification_assignment с классификацией 'ship designation', приведена ссылка только из одного атрибута items объекта applied_identification_assignment, где для объекта applied_identification_assignment атрибут role.name = 'flag state'.
5.2.4.59 Правило product_definition_for_hydrostatic_definition_requires_reference
Правило product_definition_for_hydrostatic_definition_requires_reference определяет, что на объект property_definition с идентификатором класса 'hydrostatic definition' приведена ссылка из одного или нескольких объектов representations с идентификатором класса 'hydrostatic table' через property_definition_representation.
EXPRESS-спецификация:
*)
RULE product_definition_for_hydrostatic_definition_requires_reference
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
c2_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF property_definition := [];
t2_set: SET OF representation := [];
t3_set: SET OF property_definition_representation := [];
t4_set: SET OF property_definition := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'hydrostatic
definition' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'hydrostatic definition');
(* get all instances of property_definition that have class id 'hydrostatic
definition' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'hydrostatic table' *)
c2_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'hydrostatic table');
(* get all instances of representation that have class id 'hydrostatic table' *)
REPEAT i := 1 TO HIINDEX(c2_a_set);
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items);
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all property_definition_representation instances which have as the .used_
representation the representation instances that have class id 'hydrostatic table' *)
REPEAT i := 1 TO HIINDEX(t2_set);
t3_set := t3_set + bag_to_set(USEDIN(t2_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_-REPRESENTATION.USED_REPRESENTATION'));
END_REPEAT;
(* get all property_definition instances which are the .definition of the
property_definition_representation *)
REPEAT i := 1 TO HIINDEX(t3_set);
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
(* compare both lists with property_definition instances which have to be identical *)
violation := t1_set <> t4_set;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта property_definition, содержащий объект applied_classification_assignment, чей атрибут assigned_class имеет значение 'hydrostatic definition', должен представлять определение одного или более экземпляров объекта property_definition_representation, где used_representation является экземпляром объекта representation, содержащего объект applied_classification_assignment, атрибут assigned_class.name которого имеет значение 'hydrostatic table'.
5.2.4.60 Правило product_definition_for_managing_company
Правило product_definition_for_managing_company определяет, что на экземпляр объекта product_definition с идентификатором класса 'owner designation' приведена ссылка только из одного экземпляра объекта applied_organization_assignment через items, атрибут role.name которого имеет значение 'managing company'.
EXPRESS-спецификация:
*)
RULE
product_definition_for_managing_company
FOR(applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2_set: SET OF applied_organization_assignment := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'owner designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.role.name = 'managing company')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект product_definition, на который дана ссылка из объекта applied_classification_assignment с классификацией 'owner designation', приведена ссылка только из одного атрибута items объекта applied_organization_assignment, где для объекта applied_organization_assignment атрибут role.name = 'managing company'.
5.2.4.61 Правило product_definition_for_ordering_company
Правило product_definition_for_ordering_company определяет, что на экземпляр объекта product_definition с идентификатором класса 'owner designation' приведена ссылка только из одного экземпляра объекта applied_organization_assignment через items, атрибут role.name которого имеет значение 'ordering company'.
EXPRESS-спецификация:
*)
RULE
product_definition_for_ordering_company
FOR(applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2_set: SET OF applied_organization_assignment := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = 'owner designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_tO_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.role.name =
'ordering company')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект product_definition, на который дана ссылка из объекта applied_classification_assignment с классификацией 'owner designation', приведена ссылка только из одного атрибута items объекта applied_organization_assignment, где для объекта applied_organization_assignment атрибут role.name = 'ordering company'.
5.2.4.62 Правило product_definition_for_owning_company
Правило product_definition_for_owning_company определяет, что на экземпляр объекта product_definition с идентификатором класса 'owner designation' приведена ссылка только из одного экземпляра объекта applied_organization_assignment через items, атрибут role.name которого имеет значение 'owing company'.
EXPRESS-спецификация:
*)
RULE
product_definition_for_owning_company
FOR(applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2_set: SET OF applied_organization_assignment := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'owner designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set |
t2_inst.role.name = 'owning company')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект product_definition, на который дана ссылка из объекта applied_classification_assignment с классификацией 'owner designation', приведена ссылка только из одного атрибута items объекта applied_organization_assignment, где для объекта applied_organization_assignment атрибут role.name = 'owning company'.
5.2.4.63 Правило product_definition_for_port_of_registration
Правило product_definition_for_port_of_registration определяет, что на экземпляр объекта product_definition с идентификатором класса 'ship designation' приведена ссылка только из одного экземпляра объекта applied_identification_assignment через items, атрибут role.name которого имеет значение 'port of registration'.
EXPRESS-спецификация:
*)
RULE
product_definition_for_port_of_registration
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2_set: SET OF applied_identification_assignment := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = 'ship designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set |
t2_inst.role.name = 'port of registration')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект product_definition, на который дана ссылка из объекта applied_classification_assignment с классификацией 'ship designation', приведена ссылка только из одного атрибута items объекта applied_identification_assignment, где для объекта applied_identification_assignment атрибут role.name = 'port of registration'.
5.2.4.64 Правило product_definition_for_regulation
Правило product_definition_for_regulation определяет, что на объект product_definition с идентификатором класса 'class and statutory designation' приведена ссылка только из одного экземпляра объекта property_definition с идентификатором класса 'regulation' через definition.
EXPRESS-спецификация:
*)
RULE
product_definition_for_regulation
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2_set: SET OF property_definition := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'class and statutory designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | 'regulation'
IN WHICH_CLASS(t2_inst))) = 1);
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый экземпляр объекта product_definition, содержащий объект applied_classification_assignment, где assigned_class представляет собой объект с атрибутом name со значением 'class and statutory designation', должна быть дана ссылка только из одного экземпляра объекта property_definition, содержащего объект applied_classification_assignment, где assigned_class является объектом с атрибутом name со значением 'regulation', через атрибут definition.
5.2.4.65 Правило product_definition_for_shipyard
Правило product_definition_for_shipyard определяет, что на экземпляр объекта product_definition с идентификатором класса 'ship designation' приведена ссылка только из одного экземпляра объекта applied_identification_assignment через items, атрибут role.name которого имеет значение 'shipyard'.
EXPRESS-спецификация:
*)
RULE
product_definition_for_shipyard
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2_set: SET OF applied_organization_assignment := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'shipyard designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.role.name = 'shipyard')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект product_definition, на который дана ссылка из объекта applied_classification_assignment с классификацией 'shipyard designation', приведена ссылка только из одного атрибута items объекта applied_organization_assignment, где для объекта applied_organization_assignment атрибут role.name = 'shipyard'.
5.2.4.66 Правило product_definition_for_stability_definition
Правило product_definition_for_stability_definition определяет, что на объект property_definition с идентификатором класса 'stability definition' приведена ссылка из одного или нескольких объектов representations с идентификатором класса 'stability table' через property_definition_representation.
EXPRESS-спецификация:
*)
RULE product_definition_for_stability_definition
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
c2_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF property_definition := [];
t2_set: SET OF representation := [];
t3_set: SET OF property_definition_representation := [];
t4_set: SET OF property_definition := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'stability definition' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'stability definition');
(* get all instances of property_definition that have class id 'stability definition' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'stability table' *)
c2_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'stability table');
(* get all instances of representation that have class id 'stability table' *)
REPEAT i := 1 TO HIINDEX(c2_a_set);
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items);
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all property_definition_representation instances which have as the .used_
representation the representation instances that have class id 'stability table' *)
REPEAT i := 1 TO HIINDEX(t2_set);
t3_set := t3_set + bag_to_set(USEDIN(t2_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_-REPRESENTATION.USED_REPRESENTATION'));
END_REPEAT;
(* get all property_definition instances which are the .definition of the
property_definition_representation *)
REPEAT i := 1 TO HIINDEX(t3_set);
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
(* compare both lists with property_definition instances which have to be identical *)
violation := t1_set <> t4_set;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта property_definition, содержащий объект applied_classification_assignment, чей атрибут assigned_class имеет значение 'stability definition', должен представлять определение одного или более экземпляров объекта property_definition_representation, где used_representation является экземпляром объекта representation, содержащего объект applied_classification_assignment, чей атрибут assigned_class.name имеет значение 'stability table'.
5.2.4.67 Правило product_definition_relationship_references_are_distinct
Правило product_definition_relationship_references_are_distinct определяет, что экземпляры, связанные атрибутами related_product_definition и relating_product_definition отношения product_definition_relationship, должны быть разными.
EXPRESS-спецификация:
*)
RULE product_definition_relationship_references_are_distinct
FOR (product_definition_relationship);
LOCAL
cyclic_relationship: LOGICAL := FALSE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(product_definition_relationship)
WHILE NOT
cyclic_relationship;
cyclic_relationship:= product_definition_relationship[i].related_product_definition :=:
product_definition_relationship[i].relating_product_definition;
END_REPEAT;
WHERE
wr1: NOT cyclic_relationship;
END_RULE;
(*
Определения аргументов:
product_definition_relationship: набор всех экземпляров объектов product_definition_relationship.
Формальные высказывания:
WR1: Экземпляры объектов, на которые ссылаются атрибуты related_product_definition, и экземпляр relating_product_definition объекта product_definition_relationship, не должны быть идентичными.
5.2.4.68 Правило product_definition_relationship_related_to_class_moulded_form
Правило product_definition_relationship_related_to_class_moulded_form определяет, что атрибут related или relating объекта product_definition_relationship с классификацией 'moulded form relationship' должен представлять собой тип product_definition с классификацией 'moulded form'.
EXPRESS-спецификация:
*)
RULE
product_definition_relationship_related_to_class_moulded_form
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
c2_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition_RELATIONSHIP := [];
t2_set: SET OF product_definition := [];
t3_set: SET OF product_definition := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'moulded form
relationship' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'moulded form relationship');
(* get all instances of product_definition_relationship that have class id
'moulded form relationship' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all related_product_definition attribute instances and relating_product_
definition attribute instances of the product_definition_relationship *)
REPEAT i := 1 TO HIINDEX(t1_set);
t2_set := t2_set + t1_set[i].related_product_definition;
t2_set := t2_set + t1_set[i].relating_product_definition;
END_REPEAT;
(* get all classification_assignment instances with id 'moulded form' *)
c2_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'moulded form');
(* get all instances of product_definition that have class id 'moulded form' *)
REPEAT i := 1 TO HIINDEX(c2_a_set);
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items);
t3_set := t3_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
violation := NOT(t2_set<= t3_set);
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Объект related_product_definition и relating_product_definition каждого экземпляра объекта product_definition_relationship, содержащего объект applied_classification_assignment, где значение assigned_class.name равно 'moulded form relationship', должны представлять собой экземпляры объектов product_definition, содержащие applied_classification_assignment, где значение assigned_class.name равно 'moulded form'.
5.2.4.69 Правило product_definition_relationship_with_identification_assignment
Правило product_definition_relationship_with_identification_assignment задает перечень объектов, для которых требуется идентификация. Идентификация определяется атрибутом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE product_definition_relationship_with_identification_assignment
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition_relationship := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := ['item relationship'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id in arg_list *)
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
(* get all instances of property_definition_representation *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.APPLIED_
IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | j.role.name = 'globally unambiguous
identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта product_definition_relationship, на который приведена ссылка из объекта applied_classification_assignment, чей объект assigned_class содержит атрибут name со значением 'item relationship', должен требоваться объект applied_identification_assignment для определения идентификатора экземпляра.
5.2.4.70 Правило product_definition_shape_with_identification_assignment
Правило product_definition_shape_with_identification_assignment задает перечень объектов, для которых требуется идентификация. Идентификация определяется атрибутом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE product_definition_shape_with_identification_assignment
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition_shape := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := ['definition'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id in arg_list *)
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
(* get all instances of product_definition_shape that have class id *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set |
j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта product_definition_shape, на который приведена ссылка из объекта applied_classification_assignment, чей объект assigned_class содержит атрибут name со значением 'definition', должен требоваться объект applied_identification_assignment для определения идентификатора экземпляра.
5.2.4.71 Правило product_definition_with_identification_assignment
Правило product_definition_with_identification_assignment задает перечень объектов, для которых требуется идентификация. Идентификация определяется атрибутом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE product_definition_with_identification_assignment
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := [ 'definition', 'definable object'];
violation: LOGICAL := FALSE;
END_LGCAL;
(* get all classification_assignment instances *)
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
(* get all instances of product_definition that have class id *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта product_definition, на который приведена ссылка из объекта applied_classification_assignment, чей объект assigned_class содержит атрибут name со значением 'definition' или 'definable object', должен требоваться объект applied_identification_assignment для определения идентификатора экземпляра.
5.2.4.72 Правило product_related_product_category_with_identification_assignment
Правило product_related_product_category_with_identification_assignment задает перечень объектов, для которых требуется идентификация. Идентификация определяется атрибутом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE product_related_product_category_with_identification_assignment
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_related_product_category := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := [ 'Shiptype'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id *)
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
(* get all instances that have class id *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта product_related_product_category, на который приведена ссылка из объекта applied_classification_assignment, чей объект assigned_class содержит атрибут name со значением 'Shiptype', должен требоваться объект applied_identification_assignment для определения идентификатора экземпляра.
5.2.4.73 Правило product_with_identification_assignment
Правило product_with_identification_assignment задает перечень объектов, для которых требуется идентификация. Идентификация определяется атрибутом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE product_with_identification_assignment
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := [ 'ship'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances *)
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS');
t2_set := QUERY ( j <* t2_set | j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта product, на который приведена ссылка из объекта applied_classification_assignment, чей объект assigned_class содержит атрибут name со значением 'ship', должен требоваться объект applied_identification_assignment для определения идентификатора экземпляра.
5.2.4.74 Правило propeller_moulded_form_design_parameter_with_class_references
Правило propeller_moulded_form_design_parameter_with_class_references определяет, на что экземпляр объекта property_definition с идентификатором класса 'propeller moulded form design parameter' приведена ссылка не более чем из одного экземпляра объекта property_definition_representation, чей атрибут used_representation указывает на представление (representation) с идентификатором класса 'propeller location'.
EXPRESS-спецификация:
*)
RULE propeller_moulded_form_design_parameter_with_class_references
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := []
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := []
t3_set: SET OF representation := []
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'propeller moulded form design parameter');
(* get all instances of property_definition that have class id 'propeller
moulded form design parameter' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing
a property_definition instance via definition, get those property_definition_
representation.used_representation instances whose class id is 'midship_tumble'
and make sure their number is less than or equal to 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+ 'DEFINITION'));
REPEAT j := 1 to HIINDEX(t2_set);
t3_set := t3_set + t2_set[j].used_representation;
END_REPEAT;
violation := SIZEOF(QUERY(t2_inst <* t3_set | 'propeller location' IN WHICH_
CLASS(t2_inst))) > 1;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый экземпляр объекта property_definition, содержащий объект applied_classification_assignment, где у assigned_class имеется атрибут name со значением 'propeller moulded form design parameter', должна быть дана ссылка из одного или менее экземпляров объекта property_definition_representation, который указывает представление (representation) через свой атрибут used_representation, содержащий объект applied_classification_assignment, где у assigned_class имеется атрибут name со значением 'propeller location'.
5.2.4.75 Правило property_definition_appendage_moulded_form_design_parameter
Правило property_definition_for_appendage_moulded_form_design_parameter определяет, что на экземпляр объекта property_definition с идентификатором класса 'appendage moulded form design parameter' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'appendage moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE property_definition_appendage_moulded_form_design_parameter
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'appendage moulded
form design parameter' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'appendage moulded form design parameter');
(* get all instances that have class id 'appendage moulded form design parameter' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing
a property_definition instance via definition, filter out those property_
definition_representation instances whose attribute name has the value
'appendage moulded form design parameter' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name =
'appendage moulded form design parameter')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который приведена ссылка из объекта applied_classification_assignment с assigned_class.name = 'appendage moulded form design parameter', приведена ссылка только из одного объекта property_definition_representation.definition, где property_definition_representation.name = 'appendage moulded form design parameter'.
5.2.4.76 Правило property_definition_for_bottom_moulded_form_design_parameter
Правило property_definition_for_bottom_moulded_form_design_parameter определяет, что на экземпляр объекта property_definition с идентификатором класса 'bottom moulded form design parameter' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'bottom moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE property_definition_for_bottom_moulded_form_design_parameter
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'bottom moulded form
design parameter' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'bottom moulded form design parameter');
(* get all instances that have class id 'bottom moulded form design parameter' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing
a property_definition instance via definition, filter out those property_
definition_representation instances whose attribute name has the value 'bottom
moulded form design parameter' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'bottom
moulded form design parameter')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'bottom moulded form design parameter', приведена ссылка только из одного объекта property_definition_representation.definition, где property_definition_representation.name = 'appendage moulded form design parameter'.
5.2.4.77 Правило property_definition_for_bulb_moulded_form_design_parameter
Правило property_definition_for_bulb_moulded_form_design_parameter определяет, что на экземпляр объекта property_definition с идентификатором класса 'bulb moulded form design parameter' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'bulb moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE property_definition_for_bulb_moulded_form_design_parameter
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'bulb moulded form
design parameter' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'bulb moulded form design parameter');
(* get all instances that have class id 'bulb moulded form design parameter' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing
a property_definition instance via definition, filter out those property_
definition_representation instances whose attribute name has the value 'bulb
moulded form design parameter' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'bulb
moulded form design parameter')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'bulb moulded form design parameter', приведена ссылка только из одного объекта property_definition_representation.definition, где property_definition_representation.name = 'bulb moulded form design parameter'.
5.2.4.78 Правило property_definition_for_class_notation
Правило property_definition_for_class_notation определяет, что на экземпляр объекта property_definition с идентификатором класса 'class notation' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'class notation'.
EXPRESS-спецификация:
*)
RULE
property_definition_for_class_notation
FOR(applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = 'class notation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'class notation')) = 1);
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка только из одного объекта applied_classification_assignment с assigned_class.name = 'class notation', приведена ссылка только из одного атрибута definition для объекта property_definition_representation, где значение атрибута name для объекта property_definition_representation = 'class notation'.
5.2.4.79 Правило property_definition_for_class_society
Правило property_definition_for_class_society определяет, что на экземпляр объекта property_definition с идентификатором класса 'class notation' приведена ссылка только из одного экземпляра объекта applied_organization_assignment через items, атрибут role.name которого имеет значение 'class society'.
EXPRESS-спецификация:
*)
RULE
property_definition_for_class_society
FOR(applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF applied_organization_assignment := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = 'class notation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set |
t2_inst.role.name = 'class society')) = 1);
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка только из одного объекта applied_classification_assignment с assigned_class.name = 'class notation', приведена ссылка только из одного атрибута items для объекта applied_organization_assignment, где значение атрибута role.name для объекта applied_organization_assignment = 'class society'.
5.2.4.80 Правило property_definition_for_deck_moulded_form_design_parameter
Правило property_definition_for_deck_moulded_form_design_parameter определяет, что на экземпляр объекта property_definition с идентификатором класса 'deck moulded form design parameter' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'deck moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE property_definition_for_deck_moulded_form_design_parameter
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'deck moulded form
design parameter' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'deck moulded form design parameter');
(* get all instances that have class id 'deck moulded form design parameter' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing
a property_definition instance via definition, filter out those property_
definition_representation instances whose attribute name has the value 'deck
moulded form design parameter' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'deck
moulded form design parameter')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'deck moulded form design parameter', приведена ссылка только из одного объекта property_definition_representation.definition, где property_definition_representation.name = 'deck moulded form design parameter'.
5.2.4.81 Правило property_definition_for_hull_moulded_form_design_parameter
Правило property_definition_for_hull_moulded_form_design_parameter определяет, что на экземпляр объекта property_definition с идентификатором класса 'hull moulded form design parameter' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'hull moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE property_definition_for_hull_moulded_form_design_parameter
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'hull moulded form
design parameter' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'hull moulded form design parameter');
(* get all instances that have class id 'hull moulded form design parameter' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing
a property_definition instance via definition, filter out those property_
definition_representation instances whose attribute name has the value 'hull
moulded form design parameter' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'hull
moulded form design parameter')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'hull moulded form design parameter', приведена ссылка только из одного объекта property_definition_representation.definition, где property_definition_representation.name = 'hull moulded form design parameter'.
5.2.4.82 Правило property_definition_for_local_coordinate_system
Правило property_definition_for_local_coordinate_system определяет, что на экземпляр объекта property_definition с идентификатором класса 'local co ordinate system' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'local coordinate system'.
EXPRESS-спецификация:
*)
RULE property_definition_for_local_coordinate_system
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'local co ordinate system' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'local co ordinate system');
(* get all instances that have class id 'local co ordinate system' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set: get the property_
definition_representation instances that are referencing a property_definition
instance via definition, filter out those property_definition_representation
instances whose attribute name has the value 'local coordinate system' check if
their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'local
coordinate system')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'local co ordinate system', приведена ссылка только из одного объекта property_definition_representation.definition, где property_definition_representation.name = 'local coordinate system'.
5.2.4.83 Правило property_definition_for_local_coordinate_system_with_position
Правило property_definition_for_local_coordinate_system_with_position определяет, что на экземпляр объекта property_definition с идентификатором класса 'local co ordinate system with position reference' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'local coordinate system with position reference'.
EXPRESS-спецификация:
*)
RULE
property_definition_for_local_coordinate_system_with_position
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'local co ordinate system with position reference');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name =
'local coordinate system with position reference')) = 1);
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'local co ordinate system with position reference', приведена ссылка только из одного объекта property_definition_representation атрибутом definition, где для объекта property_definition_representation атрибут name = 'local coordinate system with position reference'.
5.2.4.84 Правило property_definition_for_moulded_form_function_parameters
Правило property_definition_for_moulded_form_function_parameters определяет, что на экземпляр объекта property_definition с идентификатором класса 'moulded form functional definition' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'moulded form functional definition'.
EXPRESS-спецификация:
*)
RULE
property_definition_for_moulded_form_function_parameters
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'moulded form
functional definition' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'moulded form functional definition');
(* get all instances that have class id 'moulded form functional definition' *)
REPEAT i := 1 TO HIINDEX (c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing
a property_definition instance via definition, filter out those property_
definition_representation instances whose attribute name has the value 'moulded
form function parameters' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'moulded
form function parameters')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'moulded form functional definition', приведена ссылка только из одного объекта property_definition_representation.definition, где property_definition_representation.name = 'moulded form functional definition'.
5.2.4.85 Правило property_definition_of_propeller_moulded_form_design_parameter
Правило property_definition_of_propeller_moulded_form_design_parameter определяет, что на экземпляр объекта property_definition с идентификатором класса 'propeller moulded form design parameter' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'propeller moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE property_definition_of_propeller_moulded_form_design_parameter FOR(APPLIED_
CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'propeller moulded
form design parameter' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'propeller moulded form design parameter');
(* get all instances that have class id 'propeller moulded form design
parameter' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing
a property_definition instance via definition, filter out those property_
definition_representation instances whose attribute name has the value
'propeller moulded form design parameter' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'propeller
moulded form design parameter')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'propeller moulded form design parameter', приведена ссылка только из одного объекта property_definition_representation.definition, где property_definition_representation.name = 'propeller moulded form design parameter'.
5.2.4.86 Правило property_definition_for_rudder_moulded_form_design_parameter
Правило property_definition_for_rudder_moulded_form_design_parameter определяет, что на экземпляр объекта property_definition с идентификатором класса 'rudder moulded form design parameter' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'rudder moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE property_definition_for_rudder_moulded_form_design_parameter
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'rudder moulded form
design parameter' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'rudder moulded form design parameter');
(* get all instances that have class id 'rudder moulded form design parameter'
*)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing
a property_definition instance via definition, filter out those property_
definition_representation instances whose attribute name has the value 'rudder
moulded form design parameter' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'rudder
moulded form design parameter')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'rudder moulded form design parameter', приведена ссылка только из одного объекта property_definition_representation.definition, где property_definition_representation.name = 'rudder moulded form design parameter'.
5.2.4.87 Правило property_definition_for_thruster_moulded_form_design_parameter
Правило property_definition_for_thruster_moulded_form_design_parameter определяет, что на экземпляр объекта property_definition с идентификатором класса 'thruster moulded form design parameter' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'thruster moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE property_definition_for_thruster_moulded_form_design_parameter
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'thruster moulded form
design parameter' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'thruster moulded form design parameter');
(* get all instances that have class id 'thruster moulded form design
parameter' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_representation instances that are referencing
a property_definition instance via definition, filter out those property_
definition_representation instances whose attribute name has the value 'thruster
moulded form design parameter' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'thruster
moulded form design parameter')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'thruster moulded form design parameter', приведена ссылка только из одного объекта property_definition_representation.definition, где property_definition_representation.name = 'thruster moulded form design parameter'.
5.2.4.88 Правило property_definition_for_thruster_propeller_parameter
Правило property_definition_for_thruster_propeller_parameter определяет, что на экземпляр объекта property_definition с идентификатором класса 'thruster moulded form design parameter' приведена ссылка только из одного экземпляра объекта property_definition_representation через definition, атрибут name которого имеет значение 'thruster propeller parameter'.
EXPRESS-спецификация:
*)
RULE property_definition_for_thruster_propeller_parameter
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_relationship := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'thruster moulded form
design parameter' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'thruster moulded form design parameter');
(* get all instances that have class id 'thruster moulded form design
parameter' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* for all instances of property_definition in t1_set:
get the property_definition_relationship instances that are referencing a
property_definition instance via relating_property_- definition, filter out
those property_definition_relationship instances whose attribute name has the
value 'thruster propeller parameter' check if their number equals 1 *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_RELATIONSHIP' + '.RELATING_PROPERTY_DEFINITION'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | t2_inst.name = 'thruster
propeller parameter')) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'thruster moulded form design parameter', приведена ссылка только из одного объекта property_definition_relationship.relating_property_definition, где property_definition_relationship.name = 'thruster propeller parameter'.
5.2.4.89 Правило property_definition_with_identification_assignment
Правило property_definition_with_identification_assignment задает перечень объектов, для которых требуется идентификация. Идентификация определяется атрибутом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE property_definition_with_identification_assignment
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := [ 'moulded form characteristics definition',
'moulded form functional definition',
'local co ordinate system',
'spacing table',
'hydrostatic definition',
'stability definition'];
violation: LOGICAL := FALSE;
END_LOCAL;
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
REPEAT i := 1 TO HIINDEX (c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set |
j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта property_definition, на который приведена ссылка из объекта applied_classification_assignment, где у объекта assigned_class имеется атрибут name со значением 'moulded form characteristics definition', 'moulded form functional definition', 'local co ordinate system', 'spacing table', 'hydrostatic definition', 'stability definition', должен требоваться объект applied_identification_assignment для определения идентификатора экземпляра.
5.2.4.90 Правило representation_for_appendage_moulded_form_design_parameter
Правило representation_for_appendage_moulded_form_design_parameter определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'appendage moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_for_appendage_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['appendage length','appendage breadth',
'appendage depth','type of appendage'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* find all instances of representation which are used by a property_
definition_representation with name equal TO 'appendage moulded form design
parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'appendage moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above; stop, if one of *)
(* them has not exactly one rep_item with for each name of the arg_list *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Каждый объект property_definition_representation с name = 'appendage moulded form design parameter', должен использовать объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим одно из значений: 'appendage length', 'appendage breadth', 'appendage depth' или 'type of appendage'.
5.2.4.91 Правило representation_for_bottom_moulded_form_design_parameter
Правило representation_for_bottom_moulded_form_design_parameter определяет наличие для атрибута item объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'bottom moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_for_bottom_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['bilge radius','rise of floor','aft end of flat
of bottom','front end of flat of bottom','flat of bottom breadth','rake of keel'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* find all instances of representation which are used by a property_definition_
representation with name equal to 'bottom moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_-REPRESENTATION'))
| (temp_prop_def_rep.name = 'bottom moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above; stop, if one of them has not
exactly one rep_item with for each name of the arg_list *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'bottom moulded form design parameter' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим одно из значений: 'bilge radius', 'rise of floor', 'aft end of flat of bottom', 'front end of flat of bottom', 'flat of bottom breadth', 'rake of keel'.
5.2.4.92 Правило representation_for_bulb_moulded_form_design_parameter
Правило representation_for_bulb_moulded_form_design_parameter определяет наличие для атрибута item объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'bulb moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_for_bulb_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['bulb length','bulb length from pp','bulb
breadth','bulb breadth pp','bulb depth','bulb depth pp','bulb frame section area
at pp','bulb location'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* find all instances of representation which are used by a property_definition_
representation with name equal to 'bulb moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_-REPRESENTATION'))
| (temp_prop_def_rep.name = 'bulb moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above; stop, if one of them has not
exactly one rep_item with for each name of the arg_list *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'bulb moulded form design parameter' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим одно из значений: 'bulb length', 'bulb length from pp', 'bulb breadth', 'bulb breadth pp', 'bulb depth', 'bulb depth pp', 'bulb frame section area at pp' или 'bulb location'.
5.2.4.93 Правило representation_for_class_and_statutory_designation
Правило representation_for_class_and_statutory_designation определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'class and statutory designation'.
EXPRESS-спецификация:
*)
RULE
representation_for_class_and_statutory_designation
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['class number'];
violation: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+
'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'class and statutory designation')
)
) >0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'class and statutory designation' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name) со значением 'class number'.
5.2.4.94 Правило representation_for_deck_moulded_form_design_parameter
Правило representation_for_deck_moulded_form_design_parameter определяет наличие для атрибута item объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'deck moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_for_deck_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['camber','sheer at ap','sheer at fp'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* find all instances of representation which are used by a property_definition_
representation with name equal to 'deck moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_-REPRESENTATION'))
| (temp_prop_def_rep.name = 'deck moulded form design parameter')
)
)>0
);
(* iterate over all representations found above; stop, if one of them has not
exactly one rep_item with for each name of the arg list *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'deck moulded form design parameter' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим одно из значений: 'camber', 'sheer at ap, 'sheer at fp'.
5.2.4.95 Правило representation_for_global_axis_placement
Правило representation_for_global_axis_placement определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'global axis placement'.
EXPRESS-спецификация:
*)
RULE representation_for_global_axis_placement
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['global axes and origin',
'after perpendicular offset', 'orientation'];
violation: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'global axis placement')
)
) > 0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'global axis placement' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим одно из значений: 'global axes and origin', 'after perpendicular offset' или 'orientation'.
5.2.4.96 Правило representation_for_hull_moulded_form_design_parameter
Правило representation_for_hull_moulded_form_design_parameter определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'hull moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_for_hull_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['aft end of parallel midbody at design draught',
'front end of parallel midbody at design draught', 'aft end of flat of side',
'front end of flat of side', 'block coefficient', 'prismatic coefficient', 'max
wetted frame section area', 'waterplane coefficient'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* find all instances of representation which are used by a property_definition_
representation with name equal to 'hull moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_-REPRESENTATION'))
| (temp_prop_def_rep.name = 'hull moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above; stop, if one of them has not
exactly one rep_item with for each name of the arg_list *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'hull moulded form design parameter' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим одно из значений: 'aft end of parallel midbody at design draught', 'front end of parallel midbody at design draught', 'aft end of flat of side', 'front end of flat of side', 'block coefficient', 'prismatic coefficient', 'max wetted frame section area' и 'waterplane coefficient'.
5.2.4.97 Правило representation_for_hydrostatic_table_constrained
Правило representation_for_hydrostatic_table_constrained определяет наличие для атрибута items объекта representation с идентификатором класса 'hydrostatic table' одного или более объектов representation_items с идентификатором класса 'hydrostatic properties for constant floating position'.
EXPRESS-спецификация:
*)
RULE representation_for_hydrostatic_table_constrained
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
c2_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF representation := [];
t2_set: SET OF representation_item := [];
t3_set: SET OF representation_item := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'hydrostatic table' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'hydrostatic table');
(* get all instances of representation that have class id 'hydrostatic table' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'hydrostatic properties
for constant floating position' *)
c2_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'hydrostatic properties for constant floating position');
(* get all instances of representation_item that have class id 'hydrostatic
properties for constant floating position' *)
REPEAT i := 1 TO HIINDEX(c2_a_set);
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items);
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all representation_item instances which are the .items of the representation
instances that have class id 'hydrostatic table' *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j := 1 TO HIINDEX(t1_set[i].items);
(* compare both lists with representation_item instances and the intersection
has to be greater 0 *)
t3_set := t3_set + t1_set[i].items[j];
END_REPEAT;
violation := (SIZEOF(t3_set* t2_set) < 1);
t3_set := [];
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта representation, содержащий объект applied_classification_assignment, где атрибут assigned_class.name имеет значение 'hydrostatic table', должен собирать хотя бы один экземпляр объекта representation_item, содержащий объект applied_classification_assignment, где assigned_class.name имеет значение 'hydrostatic properties for constant floating position'.
5.2.4.98 Правило representation_for_hydrostatic_table_restricted
Правило representation_for_hydrostatic_table_restricted определяет наличие для атрибута items объекта representation с идентификатором класса id 'hydrostatic table' одного или более объектов representation_items с идентификатором класса 'hydrostatic property'.
EXPRESS-спецификация:
*)
RULE representation_for_hydrostatic_table_restricted
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
c2_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF representation := [];
t2_set: SET OF representation_item := [];
t3_set: SET OF representation_item := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'hydrostatic table' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'hydrostatic table');
(* get all instances of representation that have class id 'hydrostatic table' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'hydrostatic property' *)
c2_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'hydrostatic property');
(* get all instances of representation_item that have class id 'hydrostatic property' *)
REPEAT i := 1 TO HIINDEX(c2_a_set);
REPEAT j := 1 ТО HIINDEX(c2_a_set[i].items);
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all representation_item instances which are the .items of the representation
instances that have class id 'hydrostatic table' *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j := 1 TO HIINDEX(t1_set[i].items);
(* compare both lists with representation_item instances and the intersection
has to be greater 0 *)
t3_set := t3_set + t1_set[i].items[j];
END_REPEAT;
violation := (SIZEOF(t3_set* t2_set) < 1);
t3_set := [];
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта representation, содержащий объект applied_classification_assignment, где атрибут assigned_ciass.name имеет значение 'hydrostatic table', должен собирать хотя бы один экземпляр объекта representation_item, содержащий объект applied_classification_assignment, где assigned_class.name имеет значение 'hydrostatic property'.
5.2.4.99 Правило representation_for_hydrostatic_table_restricted_by_class_id
Правило representation_for_hydrostatic_table_restricted_by_class_id определяет наличие у атрибута items объекта representation с идентификатором класса 'hydrostatic table' для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE representation_for_hydrostatic_table_restricted_by_class_id
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['mean shell thickness'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'hydrostatic table' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'hydrostatic table');
(* get all instances of representation that have class id 'hydrostatic table' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all representation instances found above; stop, if one of them
has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* t1_set[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта representation, содержащий объект applied_classification_assignment, значение атрибута assigned_class.name которого равно 'hydrostatic table', должен собирать для каждого из значений 'mean shell thickness' только один экземпляр объекта representation_item в своем атрибуте items, значение атрибута name которого равно этому значению.
5.2.4.100 Правило representation_for_local_coordinate_system
Правило representation_for_local_coordinate_system определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'local coordinate system'.
EXPRESS-спецификация:
*)
RULE representation_for_local_coordinate_system
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['local axes and origin'];
violation: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'local coordinate system')
)
) > 0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'local coordinate system' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name) со значением 'local axes and origin'.
5.2.4.101 Правило representation_of_local_coordinate_system_with_position_reference
Правило representation_of_local_coordinate_system_with_position_reference определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'local coordinate system with position reference'.
EXPRESS-спецификация:
*)
RULE
representation_of_local_coordinate_system_with_position_reference
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['local axes and origin'];
violation: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'local coordinate system with position reference')
)
) > 0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'local coordinate system with position reference' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name) со значением 'local axes and origin'.
5.2.4.102 Правило representation_for_midship_tumble_restricted_by_class_id
Правило representation_for_midship_tumble_restricted_by_class_id определяет наличие у атрибута item объекта representation с идентификатором класса 'midship tumble' для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE representation_for_midship_tumble_restricted_by_class_id
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['tumble out at bottom', 'tumble in at top',
'tumble out at side', 'tumble in at side'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'midship tumble' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'midship tumble');
(* get all instances of representation that have class id 'midship tumble' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all representation instances found above; stop, if one of them
has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* t1_set[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта representation, содержащий объект applied_classification_assignment, значение атрибута assigned_class.name которого равно 'midship tumble', должен для каждого из значений: 'tumble out at bottom', 'tumble in at top', 'tumble out at side' или 'tumble in at side' собирать только один экземпляр объекта representation_item в своем атрибуте items, значение атрибута name которого равно этому значению.
5.2.4.103 Правило representation_for_moulded_form_function_parameters
Правило representation_for_moulded_form_function_parameters определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'moulded form function parameters'.
EXPRESS-спецификация:
*)
RULE representation_for_moulded_form_function_parameters
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['function'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* find all instances of representation which are used by a property_definition_
representation with name equal to 'moulded form function parameters' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'moulded form function parameters')
)
) > 0
);
(* iterate over all representations found above; stop, if one of them has not
exactly one rep_item with for each name of the arg_list *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'moulded form function parameters' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name) со значением 'function'.
5.2.4.104 Правило representation_for_offset_point_table_model_for_point
Правило representation_for_offset_point_table_model_for_point определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'section of offset point table' в объекте list_representation_item для каждой записи в перечне одного или более объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE representation_for_offset_point_table_model_for_point
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['section point'];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'section of offset point table');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not one or more rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) < 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, имеющего объект applied_classification_assignment со значением атрибута assigned_class.name, равным 'section of offset point table', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из следующих значений: 'section point' забирать один или более экземпляров объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.105 Правило representation_for_offset_point_table_model_for_section
Правило representation_for_offset_point_table_model_for_section определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'offset point table model' в объекте list_representation_item для каждой записи в перечне одного или более объектов representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE representation_for_offset_point_table_model_for_section
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['offset point table section'];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'offset point table model');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not one or more rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) < 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, имеющего объект applied_classification_assignment со значением атрибута assigned_class.name, равным 'offset point table model', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из значений 'offset point table section' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.106 Правило representation_for_offset_table_shape_representation_restricted
Правило representation_for_offset_table_shape_representation_restricted определяет наличие для атрибута items объекта representation с идентификатором класса 'offset table shape representation' одного или более объектов representation_items с идентификатором класса 'offset point table model'.
EXPRESS-спецификация:
*)
RULE representation_for_offset_table_shape_representation_restricted
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
c2_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF representation := [];
t2_set: SET OF representation_item := [];
t3_set: SET OF representation_item := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'offset table shape
representation' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'offset table shape representation');
(* get all instances of representation that have class id 'offset table
shape representation' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'offset point table
model' *)
c2_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'offset point table model');
(* get all instances of representation_item that have class id 'offset point
table model' *)
REPEAT i := 1 TO HIINDEX(c2_a_set);
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items);
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all representation_item instances which are the .items of the representation
instances that have class id 'offset table shape representation' *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j := 1 TO HIINDEX(t1_set[i].items);
(* compare both lists with representation_item instances and the
intersection has to be greater than 0 *)
t3_set := t3_set + t1_set[i].items[j];
END_REPEAT;
violation := (SIZEOF(t3_set* t2_set) < 1);
t3_set:= [];
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта representation, содержащий объект applied_classification_assignment, где атрибут assigned_class.name имеет значение 'offset table shape representation', должен собирать хотя бы один экземпляр объекта representation_item, содержащий объект applied_classification_assignment, где assigned_class.name имеет значение 'offset point table model'.
5.2.4.107 Правило representation_for_propeller_location_restricted_by_class_id
Правило representation_for_propeller_location_restricted_by_class_id определяет наличие у атрибута item объекта representation с идентификатором класса 'propeller location' для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE representation_for_propeller_location_restricted_by_class_id
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['shaft line inclination x', 'shaft line inclination y',
'shaft line location', 'propeller location'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'propeller location' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'propeller location');
(* get all instances of representation that have class id 'propeller location' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all representation instances found above; stop, if one of them
has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* t1_set[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта representation, содержащий объект applied_classification_assignment, значение атрибута assigned_class.name которого равно 'propeller location', должен для каждого из значений: 'shaft line inclination x', 'shaft line inclination y', 'shaft line location' или 'propeller location' собирать только один экземпляр объекта representation_item в своем атрибуте items, значение атрибута name которого равно этому значению.
5.2.4.108 Правило representation_for_propeller_moulded_form_design_parameter
Правило representation_for_propeller_moulded_form_design_parameter определяет наличие для атрибута item объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'propeller moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_for_propeller_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['type of propulsion', 'propeller diameter', 'chord
length at 0 7 radius', 'thickness at 0 7 radius', 'number of propeller blades',
'expanded area ratio', 'hub diameter ratio', 'nominal design pitch ratio', 'type of
propeller blades', 'rake', 'skew', 'design sense of rotation'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* find all instances of representation which are used by a property_definition_
representation with name equal to 'propeller moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_-REPRESENTATION'))
| (temp_prop_def_rep.name = 'propeller moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above; stop, if one of them has not
exactly one rep_item with for each name of the arg_list *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'propeller moulded form design parameter' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим одно из значений: 'type of propulsion', 'propeller diameter', 'chord length at 0 7 radius', 'thickness at 0 7 radius', 'number of propeller blades', 'expanded area ratio', 'hub diameter ratio', 'nominal design pitch ratio', 'type of propeller blades', 'rake', 'skew', 'design sense of rotation'.
5.2.4.109 Правило representation_for_rudder_moulded_form_design_parameter
Правило representation_for_rudder_moulded_form_design_parameter определяет наличие для атрибута item объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'rudder moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_for_rudder_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['rudder height', 'rudder mean height', 'rudder
length', 'rudder mean length', 'rudder thickness', 'projected rudder area', 'type
of the rudder', 'rudder location'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* find all instances of representation which are used by a property_definition_
representation with name equal to 'rudder moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'rudder moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above; stop, if one of them has not
exactly one rep_item with for each name of the arg_list *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Каждый объект property_definition_representation с name = 'rudder moulded form design parameter' должен использовать объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим одно из значений: 'rudder height', 'rudder mean height', 'rudder length', 'rudder mean length', 'rudder thickness', 'projected rudder area', 'type of the rudder' или 'rudder location'.
5.2.4.110 Правило representation_for_stability_table_restricted
Правило representation_for_stability_table_restricted определяет наличие для атрибута items объекта representation с идентификатором класса 'stability table' одного или более объектов representation_items с идентификатором класса 'stability properties for constant floating position'.
EXPRESS-спецификация:
*)
RULE
representation_for_stability_table_restricted
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
c2_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF representation := [];
t2_set: SET OF representation_item := [];
t3_set: SET OF representation_item := [];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'stability table' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'stability table');
(* get all instances of representation that have class id 'stability table' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'stability properties
for one floating position' *)
c2_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'stability properties for one floating position');
(* get all instances of representation_item that have class id 'stability
properties for one floating position' *)
REPEAT i := 1 TO HIINDEX(c2_a_set);
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items);
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all representation_item instances which are the .items of the representation
instances that have class id 'stability table' *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j := 1 TO HIINDEX(t1_set[i].items);
(* compare both lists with representation_item instances and the intersection
has to be greater 0 *)
t3_set := t3_set + t1_set[i].items[j];
END_REPEAT;
violation := (SIZEOF(t3_set* t2_set) < 1);
t3_set:= [];
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта representation, содержащий объект applied_classification_assignment, где атрибут assigned_class.name имеет значение 'stability table', должен собирать хотя бы один экземпляр объекта representation_item, содержащий объект applied_classification_assignment, где assigned_class.name имеет значение 'stability properties for one floating position'.
5.2.4.111 Правило representation_for_stability_table_restricted_by_class_id
Правило representation_for_stability_table_restricted_by_class_id определяет наличие у атрибута items объекта representation с идентификатором класса 'stability table' для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE representation_for_stability_table_restricted_by_class_i:
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['mean shell thickness'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'stability table'*)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'stability table');
(* get all instances of representation that have class id 'stability table' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all representation instances found above; stop, if one of
them has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* t1_set[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта representation, содержащий объект applied_classification_assignment, значение атрибута assigned_class.name которого равно 'stability table', должен собирать для каждого из значений 'mean shell thickness' только один экземпляр объекта representation_item в своем атрибуте items, значение атрибута name которого равно этому значению.
5.2.4.112 Правило representation_for_thruster_moulded_form_design_parameter
Правило representation_for_thruster_moulded_form_design_parameter определяет наличие для атрибута item объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'thruster moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_for_thruster_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['thruster tunnel diameter', 'thruster tunnel
min length', 'thruster tunnel max length', 'geometric thruster location',
'thruster location'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* find all instances of representation which are used by a property_definition_
representation with name equal to 'thruster moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'thruster moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above; stop, if one of them has not
exactly one rep_item with for each name of the arg_list *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Каждый объект property_definition_representation с name = 'thruster moulded form design parameter' должен использовать объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим одно из значений: 'thruster tunnel diameter', 'thruster tunnel min length', 'thruster tunnel max length', 'geometric thruster location' или 'thruster location'.
5.2.4.113 Правило representation_has_global_uncertainty_assigned_context
Правило representation_has_global_uncertainty_assigned_context определяет, что перечень типов для объекта, на который приведена ссылка из объекта shape_representation.context_of_items, включает объект global_uncertainty_assigned_context.
EXPRESS-спецификация:
*)
RULE representation_has_global_uncertainty_assigned_context
FOR (SHAPE_REPRESENTATION);
LOCAL
has_gunac: LOGICAL := TRUE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(SHAPE_REPRESENTATION) WHILE has_gunac; has_gunac :=
('SHIP_MOULDED_FORM_SCHEMA.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT' IN
TYPEOF(SHAPE_REPRESENTATION[i].CONTEXT_OF_ITEMS));
END_REPEAT;
WHERE
WR1: has_gunac;
END_RULE;
(*
Определения аргументов:
shape_representation: набор всех экземпляров объектов shape_representation.
Формальные высказывания:
WR1: Каждый объект shape_representation должен указывать на объект representation_context через свой атрибут context_of_items, представляющий собой тип global_uncertainty_assigned_context.
5.2.4.114 Правило representation_has_global_unit_assigned_context
Правило representation_has_global_unit_assigned_context определяет, что объект representation содержит объект global_unit_assigned_context, если в нем содержится объект representation_items типа value_representation_item и/или geometric_representation_item.
EXPRESS-спецификация:
*)
RULE representation_has_global_unit_assigned_context
FOR (REPRESENTATION);
LOCAL
has_guac: LOGICAL := TRUE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(REPRESENTATION) WHILE has_guac;
REPEAT j := 1 TO SIZEOF(REPRESENTATION[i].ITEMS) WHILE has_guac;
IF (('SHIP_MOULDED_FORM_SCHEMA.VALUE_REPRESENTATION_ITEM'
IN TYPEOF(REPRESENTATION[i].ITEMS[j])) OR
('SHIP_MOULDED_FORM_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM'
IN TYPEOF(REPRESENTATION[i].ITEMS[j]))) THEN
has_guac := ('SHIP_MOULDED_FORM_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT'
IN TYPEOF(REPRESENTATION[i].CONTEXT_OF_ITEMS));
END_IF;
END_REPEAT;
END_REPEAT;
WHERE
WR1: has_guac;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта representation, содержащего объект value_representation_items или geometric_representation_items, имеется объект representation_context, представляющий собой global_unit_assigned_context.
5.2.4.115 Правило representation_items_appendage_moulded_form_design_parameter
Правило representation_items_appendage_moulded_form_design_parameter определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'appendage moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_items_appendage_moulded_form_design_parameter FOR
(representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['moulded form outer surface',
'moulded form displacement', 'user def appendage type'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'appendage moulded form design parameter' *)
reps := QUERY (
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'appendage moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above. Stop, if for one of them the
names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута definition объекта property_definition_representation с name = 'appendage moulded form design parameter', значения 'moulded form outer surface', 'moulded form displacement' или 'user def appendage type' не должны возникать более одного раза в качестве значения атрибута name объекта representation_item.
5.2.4.116 Правило representation_items_for_bottom_moulded_form_design_parameter
Правило representation_items_for_bottom_moulded_form_design_parameter определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'bottom moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_items_for_bottom_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['moulded form outer surface',
'moulded form displacement'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'bottom moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'bottom moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above. Stop, if for one of *)
(* them the names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута definition объекта property_definition_representation с name = 'bottom moulded form design parameter', значения 'moulded form outer surface' или 'moulded form displacement' не должны возникать более одного раза в качестве значения атрибута name объекта representation_item.
5.2.4.117 Правило representation_items_for_bulb_moulded_form_design_parameter
Правило representation_items_for_bulb_moulded_form_design_parameter определяет наличие для атрибута item объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'bulb moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_items_for_bulb_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['moulded form outer surface',
'moulded form displacement'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'bulb moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'bulb moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above. Stop, if for one of them the
names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута definition объекта property_definition_representation с name = 'bulb moulded form design parameter', значения 'moulded form outer surface' или 'moulded form displacement' не должны возникать более одного раза в качестве значения атрибута name объекта representation_item.
5.2.4.118 Правило representation_items_for_deck_moulded_form_design_parameter
Правило representation_items_for_deck_moulded_form_design_parameter определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'deck moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_items_for_deck_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['moulded form outer surface',
'moulded form displacement'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'deck moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'deck moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above. Stop, if for one of them the
names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута definition объекта property_definition_representation с name = 'deck moulded form design parameter', значения 'moulded form outer surface' или 'moulded form displacement' не должны возникать более одного раза в качестве значения атрибута name объекта representation_item.
5.2.4.119 Правило representation_items_for_hull_moulded_form_design_parameter
Правило representation_items_for_hull_moulded_form_design_parameter определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'hull moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_items_for_hull_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['moulded form outer surface',
'moulded form displacement',
'waterline angle of entrance at stern',
'waterline angle of entrance at bow',
'max frame section area location',
'hull length pp',
'hull length waterline',
'hull breadth',
'hull depth',
'hull design draught',
'gunwale radius'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'hull moulded form design parameter' *)
reps := QUERY (
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'hull moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above. Stop, if for one of them the
names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка из атрибута items каждого объекта representation, на который приведена ссылка из атрибута definition объекта property_definition_representation с name = 'hull moulded form design parameter', значения: 'moulded form outer surface', 'moulded form displacement', 'waterline angle of entrance at stern', 'waterline angle of entrance at bow', 'max frame section area location', 'hull length pp', 'hull length waterline', 'hull breadth', 'hull depth', 'hull design draught' или 'gunwale radius' не должны возникать более одного раза в качестве значений атрибута name объекта representation_item.
5.2.4.120 Правило representation_items_for_moulded_form_design_parameters
Правило representation_items_for_moulded_form_design_parameters определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'moulded form design parameters'.
EXPRESS-спецификация:
*)
RULE representation_items_for_moulded_form_design_parameters
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['status'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'moulded form design parameters' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'moulded form design parameters')
)
) > 0
);
(* iterate over all representations found above. Stop, if for one of them the
names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута definition объекта property_definition_representation с name = 'moulded form design parameters', значение 'status' не должно возникать более одного раза в качестве значения атрибута name объекта representation_item.
5.2.4.121 Правило representation_items_for_moulded_form_function_parameters
Правило representation_items_for_moulded_form_function_parameters определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'moulded form function parameters'.
EXPRESS-спецификация:
*)
RULE representation_items_for_moulded_form_function_parameters
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['user def function'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'moulded form function parameters' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'moulded form function parameters')
)
) > 0
);
(* iterate over all representations found above. Stop, if for one of them the
names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута definition объекта property_definition_representation с name = 'moulded form function parameters', значение 'user def function' не должно возникать более одного раза в качестве значений атрибута name объекта representation_item.
5.2.4.122 Правило representation_items_propeller_moulded_form_design_parameter
Правило representation_items_propeller_moulded_form_design_parameter определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'propeller moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_items_propeller_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['blade_mean_height',
'moulded form outer surface',
'moulded form displacement'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'propeller moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'propeller moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above. Stop, if for one of them the
names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута definition объекта property_definition_representation с name = 'propeller moulded form design parameter', значения 'blade_mean_height', 'moulded form outer surface' или 'moulded form displacement' не должны возникать более одного раза в качестве значения атрибута name объекта representation_item.
5.2.4.123 Правило representation_items_for_rudder_moulded_form_design_parameter
Правило representation_items_for_rudder_moulded_form_design_parameter определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'rudder moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_items_for_rudder_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['moulded form outer surface',
'moulded form displacement'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'rudder moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'rudder moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above. Stop, if for one of them the
names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения атрибутов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута definition объекта property_definition_representation с name = 'rudder moulded form design parameter', значения 'moulded form outer surface' или 'moulded form displacement' не должны возникать более одного раза в качестве значения атрибута name объекта representation_item.
5.2.4.124 Правило representation_items_of_thruster_moulded_form_design_parameter
Правило representation_items_of_thruster_moulded_form_design_parameter определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'thruster moulded form design parameter'.
EXPRESS-спецификация:
*)
RULE representation_items_of_thruster_moulded_form_design_parameter
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['moulded form outer surface',
'moulded form displacement'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'thruster moulded form design parameter' *)
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'thruster moulded form design parameter')
)
) > 0
);
(* iterate over all representations found above. Stop, if for one of them the
names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута definition объекта property_definition_representation с name = 'thruster moulded form design parameter', значения 'moulded form outer surface' или 'moulded form displacement' не должны возникать более одного раза в качестве значения атрибута name объекта representation_item.
5.2.4.125 Правило representation_item_for_transformation_to_parent
Правило representation_item_for_transformation_to_parent определяет, что на экземпляр объекта property_definition с идентификатором класса 'local co ordinate system' приведена ссылка только из одного экземпляра объекта representation_map через mapped_representation.
EXPRESS-спецификация:
*)
RULE
representation_item_for_transformation_to_parent
FOR(APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF property_definition := [];
t2_set: SET OF property_definition_representation := [];
t3_set: SET OF representation := [];
t4_set: SET OF representation_map := [];
t5_set: SET OF mapped_item := [];
arg_list: LIST OF STRING :=
['local coordinate system position in global coordinate system', 'local coordinate
system position in parent local coordinate system', 'local coordinate system
position in parent local coordinate system with position reference'];
violations1 LOGICAL := FALSE;
violation2: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = 'local co ordinate system');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation1;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'));
violation1 := NOT (SIZEOF(QUERY(t2_inst <* t2_set |
t2_inst.used_representation.name =
'local axis representation')) = 1);
t3_set := t3_set + t2_set[i].used_representation;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation1;
t4_set := bag_to_set(USEDIN(t3_set[i],
'SHIP_MOULDED_FORM_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION'));
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation1;
t5_set := bag_to_set(USEDIN(t4_set[i],
'SHIP_MOULDED_FORM_SCHEMA.MAPPED_ITEM.MAPPING_SOURCE'));
REPEAT j := 1 TO 3 WHILE NOT violation2;
violation2 := NOT (SIZEOF(QUERY(t2_inst <* t5_set | t2_inst.name =
ARG_LIST[j])) = 1);
END_REPEAT;
END_REPEAT;
WHERE
WR1: NOT violation1;
WR2: NOT violation2;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый объект property_definition, на который дана ссылка из объекта applied_classification_assignment с assigned_class.name = 'local co ordinate system', приведена ссылка только из одного атрибута property_definition_representation.definition, где property_definition_representation.name = 'local co ordinate system', и атрибута used_representation, представляющего собой объект representation с name = 'local axis representation'.
WR2: Для каждого объекта mapped_item со значением: 'local coordinate system position in global coordinate system', 'local coordinate system position in parent local coordinate system' или 'local coordinate system position in parent local coordinate system with position reference' для name имеется атрибут mapping_source, который указывает объект representation_map, содержащий атрибут mapped_representation, указывающий объект representation с name = 'local axis representation'.
5.2.4.126 representation_items_optional_for_class_notation
Правило representation_items_optional_for_class_notation определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'class notation'.
EXPRESS-спецификация:
*)
RULE representation_items_optional_for_class_notation FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['ice class notation','service factor',
'approval required for heavy cargo'];
found: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'class notation')
)
) > 0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута definition объекта property_definition_representation с name = 'class notation', значения 'ice class notation', 'service factor' или 'approval required for heavy cargo' не должны возникать более одного раза в качестве значений атрибута name объекта representation_item.
5.2.4.127 Правило representation_items_optional_for_owner_designation
Правило representation_items_optional_for_owner_designation определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'owner designation'.
EXPRESS-спецификация:
*)
RULE representation_items_optional_for_owner_designation
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['owner approval'];
found: LOGICAL := FALSE;
END_LOCAL;
(* Find all instances of representation which are used by a property_definition_
representation with name equal to 'owner designation' *)
reps := QUERY(temp_rep <* representation |
SIZEOF (QUERY(temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'owner designation'))) > 0);
(* iterate over all representations found above. Stop, if for one of them the
names of its representation_items are duplicated. *)
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которых дана ссылка посредством атрибута items каждого объекта representation, на который приведена ссылка посредством атрибута used_representation объекта property_definition_representation с name = 'owner designation', значение 'owner approval' не должно возникать более одного раза в качестве значения атрибута name объекта representation_item.
5.2.4.128 Правило representation_items_optional_for_principal_characteristics
Правило representation_items_optional_for_principal_characteristics определяет наличие для атрибута items объекта representation для каждой записи в перечне нулевого или единичного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'principal characteristics'.
EXPRESS-спецификация:
*)
RULE representation_items_optional_for_principal_characteristics
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['block coefficient',
'design draught',
'design deadweight',
'min draught at fp',
'max draught at fp',
'min draught at ap',
'max draught at ap'];
found: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'principal characteristics')
)
) > 0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT found);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT found);
found := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name=arg_list[j])) > 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT found;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для всех объектов representation_item, на которые дана ссылка из атрибута items каждого объекта representation, на который приведена ссылка из атрибута definition объекта property_definition_representation с name = 'principal characteristics', значения: 'block coefficient', 'design draught', 'design deadweight', 'min draught at fp', 'max draught at fp', 'min draught at ap', 'max draught at ap' не должны возникать более одного раза в качестве значений атрибута name объекта representation_item.
5.2.4.129 Правило representation_restricted_by_name_class_notation
Правило representation_restricted_by_name_class_notation определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'class notation'.
EXPRESS-спецификация:
*)
RULE representation_restricted_by_name_class_notation
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['service area',
'approval required for oil cargo',
'approval required for loading unloading aground',
'approval required for unloading grabs'];
violation: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'class notation')
)
) > 0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'class notation' должен использоваться объект representation, содержащий только один элемент (item) из своего набора items, который должен быть типом объекта representation_item с именем (name) со значением: 'service area', 'approval required for oil cargo', 'approval required for loading unloading aground' или 'approval required for unloading grabs'.
5.2.4.130 Правило representation_restricted_by_name_class_parameters
Правило representation_restricted_by_name_class_parameters определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'class parameters'.
EXPRESS-спецификация:
*)
RULE representation_restricted_by_name_class_parameters
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['length class', 'length solas',
'scantlings draught', 'block coefficient class',
'design speed ahead','design speed astern'];
violation: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'class parameters')
)
) > 0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'class parameters' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name) со значением 'length class', 'length solas', 'scantlings draught', 'block coefficient class', 'design speed ahead' или 'design speed astern'.
5.2.4.131 Правило representation_restricted_by_name_principal_characteristics
Правило representation_restricted_by_name_principal_characteristics определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'principal characteristics'.
EXPRESS-спецификация:
*)
RULE representation_restricted_by_name_principal_characteristics
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['length between perpendiculars',
'moulded breadth', 'moulded depth'];
violation: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name =
'principal characteristics')
)
) > 0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'principal characteristics' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим значение 'length between perpendiculars', 'moulded breadth' или 'moulded depth'.
5.2.4.132 Правило representation_restricted_by_name_ship_overall_dimensions
Правило representation_restricted_by_name_ship_overall_dimensions определяет наличие для атрибута items объекта representation для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне, если объект representation представляет собой объект used_representation в объекте property_definition_representation, атрибут name которого имеет значение 'ship overall dimensions'.
EXPRESS-спецификация:
*)
RULE representation_restricted_by_name_ship_overall_dimensions
FOR (representation);
LOCAL
reps: BAG OF REPRESENTATION := [];
arg_list: LIST OF STRING := ['overall breadth', 'overall depth',
'overall length', 'stem overhang'', 'stern overhang'];
violation: LOGICAL := FALSE;
END_LOCAL;
reps := QUERY(
temp_rep <* representation |
SIZEOF (
QUERY(
temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.'+'USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'ship overall dimensions')
)
) > 0
);
REPEAT i:=1 TO HIINDEX(reps) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
violation := (SIZEOF(QUERY(rep_item <* reps[i].items |
rep_item.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта property_definition_representation с name = 'ship overall dimensions' должен использоваться объект representation, содержащий только один элемент (item) в своем наборе items, который должен быть типом объекта representation_item с именем (name), имеющим значение 'overall breadth', 'overall depth', 'overall length', 'stem overhang' или 'stern overhang'.
5.2.4.133 Правило revision_has_mandatory_attribute_description
Правило revision_has_mandatory_attribute_description определяет, что для экземпляра объекта group с идентификатором класса 'revision' создается экземпляр необязательного атрибута description.
EXPRESS-спецификация:
*)
RULE
revision_has_mandatory_attribute_description
FOR (group);
LOCAL
t1_set: SET OF group := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* group | VALUE_IN(WHICH_CLASS(i), 'revision'));
violate := (SIZEOF(QUERY(k <* t1_set |
NOT EXISTS (k.description))) > 0);
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
group: набор всех экземпляров объектов group.
Формальные высказывания:
WR1: Необязательный атрибут description должен быть для каждого экземпляра объекта group, содержащего объект applied_classification_assignment, чей объект assigned_class представляет собой group с атрибутом name, значение которого равно 'revision'.
5.2.4.134 Правило revision_with_context_referenced_for_context_of_revision
Правило revision_with_context_referenced_for_context_of_revision определяет, что на каждый экземпляр типа group с классификацией 'revision' должна быть дана ссылка только из одного присваивания типа applied_group_assignment со значением роли 'context of revision' через атрибут assigned_group.
EXPRESS-спецификация:
*)
RULE
revision_with_context_referenced_for_context_of_revision FOR(applied_group_
assignment, group);
LOCAL
t1_set: SET OF group := [];
a_set: SET OF applied_group_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* group |
VALUE_IN(WHICH_CLASS(a), 'revision with context'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_group_assignment |
(b.assigned_group = t1_set[i]) AND
(b.role.name = 'context of revision'));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_group_assignment: набор всех экземпляров объектов applied_group_assignment.
group: набор всех экземпляров объектов group.
Формальные высказывания:
WR1: На каждый экземпляр объекта group, содержащий объект applied_classification_assignment, чей объект assigned_classification представляет собой объект group со значением 'revision with context' для атрибута name, должна даваться ссылка только из одного экземпляра вида applied_group_assignment, со значением роли 'context of revision', через атрибут assigned_group.
5.2.4.135 Правило ship_curve_has_name
Правило ship_curve_has_name определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'ship curve' в объекте list_representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE ship_curve_has_name
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['side condition', 'curve shape'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'ship curve' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'ship curve');
(* get all instances of compound_representation_item that have class id 'ship curve' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment со значением атрибута assigned_class.name, равным 'ship curve', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из следующих значений: 'side condition' или 'curve shape' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.136 Правило ship_curve_segment_has_class
Правило ship_curve_segment_has_class определяет наличие для атрибута item_element объекта compound_representation_item с идентификатором класса 'ship curve segment' в объекте list_representation_item только одного объекта compound_representation_item с идентификатором класса 'ship curve'.
EXPRESS-спецификация:
*)
RULE ship_curve_segment_has_class
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
c_a_set2 : SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t2_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t3_set: SET OF REPRESENTATION_ITEM := [];
l_rep_item : list_representation_item;
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'ship curve segment' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'ship curve segment');
(* get all instances of compound_representation_item that have class id 'ship
curve segment' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'ship curve' *)
c_a_set2 := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'ship curve');
(* get all instances of compound_representation_item that have class id 'ship
curve' *)
REPEAT i := 1 TO HIINDEX(c_a_set2);
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items);
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found in the first list; then
iterate over all item_element for each compound_representation_item, check that the
intersection of these item_elements and and the second list of compound_representation_
item is equal 1 *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element);
l_rep_item := t1_set[i].item_element;
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := (SIZEOF(t3_set * t2_set) <> 1);
t3_set:= [];
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class.name равен значению 'ship curve segment', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен забирать только один экземпляр объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class равен значению 'ship curve'.
5.2.4.137 Правило ship_curve_with_spacing_position_has_class
Правило ship_curve_with_spacing_position_has_class определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'ship curve with spacing position' в объекте list_representation_item только одного объекта compound_representation_item с идентификатором класса 'spacing position'.
EXPRESS-спецификация:
*)
RULE ship_curve_with_spacing_position_has_class
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
c_a_set2 : SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t2_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t3_set: SET OF REPRESENTATION_ITEM := [];
l_rep_item : list_representation_item;
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'ship curve with spacing
position' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'ship curve with spacing position');
(* get all instances of compound_representation_item that have class id 'ship
curve with spacing position' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'spacing position' *)
c_a_set2 := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'spacing position');
(* get all instances of compound_representation_item that have class id 'spacing
position' *)
REPEAT i := 1 TO HIINDEX(c_a_set2);
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items);
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found in the first list; then
iterate over all item_element for each compound_representation_item, check that
the intersection of these item_elements and and the second list of compound_
representation_item is equal 1 *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element);
l_rep_item := t1_set[i].item_element;
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := (SIZEOF(t3_set * t2_set) <> 1);
t3_set:= [];
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class.name равен значению 'ship curve with spacing position', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен забирать только один экземпляр объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class равен значению 'spacing position'.
5.2.4.138 Правило ship_designation_has_one_specified_names
Правило ship_designation_has_one_specified_names определяет, что на экземпляр объекта product_definition с идентификатором класса 'ship designation' приведена ссылка только из одного экземпляра объекта applied_identification_assignment через items, у которого атрибут role, определяющий объект с атрибутом name, имеет значение 'imo number' или 'pennant hull number'.
EXPRESS-спецификация:
*)
RULE ship_designation_has_one_specified_names FOR(applied_classification_
assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF product_definition := [];
t2_set: SET OF applied_identification_assignment := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = 'ship designation');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY(t2_inst <* t2_set | (t2_inst.role.name =
'imo number')OR (t2_inst.role.name = 'pennant hull number') )) = 1);
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый экземпляр объекта product_definition, содержащий объект applied_classification_assignment, где assigned_class представляет собой group с атрибутом name со значением 'ship designation', приведена ссылка только из одного экземпляра объекта applied_identification_assignment через атрибут items, чей атрибут role представляет собой identification_role с атрибутом name, равным либо 'imo number', либо 'pennant hull number'.
5.2.4.139 Правило ship_moulded_form_revision_has_description
Правило ship_moulded_form_revision_has_description определяет, что для экземпляра объекта product_definition_relationship с идентификатором класса 'ship moulded form revision' создается экземпляр необязательного атрибута description.
EXPRESS-спецификация:
*)
RULE ship_moulded_form_revision_has_description
FOR (product_definition_relationship);
LOCAL
t1_set: SET OF product_definition_relationship := [];
violate: LOGICAL := FALSE;
END_LOCAL;
(* get all instances of product_definition_relationship being classified as 'ship
moulded form revision' *)
t1_set := QUERY(i <* product_definition_relationship |
VALUE_IN(WHICH_CLASS(i), 'ship moulded form revision'));
(* from all instances found above: find those for which attribute description is
not instanciated *)
violate := (SIZEOF(QUERY(k <* t1_set | NOT EXISTS (k.description))) > 0);
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
product_definition_relationship: набор всех экземпляров объектов product_definition_relationship.
Формальные высказывания:
WR1: Необязательный атрибут description должен существовать для каждого экземпляра объекта product_definition_relationship, у которого есть объект applied_classification_assignment со значением 'ship moulded form revision' для assigned_class.name.
5.2.4.140 Правило ship_overall_dimensions_has_properties
Правило ship_overall_dimensions_has_properties определяет, что на объект product_definition с идентификатором класса 'ship overall dimensions' приведена ссылка из одного объекта property_definition_representation со значением имени 'ship overall dimensions' через объект property_definition.
EXPRESS-спецификация:
*)
RULE ship_overall_dimensions_has_properties
FOR (property_definition_representation, applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: LIST OF product_definition := [];
t2_set: SET OF property_definition_representation := [];
t3_set: LIST OF property_definition := [];
t4_set: LIST OF product_definition := [];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'ship overall dimensions');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
t2_set:= QUERY(i <* PROPERTY_DEFINITION_REPRESENTATION |
i.NAME = 'ship overall dimensions');
REPEAT i := 1 TO HIINDEX(t2_set);
t3_set := t3_set + t2_set[i].definition;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_set);
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
violation := t1_set <> t4_set;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
property_definition_representation: набор всех экземпляров объектов property_definition_representation.
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: На каждый экземпляр объекта product_definition, содержащий объект applied_classification_assignment, чей атрибут assigned_class представляет собой group со значением 'ship overall dimensions' для атрибута name, должна быть дана ссылка только из одного экземпляра объекта property_definition через атрибут definition, на который, в свою очередь, приведена ссылка из экземпляра объекта property_definition_representation через атрибут definition, значение атрибута name которого равно 'ship overall dimensions'.
5.2.4.141 Правило ship_point_compound_representation_has_name
Правило ship_point_compound_representation_has_name определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'ship point' в объекте list_representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE ship_point_compound_representation_has_name
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['point shape'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'ship point' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'ship point');
(* get all instances of compound_representation_item that have class id 'ship
point' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, имеющего объект applied_classification_assignment со значением атрибута assigned_class.name, равным 'ship point', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из значений 'point shape' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.142 Правило ship_surface_compound_representation_has_name
Правило ship_surface_compound_representation_has_name определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'ship surface' в объекте list_representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE ship_surface_compound_representation_has_name
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['surface shape'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'ship surface' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'ship surface');
(* get all instances of compound_representation_item that have class id 'ship
surface' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, имеющего объект applied_classification_assignment со значением атрибута assigned_class.name, равным 'ship surface', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из значений 'surface shape' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.143 Правило spacing_position_compound_representation_has_name
Правило spacing_position_compound_representation_has_name определяет для атрибута item_element объекта compound_representation_item с идентификатором класса 'spacing position' наличие в перечне объектов representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE spacing_position_compound_representation_has_name
FOR (applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET Of representation_item := [];
arg_list: LIST OF STRING := ['position number', 'position'];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = 'spacing position');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set |
items.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment, где атрибут assigned_class представляет собой group с атрибутом name, равным 'spacing position', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из значений 'position number' или 'position' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.144 Правило spacing_position_with_offset_compound_representation_has_class
Правило spacing_position_with_offset_compound_representation_has_class задает атрибут item_element для compound_representation_item с идентификатором класса 'spacing position with offset' для получения в list_representation_item ровно одного compound_representation_item с идентификатором класса 'spacing position'.
EXPRESS-спецификация:
*)
RULE spacing_position_with_offset_compound_representation_has_class
FOR (applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
c_a_set2 : SET OF applied_classification_assignment := [];
l_rep_item : list_representation_item;
t2_set : SET OF compound_representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'spacing position with offset') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c_a_set2 := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'spacing position') );
REPEAT i := 1 TO HIINDEX(c_a_set2) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items) BY 1;
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element) BY 1;
l_rep_item := t1_set[i].item_element;
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) <> 1;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров applied_classification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр compound_representation_item, у которого есть applied_classification_assignment, чей атрибут assigned_class является группой group с равной 'spacing position with offset' атрибута имени name, должен иметь свой атрибут item_element в качестве list_representation_item, который должен забирать ровно один экземпляр compound_representation_item, имеющий назначение applied_classification_assignment, чей атрибут assigned_class равен 'spacing position'.
5.2.4.145 Правило spacing_position_with_offset_compound_representation_has_name
Правило spacing_position_with_offset_compound_representation_has_name определяет для атрибута item_element объекта compound_representation_item с идентификатором класса 'spacing position' наличие в перечне объектов representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE spacing_position_with_offset_compound_representation_has_name
FOR (applied_classification_assignment);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET Of representation_item := [];
arg_list: LIST OF STRING := ['offset'];
violation: LOGICAL := FALSE;
END_LOCAL;
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME =
'spacing position with offset');
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set |
items.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment, где атрибут assigned_class представляет собой group с атрибутом name, равным 'spacing position with offset', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из значений 'offset' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.146 Правило stability_properties_for_floating_position_has_class
Правило stability_properties_for_floating_position_has_class определяет наличие у атрибута item_element объекта compound_representation_item с идентификатором класса 'stability properties for one floating position' в объекте list_representation_item одного или более объектов compound_representation_item с идентификатором класса 'stability property'.
EXPRESS-спецификация:
*)
RULE
stability_properties_for_floating_position_has_class
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
c_a_set2 : SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t2_set: SET OF COMPOUND_REPRESENTATION_ITEM := [];
t3_set: SET OF REPRESENTATION_ITEM := [];
l_rep_item: list_representation_item;
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'stability properties
for one floating position' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'stability properties for one floating
position');
(* get all instances of compound_representation_item that have class id
'stability properties for one floating position' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get all classification_assignment instances with id 'stability property' *)
c_a_set2 := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'stability property');
(* get all instances of compound_representation_item that have class id
'stability property' *)
REPEAT i := 1 TO HIINDEX(c_a_set2);
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items);
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found in the first list;
then iterate over all item_element for each compound_representation_item, check
that the intersection of these item_elements and the second list of compound_
representation_item is greater than or equal to 1 *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element);
l_rep_item := t1_set[i].item_element;
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := (SIZEOF(t3_set * t2_set) < 1);
t3_set:= [];
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class.name равен значению 'stability properties for one floating position', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен забирать один или более экземпляров объекта compound_representation_item, содержащего объект applied_classification_assignment, чей атрибут assigned_class равен значению 'stability property'.
5.2.4.147 Правило stability_properties_for_floating_position_has_name
Правило stability_properties_for_floating_position_has_name определяет для атрибута item_element объекта compound_representation_item с идентификатором класса 'stability properties for one floating position' наличие в объекте list_representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE
stability_properties_for_floating_position_has_name
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['centre of gravity above keel',
'definition of starting floating position'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'stability properties
for one floating position' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'stability properties for one floating
position');
(* get all instances of compound_representation_item that have class id
'stability properties for one floating position' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) <>
1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, имеющего объект applied_classification_assignment со значением атрибута assigned_class.name, равным 'stability properties for one floating position', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из значений 'centre of gravity above keel' или 'definition of starting floating position' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.148 Правило stability_property_has_name
Правило stability_property_has_name определяет для атрибута item_element объекта compound_representation_item с идентификатором класса 'stability property' наличие в объекте list_representation_item для каждой записи в перечне только одного объекта representation_item, значение атрибута name которого указано в этом перечне.
EXPRESS-спецификация:
*)
RULE stability_property_has_name
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF Compound_representation_item := [];
t2_set: SET OF representation_item := [];
arg_list: LIST OF STRING := ['angle of heel', 'righting arm', 'centre of buoyancy'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances with id 'stability
property' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.Assigned_class.name = 'stability property');
(* get all instances of compound_representation_item that have class id
'stability property' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* iterate over all compound_representation_item found above; stop, if one of
them has not exactly one rep_item for each name in the arg_list *)
REPEAT i:=1 TO HIINDEX(t1_set) WHILE (NOT violation);
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
t2_set := t1_set[i].item_element;
violation := (SIZEOF(QUERY(items <* t2_set | items.name = arg_list[j])) <> 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта compound_representation_item, имеющего объект applied_classification_assignment со значением атрибута assigned_class.name, равным 'stability property', должен быть свой атрибут item_element, экземпляр которого приведен как list_representation_item, который должен для каждого из значений 'angle of heel', 'righting arm' или 'centre of buoyancy' забирать только один экземпляр объекта representation_item с атрибутом name, значение которого равно этому значению.
5.2.4.149 surface_with_identification_assignment
Правило surface_with_identification_assignment задает перечень сущностей, для которых требуется идентификация. Идентификация определяется атрибутом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE surface_with_identification_assignment
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF surface := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := ['surface with identifier'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances *)
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
(* get all instances of surface that have class id *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set |
j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра поверхности surface, на который ссылается application_classification_assignment, чей assigned_class имеет атрибут имени name со значением "поверхность с идентификатором", должно требоваться application_identification_assignment для определения идентификатора экземпляра.
5.2.4.150 Правило user_def_appendage_type_description_required
Правило user_def_appendage_type_description_required определяет для атрибута representation, содержащего объект descriptive_representation_item со значением 'type of appendage' для name и 'user defined' для description, наличие другого объекта descriptive_representation_item со значением 'user def appendage type' для name.
EXPRESS-спецификация:
*)
RULE user_def_appendage_type_description_required
FOR (REPRESENTATION);
LOCAL
violation: LOGICAL := FALSE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(REPRESENTATION) WHILE NOT violation;
violation := (SIZEOF(QUERY(r <* REPRESENTATION[i].ITEMS |
('SHIP_MOULDED_FORM_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'
IN TYPEOF(r)) AND
(r.NAME = 'type of appendage') AND
(r\DESCRIPTIVE_REPRESENTATION_ITEM.DESCRIPTION = 'user defined'))) > 0)
AND
(SIZEOF(QUERY(r <* REPRESENTATION[i].ITEMS |
(r.NAME = 'user def appendage type'))) = 0);
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта representation, содержащего объект descriptive_representation_item со значением 'type of appendage' для name и 'user defined' для description в своем наборе элементов (items), должен быть другой объект descriptive_representation_item со значением 'user def appendage type' для name в его наборе items.
5.2.4.151 Правило user_def_function_description_required
Правило user_def_function_description_required определяет для атрибута representation, содержащего объект descriptive_representation_item со значением 'function' для name и 'user defined' для description, наличие другого объекта descriptive_representation_item со значением 'user def function' для name.
EXPRESS-спецификация:
*)
RULE user_def_function_description_required
FOR (REPRESENTATION);
LOCAL
violation: LOGICAL := FALSE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(REPRESENTATION) WHILE NOT violation;
violation := (SIZEOF(QUERY(r <* REPRESENTATION[i].ITEMS |
('SHIP_MOULDED_FORM_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'
IN TYPEOF(r)) AND
(r.NAME = 'function') AND
(r\DESCRIPTIVE_REPRESENTATION_ITEM.DESCRIPTION = 'user defined'))) > 0)
AND
(SIZEOF(QUERY(r <* REPRESENTATION[i].ITEMS |
(r.NAME = 'user def function'))) = 0);
END_REPEAT;
WHERE
WR1: NOT violation;
END_RULE;
(*
Определения аргументов:
representation: набор всех экземпляров объектов representation.
Формальные высказывания:
WR1: Для каждого объекта representation, содержащего объект descriptive_representation_item со значением 'function' для name и 'user defined' для description в своем наборе элементов (items), должен быть другой объект descriptive_representation_item со значением 'user def function' для name в его наборе items.
5.2.4.152 Правило valid_product_definition_for_class_moulded_form
Правило valid_product_definition_for_class_moulded_form определяет объект product_definition с классификацией 'ship moulded form', который также представляет собой объект group. На объект group должна быть дана ссылка из объекта applied_group_assignment, чей атрибут role.name = 'item structure' и который собирает экземпляры product_definition с классификацией 'moulded form', и экземпляры product_definition_relationship с классификацией 'moulded form relationship' через свой атрибут applied_group_assignment.items.
EXPRESS-спецификация:
*)
RULE
valid_product_definition_for_class_moulded_form
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT,APPLIED_GROUP_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT:= [];
t1_set: SET OF PRODUCT_DEFINITION := [];
gr_ass: SET OF APPLIED_GROUP_ASSIGNMENT := [];
groups: SET OF GROUP := [];
violation: LOGICAL := FALSE;
violate1, violate2 : LOGICAL;
END_LOCAL;
(* get all classification_assignment instances with id 'ship moulded form' *)
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.ASSIGNED_CLASS.NAME = 'ship moulded form');
(* get all instances of product_definition that have class id 'ship moulded
form' *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
(* get the groups associated with these product_definitions *)
gr_ass := QUERY(i <* APPLIED_GROUP_ASSIGNMENT |
i.role.name = 'equivalence');
REPEAT i := 1 TO HIINDEX(gr_ass);
REPEAT j := 1 TO HIINDEX(gr_ass[i].items); -- should always be just one
IF (gr_ass[i].items[j] IN t1_set) THEN
groups := groups + gr_ass[i].assigned_group;
END_IF;
END_REPEAT;
END_REPEAT;
(* get the non-empty group_assignments having role 'item structure' and
referencing these groups *)
gr_ass := QUERY(i <* APPLIED_GROUP_ASSIGNMENT |
(SIZEOF(i.items) <> 0) AND
(i.role.name = 'item structure') AND
(i.assigned_group IN groups));
(* check if there are only instances of class 'moulded form' and of class
'moulded form relationship' in each group_assignment.items *)
REPEAT i := 1 TO HIINDEX(gr_ass) WHILE NOT(violation);
REPEAT j := 1 TO HIINDEX(gr_ass[i].items) WHILE NOT(violation);
violate1 := VALUE_IN(WHICH_CLASS(gr_ass[i].items[j]),'moulded form');
violate2 := VALUE_IN(WHICH_CLASS(gr_ass[i].items[j]),'moulded form relationship');
violation := NOT(violate1 OR violate2);
END_REPEAT;
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор всех экземпляров объектов applied_classification_assignment.
applied_group_assignment: набор всех экземпляров объектов applied_group_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта product_definition с классификацией 'ship moulded form', который также представляет собой объект group, на который дана ссылка из объекта applied_group_assignment, чей атрибут role.name = 'item structure', объект applied_group_assignment должен собирать только экземпляры product_definition с классификацией 'moulded form' и экземпляры product_definition_relationship с классификацией 'moulded form relationship' через свой атрибут applied_group_assignment.items.
5.2.4.153 Правило version_creation_has_mandatory_attribute_description
Правило version_creation_has_mandatory_attribute_description определяет, что для экземпляра объекта action с идентификатором класса 'version creation' приведен экземпляр необязательного атрибута description.
EXPRESS-спецификация:
*)
RULE
version_creation_has_mandatory_attribute_description
FOR (action);
LOCAL
t1_set: SET OF action := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* action | VALUE_IN(WHICH_CLASS(i),
'version creation'));
violate := (SIZEOF(QUERY(k <* t1_set |
NOT EXISTS (k.description))) > 0);
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: Необязательный атрибут description должен быть для каждого экземпляра объекта action, содержащего объект applied_classification_assignment, чей объект assigned_class представляет собой group с атрибутом name, значение которого равно 'version creation'.
5.2.4.154 Правило version_deletion_has_mandatory_attribute_description
Правило version_deletion_has_mandatory_attribute_description определяет, что для экземпляра объекта action с идентификатором класса 'version deletion' приведен экземпляр необязательного атрибута description.
EXPRESS-спецификация:
*)
RULE
version_deletion_has_mandatory_attribute_description
FOR (action);
LOCAL
t1_set: SET OF action := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* action | VALUE_IN(WHICH_CLASS(i),
'version deletion'));
violate := (SIZEOF(QUERY(k <* t1_set |
NOT EXISTS (k.description))) > 0);
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
action: набор всех экземпляров объектов action.
Формальные высказывания:
WR1: Необязательный атрибут description должен быть для каждого экземпляра объекта action, содержащего объект applied_classification_assignment, чей объект assigned_class представляет собой group с атрибутом name, значение которого равно 'version deletion'.
5.2.4.155 Правило version_history_has_exactly_one_assigned_group
Правило version_history_has_exactly_one_assigned_group определяет, что на каждый экземпляр типа group с классификацией 'version history' должна быть дана ссылка только одним присваиванием вида applied_group_assignment через атрибут assigned_group.
EXPRESS-спецификация:
*)
RULE version_history_has_exactly_one_assigned_group FOR(applied_group_
assignment, group);
LOCAL
t1_set: SET OF group := [];
set_1, set_2: SET OF applied_group_assignment := [];
set_3: SET OF group_item := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* group | VALUE_IN(WHICH_CLASS(a), 'version history'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
set_1 := QUERY(b <* applied_group_assignment |
(b.assigned_group = t1_set[i]) AND (b.role.name = 'current version'));
set_2 := QUERY(c <* applied_group_assignment |
(c.assigned_group = t1_set[i]) AND (c.role.name = 'members'));
violate := ((SIZEOF(set_1) <> 1) OR (SIZEOF(set_2) <> 1));
IF not violate THEN
set_3 := set_1[1].items * set_2[1].items;
violate := (SIZEOF(set_3) <> 1) OR
NOT (VALUE_IN(WHICH_CLASS(set_3[1]), 'versionable
object'));
END_IF;
END_REPEAT;
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_group_assignment: набор экземпляров объектов applied_group_assignment.
group: набор экземпляров объектов group.
Формальные высказывания:
WR1: На каждый экземпляр объекта group, содержащий объект applied_classification_assignment, чей assigned_class идентифицирует объект с атрибутом name со значением 'version history', должна быть дана ссылка только из одного экземпляра вида объекта applied_group_assignment через атрибут assigned_group.
5.2.4.156 Правило version_history_is_referenced_by_at_least_one_versions
Правило version_history_is_referenced_by_at_least_one_versions определяет, что на каждый экземпляр типа group с классификацией 'version history' должна быть дана ссылка хотя бы одним присваиванием вида applied_group_assignment со значением 'versions' для role.name через атрибут assigned_group.
EXPRESS-спецификация:
*)
RULE version_history_is_referenced_by_at_least_one_versions
FOR(applied_group_assignment, group);
LOCAL
t1_set: SET OF group := [];
a_set: SET OF applied_group_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* group | VALUE_IN(WHICH_CLASS(a), 'version history'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
(* get the instances of applied_group_assignment that have a role 'versions' *)
a_set := QUERY(b <* applied_group_assignment |
(b.assigned_group = t1_set[i]) AND (b.role.name =
'versions'));
(* there shall be at least one such instance *)
violate := SIZEOF(a_set) < 1;
END_REPEAT;
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_group_assignment: набор экземпляров объектов applied_group_assignment.
group: набор экземпляров объектов group.
Формальные высказывания:
WR1: На каждый экземпляр объекта group, содержащий объект applied_classification_assignment, у которого значение для assigned_class.name равно 'version history', должна быть дана ссылка из одного или нескольких экземпляров вида applied_group_assignment со значением 'versions' для role.name через атрибут assigned_group.
5.2.4.157 Правило version_history_referenced_by_exactly_one_current_version
Правило version_history_referenced_by_exactly_one_current_version определяет, что на каждый экземпляр типа group с классификацией 'version history' должна быть дана ссылка только одним присваиванием вида applied_group_assignment со значением 'current version' для role.name через атрибут assigned_group.
EXPRESS-спецификация:
*)
RULE version_history_referenced_by_exactly_one_current_version
FOR(applied_group_assignment, group);
LOCAL
t1_set: SET OF group := [];
a_set: SET OF applied_group_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
(* get all instances of group with class 'version history' *)
t1_set := QUERY(a <* group | VALUE_IN(WHICH_CLASS(a), 'version history'));
(* for all instances found above *)
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
(* get the instances of applied_group_assignment that have a role 'current
version' *)
a_set := QUERY(b <* applied_group_assignment |
(b.assigned_group = t1_set[i]) AND (b.role.name = 'current version'));
(* there shall be one such instance *)
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_group_assignment: набор экземпляров для объектов applied_group_assignment.
group: набор экземпляров для объектов group.
Формальные высказывания:
WR1: На каждый экземпляр объекта group, содержащий объект applied_classification_assignment, чей assigned_class идентифицирует объект с атрибутом name со значением 'version history', должна быть дана ссылка только из одного экземпляра вида объекта applied_group_assignment со значением роли 'current version' через атрибут assigned_group.
5.2.4.158 Правило version_history_referenced_by_multiple_roles
Правило version_history_referenced_by_multiple_roles определяет, что на каждый экземпляр вида group с классификацией 'version history' должна быть дана ссылка из одного или нескольких экземпляров вида applied_group_assignment со значением 'versions', 'current version' или 'relationships' для role.name через атрибут assigned_group.
EXPRESS-спецификация:
*)
RULE version_history_referenced_by_multiple_roles
FOR(applied_group_assignment, group);
LOCAL
t1_set: SET OF group := [];
a_set: SET OF applied_group_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* group | VALUE_IN(WHICH_CLASS(a), 'version history'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_group_assignment |
(b.assigned_group = t1_set[i]) AND NOT (b.role.name IN ['versions', 'current
version', 'relationships']));
violate := SIZEOF(a_set) < 1;
END_REPEAT;
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_group_assignment: набор экземпляров объектов applied_group_assignment.
group: набор экземпляров объектов group.
Формальные высказывания:
WR1: На каждый экземпляр объекта group, содержащий объект applied_classification_assignment, чей assigned_class идентифицирует объект с атрибутом name со значением 'version history', должна быть дана ссылка только из экземпляров вида applied_group_assignment со значением role.name 'versions', 'current version' или 'relationships' через атрибут assigned_group.
5.2.4.159 Правило version_modification_has_mandatory_attribute_description
Правило version_modification_has_mandatory_attribute_description определяет, что для экземпляра объекта action с идентификатором класса 'version modification' приведен экземпляр необязательного атрибута description.
EXPRESS-спецификация:
*)
RULE
version_modification_has_mandatory_attribute_description
FOR (action);
LOCAL
t1_set: SET OF action := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* action | VALUE_IN(WHICH_CLASS(i), 'version modification'));
violate := (SIZEOF(QUERY(k <* t1_set |
NOT EXISTS (k.description))) > 0);
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
action: набор экземпляров объектов action.
Формальные высказывания:
WR1: Необязательный атрибут description должен быть для каждого экземпляра объекта action, содержащего объект applied_classification_assignment, чей assigned_class представляет собой group с атрибутом name, значение которого равно 'version modification'.
5.2.4.160 Правило version_relationship_associates_with_versionable_object
Правило version_relationship_associates_with_versionable_object задает экземпляр объекта identification_assignment_relationship с классификацией 'version relationship', который связывает только экземпляры вида applied_identification_assignment, чей атрибут items указывает на экземпляры с классификацией 'versionable object'.
EXPRESS-спецификация:
*)
RULE version_relationship_associates_with_versionable_object
FOR (applied_identification_assignment);
LOCAL
violate: LOGICAL := FALSE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(applied_identification_assignment) BY 1 WHILE NOT violate;
IF ( (SIZEOF(USEDIN(applied_identification_assignment[i],
('SHIP_MOULDED_FORM_SCHEMA.IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.'
+'RELATING_IDENTIFICATION_ASSIGNMENT'))) > 0) OR
(SIZEOF(USEDIN(applied_identification_assignment[i],
('SHIP_MOULDED_FORM_SCHEMA.IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.'
+'RELATED_IDENTIFICATION_ASSIGNMENT'))) > 0) ) THEN
REPEAT j := 1 to HIINDEX(applied_identification_assignment[i].-items) BY 1 WHILE NOT violate;
violate := NOT
VALUE_IN(which_class(applied_identification_assignment[i].items[j]), 'versionable object');
END_REPEAT;
END_IF;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_identification_assignment: набор экземпляров объектов applied_identification_assignment.
Формальные высказывания:
WR1: Каждый экземпляр объекта identification_assignment_relationship, у которого имеется объект applied_classification_assignment со значением 'version relationship' для атрибута assigned_class.name, должен указывать только экземпляры объекта applied_identification_assignment с атрибутом items, чье значение указывает на экземпляр, у которого есть объект applied_classification_assignment со значением 'versionable object' для assigned_class.name.
5.2.4.161 Правило version_relationship_has_mandatory_attribute_description
Правило version_relationship_has_mandatory_attribute_description определяет, что для экземпляра объекта identification_assignment_relationship с идентификатором класса 'version relationship' приведен экземпляр необязательного атрибута description.
EXPRESS-спецификация:
*)
RULE
version_relationship_has_mandatory_attribute_description
FOR (identification_assignment_relationship);
LOCAL
t1_set: SET OF identification_assignment_relationship := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(i <* identification_assignment_relationship | VALUE_IN(WHICH_
CLASS(i), 'version relationship'));
violate := (SIZEOF(QUERY(k <* t1_set | NOT EXISTS (k.description))) > 0);
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
identification_assignment_relationship: набор экземпляров объектов identification_assignment_relationship.
Формальные высказывания:
WR1: Необязательный атрибут description должен быть для каждого экземпляра объекта identification_assignment_relationship, содержащего объект applied_classification_assignment, чей объект assigned_class представляет собой group с атрибутом name, значение которого равно 'version relationship'.
5.2.4.162 Правило version_relationship_has_unique_versions
Правило version_relationship_has_unique_versions определяет, что для всех экземпляров объекта identification_assignment_relationship с классификацией 'version relationship', атрибуты successor и predecessor должны ссылаться на разные экземпляры классификации 'versionable object'.
EXPRESS-спецификация:
*)
RULE
version_relationship_has_unique_versions
FOR (identification_assignment_relationship);
LOCAL
t1_set: SET OF identification_assignment_relationship := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* identification_assignment_relationship |
VALUE_IN(WHICH_CLASS(a), 'version relationship'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
violate :=
( t1_set[i].relating_identification_assignment.assigned_id =
t1_set[i].related_identification_assignment.assigned_id ) ;
END_REPEAT;
WHERE
WR1: NOT violate;
END_RULE;
(*
Определения аргументов:
identification_assignment_relationship: набор экземпляров объектов identification_assignment_relationship.
Формальные высказывания:
WR1: Значения assigned_id для атрибутов related_identification_assignment и relating_identification_assignment каждого экземпляра объекта identification_assignment_relationship, содержащего объект applied_classification_assignment, где assigned_class представляет собой group со значением 'version relationship' для атрибута name, должны быть разными.
5.2.4.163 Правило versionable_object_has_one_version_id
Правило versionable_object_has_one_version_id определяет, что у вида, на который дана ссылка из объекта applied_identification_assignment, где значение для role.name равно 'version identifier', имеется только одна ссылка этого вида.
EXPRESS-спецификация:
*)
RULE versionable_object_has_one_version_id FOR(APPLIED_IDENTIFICATION_
ASSIGNMENT);
LOCAL
version_ids: SET OF APPLIED_IDENTIFICATION_ASSIGNMENT := [];
versionable_objects: BAG OF identification_item := [];
duplicate: LOGICAL := FALSE;
END_LOCAL;
version_ids := QUERY(i <* APPLIED_IDENTIFICATION_ASSIGNMENT |
i.ROLE.NAME = 'version identifier');
REPEAT i := 1 TO HIINDEX(version_ids);
versionable_objects := versionable_objects + version_ids[i].items;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(versionable_objects) WHILE NOT duplicate;
REPEAT j := i + 1 TO HIINDEX(versionable_objects) WHILE NOT duplicate;
duplicate := versionable_objects[i] :=: versionable_objects[j];
END_REPEAT;
END_REPEAT;
WHERE
WR1: NOT duplicate;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: У каждого экземпляра объекта должен быть нулевой или единичный объект applied_identification_assignment со значением 'version identifier' для атрибута role.name.
5.2.4.164 Правило versioned_action_request_with_identification_assignment
Правило versioned_action_request_with_identification_assignment задает перечень объектов, для которых требуется идентификация. Идентификация определяется объектом applied_identification_assignment.
EXPRESS-спецификация:
*)
RULE versioned_action_request_with_identification_assignment
FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF versioned_action_request := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := [ 'change request'];
violation: LOGICAL := FALSE;
END_LOCAL;
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned_class.NAME = arg_LIST[j]);
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i], 'SHIP_MOULDED_FORM_SCHEMA.APPLIED_
IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set |
j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE;
(*
Определения аргументов:
applied_classification_assignment: набор экземпляров объектов applied_classification_assignment.
Формальные высказывания:
WR1: Для каждого экземпляра объекта version_action_request, на который приведена ссылка из объекта applied_classification_assignment, где у assigned_class имеется атрибут name со значением 'change request', должен требоваться объект applied_identification_assignment для определения идентификатора экземпляра.
5.2.4.165 Правило versions_is_referenced_by_at_least_one_version_history
Правило versions_is_referenced_by_at_least_one_version_history определяет, что на каждый экземпляр вида group с классификацией 'version history' должна быть дана ссылка хотя бы одним присваиванием вида applied_group_assignment со значением 'version history' для role.name через атрибут assigned_group.
EXPRESS-спецификация:
*)
RULE versions_is_referenced_by_at_least_one_version_history FOR(applied_group_
assignment, group);
LOCAL
t1_set: SET OF group := [];
a_set: SET OF applied_group_assignment := [];
violate: LOGICAL := FALSE;
END_LOCAL;
t1_set := QUERY(a <* group | VALUE_IN(WHICH_CLASS(a), 'versions'));
REPEAT i := 1 TO HIINDEX(t1_set) WHILE NOT violate;
a_set := QUERY(b <* applied_group_assignment |
(b.assigned_group = t1_set[i]) AND (b.role.name = 'version history'));
violate := SIZEOF(a_set) < 1;
END_REPEAT;
WHERE
wr1: NOT violate;
END_RULE;
(*
Определения аргументов:
applied_group_assignment: набор экземпляров объектов applied_group_assignment.
group: набор экземпляров объектов group.
Формальные высказывания:
WR1: На каждый экземпляр объекта group, содержащий объект applied_classification_assignment, чей assigned_class идентифицирует объект с атрибутом name со значением 'versions', должна быть дана ссылка из одного или нескольких экземпляров вида applied_group_assignment со значением роли 'version history' через атрибут assigned_group.
5.2.5 Определения функций корабельных конструкций
5.2.5.1 Функция which_class
Функция which_class определяет объект applied_classification_assignments, указывающий на экземпляр произвольного типа, и возвращает идентификаторы класса (class ids) в список строк.
EXPRESS-спецификация:
*)
FUNCTION WHICH_CLASS(T: GENERIC): LIST OF STRING;
LOCAL
elements: BAG OF APPLIED_CLASSIFICATION_ASSIGNMENT;
class_list: LIST OF STRING :=[];
END_LOCAL;
elements :=
USEDIN(T,'SHIP_MOULDED_FORM_SCHEMA.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS');
REPEAT i:=1 TO HIINDEX(elements);
IF (elements[i]\classification_assignment.role.name = 'class membership') THEN
class_list := class_list + elements[i]\classification_assignment.assigned_class\group.name;
END_IF;
END_REPEAT;
RETURN(class_list);
END_FUNCTION;
END_SCHEMA;
(*
6 Требования соответствия
Соответствие настоящего стандарта включает в себя соблюдение требований, указанных в настоящем стандарте, требований к поддерживаемым методам реализации, а также соответствующих требований нормативной документации.
Реализация должна поддерживать как минимум один из следующих методов реализации:
- ИСО 10303-21;
- ИСО 10303-22;
- ISO/TS 10303-28.
Специальные требования, относящиеся к методам реализации, приведены в приложении C.
Форма ЗСРП содержит перечень вариантов или комбинаций вариантов, которые могут быть включены в реализацию. Форма ЗСРП приведена в приложении D.
В настоящем стандарте приведен ряд опций, которые могут обеспечиваться реализацией. Эти опции сгруппированы в следующие классы соответствия:
- класс 1 - класс соответствия для обмена гидростатическими данными (см. 4.1.6);
- класс 2 - класс соответствия для обмена геометрией теоретических обводов в виде таблицы ординат (см. 4.1.9);
- класс 3 - класс соответствия для обмена геометрией теоретических обводов в каркасном представлении (см. 4.1.13 и 4.1.15);
- класс 4 - класс соответствия для обмена геометрией теоретических обводов в поверхностном представлении (см. 4.1.13 и 4.1.14);
- класс 5 - класс соответствия для обмена геометрией теоретических обводов в поверхностном представлении применительно к корпусу (см. 4.1.5, 4.1.13 и 4.1.14).
Соответствие определенному классу требует, чтобы для всех элементов ПИМ была определена принадлежность к обеспечиваемому классу. В таблице 2 определены классы соответствия, к которым принадлежит каждая функциональная единица. В таблице 3 определены классы, к которым принадлежит каждый элемент ПИМ.
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. [12] Библиографии, а не [13].
Примечание - В прикладном протоколе установление тестовых сценариев (AP 216 Test Case Definitions) [13] определяет комплект абстрактных тестов, используемых при оценке соответствия 2).
Таблица 2
Классы соответствия
Функциональная единица
Класс соответствия
Класс 1
Класс 2
Класс 3
Класс 4
Класс 5
basic_geometry
X
X
X
X
configuration_management
X
X
X
X
X
definitions
X
X
X
X
X
external_references
X
X
X
X
X
hull_class_applicability
X
hydrostatics
X
items
X
X
X
X
X
location_concepts
X
X
X
X
X
offset_table_representations
X
ship_design_parameter
X
X
X
X
X
ship_general_characteristics
X
X
X
X
X
ship_measures
X
X
X
X
X
ship_moulded_forms
X
X
X
X
X
surface_representations (AIC 508)
X
X
wireframe_representations (AIC 501)
X
Таблица 3
Элементы классов соответствия
Элемент ПИМ
Класс
1
2
3
4
5
Action
X
X
X
X
X
Action_assignment
X
X
X
X
X
Action_relationship
X
X
X
X
X
Action_method
X
X
X
X
X
Action_request_assignment
X
X
X
X
X
Action_request_solution
X
X
X
X
X
Address
X
X
X
X
X
Advanced_face
X
X
Amount_of_substance_unit
X
X
X
X
X
Application_context
X
X
X
X
X
Application_context_element
X
X
X
X
X
Application_protocol_definition
X
X
X
X
X
Applied_action_assignment
X
X
X
X
X
Applied_action_request_assignment
X
X
X
X
X
Applied_approval_assignment
X
X
X
X
X
Applied_classification_assignment
X
X
X
X
X
Applied_date_and_time_assignment
X
X
X
X
X
Applied_document_reference
X
X
X
X
X
Applied_effectivity_assignment
X
Applied_external_identification_assignment
X
X
X
X
X
Applied_group_assignment
X
X
X
X
X
Applied_identification_assignment
X
X
X
X
X
Applied_organization_assignment
X
X
X
X
X
Applied_person_and_organization_assignment
X
X
X
X
X
Applied_person_assignment
X
X
X
X
X
Approval
X
X
X
X
X
Approval_assignment
X
X
X
X
X
Approval_date_time
X
X
X
X
X
Approval_person_organization
X
X
X
X
X
Approval_role
X
X
X
X
X
Approval_status
X
X
X
X
X
Axis1_placement
X
X
X
X
X
Axis2_placement_2d
X
X
X
X
X
Axis2_placement_3d
X
X
X
X
X
B_spline_curve
X
X
X
B_spline_curve_with_knots
X
X
X
B_spline_surface
X
X
X
B_spline_surface_with_knots
X
X
X
Bezier_curve
X
X
X
Bezier_surface
X
X
X
Bounded_curve
X
X
X
Bounded_pcurve
X
X
X
Bounded_surface
X
X
X
Bounded_surface_curve
X
X
X
Calendar_date
X
X
X
X
X
Cartesian_point
X
X
X
Cartesian_transformation_operator
X
X
X
Cartesian_transformation_operator_3d
X
X
X
Characterized_object
X
X
X
X
X
Circle
X
X
X
Class
X
X
X
X
X
Classification_assignment
X
X
X
X
X
Classification_role
X
X
X
X
X
Closed_shell
X
X
Composite_curve
X
X
X
Composite_curve_on_surface
X
X
X
Composite_curve_segment
X
X
X
Compound_representation_item
X
X
X
X
X
Conic
X
X
X
Conical_surface
X
X
X
Connected_edge_set
X
Connected_face_set
X
X
Context_dependent_unit
X
X
X
X
X
Conversion_based_unit
X
X
X
X
X
Coordinated_universal_time_offset
X
X
X
X
X
Curve
X
X
X
Curve_replica
X
X
X
Cylindrical_surface
X
X
X
Date
X
X
X
X
X
Date_and_time
X
X
X
X
X
Date_and_time_assignment
X
X
X
X
X
Date_time_role
X
X
X
X
X
Definitional_representation
X
X
X
Degenerate_pcurve
X
X
X
Degenerate_toroidal_surface
X
X
X
Derived_unit
X
X
X
X
X
Derived_unit_element
X
X
X
X
X
Description_attribute
X
X
X
X
X
Descriptive_representation_item
X
X
X
X
X
Dimensional_exponents
X
X
X
X
X
Direction
X
X
X
Document
X
X
X
X
X
Document_reference
X
X
X
X
X
Document_representation_type
X
X
X
X
X
Document_type
X
X
X
X
X
Document_usage_constraint
X
X
X
X
X
Edge
X
X
X
X
Edge_based_wireframe_model
X
Edge_based_wireframe_shape_representation
X
X
X
X
X
Edge_curve
X
X
X
X
Edge_loop
X
X
Effectivity
X
Effectivity_assignment
X
Electric_current_unit
X
X
X
X
X
Elementary_surface
X
X
X
X
X
Ellipse
X
X
X
Evaluated_degenerate_pcurve
X
X
X
Executed_action
X
X
X
X
X
External_identification_assignment
X
X
X
X
X
External_source
X
X
X
X
X
External_source_relationship
X
X
X
X
X
Externally_defined_item
X
X
X
X
X
Face
X
X
X
X
Face_based_surface_model
X
X
Face_bound
X
X
Face_outer_bound
X
X
Face_surface
X
X
X
X
Faceted_brep
X
X
Founded_item
X
X
X
Functionally_defined_transformation
X
X
X
Geometric_curve_set
X
X
Geometric_representation_context
X
X
X
X
X
Geometric_representation_item
X
X
X
X
X
Geometric_set
X
X
Global_uncertainty_assigned_context
X
X
X
X
X
Global_unit_assigned_context
X
X
X
X
X
Group
X
X
X
X
X
Group_assignment
X
X
X
X
X
Group_relationship
X
X
X
X
X
Hyperbola
X
X
X
Id_attribute
X
X
X
X
X
Identification_assignment
X
X
X
X
X
Identification_assignment_relationship
X
X
X
X
X
Identification_role
X
X
X
X
X
Intersection_curve
X
X
X
Item_defined_transformation
X
X
X
Length_measure_with_unit
X
X
X
X
X
Length_unit
X
X
X
X
X
Line
X
X
X
Local_time
X
X
X
X
X
Loop
X
X
Luminous_intensity_unit
X
X
X
X
X
Manifold_solid_brep
X
X
Mapped_item
X
X
X
X
X
Mass_measure_with_unit
X
X
X
X
X
Mass_unit
X
X
X
X
X
Measure_with_unit
X
X
X
X
X
Name_attribute
X
X
X
X
X
Named_unit
X
X
X
X
X
Non_manifold_surface_shape_representation
X
X
X
X
X
Object_role
X
X
X
X
X
Offset_curve_3d
X
X
X
Offset_surface
X
X
X
Open_shell
X
X
Ordinal_date
X
X
X
X
X
Organization
X
X
X
X
X
Organization_assignment
X
X
X
X
X
Organization_role
X
X
X
X
X
Organizational_address
X
X
X
X
X
Organizational_project
X
X
X
X
X
Oriented_closed_shell
X
X
Oriented_edge
X
X
X
X
Oriented_face
X
X
X
X
Oriented_open_shell
X
X
Oriented_path
X
X
Oriented_surface
X
X
X
Parabola
X
X
X
Parametric_representation_context
X
X
X
Path
X
X
X
Pcurve
X
X
X
Person
X
X
X
X
X
Person_and_organization
X
X
X
X
X
Person_and_organization_assignment
X
X
X
X
X
Person_and_organization_role
X
X
X
X
X
Person_assignment
X
X
X
X
X
Person_role
X
X
X
X
X
Personal_address
X
X
X
X
X
Placement
X
X
X
X
X
Plane
X
X
X
X
X
Plane_angle_measure_with_unit
X
X
X
X
X
Plane_angle_unit
X
X
X
X
X
Point
X
X
X
Point_on_curve
X
X
X
Point_on_surface
X
X
X
Point_replica
X
X
X
Poly_loop
X
X
Polyline
X
X
X
Product
X
X
X
X
X
Product_category
X
X
X
X
X
Product_category_relationship
X
X
X
X
X
Product_context
X
X
X
X
X
Product_definition
X
X
X
X
X
Product_definition_context
X
X
X
X
X
Product_definition_formation
X
X
X
X
X
Product_definition_relationship
X
X
X
X
X
Product_definition_shape
X
X
X
X
X
Product_related_product_category
X
X
X
X
X
Property_definition
X
X
X
X
X
Property_definition_relationship
X
X
X
X
X
Property_definition_representation
X
X
X
X
X
Quasi_uniform_curve
X
X
X
Quasi_uniform_surface
X
X
X
Ratio_unit
X
X
X
X
X
Rational_b_spline_curve
X
X
X
Rational_b_spline_surface
X
X
X
Representation
X
X
X
X
X
Representation_context
X
X
X
X
X
Representation_item
X
X
X
X
X
Representation_map
X
X
X
X
X
Representation_relationship
X
X
X
X
X
Role_association
X
X
X
X
X
Seam_curve
X
X
X
Serial_numbered_effectivity
X
Shape_aspect
X
X
X
X
X
Shape_definition_representation
X
X
X
X
X
Shape_representation
X
X
X
X
X
Si_unit
X
X
X
X
X
Solid_angle_measure_with_unit
X
X
X
X
X
Solid_angle_unit
X
X
X
X
X
Solid_model
X
X
Spherical_surface
X
X
X
Subface
X
X
X
X
Surface
X
X
X
X
X
Surface_curve
X
X
X
Surface_of_linear_extrusion
X
X
X
Surface_of_revolution
X
X
X
Surface_replica
X
X
X
Swept_surface
X
X
X
Thermodynamic_temperature_unit
X
X
X
X
X
Time_unit
X
X
X
X
X
Topological_representation_item
X
X
Toroidal_surface
X
X
X
Uncertainty_measure_with_unit
X
X
X
X
X
Uniform_curve
X
X
X
Uniform_surface
X
X
X
Value_representation_item
X
X
X
X
X
Vector
X
X
X
Versioned_action_request
X
X
X
X
X
Vertex
X
X
X
Vertex_loop
X
X
Vertex_point
X
X
X
X
Приложение A
(обязательное)
РАЗВЕРНУТЫЙ ЛИСТИНГ ПРИКЛАДНОЙ ИНТЕРПРЕТИРОВАННОЙ МОДЕЛИ
НА ЯЗЫКЕ EXPRESS
Приведенный ниже фрагмент на языке EXPRESS является развернутой формой схемы краткой формы, представленной в 5.2. При расхождении между краткой формой и данным развернутым листингом следует использовать развернутый листинг.
SCHEMA ship_moulded_form_schema;
CONSTANT
dummy_gri : geometric_representation_item :=
representation_item('') ||
geometric_representation_item();
dummy_tri : topological_representation_item := representation_item('')
|| topological_representation_item();
END_CONSTANT;
TYPE action_item = SELECT
(product,
product_definition,
property_definition,
product_definition_relationship,
product_definition_shape,
product_related_product_category,
action_request_solution,
executed_action);
END_TYPE; -- action_item
TYPE action_request_item = SELECT
(action,
executed_action);
END_TYPE; -- action_request_item
TYPE ahead_or_behind = ENUMERATION OF
(ahead,
exact,
behind);
END_TYPE; -- ahead_or_behind
TYPE amount_of_substance_measure = REAL;
END_TYPE; -- amount_of_substance_measure
TYPE approval_item = SELECT
(product_definition,
product_definition_shape,
property_definition,
product_related_product_category);
END_TYPE; -- approval_item
TYPE area_measure = REAL;
END_TYPE; -- area_measure
TYPE attribute_type = SELECT
(label,
text);
END_TYPE; -- attribute_type
TYPE axis2_placement = SELECT
(axis2_placement_2d,
axis2_placement_3d);
END_TYPE; -- axis2_placement
TYPE b_spline_curve_form = ENUMERATION OF
(polyline_form,
circular_arc,
elliptic_arc,
parabolic_arc,
hyperbolic_arc,
unspecified);
END_TYPE; -- b_spline_curve_form
TYPE b_spline_surface_form = ENUMERATION OF
(plane_surf,
cylindrical_surf,
conical_surf,
spherical_surf,
toroidal_surf,
surf_of_revolution,
ruled_surf,
generalised_cone,
quadric_surf,
surf_of_linear_extrusion,
unspecified);
END_TYPE; -- b_spline_surface_form
TYPE boolean_operand = SELECT
(solid_model);
END_TYPE; -- boolean_operand
TYPE celsius_temperature_measure = REAL;
END_TYPE; -- celsius_temperature_measure
TYPE characterized_definition = SELECT
(characterized_object,
characterized_product_definition,
shape_definition);
END_TYPE; -- characterized_definition
TYPE characterized_product_definition = SELECT
(product_definition,
product_definition_relationship);
END_TYPE; -- characterized_product_definition
TYPE classification item = SELECT
(action,
action_request_solution,
applied_action_request_assignment,
approval,
axis2_placement_3d,
compound_representation_item,
document,
document_reference,
edge_curve,
executed_action,
external_source,
group,
identification_assignment_relationship,
measure_with_unit,
product,
product_definition,
product_definition_relationship,
product_definition_shape,
product_related_product_category,
property_definition,
property_definition_representation,
representation,
representation_item,
representation_relationship,
shape_representation,
surface,
vertex_point,
versioned_action_request);
END TYPE; -- classification_item
TYPE compound_item_definition = SELECT
(list_representation_item,
set_representation_item);
END_TYPE; -- compound_item_definition
TYPE context_dependent_measure = REAL;
END TYPE; -- context_dependent_measure
TYPE count_measure = NUMBER;
END_TYPE; -- count_measure
TYPE curve_on_surface = SELECT
(pcurve,
surface_curve,
composite_curve_on_surface);
END_TYPE; -- curve_on_surface
TYPE date_and_time_item = SELECT
(action_request_solution,
executed_action,
versioned_action_request,
product_definition,
action);
END_TYPE; -- date_and_time_item
TYPE date_time_or_event_occurrence = SELECT
(date_time_select);
END_TYPE; -- date_time_or_event_occurrence
TYPE date_time_select = SELECT
(date,
local_time,
date_and_time);
END_TYPE; -- date_time_select
TYPE day_in_month_number = INTEGER;
WHERE
wr1: ((1 <= SELF) AND (SELF <= 31));
END_TYPE; -- day_in_month_number
TYPE day_in_week_number = INTEGER;
WHERE
wr1: ((1 <= SELF) AND (SELF <= 7));
END_TYPE; -- day_in_week_number
TYPE day_in_year_number = INTEGER;
WHERE
wr1: ((1 <= SELF) AND (SELF <= 366));
END_TYPE; -- day_in_year_number
TYPE derived_property_select = SELECT
(property_definition);
END_TYPE; -- derived_property_select
TYPE description_attribute_select = SELECT
(action_request_solution,
application_context,
approval_role,
date_time_role,
effectivity,
external_source,
organization_role,
person_and_organization_role,
person_and_organization,
person_role,
property_definition_representation,
representation);
END_TYPE; -- description_attribute_select
TYPE dimension_count = INTEGER;
WHERE
wr1: (SELF > 0);
END_TYPE; -- dimension_count
TYPE document_reference_item = SELECT
(action,
product,
property_definition,
product_definition);
END_TYPE; -- document_reference_item
TYPE effectivity_item = SELECT
(product_definition,
property_definition,
product_definition_shape,
product_related_product_category);
END_TYPE; -- effectivity_item
TYPE electric_current_measure = REAL;
END_TYPE; -- electric_current_measure
TYPE external_identification_item = SELECT
(action,
document,
product,
product_definition,
product_definition_relationship,
property_definition);
END_TYPE; -- external_identification_item
TYPE founded_item_select = SELECT
(founded_item,
representation_item);
END_TYPE; -- founded_item_select
TYPE geometric_set_select = SELECT
(point,
curve,
surface);
END_TYPE; -- geometric_set_select
TYPE group_item = SELECT
(approval,
identification_assignment_relationship,
product_definition,
product_definition_relationship);
END_TYPE; -- group_item
TYPE hour_in_day = INTEGER;
WHERE
wr1: ((0 <= SELF) AND (SELF < 24)); END_TYPE; -- hour_in_day
TYPE id_attribute_select = SELECT
(action,
address,
product_category,
property_definition,
shape_aspect,
application_context,
group,
organizational_project,
representation);
END_TYPE; -- id_attribute_select
TYPE identification item = SELECT
(action,
action_request_solution,
compound_representation_item,
document,
executed_action,
group,
product,
product_definition,
product_definition_relationship,
product_definition_shape,
product_related_product_category,
property_definition,
surface,
versioned_action_request);
END_TYPE; -- identification_item
TYPE identifier = STRING;
END_TYPE; -- identifier
TYPE knot_type = ENUMERATION OF
(uniform_knots,
quasi_uniform_knots,
piecewise_bezier_knots,
unspecified);
END_TYPE; -- knot_type
TYPE label = STRING;
END_TYPE; -- label:
TYPE length_measure = REAL;
END_TYPE; -- length_measure
TYPE list_of_reversible_topology_item = LIST [0:?] OF
reversible_topology_item;
END_TYPE; -- list_of_reversible_topology_item
TYPE list_representation_item = LIST [1:?] OF representation_item;
END_TYPE; -- list_representation_item
TYPE luminous_intensity_measure = REAL;
END_TYPE; -- luminous_intensity_measure
TYPE mass_measure = REAL;
END_TYPE; -- mass_measure
TYPE measure value = SELECT
(length_measure,
mass_measure,
time_measure,
electric_current_measure,
thermodynamic temperature measure,
celsius temperature measure,
context_dependent_measure,
amount_of substance_measure,
luminous_intensity_measure,
plane_angle_measure,
solid_angle_measure,
area_measure,
volume_measure,
ratio_measure,
parameter_value,
positive_length_measure,
positive_plane_angle_measure,
count_measure);
END_TYPE; -- measure_value
TYPE minute_in_hour = INTEGER;
WHERE
wr1: ((0 <= SELF) AND (SELF <= 59));
END_TYPE; -- minute_in_hour
TYPE month_in_year_number = INTEGER;
WHERE
wr1: ((1 <= SELF) AND (SELF <= 12));
END_TYPE; -- month_in_year_number
TYPE name_attribute_select = SELECT
(action_request_solution,
address,
derived_unit,
effectivity,
person_and_organization,
product_definition,
property_definition_representation);
END_TYPE; -- name_attribute_select
TYPE organization_item = SELECT
(document,
product_definition,
property_definition);
END_TYPE; -- organization_item
TYPE parameter_value = REAL;
END_TYPE; -- parameter_value
TYPE pcurve_or_surface = SELECT
(pcurve,
surface);
END_TYPE; -- pcurve_or_surface
TYPE person_and_organization_item = SELECT
(action_request_solution,
document, executed_action,
versioned_action_request,
action);
END_TYPE; -- person_and_organization_item
TYPE person_item = SELECT
(document);
END_TYPE; -- person_item
TYPE person_organization_select = SELECT
(person,
organization,
person_and_organization);
TYPE plane_angle_measure = REAL;
END_TYPE; -- plane_angle_measure
TYPE positive_length_measure = length_measure;
WHERE
wr1: (SELF > 0);
END_TYPE; -- positive_length_measure
TYPE positive_plane_angle_measure = plane_angle_measure;
WHERE
wr1: (SELF > 0);
END_TYPE; -- positive_plane_angle_measure
TYPE preferred_surface_curve_representation = ENUMERATION OF
(curve_3d,
pcurve_s1,
pcurve_s2);
END_TYPE; -- preferred_surface_curve_representation
TYPE product_or_formation_or_definition = SELECT
(product,
product_definition_formation,
product_definition);
END_TYPE; -- product_or_formation_or_definition
TYPE ratio_measure = REAL;
END_TYPE; -- ratio_measure
TYPE represented_definition = SELECT
(property_definition,
property_definition_relationship,
shape_aspect);
END_TYPE; -- represented_definition
TYPE reversible_topology = SELECT
(reversible_topology_item,
list_of_reversible_topology_item,
set_of_reversible_topology_item);
END_TYPE; -- reversible_topology
TYPE reversible_topology_item = SELECT
(edge,
path,
face,
face_bound,
closed_shell,
open_shell);
END_TYPE; -- reversible_topology_item
TYPE role_select = SELECT
(action_assignment,
action_request_assignment,
approval_assignment,
approval_date_time,
document_reference,
effectivity_assignment,
group_assignment);
END_TYPE; -- role_select
TYPE second_in_minute = REAL;
WHERE
wr1: ((0 <= SELF) AND (SELF <= 60));
END_TYPE; -- second_in_minute
TYPE set_of_reversible_topology_item = SET [0:?] OF reversible_topology_item;
END_TYPE; -- set_of_reversible_topology_item
TYPE set_representation_item = SET [1:?] OF representation_item;
END_TYPE; -- set_representation_item
TYPE shape_definition = SELECT
(product_definition_shape,
shape_aspect);
END_TYPE; -- shape_definition
TYPE shell = SELECT
(open_shell,
closed_shell);
END_TYPE; -- shell
TYPE si_prefix = ENUMERATION OF
(exa,
peta,
tera,
giga,
mega,
kilo,
hecto,
deca,
deci,
centi,
milli,
micro,
nano,
pico,
femto,
atto);
END_TYPE; -- si_prefix
TYPE si_unit_name = ENUMERATION OF
(metre,
gram,
second,
ampere,
kelvin,
mole,
candela,
radian,
steradian,
hertz,
newton,
pascal,
joule,
watt,
coulomb,
volt,
farad,
ohm,
siemens,
weber,
tesla,
henry,
degree_celsius,
lumen,
lux,
becquerel,
gray,
sievert);
END_TYPE; -- si_unit_name
TYPE solid_angle_measure = REAL;
END_TYPE; -- solid_angle_measure
TYPE source_item = SELECT
(identifier);
END_TYPE; -- source_item
TYPE supported_item = SELECT
(action,
action_method);
END_TYPE; -- supported_item
TYPE surface_boundary = SELECT
(degenerate_pcurve);
END_TYPE; -- surface_boundary
TYPE surface_model = SELECT
(face_based_surface_model);
END_TYPE; -- surface_model
TYPE text = STRING;
END_TYPE; -- text
TYPE thermodynamic_temperature_measure = REAL;
END_TYPE; -- thermodynamic_temperature_measure
TYPE time_measure = REAL;
END_TYPE; -- time_measure
TYPE transformation = SELECT
(item_defined_transformation,
functionally_defined_transformation);
TYPE transition_code = ENUMERATION OF
(discontinuous,
continuous,
cont_same_gradient,
cont_same_gradient_same_curvature);
END_TYPE; -- transition_code
TYPE trimming_select = SELECT
(cartesian_point,
parameter_value);
END_TYPE; -- trimming_select
TYPE unit = SELECT
(named_unit,
derived_unit);
END_TYPE; -- unit
TYPE vector_or_direction = SELECT
(vector,
direction);
END_TYPE; -- vector_or_direction
TYPE volume_measure = REAL;
END_TYPE; -- volume_measure
TYPE week_in_year_number = INTEGER;
WHERE
wr1: ((1 <= SELF) AND (SELF <= 53));
END_TYPE; -- week_in_year_number
TYPE wireframe_model = SELECT
(edge_based_wireframe_model);
END_TYPE; -- wireframe_model
TYPE year_number = INTEGER;
END_TYPE; -- year_number
ENTITY action;
name : label;
description : OPTIONAL text;
chosen_method : action_method;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1);
END_ENTITY; -- action
ENTITY action_assignment
ABSTRACT SUPERTYPE;
assigned_action : action;
DERIVE
role : object_role := get_role(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1);
END_ENTITY; -- action_assignment
ENTITY action_method;
name : label;
description : OPTIONAL text;
consequence : text;
purpose : text;
END_ENTITY; -- action_method
ENTITY action_relationship;
name : label;
description : OPTIONAL text;
relating_action : action;
related_action : action;
END_ENTITY; -- action_relationship
ENTITY action_request_assignment
ABSTRACT SUPERTYPE;
assigned_action_request : versioned_action_request;
DERIVE
role : object_role := get_role(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1);
END_ENTITY; -- action_request_assignment
ENTITY action_request_solution;
method : action_method;
request : versioned_action_request;
DERIVE
description : text := get_description_value(SELF);
name : label := get_name_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
wr2: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1);
END_ENTITY; -- action_request_solution
ENTITY address;
internal_location : OPTIONAL label;
street_number : OPTIONAL label;
street : OPTIONAL label;
postal_box : OPTIONAL label;
town : OPTIONAL label;
region : OPTIONAL label;
postal_code : OPTIONAL label;
country : OPTIONAL label;
facsimile_number : OPTIONAL label;
telephone_number : OPTIONAL label;
electronic_mail_address : OPTIONAL label;
telex_number : OPTIONAL label;
DERIVE
name : label := get_name_value(SELF);
url : identifier := get_id_value(SELF);
WHERE
wr1: (EXISTS(internal_location) OR EXISTS(street_number)
OR EXISTS(street) OR EXISTS(postal_box) OR EXISTS(town) OR EXISTS(region)
OR EXISTS(postal_code) OR EXISTS(country)
OR EXISTS(facsimile_number) OR EXISTS(telephone_number)
OR EXISTS(electronic_mail_address) OR EXISTS(telex_number));
END_ENTITY; -- address
ENTITY advanced_face
SUBTYPE OF (face_surface);
WHERE
wr1 : (SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.ELEMENTARY_SURFACE',
'SHIP_MOULDED_FORM_SCHEMA.B_SPLINE_SURFACE',
'SHIP_MOULDED_FORM_SCHEMA.SWEPT_SURFACE'] * TYPEOF( face_geometry)) = 1);
wr2 : (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | (
'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) )
| (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path. edge_list | (NOT
('SHIP_MOULDED_FORM_SCHEMA.EDGE_CURVE' IN
TYPEOF(oe\oriented_edge.edge_element))) )) =0)) )) = 0);
wr3 : (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | (
'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) )
| (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path. edge_list
| (NOT (SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.LINE',
'SHIP_MOULDED_FORM_SCHEMA.CONIC',
'SHIP_MOULDED_FORM_SCHEMA.POLYLINE',
'SHIP_MOULDED_FORM_SCHEMA.SURFACE_CURVE',
'SHIP_MOULDED_FORM_SCHEMA.B_SPLINE_CURVE'] *
TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1)) )) = 0)) )) = 0);
wr4 : (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | (
'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) )
| (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path.edge_list
| (NOT (('SHIP_MOULDED_FORM_SCHEMA.VERTEX_POINT'
IN TYPEOF(oe\edge.edge_start)) AND (
'SHIP_MOULDED_FORM_SCHEMA.CARTESIAN_POINT' IN TYPEOF(oe\
edge.edge_start\vertex_point.vertex_geometry)) AND (
'SHIP_MOULDED_FORM_SCHEMA.VERTEX_POINT' IN
TYPEOF(oe\ edge.edge_end)) AND
('SHIP_MOULDED_FORM_SCHEMA.CARTESIAN_POINT' IN
TYPEOF(oe\edge.edge_end\vertex_point.vertex_geometry)))) )) = 0)) )) = 0);
wr5 : (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | (
'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) )
| ('SHIP_MOULDED_FORM_SCHEMA.ORIENTED_PATH' IN
TYPEOF(elp_fbnds.bound)) )) = 0);
wr6 : ((NOT ('SHIP_MOULDED_FORM_SCHEMA.SWEPT_SURFACE' IN TYPEOF(
face_geometry))) OR (SIZEOF([
'SHIP_MOULDED_FORM_SCHEMA.LINE',
'SHIP_MOULDED_FORM_SCHEMA.CONIC',
'SHIP_MOULDED_FORM_SCHEMA.POLYLINE',
'SHIP_MOULDED_FORM_SCHEMA.B_SPLINE_CURVE'] * TYPEOF(
face_geometry\swept_surface.swept_curve)) = 1));
wr7 : (SIZEOF(QUERY ( vlp_fbnds <* QUERY ( bnds <* bounds | (
'SHIP_MOULDED_FORM_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)) )
| (NOT (('SHIP_MOULDED_FORM_SCHEMA.VERTEX_POINT' IN
TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex))
AND ('SHIP_MOULDED_FORM_SCHEMA.CARTESIAN_POINT' IN TYPEOF(
vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\
vertex_point.vertex_geometry)))) )) = 0);
wr8 : (SIZEOF(QUERY ( bnd <* bounds | (NOT (SIZEOF([
'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP',
'SHIP_MOULDED_FORM_SCHEMA.VERTEX_LOOP'] * TYPEOF(bnd.bound)) = 1)) )) = 0);
wr9 : (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | (
'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) )
| (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path.edge_list |
(('SHIP_MOULDED_FORM_SCHEMA.SURFACE_CURVE' IN
TYPEOF(oe\oriented_edge.edge_element\edge_curve.
edge_geometry)) AND (NOT (SIZEOF(QUERY ( sc_ag <*
oe.edge_element\edge_curve.edge_geometry\surface_curve.
associated_geometry | (NOT (
'SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(sc_ag))) )) = 0))) ))
= 0)) )) = 0);
wr10: (((NOT ('SHIP_MOULDED_FORM_SCHEMA.SWEPT_SURFACE' IN TYPEOF(
face_geometry))) OR (NOT (
'SHIP_MOULDED_FORM_SCHEMA.POLYLINE' IN TYPEOF(face_geometry
\swept_surface.swept_curve))) OR
(SIZEOF(face_geometry\swept_surface.swept_curve\polyline.points) >= 3))
AND (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds |
('SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) )
| (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path.
edge_list | (('SHIP_MOULDED_FORM_SCHEMA.POLYLINE' IN
TYPEOF(oe\oriented_edge.edge_element\edge_curve.
edge_geometry)) AND (NOT (SIZEOF(oe\oriented_edge.
edge_element\edge_curve.edge_geometry\polyline.points) >= 3))) ))
= 0)) )) = 0));
END_ENTITY; -- advanced_face
ENTITY amount_of_substance_unit
SUBTYPE OF (named_unit);
WHERE
wr1: ((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF\
named_unit.dimensions.mass_exponent = 0) AND (SELF\
named_unit.dimensions.time_exponent = 0) AND (SELF\
named_unit.dimensions.electric_current_exponent = 0) AND (
SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 1) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0));
END_ENTITY; -- amount_of_substance_unit
ENTITY application_context;
application : label;
DERIVE
description : text := get_description_value(SELF);
id : identifier := get_id_value(SELF);
INVERSE
context_elements : SET [1:?] OF application_context_element FOR
frame_of_reference;
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
wr2: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1);
END_ENTITY; -- application_context
ENTITY application_context_element
SUPERTYPE OF (ONE OF (product_context,product_definition_context));
name : label;
frame_of_reference : application_context;
END_ENTITY; -- application_context_element
ENTITY application_protocol_definition;
status : label;
application_interpreted_model_schema_name : label;
application_protocol_year : year_number;
application : application_context;
END_ENTITY; -- application_protocol_definition
ENTITY applied_action_assignment
SUBTYPE OF (action_assignment);
items : SET [1:?] OF action_item;
END_ENTITY; -- applied_action_assignment
ENTITY applied_action_request_assignment
SUBTYPE OF (action_request_assignment);
items : SET [1:?] OF action_request_item;
END_ENTITY; -- applied_action_request_assignment
ENTITY applied_approval_assignment
SUBTYPE OF (approval_assignment);
items : SET [1:?] OF approval_item;
WHERE
wr1: ((NOT (SELF\approval_assignment.role.name =
'proposed alternative')) OR (SIZEOF(QUERY ( app <*USEDIN(
SELF\approval_assignment.assigned_approval,'SHIP_MOULDED_FORM_SCHEMA
.APPROVAL_ASSIGNMENT.ASSIGNED_APPROVAL') |
(('SHIP_MOULDED_FORM_SCHEMA.APPLIED_APPROVAL_ASSIGNMENT'
IN TYPEOF(app)) AND
(app\approval_assignment.role.name ='subject')) )) = 1));
END_ENTITY; -- applied_approval_assignment
ENTITY applied_classification_assignment
SUBTYPE OF (classification_assignment);
items : SET [1:?] OF classification_item;
END_ENTITY; -- applied_classification_assignment
ENTITY applied_date_and_time_assignment
SUBTYPE OF (date_and_time_assignment);
items : SET [1:?] OF date_and_time_item;
END_ENTITY; -- applied_date_and_time_assignment
ENTITY applied_document_reference
SUBTYPE OF (document_reference);
items : SET [1:?] OF document_reference_item;
END_ENTITY; -- applied_document_reference
ENTITY applied_effectivity_assignment
SUBTYPE OF (effectivity_assignment);
items : SET [1:?] OF effectivity_item;
END_ENTITY; -- applied_effectivity_assignment
ENTITY applied_external_identification_assignment
SUBTYPE OF (external_identification_assignment);
items : SET [1:?] OF external_identification_item;
END_ENTITY; -- applied_external_identification_assignment
ENTITY applied_group_assignment
SUBTYPE OF (group_assignment);
items : SET [1:?] OF group_item;
END_ENTITY; -- applied_group_assignment
ENTITY applied_identification_assignment
SUBTYPE OF (identification_assignment);
items : SET [1:?] OF identification_item;
END_ENTITY; -- applied_identification_assignment
ENTITY applied_organization_assignment
SUBTYPE OF (organization_assignment);
items : SET [1:?] OF organization_item;
END_ENTITY; -- applied_organization_assignment
ENTITY applied_person_and_organization_assignment
SUBTYPE OF (person_and_organization_assignment);
items : SET [1:?] OF person_and_organization_item;
END_ENTITY; -- applied_person_and_organization_assignment
ENTITY applied_person_assignment
SUBTYPE OF (person_assignment);
items : SET [1:?] OF person_item;
END_ENTITY; -- applied_person_assignment
ENTITY approval;
status : approval_status;
level : label;
END_ENTITY; -- approval
ENTITY approval_assignment
ABSTRACT SUPERTYPE;
assigned_approval : approval;
DERIVE
role : object_role := get_role(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1);
END_ENTITY; -- approval_assignment
ENTITY approval_date_time;
date_time : date_time_select;
dated_approval : approval;
DERIVE
role : object_role := get_role(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1);
END_ENTITY; -- approval_date_time
ENTITY approval_person_organization;
person_organization : person_organization_select;
authorized_approval : approval;
role :approval_role;
END_ENTITY; -- approval_person_organization
ENTITY approval_role;
role : label;
DERIVE
description : text := get_description_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
END_ENTITY; -- approval_role
ENTITY approval_status;
name : label;
END_ENTITY; -- approval_status
ENTITY axis1_placement
SUBTYPE OF (placement);
axis : OPTIONAL direction;
DERIVE
z : direction := NVL(normalise(axis),dummy_gri || direction([0,0,1]));
WHERE
wr1: (SELF\geometric_representation_item.dim = 3);
END_ENTITY; -- axis1_placement
ENTITY axis2_placement_2d
SUBTYPE OF (placement);
ref_direction : OPTIONAL direction;
DERIVE
p : LIST [2:2] OF direction := build_2axes(ref_direction);
WHERE
wr1: (SELF\geometric_representation_item.dim = 2);
END_ENTITY; -- axis2_placement_2d
ENTITY axis2_placement_3d
SUBTYPE OF (placement);
axis : OPTIONAL direction;
ref_direction : OPTIONAL direction;
DERIVE
p : LIST [3:3] OF direction := build_axes(axis,ref_direction);
WHERE
wr1: (SELF\placement.location.dim = 3);
wr2: ((NOT EXISTS(axis)) OR (axis.dim = 3));
wr3: ((NOT EXISTS(ref_direction)) OR (ref_direction.dim = 3));
wr4: ((NOT EXISTS(axis)) OR (NOT EXISTS(ref_direction)) OR (
cross_product(axis,ref_direction).magnitude > 0));
END_ENTITY; -- axis2_placement_3d
ENTITY b_spline_curve
SUPERTYPE OF (ONEOF (uniform_curve,b_spline_curve_with_knots,
quasi_uniform_curve,bezier_curve) ANDOR rational_b_spline_curve)
SUBTYPE OF (bounded_curve);
degree : INTEGER;
control_points_list : LIST [2:?] OF cartesian_point;
curve_form : b_spline_curve_form;
closed_curve : LOGICAL;
self_intersect : LOGICAL;
DERIVE
upper_index_on_control_points : INTEGER := SIZEOF(control_points_list) - 1;
control_points : ARRAY [0:upper_index_on_control_points] OF
cartesian_point := list_to_array( control_points_list,0, upper_index_on_control_points);
WHERE
wr1: (('SHIP_MOULDED_FORM_SCHEMA.UNIFORM_CURVE' IN TYPEOF(SELF)) OR
('SHIP_MOULDED_FORM_SCHEMA.QUASI_UNIFORM_CURVE' IN
TYPEOF(SELF)) OR ('SHIP_MOULDED_FORM_SCHEMA.BEZIER_CURVE' IN
TYPEOF(SELF)) OR ('SHIP_MOULDED_FORM_SCHEMA.B_SPLINE_CURVE_WITH_KNOTS'
IN TYPEOF(SELF)));
END_ENTITY; -- b_spline_curve
ENTITY b_spline_curve_with_knots
SUBTYPE OF (b_spline_curve);
knot_multiplicities : LIST [2:?] OF INTEGER;
knots : LIST [2:?] OF parameter_value;
knot_spec : knot_type;
DERIVE
upper_index_on_knots : INTEGER := SIZEOF(knots);
WHERE
wr1: constraints_param_b_spline(degree,upper_index_on_knots,
upper_index_on_control_points,knot_multiplicities,knots);
wr2: (SIZEOF(knot_multiplicities) = upper_index_on_knots);
END_ENTITY; -- b_spline_curve_with_knots
ENTITY b_spline_surface
SUPERTYPE OF (ONEOF
(b_spline_surface_with_knots,uniform_surface,
quasi_uniform_surface,bezier_surface) ANDOR
rational_b_spline_surface)
SUBTYPE OF (bounded_surface);
u_degree : INTEGER;
v_degree : INTEGER;
control_points_list : LIST [2:?] OF LIST [2:?] OF cartesian_point;
surface_form : b_spline_surface_form;
U_closed : LOGICAL;
v_closed : LOGICAL;
self_intersect : LOGICAL;
DERIVE
u_upper : INTEGER := SIZEOF(control_points_list) - 1;
v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1;
control_points : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF
cartesian_point := make_array_of_array(
control_points_list,0,u_upper,0,v_upper);
WHERE
wr1: (('SHIP_MOULDED_FORM_SCHEMA.UNIFORM_SURFACE' IN TYPEOF(SELF))
OR ('SHIP_MOULDED_FORM_SCHEMA.QUASI_UNIFORM_SURFACE'
IN TYPEOF(SELF)) OR ('SHIP_MOULDED_FORM_SCHEMA.BEZIER_SURFACE'
IN TYPEOF(SELF)) OR (
'SHIP_MOULDED_FORM_SCHEMA.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF)));
END_ENTITY; -- b_spline_surface
ENTITY b_spline_surface_with_knots
SUBTYPE OF (b_spline_surface);
u_multiplicities : LIST [2:?] OF INTEGER;
v_multiplicities : LIST [2:?] OF INTEGER;
u_knots : LIST [2:?] OF parameter_value;
v_knots : LIST [2:?] OF parameter_value;
knot_spec : knot_type;
DERIVE
knot_u_upper : INTEGER := SIZEOF(u_knots);
knot_v_upper : INTEGER := SIZEOF(v_knots);
WHERE
wr1: constraints_param_b_spline(SELF\b_spline_surface.u_degree,
knot_u_upper,SELF\b_spline_surface.u_upper,u_multiplicities,u_knots);
wr2: constraints_param_b_spline(SELF\b_spline_surface.v_degree,
knot_v_upper,SELF\b_spline_surface.v_upper,v_multiplicities,v_knots);
wr3: (SIZEOF(u_multiplicities) = knot_u_upper);
wr4: (SIZEOF(v_multiplicities) = knot_v_upper);
END_ENTITY; -- b_spline_surface_with_knots
ENTITY bezier_curve
SUBTYPE OF (b_spline_curve);
END_ENTITY; -- bezier_curve
ENTITY bezier_surface
SUBTYPE OF (b_spline_surface);
END_ENTITY; -- bezier_surface
ENTITY bounded_curve
SUPERTYPE OF (ONEOF (polyline,b_spline_curve,bounded_pcurve,
bounded_surface_curve,composite_curve))
SUBTYPE OF (curve);
END_ENTITY; -- bounded_curve
ENTITY bounded_pcurve
SUBTYPE OF (pcurve, bounded_curve);
WHERE
wr1: ('SHIP_MOULDED_FORM_SCHEMA.BOUNDED_CURVE' IN TYPEOF(
SELF\pcurve.reference_to_curve.items[1]));
END_ENTITY; -- bounded_pcurve
ENTITY bounded_surface
SUPERTYPE OF (b_spline_surface)
SUBTYPE OF (surface);
END_ENTITY; -- bounded_surface
ENTITY bounded_surface_curve
SUBTYPE OF (surface_curve, bounded_curve);
WHERE
wr1: ('SHIP_MOULDED_FORM_SCHEMA.BOUNDED_CURVE' IN TYPEOF(SELF\
surface_curve.curve_3d));
END_ENTITY; -- bounded_surface_curve
ENTITY calendar_date
SUBTYPE OF (date);
day_component : day_in_month_number;
month_component : month_in_year_number;
WHERE
wr1: valid_calendar_date(SELF);
END_ENTITY; -- calendar_date
ENTITY cartesian_point
SUBTYPE OF (point);
coordinates : LIST [1:3] OF length_measure;
END_ENTITY; -- cartesian_point
ENTITY cartesian_transformation_operator
SUPERTYPE OF (cartesian_transformation_operator_3d)
SUBTYPE OF (geometric_representation_item,
functionally_defined_transformation);
axis1 : OPTIONAL direction;
axis2 : OPTIONAL direction;
local_origin : cartesian_point;
scale : OPTIONAL REAL;
DERIVE
scl : REAL := NVL(scale,1);
WHERE
wr1: (scl > 0);
END_ENTITY; -- cartesian_transformation_operator
ENTITY cartesian_transformation_operator_3d
SUBTYPE OF (cartesian_transformation_operator);
axis3 : OPTIONAL direction;
DERIVE
u : LIST [3:3] OF direction := base_axis(3,SELF\
cartesian_transformation_operator.axis1,SELF\
cartesian_transformation_operator.axis2,axis3);
WHERE
wr1: (SELF\geometric_representation_item.dim = 3);
END_ENTITY; -- cartesian_transformation_operator_3d
ENTITY characterized_object;
name : label;
description : OPTIONAL text;
END_ENTITY; -- characterized_object
ENTITY circle
SUBTYPE OF (conic);
radius : positive_length_measure;
END_ENTITY; -- circle
ENTITY class
SUBTYPE OF (group);
WHERE
wr1: (SIZEOF(QUERY ( oa <* USEDIN(SELF,
'SHIP_MOULDED_FORM_SCHEMA.GROUP_ASSIGNMENT.ASSIGNED_GROUP')
| (NOT ('SHIP_MOULDED_FORM_SCHEMA.APPLIED_GROUP_ASSIGNMENT'
IN TYPEOF(oa))) )) = 0);
END_ENTITY; -- class
ENTITY classification_assignment
ABSTRACT SUPERTYPE;
assigned_class : group;
role : classification_role;
END_ENTITY; -- classification_assignment
ENTITY classification_role;
name : label;
description : OPTIONAL text;
END_ENTITY; -- classification_role
ENTITY closed_shell
SUBTYPE OF (connected_face_set);
END_ENTITY; -- closed_shell
ENTITY composite_curve
SUBTYPE OF (bounded_curve);
segments : LIST [1:?] OF composite_curve_segment;
self_intersect : LOGICAL;
DERIVE
n_segments : INTEGER := SIZEOF(segments);
closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous;
WHERE
wr1: (((NOT closed_curve) AND (SIZEOF(QUERY ( temp <* segments|
(temp.transition = discontinuous) )) = 1)) OR
(closed_curve AND (SIZEOF(QUERY ( temp <* segments |
(temp.transition = discontinuous) )) = 0)));
END_ENTITY; -- composite_curve
ENTITY composite_curve_on_surface
SUBTYPE OF (composite_curve);
DERIVE
basis_surface : SET [0:2] OF surface := get_basis_surface(SELF);
WHERE
wr1: (SIZEOF(basis_surface) > 0);
wr2: constraints_composite_curve_on_surface(SELF);
END_ENTITY; -- composite_curve_on_surface
ENTITY composite_curve_segment
SUBTYPE OF (founded_item);
transition : transition_code;
same_sense : BOOLEAN;
parent_curve : curve;
INVERSE
using_curves : BAG [1:?] OF composite_curve FOR segments;
WHERE
wr1: ('SHIP_MOULDED_FORM_SCHEMA.BOUNDED_CURVE' IN TYPEOF(parent_curve));
END_ENTITY; -- composite_curve_segment
ENTITY compound_representation_item
SUBTYPE OF (representation_item);
item_element : compound_item_definition;
END_ENTITY; -- compound_representation_item
ENTITY conic
SUPERTYPE OF (ONEOF (circle,ellipse,hyperbola,parabola))
SUBTYPE OF (curve);
position : axis2_placement;
END_ENTITY; -- conic
ENTITY conical_surface
SUBTYPE OF (elementary_surface);
radius : length_measure;
semi_angle : plane_angle_measure;
WHERE
wr1: (radius >= 0);
END_ENTITY; -- conical_surface
ENTITY connected_edge_set
SUBTYPE OF (topological_representation_item);
ces_edges : SET [1:?] OF edge;
END_ENTITY; -- connected_edge_set
ENTITY connected_face_set
SUPERTYPE OF (ONEOF (closed_shell,open_shell))
SUBTYPE OF (topological_representation_item);
cfs_faces : SET [1:?] OF face;
END_ENTITY; -- connected_face_set
ENTITY context_dependent_unit
SUBTYPE OF (named_unit);
name : label;
END_ENTITY; -- context_dependent_unit
ENTITY conversion_based_unit
SUBTYPE OF (named_unit);
name : label;
conversion_factor : measure_with_unit;
END_ENTITY; -- conversion_based_unit
ENTITY coordinated_universal_time_offset;
hour_offset : INTEGER;
minute_offset : OPTIONAL INTEGER;
sense : ahead_or_behind;
DERIVE
actual_minute_offset : INTEGER := NVL(minute_offset,0);
WHERE
wr1: ((0 <= hour_offset) AND (hour_offset < 24));
wr2: ((0 <= actual_minute_offset) AND (actual_minute_offset <= 59));
wr3: (NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0))
AND (sense = exact)));
END_ENTITY; -- coordinated_universal_time_offset
ENTITY curve
SUPERTYPE OF (ONEOF
(line,conic,pcurve,surface_curve,offset_curve_3d,
curve_replica))
SUBTYPE OF (geometric_representation_item);
END_ENTITY; -- curve
ENTITY curve_replica
SUBTYPE OF (curve);
parent_curve : curve;
transformation : cartesian_transformation_operator;
WHERE
wr1: (transformation.dim = parent_curve.dim);
wr2: acyclic_curve_replica(SELF,parent_curve);
END_ENTITY; -- curve_replica
ENTITY cylindrical_surface
SUBTYPE OF (elementary_surface);
radius : positive_length_measure;
END_ENTITY; -- cylindrical_surface
ENTITY date
SUPERTYPE OF (ONEOF (calendar_date,ordinal_date,
week_of_year_and_day_date));
year_component : year_number;
END_ENTITY; -- date
ENTITY date_and_time;
date_component : date;
time_component : local_time;
END_ENTITY; -- date_and_time
ENTITY date_and_time_assignment
ABSTRACT SUPERTYPE;
assigned_date_and_time : date_and_time;
role : date_time_role;
END_ENTITY; -- date_and_time_assignment
ENTITY date_time_role;
name : label;
DERIVE
description : text := get_description_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
END_ENTITY; -- date_time_role
ENTITY definitional_representation
SUBTYPE OF (representation);
WHERE
wr1: ('SHIP_MOULDED_FORM_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT'
IN TYPEOF(SELF\representation.context_of_items));
END_ENTITY; -- definitional_representation
ENTITY degenerate_pcurve
SUBTYPE OF (point);
basis_surface: surface;
reference_to_curve : definitional_representation;
WHERE
wr1: (SIZEOF(reference_to_curve\representation.items) = 1);
wr2: ('SHIP_MOULDED_FORM_SCHEMA.CURVE' IN TYPEOF(reference_to_curve\
representation.items[1]));
wr3: (reference_to_curve\representation.items[1]\
geometric_representation_item.dim = 2);
END_ENTITY; -- degenerate_pcurve
ENTITY degenerate_toroidal_surface
SUBTYPE OF (toroidal_surface);
select_outer : BOOLEAN;
WHERE
wr1: (major_radius < minor_radius);
END_ENTITY; -- degenerate_toroidal_surface
ENTITY derived_unit;
elements : SET [1:?] OF derived_unit_element;
DERIVE
name : label := get_name_value(SELF);
WHERE
wr1: ((SIZEOF(elements) > 1) OR ((SIZEOF(elements) = 1) AND (
elements[1].exponent <> 1)));
wr2: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1);
END_ENTITY; -- derived_unit
ENTITY derived_unit_element;
unit : named_unit;
exponent : REAL;
END_ENTITY; -- derived_unit_element
ENTITY description_attribute;
attribute_value : text;
described_item : description_attribute_select;
END_ENTITY; -- description_attribute
ENTITY descriptive_representation_item
SUBTYPE OF (representation_item);
description : text;
END_ENTITY; -- descriptive_representation_item
ENTITY dimensional_exponents;
length_exponent : REAL;
mass_exponent : REAL;
time_exponent : REAL;
electric_current_exponent : REAL;
thermodynamic_temperature_exponent : REAL;
amount_of_substance_exponent : REAL;
luminous_intensity_exponent : REAL;
END_ENTITY; -- dimensional_exponents
ENTITY direction
SUBTYPE OF (geometric_representation_item);
direction_ratios : LIST [2:3] OF REAL;
WHERE
wr1: (SIZEOF(QUERY ( tmp <* direction_ratios | (tmp <> 0) )) > 0);
END_ENTITY; -- direction
ENTITY document;
id : identifier;
name : label;
description : OPTIONAL text;
kind : document_type;
INVERSE
representation_types : SET [0:?] OF
document_representation_type FOR
represented_document;
END ENTITY; -- document
ENTITY document_reference
ABSTRACT SUPERTYPE;
assigned_document : document;
source : label;
DERIVE
role : object_role := get_role(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1);
END_ENTITY; -- document_reference
ENTITY document_representation_type;
name : label;
represented_document : document;
END_ENTITY; -- document_representation_type
ENTITY document_type;
product_data_type : label;
END_ENTITY; -- document_type
ENTITY document_usage_constraint;
source : document;
subject_element : label;
subject_element_value : text;
END_ENTITY; -- document_usage_constraint
ENTITY edge
SUPERTYPE OF (ONEOF (edge_curve,oriented_edge))
SUBTYPE OF (topological_representation_item);
edge_start : vertex;
edge_end : vertex;
END_ENTITY; -- edge
ENTITY edge_based_wireframe_model
SUBTYPE OF (geometric_representation_item);
ebwm_boundary : SET [1:?] OF connected_edge_set;
END_ENTITY; -- edge_based_wireframe_model
ENTITY edge_based_wireframe_shape_representation
SUBTYPE OF (shape_representation);
WHERE
wr1: (SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([
'SHIP_MOULDED_FORM_SCHEMA.EDGE_BASED_WIREFRAME_MODEL',
'SHIP_MOULDED_FORM_SCHEMA.MAPPED_ITEM',
'SHIP_MOULDED_FORM_SCHEMA.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1)) )) = 0)
wr2: (SIZEOF(QUERY ( it <* SELF.items | (SIZEOF([
'SHIP_MOULDED_FORM_SCHEMA.EDGE_BASED_WIREFRAME_MODEL',
'SHIP_MOULDED_FORM_SCHEMA.MAPPED_ITEM'] * TYPEOF(it)) = 1) )) >= 1);
wr3: (SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items |(
'SHIP_MOULDED_FORM_SCHEMA.EDGE_BASED_WIREFRAME_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\
edge_based_wireframe_model.ebwm_boundary | (NOT
(SIZEOF(QUERY ( edges <* eb.ces_edges | (NOT (
'SHIP_MOULDED_FORM_SCHEMA.EDGE_CURVE' IN TYPEOF(edges))) ))
= 0)) )) = 0)) )) = 0);
wr4: (SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items |(
'SHIP_MOULDED_FORM_SCHEMA.EDGE_BASED_WIREFRAME_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\
edge_based_wireframe_model.ebwm_boundary | (NOT
(SIZEOF(QUERY ( pline_edges <* QUERY ( edges <* eb.ces_edges
| ('SHIP_MOULDED_FORM_SCHEMA.POLYLINE' IN TYPEOF(edges\
edge_curve.edge_geometry)) ) | (NOT
(SIZEOF(pline_edges\edge_curve.edge_geometry\polyline.points) > 2)) )) = 0)) ))
= 0)) )) = 0);
wr5: (SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items |(
'SHIP_MOULDED_FORM_SCHEMA.EDGE_BASED_WIREFRAME_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\
edge_based_wireframe_model.ebwm_boundary | (NOT
(SIZEOF(QUERY ( edges <* eb.ces_edges | (NOT ((
'SHIP_MOULDED_FORM_SCHEMA.VERTEX_POINT' IN
TYPEOF(edges.edge_start)) AND
('SHIP_MOULDED_FORM_SCHEMA.VERTEX_POINT' IN
TYPEOF(edges.edge_end)))) )) = 0)))) = 0)) )) = 0);
wr6: (SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items |(
'SHIP_MOULDED_FORM_SCHEMA.EDGE_BASED_WIREFRAME_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\
edge_based_wireframe_model.ebwm_boundary | (NOT
(SIZEOF(QUERY ( edges <* eb.ces_edges | (NOT
valid_wireframe_edge_curve(edges\edge_curve.edge_geometry)) ))
= 0)) )) = 0)) )) = 0);
wr7: (SIZEOF(QUERY ( ebwm <* QUERY ( it <* SELF.items |(
'SHIP_MOULDED_FORM_SCHEMA.EDGE_BASED_WIREFRAME_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( eb <* ebwm\
edge_based_wireframe_model.ebwm_boundary | (NOT
(SIZEOF(QUERY ( edges <* eb.ces_edges | (NOT (
valid_wireframe_vertex_point(edges.edge_start\vertex_point.
vertex_geometry) AND :
valid_wireframe_vertex_point(edges.
edge_end\vertex_point.vertex_geometry))) )) = 0)) )) = 0)) )) = 0);
wr8: (SIZEOF(QUERY ( mi <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.MAPPED_ITEM' IN TYPEOF(it))
) | (NOT (('SHIP_MOULDED_FORM_SCHEMA.' +
'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION') IN
TYPEOF(mi\mapped_item.mapping_source.mapped_representation))) )) = 0);
wr9: (SELF.context_of_items\geometric_representation_context.
coordinate_space_dimension = 3);
END_ENTITY; -- edge_based_wireframe_shape_representation
ENTITY edge_curve
SUBTYPE OF (edge, geometric_representation_item);
edge_geometry : curve;
same_sense : BOOLEAN;
END_ENTITY; -- edge_curve
ENTITY edge_loop
SUBTYPE OF (loop, path);
DERIVE
ne : INTEGER := SIZEOF(SELF\path.edge_list);
WHERE
wr1: (SELF\path.edge_list[1].edge_start :=:
SELF\path.edge_list[ne].edge_end);
END_ENTITY; -- edge_loop
ENTITY effectivity
SUPERTYPE OF (serial_numbered_effectivity);
id : identifier;
DERIVE
name : label := get_name_value(SELF);
description : text := get_description_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1);
wr2: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
END_ENTITY; -- effectivity
ENTITY effectivity_assignment
ABSTRACT SUPERTYPE;
assigned_effectivity : effectivity;
DERIVE
role : object_role := get_role(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1);
END_ENTITY; -- effectivity_assignment
ENTITY electric_current_unit
SUBTYPE OF (named_unit);
WHERE
wr1: ((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF\
named_unit.dimensions.mass_exponent = 0) AND (SELF\
named_unit.dimensions.time_exponent = 0) AND (SELF\
named_unit.dimensions.electric_current_exponent = 1) AND (
SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND (SELF\
named_unit.dimensions.luminous_intensity_exponent = 0));
END_ENTITY; -- electric_current_unit
ENTITY elementary_surface
SUPERTYPE OF (ONEOF (plane,cylindrical_surface,conical_surface,
spherical_surface,toroidal_surface))
SUBTYPE OF (surface);
position : axis2_placement_3d;
END_ENTITY; -- elementary_surface
ENTITY ellipse
SUBTYPE OF (conic);
semi_axis_1 : positive_length_measure;
semi_axis_2 : positive_length_measure;
END_ENTITY; -- ellipse
ENTITY evaluated_degenerate_pcurve
SUBTYPE OF (degenerate_pcurve);
equivalent_point : cartesian_point;
END_ENTITY; -- evaluated_degenerate_pcurve
ENTITY executed_action
SUBTYPE OF (action);
END_ENTITY; -- executed_action
ENTITY external_identification_assignment A
ABSTRACT SUPERTYPE
SUBTYPE OF (identification_assignment);
source : external_source;
END_ENTITY; -- external_identification_assignment
ENTITY external_source;
source_id : source_item;
DERIVE
description : text := get_description_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
END_ENTITY; -- external_source
ENTITY external_source_relationship;
name : label;
description : OPTIONAL text;
relating_source : external_source;
related_source : external_source;
END_ENTITY; -- external_source_relationship
ENTITY externally_defined_item;
item_id : source_item;
source : external_source;
END_ENTITY; -- externally_defined_item
ENTITY face
SUPERTYPE OF (ONEOF (face_surface,subface,oriented_face))
SUBTYPE OF (topological_representation_item);
bounds : SET [1:?] OF face_bound;
WHERE
wr1: (NOT mixed_loop_type_set(list_to_set(list_face_loops(SELF))));
wr2: (SIZEOF(QUERY ( temp <* bounds | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_OUTER_BOUND' IN TYPEOF(temp)) )) <= 1);
END_ENTITY; -- face
ENTITY face_based_surface_model
SUBTYPE OF (geometric_representation_item);
fbsm_faces : SET [1:?] OF connected_face_set;
END_ENTITY; -- face_based_surface_model
ENTITY face_bound
SUBTYPE OF (topological_representation_item);
bound : loop;
orientation : BOOLEAN;
END_ENTITY; -- face_bound
ENTITY face_outer_bound
SUBTYPE OF (face_bound);
END_ENTITY; -- face_outer_bound
ENTITY face_surface
SUBTYPE OF (face, geometric_representation_item);
face_geometry : surface;
same_sense : BOOLEAN;
WHERE
wr1: (NOT ('SHIP_MOULDED_FORM_SCHEMA.ORIENTED_SURFACE' IN TYPEOF(face_geometry)));
END_ENTITY; -- face_surface
ENTITY faceted_brep
SUBTYPE OF (manifold_solid_brep);
END_ENTITY; -- faceted_brep
ENTITY founded_item;
END_ENTITY; -- founded_item
ENTITY functionally_defined_transformation;
name : label;
description : OPTIONAL text;
END_ENTITY; -- functionally_defined_transformation
ENTITY geometric_curve_set
SUBTYPE OF (geometric_set);
WHERE
wr1: (SIZEOF(QUERY ( temp <* SELF\geometric_set.elements | (
'SHIP_MOULDED_FORM_SCHEMA.SURFACE' IN TYPEOF(temp)) )) = 0);
END_ENTITY; -- geometric_curve_set
ENTITY geometric_representation_context
SUBTYPE OF (representation_context);
coordinate_space_dimension : dimension_count;
END_ENTITY; -- geometric_representation_context
ENTITY geometric_representation_item
SUPERTYPE OF (ONEOF (point,direction,vector,placement,
cartesian_transformation_operator,curve,surface,edge_curve,
face_surface,poly_loop,vertex_point,solid_model,
face_based_surface_model,edge_based_wireframe_model,geometric_set))
SUBTYPE OF (representation_item);
DERIVE
dim : dimension_count := dimension_of(SELF);
WHERE
wr1: (SIZEOF(QUERY ( using_rep <* using_representations(SELF) | (
NOT ( 'SHIP_MOULDED_FORM_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT'
IN TYPEOF(using_rep.context_of_items))) )) = 0);
END_ENTITY; -- geometric_representation_item
ENTITY geometric_set
SUPERTYPE OF (geometric_curve_set)
SUBTYPE OF (geometric_representation_item);
elements : SET [1:?] OF geometric_set_select;
END_ENTITY; -- geometric_set
ENTITY global_uncertainty_assigned_context
SUBTYPE OF (representation_context);
uncertainty : SET [1:?] OF uncertainty_measure_with_unit;
END_ENTITY; -- global_uncertainty_assigned_context
ENTITY global_unit_assigned_context
SUBTYPE OF (representation_context);
units : SET [1:?] OF unit;
END_ENTITY; -- global_unit_assigned_context
ENTITY group;
name : label;
description : OPTIONAL text;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1);
END_ENTITY; -- group
ENTITY group_assignment
ABSTRACT SUPERTYPE;
assigned_group : group;
DERIVE
role : object_role := get_role(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1);
END_ENTITY; -- group_assignment
ENTITY group_relationship;
name : label;
description : OPTIONAL text;
relating_group : group;
related_group : group;
END_ENTITY; -- group_relationship
ENTITY hyperbola
SUBTYPE OF (conic);
semi_axis : positive_length_measure;
semi_imag_axis : positive_length_measure;
END_ENTITY; -- hyperbola
ENTITY id_attribute;
attribute_value : identifier;
identified_item : id_attribute_select;
END_ENTITY; -- id_attribute
ENTITY identification_assignment
ABSTRACT SUPERTYPE;
assigned_id : identifier;
role : identification_role;
END_ENTITY; -- identification_assignment
ENTITY identification_assignment_relationship;
name : label;
description : OPTIONAL text;
relating_identification_assignment : identification_assignment;
related_identification_assignment : identification_assignment;
END_ENTITY; -- identification_assignment_relationship
ENTITY identification_role;
name : label;
description : OPTIONAL text;
END_ENTITY; -- identification_role
ENTITY intersection_curve
SUBTYPE OF (surface_curve);
WHERE
wr1: (SIZEOF(SELF\surface_curve.associated_geometry) = 2);
wr2: (associated_surface(SELF\surface_curve.associated_geometry[1]) <>
associated_surface(SELF\surface_curve.associated_geometry [2]));
END_ENTITY; -- intersection_curve
ENTITY item_defined_transformation;
name : label;
description : OPTIONAL text;
transform_item_1 : representation_item;
transform_item_2 : representation_item;
END_ENTITY; -- item_defined_transformation
ENTITY length_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
wr1: ('SHIP_MOULDED_FORM_SCHEMA.LENGTH_UNIT' IN TYPEOF(SELF\
measure_with_unit.unit_component));
END_ENTITY; -- length_measure_with_unit
ENTITY length_unit
SUBTYPE OF (named_unit);
WHERE
wr1: ((SELF\named_unit.dimensions.length_exponent = 1) AND
(SELF\named_unit.dimensions.mass_exponent = 0) AND (SELF\
named_unit.dimensions.time_exponent = 0) AND (SELF\
named_unit.dimensions.electric_current_exponent = 0)
AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0)
AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0));
END_ENTITY; -- length_unit
ENTITY line
SUBTYPE OF (curve);
pnt : cartesian_point;
dir : vector;
WHERE
wr1: (dir.dim = pnt.dim);
END_ENTITY; -- line
ENTITY local_time;
hour_component : hour_in_day;
minute_component : OPTIONAL minute_in_hour;
second_component : OPTIONAL second_in_minute;
zone : coordinated_universal_time_offset;
WHERE
wr1: valid_time(SELF);
END_ENTITY; -- local_time
ENTITY loop
SUPERTYPE OF (ONEOF (vertex_loop,edge_loop,poly_loop))
SUBTYPE OF (topological_representation_item);
END_ENTITY; -- loop
ENTITY luminous_intensity_unit
SUBTYPE OF (named_unit);
WHERE
wr1: ((SELF\named_unit.dimensions.length_exponent = 0) AND
(SELF\named_unit.dimensions.mass_exponent = 0) AND (SELF\
named_unit.dimensions.time_exponent = 0) AND (SELF\
named_unit.dimensions.electric_current_exponent = 0) AND (
SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 1));
END_ENTITY; -- luminous_intensity_unit
ENTITY manifold_solid_brep
SUBTYPE OF (solid_model);
outer : closed_shell;
END_ENTITY; -- manifold_solid_brep
ENTITY mapped_item
SUBTYPE OF (representation_item);
mapping_source : representation_map;
mapping_target : representation_item;
WHERE
wr1: acyclic_mapped_representation(using_representations(SELF),[SELF]);
END_ENTITY; -- mapped_item
ENTITY mass_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
wr1: ('SHIP_MOULDED_FORM_SCHEMA.MASS_UNIT' IN TYPEOF(SELF\
measure_with_unit.unit_component));
END_ENTITY; -- mass_measure_with_unit
ENTITY mass_unit
SUBTYPE OF (named_unit);
WHERE
wr1: ((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF\
named_unit.dimensions.mass_exponent = 1) AND (SELF\
named_unit.dimensions.time_exponent = 0) AND (SELF\
named_unit.dimensions.electric_current_exponent = 0) AND (
SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0) AND
SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0));
END_ENTITY; -- mass_unit
ENTITY measure_with_unit
SUPERTYPE OF (ONEOF
(length_measure_with_unit,mass_measure_with_unit,
plane_angle_measure_with_unit,solid_angle_measure_with_unit));
value_component : measure_value;
unit_component : unit;
WHERE
wr1: valid_units(SELF);
END_ENTITY; -- measure_with_unit
ENTITY name_attribute;
attribute_value : label;
named_item : name_attribute_select;
END_ENTITY; -- name_attribute
ENTITY named_unit
SUPERTYPE OF (ONEOF (si_unit,conversion_based_unit,
context_dependent_unit) ANDOR ONEOF (length_unit,mass_unit,
time_unit,electric_current_unit,thermodynamic_temperature_unit,
amount_of_substance_unit,luminous_intensity_unit,plane_angle_unit,
solid_angle_unit,ratio_unit));
dimensions : dimensional_exponents;
END_ENTITY; -- named_unit
ENTITY non_manifold_surface_shape_representation
SUBTYPE OF (shape_representation);
WHERE
wr1 : (SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL',
'SHIP_MOULDED_FORM_SCHEMA.MAPPED_ITEM',
'SHIP_MOULDED_FORM_SCHEMA.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1)) )) = 0);
wr2 : (SIZEOF(QUERY ( it <* SELF.items | (SIZEOF([
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL',
'SHIP_MOULDED_FORM_SCHEMA.MAPPED_ITEM'] * TYPEOF(it)) = 1) )) > 0);
wr3 : (SIZEOF(QUERY ( mi <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)) ) | (
NOT ((('SHIP_MOULDED_FORM_SCHEMA.' +
'NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION') IN TYPEOF(mi\
mapped_item.mapping_source.mapped_representation)) AND (
SIZEOF(QUERY ( mr_it <* mi\mapped_item.mapping_source.
mapped_representation.items | ('SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(mr_it)) )) > 0))) )) = 0);
wr4 : (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( fa <* cfs.cfs_faces | (NOT (SIZEOF([
'SHIP_MOULDED_FORM_SCHEMA.FACE_SURFACE',
'SHIP_MOULDED_FORM_SCHEMA.ORIENTED_FACE'] * TYPEOF(fa)) = 1)) ))
= 0)) )) = 0)) )) = 0);
wr5 : (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( f_sf <* QUERY ( fa <* cfs.cfs_faces | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_SURFACE' IN TYPEOF(fa)) ) |
(NOT (('SHIP_MOULDED_FORM_SCHEMA.ADVANCED_FACE' IN TYPEOF(
f_sf)) OR nmsf_surface_check(f_sf\face_surface.
face_geometry))) )) = 0)) )) = 0)) )) = 0);
wr6 : (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( o_fa <* QUERY ( fa <* cfs.cfs_faces | (
'SHIP_MOULDED_FORM_SCHEMA.ORIENTED_FACE' IN TYPEOF(fa)) )
| (NOT (('SHIP_MOULDED_FORM_SCHEMA.ADVANCED_FACE'
IN TYPEOF(o_fa\oriented_face.face_element)) OR
msf_surface_check(o_fa\oriented_face.face_element\
ace_surface.face_geometry))) )) = 0)) )) = 0)) )) = 0);
wr7 : (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( fa <* cfs.cfs_faces | (NOT ((
'SHIP_MOULDED_FORM_SCHEMA.ADVANCED_FACE' IN
(SIZEOF(QUERY ( bnds <* fa.bounds | (NOT (SIZEOF([
'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP',
'SHIP_MOULDED_FORM_SCHEMA.VERTEX_LOOP'] * TYPEOF(bnds.bound))
= 1)) )) = 0))) )) = 0)) )) = 0)) )) = 0);
wr8 : (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( fa <* cfs.cfs_faces | (NOT ((
'SHIP_MOULDED_FORM_SCHEMA.ADVANCED_FACE' IN
TYPEOF(fa)) OR (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <*
fa.bounds | ('SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN
TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <*
elp_fbnds\path.edge_list |(
NOT ('SHIP_MOULDED_FORM_SCHEMA.EDGE_CURVE' IN
TYPEOF(oe.edge_element))) )) = 0)) )) = 0))) )) = 0)) )) = 0)) )) = 0);
wr9 : (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( fa <* cfs.cfs_faces | (NOT ((
'SHIP_MOULDED_FORM_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR
(SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | (
'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) )
| (NOT (SIZEOF(QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\ path.edge_list |
('SHIP_MOULDED_FORM_SCHEMA.EDGE_CURVE' IN
TYPEOF(oe.edge_element)) ) | (NOT (SIZEOF([
'SHIP_MOULDED_FORM_SCHEMA.B_SPLINE_CURVE',
'SHIP_MOULDED_FORM_SCHEMA.CONIC',
'SHIP_MOULDED_FORM_SCHEMA.CURVE_REPLICA',
'SHIP_MOULDED_FORM_SCHEMA.LINE',
'SHIP_MOULDED_FORM_SCHEMA.OFFSET_CURVE_3D',
'SHIP_MOULDED_FORM_SCHEMA.PCURVE',
'SHIP_MOULDED_FORM_SCHEMA.POLYLINE',
'SHIP_MOULDED_FORM_SCHEMA.SURFACE_CURVE'] *
TYPEOF(oe_cv.edge_element\edge_curve.edge_geometry)) = 1)) )) = 0))) )) =
0)) )) = 0)) )) = 0);
wr10: (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( fa <* cfs.cfs_faces | (NOT ((
'SHIP_MOULDED_FORM_SCHEMA.ADVANCED_FACE' IN
TYPEOF(fa)) OR (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | (
'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) )
| (NOT (SIZEOF(QUERY ( oe <*
elp_fbnds\path.edge_list |(
NOT nmsf_curve_check(oe.edge_element\edge_curve.
edge_geometry)) )) = 0)) )) = 0))) )) = 0)) )) = 0)) )) = 0);
wr11: (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( fa <* cfs.cfs_faces | (NOT ((
'SHIP_MOULDED_FORM_SCHEMA.ADVANCED_FACE' IN
TYPEOF(fa)) OR (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <*
fa.bounds | ( 'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN
TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <*
elp_fbnds\path.edge_list | ( NOT (('SHIP_MOULDED_FORM_SCHEMA.VERTEX_POINT' IN
TYPEOF(oe.edge_element.edge_start)) AND (
'SHIP_MOULDED_FORM_SCHEMA.VERTEX_POINT' IN
TYPEOF(oe.edge_element.edge_end)))) )) = 0)) )) = 0))) )) = 0)) )) = 0)) )) = 0);
wr12: (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( fa <* cfs.cfs_faces | (NOT ((
'SHIP_MOULDED_FORM_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR
(SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <*fa.bounds | (
'SHIP_MOULDED_FORM_SCHEMA.EDGE_LOOP' IN
TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <*elp_fbnds\path.edge_list | (
NOT ((SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.CARTESIAN_POINT',
'SHIP_MOULDED_FORM_SCHEMA.DEGENERATE_PCURVE', 'SHIP_MOULDED_FORM_SCHEMA.
POINT_ON_CURVE', 'SHIP_MOULDED_FORM_SCHEMA.POINT_ON_SURFACE'] *
TYPEOF(oe.edge_element.edge_start\vertex_point.vertex_geometry)) = 1) AND
(SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.CARTESIAN_POINT',
'SHIP_MOULDED_FORM_SCHEMA.DEGENERATE_PCURVE', 'SHIP_MOULDED_FORM_SCHEMA.
POINT_ON_CURVE', 'SHIP_MOULDED_FORM_SCHEMA.POINT_ON_SURFACE'] *
TYPEOF(oe.edge_element.edge_end\vertex_point.vertex_geometry)) = 1))) ))
= 0)) )) = 0))) )) = 0)) )) = 0)) )) = 0);
wr13: (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL'
IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( fa <* cfs.cfs_faces | (NOT ((
'SHIP_MOULDED_FORM_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR
(SIZEOF(QUERY ( vlp_fbnds <* QUERY ( bnds <*fa.bounds | (
'SHIP_MOULDED_FORM_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)) )
| (NOT ('SHIP_MOULDED_FORM_SCHEMA.VERTEX_POINT' IN TYPEOF(
vlp_fbnds\vertex_loop.loop_vertex))) )) = 0))) )) = 0)) ))
= 0)) )) = 0);
wr14: (SIZEOF(QUERY ( fbsm <* QUERY ( it <* SELF.items | (
'SHIP_MOULDED_FORM_SCHEMA.FACE_BASED_SURFACE_MODEL' IN
TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( cfs <* fbsm\
face_based_surface_model.fbsm_faces | (NOT (SIZEOF(
QUERY ( fa <* cfs.cfs_faces | (NOT ((
'SHIP_MOULDED_FORM_SCHEMA.ADVANCED_FACE' IN TYPEOF(fa)) OR
(SIZEOF(QUERY ( vlp_fbnds <* QUERY ( bnds <*fa.bounds |(
'SHIP_MOULDED_FORM_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)) )
| (NOT (SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.CARTESIAN_POINT',
'SHIP_MOULDED_FORM_SCHEMA.DEGENERATE_PCURVE',
'SHIP_MOULDED_FORM_SCHEMA.POINT_ON_CURVE',
'SHIP_MOULDED_FORM_SCHEMA.POINT_ON_SURFACE'] *
TYPEOF(vlp_fbnds\vertex_loop.loop_vertex\vertex_point.
vertex_geometry)) = 1)) )) = 0))) )) = 0)) )) = 0)) )) = 0);
END_ENTITY; -- non_manifold_surface_shape_representation
ENTITY object_role;
name : label;
description : OPTIONAL text;
END_ENTITY; -- object_role
ENTITY offset_curve_3d
SUBTYPE OF (curve);
basis_curve : curve;
distance : length_measure;
self_intersect : LOGICAL;
ref_direction : direction;
WHERE
wr1: ((basis_curve.dim = 3) AND (ref_direction.dim = 3));
END_ENTITY; -- offset_curve_3d
ENTITY offset_surface
SUBTYPE OF (surface);
basis_surface : surface;
distance : length_measure;
self_intersect : LOGICAL;
END_ENTITY; -- offset_surface
ENTITY open_shell
SUBTYPE OF (connected_face_set);
END_ENTITY; -- open_shell
ENTITY ordinal_date
SUBTYPE OF (date);
day_component : day_in_year_number;
WHERE
wr1: (((NOT leap_year(SELF.year_component)) AND (1 <= day_component)
AND (day_component <= 365)) OR (leap_year(SELF.year_component) AND
(1 <= day_component) AND (day_component <= 366)));
END_ENTITY; -- ordinal_date
ENTITY organization;
id : OPTIONAL identifier;
name : label;
description : OPTIONAL text;
END_ENTITY; -- organization
ENTITY organization_assignment
ABSTRACT SUPERTYPE;
assigned_organization : organization;
role : organization_role;
END_ENTITY; -- organization_assignment
ENTITY organization_role;
name : label;
DERIVE
description : text := get_description_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
END_ENTITY; -- organization_role
ENTITY organizational_address
SUBTYPE OF (address);
organizations : SET [1:?] OF organization;
description : OPTIONAL text;
END_ENTITY; -- organizational_address
ENTITY organizational_project;
name : label;
description : OPTIONAL text;
responsible_organizations : SET [1:?] OF organization;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1);
END_ENTITY; -- organizational_project
ENTITY oriented_closed_shell
SUBTYPE OF (closed_shell);
closed_shell_element : closed_shell;
orientation : BOOLEAN;
DERIVE
SELF\connected_face_set.cfs_faces : SET [1:?] OF face :=
conditional_reverse(SELF.orientation,SELF.closed_shell_element.cfs_faces);
WHERE
wr1: (NOT ('SHIP_MOULDED_FORM_SCHEMA.ORIENTED_CLOSED_SHELL' IN
TYPEOF(SELF.closed_shell_element)));
END_ENTITY; -- oriented_closed_shell
ENTITY oriented_edge
SUBTYPE OF (edge);
edge_element : edge;
orientation : BOOLEAN;
DERIVE
SELF\edge.edge_start : vertex := boolean_choose(SELF.orientation,
SELF.edge_element.edge_start,SELF.edge_element.edge_end);
SELF\edge.edge_end : vertex := boolean_choose(SELF.orientation,
SELF.edge_element.edge_end,SELF.edge_element.edge_start);
WHERE
wr1: (NOT ('SHIP_MOULDED_FORM_SCHEMA.ORIENTED_EDGE' IN TYPEOF(SELF.edge_element)));
END_ENTITY; -- oriented_edge
ENTITY oriented_face
SUBTYPE OF (face);
face_element : face;
orientation : BOOLEAN;
DERIVE
SELF\face.bounds : SET [1:?] OF face_bound := conditional_reverse(
SELF.orientation,SELF.face_element.bounds);
WHERE
wr1: (NOT ('SHIP_MOULDED_FORM_SCHEMA.ORIENTED_FACE' IN
TYPEOF(SELF.face_element)));
END_ENTITY; -- oriented_face
ENTITY oriented_open_shell
SUBTYPE OF (open_shell);
open_shell_element : open_shell;
orientation : BOOLEAN;
DERIVE
SELF\connected_face_set.cfs_faces : SET [1:?] OF face :=
conditional_reverse(SELF.orientation,SELF.
open_shell_element.cfs_faces);
WHERE
wr1: (NOT ('SHIP_MOULDED_FORM_SCHEMA.ORIENTED_OPEN_SHELL' IN
TYPEOF(SELF.open_shell_element)));
END_ENTITY; -- oriented_open_shell
ENTITY oriented_path
SUBTYPE OF (path);
path_element : path;
orientation : BOOLEAN;
DERIVE
SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_edge :=
conditional_reverse(SELF.orientation,SELF.path_element.edge_list);
WHERE
wr1: (NOT ('SHIP_MOULDED_FORM_SCHEMA.ORIENTED_PATH' IN ;
TYPEOF(SELF.path_element)));
END_ENTITY; -- oriented_path
ENTITY oriented_surface
SUBTYPE OF (surface);
orientation : BOOLEAN;
END_ENTITY; -- oriented_surface
ENTITY parabola
SUBTYPE OF (conic);
focal_dist : length_measure;
WHERE
wr1: (focal_dist <> 0);
END_ENTITY; -- parabola
ENTITY parametric_representation_context
SUBTYPE OF (representation_context);
END_ENTITY; -- parametric_representation_context
ENTITY path
SUPERTYPE OF (ONEOF (edge_loop,oriented_path))
SUBTYPE OF (topological_representation_item);
edge_list : LIST [1:?] OF UNIQUE oriented_edge;
WHERE
wr1: path_head_to_tail(SELF);
END_ENTITY; -- path
ENTITY pcurve
SUBTYPE OF (curve);
basis_surface : surface;
reference_to_curve : definitional_representation;
WHERE
wr1: (SIZEOF(reference_to_curve\representation.items) = 1);
wr2: ('SHIP_MOULDED_FORM_SCHEMA.CURVE' IN
TYPEOF(reference_to_curve\representation.items[1]));
wr3: (reference_to_curve\representation.items[1]\
geometric_representation_item.dim = 2);
END_ENTITY; -- pcurve
ENTITY person;
id : identifier;
last_name : OPTIONAL label;
first_name : OPTIONAL label;
middle_names : OPTIONAL LIST [1:?] OF label;
prefix_titles: OPTIONAL LIST [1:?] OF label;
suffix_titles: OPTIONAL LIST [1:?] OF label;
WHERE
wr1: (EXISTS(last_name) OR EXISTS(first_name));
END_ENTITY; -- person
ENTITY person_and_organization;
the_person : person;
the_organization : organization;
DERIVE
name : label := get_name_value(SELF);
description : text := get_description_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1);
wr2: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
END_ENTITY; -- person_and_organization
ENTITY person_and_organization_assignment
ABSTRACT SUPERTYPE;
assigned_person_and_organization : person_and_organization;
role : person_and_organization_role;
END_ENTITY; -- person_and_organization_assignment
ENTITY person_and_organization_role;
name : label;
DERIVE
description : text := get_description_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
END_ENTITY; -- person_and_organization_role
ENTITY person_assignment
ABSTRACT SUPERTYPE;
assigned_person : person;
role : person_role;
END_ENTITY; -- person_assignment
ENTITY person_role;
name : label;
DERIVE
description : text := get_description_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
END_ENTITY; -- person_role
ENTITY personal_address
SUBTYPE OF (address);
people : SET [1:?] OF person;
description : OPTIONAL text;
END_ENTITY; -- personal_address
ENTITY placement
SUPERTYPE OF (ONEOF (axis1_placement,axis2_placement_2d, axis2_placement_3d))
SUBTYPE OF (geometric_representation_item);
location : cartesian_point;
END_ENTITY; -- placement
ENTITY plane
SUBTYPE OF (elementary_surface);
END_ENTITY; -- plane
ENTITY plane_angle_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
wr1: ('SHIP_MOULDED_FORM_SCHEMA.PLANE_ANGLE_UNIT' IN
TYPEOF(SELF\measure_with_unit.unit_component));
END_ENTITY; -- plane_angle_measure_with_unit
ENTITY plane_angle_unit
SUBTYPE OF (named_unit);
WHERE
wr1: ((SELF\named_unit.dimensions.length_exponent = 0) AND
(SELF\named_unit.dimensions.mass_exponent = 0) AND (SELF\
named_unit.dimensions.time_exponent = 0) AND (SELF\
named_unit.dimensions.electric_current_exponent = 0) AND (
SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0));
END_ENTITY; -- plane_angle_unit
ENTITY point
SUPERTYPE OF (ONEOF
(cartesian_point,point_on_curve,point_on_surface,
point_replica,degenerate_pcurve))
SUBTYPE OF (geometric_representation_item);
END_ENTITY; -- point
ENTITY point_on_curve
SUBTYPE OF (point);
basis_curve : curve;
point_parameter : parameter_value;
END_ENTITY; -- point_on_curve
ENTITY point_on_surface
SUBTYPE OF (point);
basis_surface : surface;
point_parameter_u : parameter_value;
point_parameter_v : parameter_value;
END_ENTITY; -- point_on_surface
ENTITY point_replica
SUBTYPE OF (point);
parent_pt : point;
transformation : cartesian_transformation_operator;
WHERE
wr1: (transformation.dim = parent_pt.dim);
wr2: acyclic_point_replica(SELF,parent_pt);
END_ENTITY; -- point_replica
ENTITY poly_loop
SUBTYPE OF (loop, geometric_representation_item);
polygon : LIST [3:?] OF UNIQUE cartesian_point;
END_ENTITY; -- poly_loop
ENTITY polyline
SUBTYPE OF (bounded_curve);
points : LIST [2:?] OF cartesian_point;
END_ENTITY; -- polyline
ENTITY product;
id : identifier;
name : label;
description : OPTIONAL text;
frame_of_reference : SET [1:?] OF product_context;
END_ENTITY; -- product
ENTITY product_category;
name : label;
description : OPTIONAL text;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1);
END_ENTITY; -- product_category
ENTITY product_category_relationship;
name : label;
description : OPTIONAL text;
category : product_category;
sub_category : product_category;
WHERE
wr1: acyclic_product_category_relationship(SELF,[SELF.sub_category]);
END_ENTITY; -- product_category_relationship
ENTITY product_context
SUBTYPE OF (application_context_element);
discipline_type : label;
END_ENTITY; -- product_context
ENTITY product_definition;
id : identifier;
description : OPTIONAL text;
formation : product_definition_formation;
frame_of_reference : product_definition_context;
DERIVE
name : label := get_name_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1);
END_ENTITY; -- product_definition
ENTITY product_definition_context
SUBTYPE OF (application_context_element);
life_cycle_stage : label;
END_ENTITY; -- product_definition_context
ENTITY product_definition_formation;
id : identifier;
description : OPTIONAL text;
of_product : product;
UNIQUE
ur1 : id, of_product;
END_ENTITY; -- product_definition_formation
ENTITY product_definition_relationship;
id : identifier;
name : label;
description : OPTIONAL text;
relating_product_definition : product_definition;
related_product_definition : product_definition;
END_ENTITY; -- product_definition_relationship
ENTITY product_definition_shape
SUBTYPE OF (property_definition);
UNIQUE
ur1 : definition;
WHERE
wr1: (SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.CHARACTERIZED_PRODUCT_DEFINITION',
'SHIP_MOULDED_FORM_SCHEMA.CHARACTERIZED_OBJECT'] *
TYPEOF(SELF\property_definition.definition)) > 0);
END_ENTITY; -- product_definition_shape
ENTITY product_related_product_category
SUBTYPE OF (product_category);
products : SET [1:?] OF product;
END_ENTITY; -- product_related_product_category
ENTITY property_definition;
name : label;
description : OPTIONAL text;
definition : characterized_definition;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1);
END_ENTITY; -- property_definition
ENTITY property_definition_relationship;
name : label;
description : text;
relating_property_definition : property_definition;
related_property_definition : property_definition;
END_ENTITY; -- property_definition_relationship
ENTITY property_definition_representation;
definition : represented_definition;
used_representation : representation;
DERIVE
description : text := get_description_value(SELF);
name : label := get_name_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
wr2: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1);
END_ENTITY; -- property_definition_representation
ENTITY quasi_uniform_curve
SUBTYPE OF (b_spline_curve);
END_ENTITY; -- quasi_uniform_curve
ENTITY quasi_uniform_surface
SUBTYPE OF (b_spline_surface);
END_ENTITY; -- quasi_uniform_surface
ENTITY ratio_unit
SUBTYPE OF (named_unit);
WHERE
wr1: ((SELF\named_unit.dimensions.length_exponent = 0) AND
(SELF\named_unit.dimensions.mass_exponent = 0) AND (SELF\
named_unit.dimensions.time_exponent = 0) AND (SELF\
named_unit.dimensions.electric_current_exponent = 0)
AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0)
AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0));
END_ENTITY; -- ratio_unit
ENTITY rational_b_spline_curve
SUBTYPE OF (b_spline_curve);
weights_data : LIST [2:?] OF REAL;
DERIVE
weights : ARRAY [0:upper_index_on_control_points] OF REAL :=
list_to_array(weights_data,0,
upper_index_on_control_points);
WHERE
wr1: (SIZEOF(weights_data) = SIZEOF(SELF\b_spline_curve.control_points_list));
wr2: curve_weights_positive(SELF);
END_ENTITY; -- rational_b_spline_curve
ENTITY rational_b_spline_surface
SUBTYPE OF (b_spline_surface);
weights_data : LIST [2:?] OF LIST [2:?] OF REAL;
DERIVE
weights : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF REAL :=
make_array_of_array(weights_data,0,u_upper,0,v_upper);
WHERE
wr1: ((SIZEOF(weights_data) = SIZEOF(SELF\b_spline_surface.
control_points_list)) AND (SIZEOF(weights_data[1]) =
SIZEOF(SELF\b_spline_surface.control_points_list[1])));
wr2: surface_weights_positive(SELF);
END_ENTITY; -- rational_b_spline_surface
ENTITY representation;
name : label;
items : SET [1:?] OF representation_item;
context_of_items : representation_context;
DERIVE
id : identifier := get_id_value(SELF);
description : text := get_description_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1);
wr2: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1);
END_ENTITY; -- representation
ENTITY representation_context;
context_identifier : identifier;
context_type : text;
INVERSE
representations_in_context : SET [1:?] OF representation FOR
context_of_items;
END_ENTITY; -- representation_context
ENTITY representation_item;
name : label;
WHERE
wr1: (SIZEOF(using_representations(SELF)) > 0);
END_ENTITY; -- representation_item
ENTITY representation_map;
mapping_origin : representation_item;
mapped_representation : representation;
INVERSE
map_usage : SET [1:?] OF mapped_item FOR mapping_source;
WHERE
wr1: item_in_context(SELF.mapping_origin,SELF.mapped_representation.context_of_items);
END_ENTITY; -- representation_map
ENTITY representation_relationship;
name : label;
description : OPTIONAL text;
rep_1 : representation;
rep_2 : representation;
END_ENTITY; -- representation_relationship
ENTITY role_association;
role : object_role;
item_with_role : role_select;
END_ENTITY; -- role_association
ENTITY seam_curve
SUBTYPE OF (surface_curve);
WHERE
wr1: (SIZEOF(SELF\surface_curve.associated_geometry) = 2);
wr2: (associated_surface(SELF\surface_curve.associated_geometry[1]) =
associated_surface(SELF\surface_curve.associated_geometry[2]));
wr3: ('SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN
TYPEOF(SELF\surface_curve.associated_geometry[1]));
wr4: ('SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN
TYPEOF(SELF\surface_curve.associated_geometry[2]));
END_ENTITY; -- seam_curve
ENTITY serial_numbered_effectivity
SUBTYPE OF (effectivity);
effectivity_start_id : identifier;
effectivity_end_id : OPTIONAL identifier;
END_ENTITY; -- serial_numbered_effectivity
ENTITY shape_aspect;
name : label;
description : OPTIONAL text;
of_shape : product_definition_shape;
product_definitional : LOGICAL;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
wr1: (SIZEOF(USEDIN(SELF,'SHIP_MOULDED_FORM_SCHEMA.' +
'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1);
END_ENTITY; -- shape_aspect
ENTITY shape_definition_representation
SUBTYPE OF (property_definition_representation);
WHERE
wr1: (('SHIP_MOULDED_FORM_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN
TYPEOF(SELF.definition)) OR (
'SHIP_MOULDED_FORM_SCHEMA.SHAPE_DEFINITION' IN
TYPEOF(SELF.definition.definition)));
wr2: ('SHIP_MOULDED_FORM_SCHEMA.SHAPE_REPRESENTATION' IN
TYPEOF(SELF.used_representation));
END_ENTITY; -- shape_definition_representation
ENTITY shape_representation
SUBTYPE OF (representation);
END_ENTITY; -- shape_representation
ENTITY si_unit
SUBTYPE OF (named_unit);
prefix : OPTIONAL si_prefix;
name : si_unit_name;
DERIVE
SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit(name);
END_ENTITY; -- si_unit
ENTITY solid_angle_measure_with_unit
SUBTYPE OF (measure_with_unit);
WHERE
wr1: ('SHIP_MOULDED_FORM_SCHEMA.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\
measure_with_unit.unit_component));
END_ENTITY; -- solid_angle_measure_with_unit
ENTITY solid_angle_unit
SUBTYPE OF (named_unit);
WHERE
wr1: ((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF\
named_unit.dimensions.mass_exponent = 0) AND (SELF\
named_unit.dimensions.time_exponent = 0) AND (SELF\
named_unit.dimensions.electric_current_exponent = 0) AND (
SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0));
END_ENTITY; -- solid_angle_unit
ENTITY solid_model
SUPERTYPE OF (manifold_solid_brep)
SUBTYPE OF (geometric_representation_item);
END_ENTITY; -- solid_model
ENTITY spherical_surface
SUBTYPE OF (elementary_surface);
radius : positive_length_measure;
END_ENTITY; -- spherical_surface
ENTITY subface
SUBTYPE OF (face);
parent_face : face;
WHERE
wr1: (NOT mixed_loop_type_set(list_to_set(list_face_loops(SELF)) +
list_to_set(list_face_loops(parent_face))));
END_ENTITY; -- subface
ENTITY surface
SUPERTYPE OF (ONEOF
(elementary_surface,swept_surface,bounded_surface,offset_surface,surface_replica))
SUBTYPE OF (geometric_representation_item);
END_ENTITY; -- surface
ENTITY surface_curve
SUPERTYPE OF (ONEOF (intersection_curve,seam_curve) ANDOR
bounded_surface_curve)
SUBTYPE OF (curve);
curve_3d : curve;
associated_geometry : LIST [1:2] OF pcurve_or_surface;
master_representation : preferred_surface_curve_representation;
DERIVE
basis_surface : SET [1:2] OF surface := get_basis_surface(SELF);
WHERE
wr1: (curve_3d.dim = 3);
wr2: (('SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(
associated_geometry[1])) OR (master_representation <> pcurve_s1));
wr3: (('SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(
associated_geometry[2])) OR (master_representation <> pcurve_s2));
wr4: (NOT ('SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(curve_3d)));
END_ENTITY; -- surface_curve
ENTITY surface_of_linear_extrusion
SUBTYPE OF (swept_surface);
extrusion_axis : vector;
END_ENTITY; -- surface_of_linear_extrusion
ENTITY surface_of_revolution
SUBTYPE OF (swept_surface);
axis_position : axis1_placement;
DERIVE
axis_line : line := representation_item('') ||
geometric_representation_item() || curve() ||
line(axis_position.location,representation_item('') ||
geometric_representation_item() || vector(axis_position.z,1));
END_ENTITY; -- surface_of_revolution
ENTITY surface_replica
SUBTYPE OF (surface);
parent_surface : surface;
transformation : cartesian_transformation_operator_3d;
WHERE
wr1: acyclic_surface_replica(SELF,parent_surface);
END_ENTITY; -- surface_replica
ENTITY swept_surface
SUPERTYPE OF (ONEOF
(surface_of_linear_extrusion,surface_of_revolution))
SUBTYPE OF (surface);
swept_curve : curve;
END_ENTITY; -- swept_surface
ENTITY thermodynamic_temperature_unit
SUBTYPE OF (named_unit);
WHERE
wr1: ((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF\
named_unit.dimensions.mass_exponent = 0) AND (SELF\
named_unit.dimensions.time_exponent = 0) AND (SELF\
named_unit.dimensions.electric_current_exponent = 0) AND (
SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 1) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND (SELF\
named_unit.dimensions.luminous_intensity_exponent = 0));
END_ENTITY; -- thermodynamic_temperature_unit
ENTITY time_unit
SUBTYPE OF (named_unit);
WHERE
wr1: ((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF\
named_unit.dimensions.mass_exponent = 0) AND (SELF\
named_unit.dimensions.time_exponent = 1) AND (SELF\
named_unit.dimensions.electric_current_exponent = 0) AND (
SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0));
END_ENTITY; -- time_unit
ENTITY topological_representation_item
SUPERTYPE OF (ONEOF
(vertex,edge,face_bound,face,connected_edge_set,
connected_face_set,loop ANDOR path))
SUBTYPE OF (representation_item);
END_ENTITY; -- topological_representation_item
ENTITY toroidal_surface
SUBTYPE OF (elementary_surface);
major_radius : positive_length_measure;
minor_radius : positive_length_measure;
END_ENTITY; -- toroidal_surface
ENTITY uncertainty_measure_with_unit
SUBTYPE OF (measure_with_unit);
name : label;
description : OPTIONAL text;
WHERE
wr1: valid_measure_value(SELF\measure_with_unit.value_component);
END_ENTITY; -- uncertainty_measure_with_unit
ENTITY uniform_curve
SUBTYPE OF (b_spline_curve);
END_ENTITY; -- uniform_curve
ENTITY uniform_surface
SUBTYPE OF (b_spline_surface);
END_ENTITY; -- uniform_surface
ENTITY value_representation_item
SUBTYPE OF (representation_item);
value_component : measure_value;
WHERE
wr1: (SIZEOF(QUERY ( rep <* using_representations(SELF) | (NOT (
'SHIP_MOULDED_FORM_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN
TYPEOF(rep.context_of_items))) )) = 0);
END_ENTITY; -- value_representation_item
ENTITY vector
SUBTYPE OF (geometric_representation_item); o
rientation : direction;
magnitude : length_measure;
WHERE
wr1: (magnitude >= 0);
END_ENTITY; -- vector
ENTITY versioned_action_request;
id : identifier;
version : label;
purpose : text;
description : OPTIONAL text;
END_ENTITY; -- versioned_action_request
ENTITY vertex
SUBTYPE OF (topological_representation_item);
END_ENTITY; -- vertex
ENTITY vertex_loop
SUBTYPE OF (loop);
loop_vertex : vertex;
END_ENTITY; -- vertex_loop
ENTITY vertex_point
SUBTYPE OF (vertex, geometric_representation_item);
vertex_geometry : point;
END_ENTITY; -- vertex_point
ENTITY week_of_year_and_day_date
SUBTYPE OF (date);
week_component : week_in_year_number;
day_component : OPTIONAL day_in_week_number;
END_ENTITY; -- week_of_year_and_day_date
RULE action_request_solution_connected_to_action FOR (
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action_request_solution := [];
set_3 : SET OF action_method := [];
t2_set : SET OF action := [];
END_LOCAL;
t1_set := QUERY ( a <* action_request_solution | VALUE_IN(which_class(a),'change plan') );
t2_set := QUERY ( b <* action | VALUE_IN(which_class(b),'change') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
set_3 := [];
REPEAT j := 1 TO HIINDEX(t2_set) BY 1;
set_3 := set_3 + [t2_set[j].chosen_method];
END_REPEAT;
violate := VALUE_IN(set_3,t1_set[i].method);
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- action_request_solution_connected_to_action
RULE action_request_solution_with_identification_assignment FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF action_request_solution := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['change plan'];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = arg_list[j]) );
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTI
FICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | (j.role.name = 'globally unambiguous identifier') );
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --action_request_solution_with_identification_assignment
RULE action_with_identification_assignment FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF action := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['change',
'versionable object change event','check'];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = arg_list[j]) );
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | (j.role.name = 'globally unambiguous identifier') );
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- action_with_identification_assignment
RULE alternative_version_relationship_has_mandatory_description FOR (
identification_assignment_relationship);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF identification_assignment_relationship := [];
END_LOCAL;
t1_set := QUERY ( i <* identification_assignment_relationship |
VALUE_IN(which_class(i),'alternative version relationship'));
violate := SIZEOF(QUERY ( k <* t1_set | (NOT EXISTS(k.description)) )) > 0;
WHERE
wr1: (NOT violation);
END_RULE; --alternative_version_relationship_has_mandatory_description
RULE alternative_version_relationship_has_unique_versions FOR (
identification_assignment_relationship);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF identification_assignment_relationship := [];
END_LOCAL;
t1_set := QUERY ( a <* identification_assignment_relationship |
VALUE_IN(which_class(a),'alternative version relationship'));
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
violate := t1_set[i].relating_identification_assignment.assigned_id
= t1_set[i].related_identification_assignment.assigned_id;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- alternative_version_relationship_has_unique_versions
RULE alternative_version_relationship_versionable_object FOR (
applied_identification_assignment, identification_assignment_relationship);
LOCAL
violate : LOGICAL := FALSE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(applied_identification_assignment) BY 1 WHILE NOT violate;
IF
(SIZEOF(USEDIN(applied_identification_assignment[i],'SHIP_MOULDED_FO
RM_SCHEMA.IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.'
+ 'RELATING_IDENTIFICATION_ASSIGNMENT')) > 0) OR
(SIZEOF(USEDIN(applied_identification_assignment[i],
'SHIP_MOULDED_FORM_SCHEMA.IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.'
+ 'RELATED_IDENTIFICATION_ASSIGNMENT')) > 0) THEN
REPEAT j := 1 TO
HIINDEX(applied_identification_assignment[i].items) BY 1 WHILE NOT violate;
violate := NOT VALUE_IN(which_class(applied_identification_assignment[i].items[j)),
'versionable object');
END_REPEAT;
END_IF;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- alternative_version_relationship_versionable_object
RULE approval_event_with_approval_date_time FOR (approval);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF approval := [];
t2_set : SET OF approval_date_time := [];
END_LOCAL;
t1_set := QUERY ( i <* approval | VALUE_IN(which_class(i),
'approval event') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPROVAL_DATE_TIME.' + 'DATED_APPROVAL'));
violate := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- approval_event_with_approval_date_time
RULE approval_event_with_approval_person_organization FOR (approval);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF approval := [];
t2_set : SET OF approval_person_organization := [];
END_LOCAL;
t1_set := QUERY ( i <* approval | VALUE_IN(which_class(i), 'approval event') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPROVAL_PERSON_ORGANIZATION.' + 'AUTHORIZED_APPROVAL'));
violate := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- approval_event_with_approval_person_organization
RULE approval_history_approves_same_definition FOR (
applied_group_assignment, applied_approval_assignment);
LOCAL
violate : LOGICAL := FALSE;
t3_set : SET OF approval := [];
t4_set : SET OF group_item := [];
t5_set : SET OF applied_approval_assignment := [];
t2_set : SET OF applied_group_assignment := [];
END_LOCAL;
t2_set := QUERY ( a <* applied_group_assignment | VALUE_IN(
which_class(a.assigned_group),'approval history') );
t3_set := QUERY ( b <* t2_set[1].items | (
'SHIP_MOULDED_FORM_SCHEMA.APPROVAL' IN TYPEOF(b)) );
t4_set := QUERY ( b <* t2_set[1].items | VALUE_IN(which_class(b), 'DEFINITION') );
violate := NOT (SIZEOF(t4_set) = 1);
REPEAT i := 1 TO HIINDEX(t3_set) BY 1 WHILE NOT violate;
t5_set := QUERY ( a <* applied_approval_assignment | ((a.
assigned_approval = t3_set[i]) AND (NOT
VALUE_IN(a.items,t4_set[1]))) );
violate := SIZEOF(t5_set) > 0;
END_REPEAT;
WHERE
wr1: (NOT violate);
wr2: (SIZEOF(t4_set) = 1);
END_RULE; -- approval_history_approves_same_definition
RULE approval_history_has_at_least_one_member FOR (group, applied_group_assignment);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF group := [];
t2_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( i <* group | VALUE_IN(which_class(i), 'approval history') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
t2_set := QUERY ( a <* applied_group_assignment | (a.assigned_group = t1_set[i]) );
violate := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- approval_history_has_at_least_one_member
RULE approvals_references_approval_history FOR (applied_group_assignment, group);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF group := [];
a_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* group | VALUE_IN(which_class(a), 'approval history') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_group_assignment | (NOT ((b.
assigned_group = t1_set[i]) AND (b.role.name = 'approvals'))) );
violate := SIZEOF(a_set) > 0;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- approvals_references_approval_history
RULE author_for_change_plan FOR (applied_person_and_organization_assignment,
action_request_solution);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action_request_solution := [];
a_set : SET OF applied_person_and_organization_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action_request_solution |
VALUE_IN(which_class(a),'change plan') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <*applied_person_and_organization_assignment | (
VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'author')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- author_for_change_plan
RULE author_for_change_realisation FOR (applied_person_and_organization_assignment,
executed_action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF executed_action := [];
a_set : SET OF applied_person_and_organization_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* executed_action | VALUE_IN(which_class(a),
'change realization') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_person_and_organization_assignment | (
VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'author')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- author_for_change_realisation
RULE author_for_change_request FOR (applied_person_and_organization_assignment,
versioned_action_request);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF versioned_action_request := [];
a_set : SET OF applied_person_and_organization_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* versioned_action_request | VALUE_IN(which_class(a),'change request') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <*applied_person_and_organization_assignment | (
VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'author')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- author_for_change_request
RULE caused_by_for_check FOR (applied_person_and_organization_assignment, action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
a_set : SET OF applied_person_and_organization_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action | VALUE_IN(which_class(a),'check') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <*applied_person_and_organization_assignment | (
VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'caused by')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- caused_by_for_check
RULE caused_by_for_envisaged_version_creation FOR (
applied_person_and_organization_assignment, action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
a_set : SET OF applied_person_and_organization_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action | VALUE_IN(which_class(a),
'envisaged version creation') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <*applied_person_and_organization_assignment | (
VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'caused by')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- caused_by_for_envisaged_version_creation
RULE caused_by_for_version_creation FOR (applied_person_and_organization_assignment, action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
a_set : SET OF applied_person_and_organization_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action | VALUE_IN(which_class(a), 'version creation') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <*applied_person_and_organization_assignment | (
VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'caused by')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- caused_by_for_version_creation
RULE caused_by_for_version_deletion FOR (applied_person_and_organization_assignment,
action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
a_set : SET OF applied_person_and_organization_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action | VALUE_IN(which_class(a), 'version deletion') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <*applied_person_and_organization_assignment | (
VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'caused by')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- caused_by_for_version_deletion
RULE caused_by_for_version_modification FOR (
applied_person_and_organization_assignment, action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
a_set : SET OF applied_person_and_organization_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action | VALUE_IN(which_class(a), 'version modification') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <*applied_person_and_organization_assignment | (
VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'caused by')));
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- caused_by_for_version_modification
RULE caused_when_for_check FOR (applied_date_and_time_assignment, action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
a_set : SET OF applied_date_and_time_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action | VALUE_IN(which_class(a),'check'));
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_date_and_time_assignment |
(VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'caused when')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- caused_when_for_check
RULE caused_when_for_envisaged_version_creation FOR (
applied_date_and_time_assignment, action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
a_set : SET OF applied_date_and_time_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action | VALUE_IN(which_class(a),
'envisaged version creation') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_date_and_time_assignment |
(VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'caused when')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- caused_when_for_envisaged_version_creation
RULE caused_when_for_version_creation FOR (
applied_date_and_time_assignment, action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
a_set : SET OF applied_date_and_time_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action | VALUE_IN(which_class(a),
'version creation') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_date_and_time_assignment |
(VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'caused when')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- caused_when_for_version_creation
RULE caused_when_for_version_deletion FOR (
applied_date_and_time_assignment, action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
a_set : SET OF applied_date_and_time_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action | VALUE_IN(which_class(a),
'version deletion') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_date_and_time_assignment |
(VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'caused when')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- caused_when_for_version_deletion
RULE caused_when_for_version_modification FOR (
applied_date_and_time_assignment, action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
a_set : SET OF applied_date_and_time_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action | VALUE_IN(which_class(a),
'version modification') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_date_and_time_assignment |
(VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'caused when')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- caused_when_for_version_modification
RULE centre_location_compound_representation_has_specified_name FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['longitudinal location',
'transversal location','vertical location'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'centre location') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --centre_location_compound_representation_has_specified_name
RULE change_impact_with_versionable_object_change_event FOR (
applied_action_request_assignment);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF applied_action_request_assignment := [];
a_set : SET OF action := [];
END_LOCAL;
t1_set := QUERY ( b <* applied_action_request_assignment |
(b.role.name = 'change impact') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* t1_set[i].items | ((
'SHIP_MOULDED_FORM_SCHEMA.ACTION' IN TYPEOF(b)) AND
VALUE_IN(which_class(b),'versionable object change event')) );
violate := SIZEOF(a_set) = 0;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- change_impact_with_versionable_object_change_event
RULE change_plan_has_mandatory_attribute_description FOR (action_request_solution);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action_request_solution := [];
END_LOCAL;
t1_set := QUERY ( i <* action_request_solution | VALUE_IN(which_class(i),'change plan') );
violate := SIZEOF(QUERY ( k <* t1_set | (NOT EXISTS(k.description)) )) > 0;
WHERE
wr1: (NOT violate);
END_RULE; -- change_plan_has_mandatory_attribute_description
RULE class_and_statutory_designation_has_properties FOR (
property_definition_representation, applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t4_list : LIST OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t3_list : LIST OF property_definition := [];
t1_list : LIST OF product_definition := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'class and statutory designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_list := t1_list + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
t2_set := QUERY ( i <* property_definition_representation |
(i.name = 'class and statutory designation') );
REPEAT i := 1 TO HIINDEX(t2_set) BY 1;
t3_list := t3_list + t2_set[i].definition;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_list) BY 1;
t4_list := t4_list + t3_list[i].definition;
END_REPEAT;
violation := t1_list <> t4_list;
WHERE
wr1: (NOT violation);
END_RULE; -- class_and_statutory_designation_has_properties
RULE class_notation_with_named_representation_items FOR (representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['class notations hull', 'class notations machinery'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'class notation') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) < 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- class_notation_with_named_representation_items
RULE class_parameters_has_properties FOR (property_definition_representation,
applied_classification_assignment);
LOCAL
t3_set : LIST OF property_definition := [];
violation : LOGICAL := FALSE;
t4_set : LIST OF product_definition := [];
t1_set : LIST OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'class parameters') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
t2_set := QUERY ( i <* property_definition_representation |
(i.name = 'class parameters') );
REPEAT i := 1 TO HIINDEX(t2_set) BY 1;
t3_set := t3_set + t2_set[i].definition;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_set) BY 1;
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
violation := t1_set <> t4_set;
WHERE
wr1: (NOT violation);
END_RULE; -- class_parameters_has_properties
RULE compatible_dimension FOR (cartesian_point, direction, representation_context,
geometric_representation_context);
WHERE
wr1: (SIZEOF(QUERY ( x <* cartesian_point | (SIZEOF(QUERY ( y <*
geometric_representation_context | (item_in_context(x,y) AND (
HIINDEX(x.coordinates) <> y.coordinate_space_dimension)) )) > 0) )) = 0);
wr2: (SIZEOF(QUERY ( x <* direction | (SIZEOF(QUERY ( y <*
geometric_representation_context | (item_in_context(x,y) AND (
HIINDEX(x.direction_ratios) <> y.coordinate_space_dimension)) )) > 0) )) = 0);
END_RULE; -- compatible_dimension
RULE compound_representation_item_with_class_id_knot FOR (applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
c_a_set2 : SET OF applied_classification_assignment := [];
l_rep_item : list_representation_item;
t2_set : SET OF compound_representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'knot') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c_a_set2 := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'ship curve') );
REPEAT i := 1 TO HIINDEX(c_a_set2) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items) BY 1;
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
l_rep_item := t1_set[i].item_element;
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element) BY 1;
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) < 2;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- compound_representation_item_with_class_id_knot
RULE compound_representation_item_with_hydrostatic_properties FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['hydrostatic property value'];
t2_set : LIST OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'hydrostatic properties for constant floating position') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) < 1;
END_REPEAT;;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --compound_representation_item_with_hydrostatic_properties
RULE compound_representation_item_with_section_identifier FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'section of offset point table') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_IDENTIFICATION_ASSIGNMENT' + '.ITEMS'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.role.name = 'section identifier') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- compound_representation_item_with_section_identifier
RULE date_time_for_change_plan FOR (applied_date_and_time_assignment,
action_request_solution);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action_request_solution := [];
a_set : SET OF applied_date_and_time_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* action_request_solution |
VALUE_IN(which_class(a),'change plan') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_date_and_time_assignment |
(VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'date time')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- date_time_for_change_plan
RULE date_time_for_change_realisation FOR (
applied_date_and_time_assignment, executed_action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF executed_action := [];
a_set : SET OF applied_date_and_time_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* executed_action |
VALUE_IN(which_class(a), 'change realisation') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_date_and_time_assignment |
(VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'date time')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- date_time_for_change_realisation
RULE date_time_for_change_request FOR (applied_date_and_time_assignment,
versioned_action_request);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF versioned_action_request := [];
a_set : SET OF applied_date_and_time_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* versioned_action_request | VALUE_IN(
which_class(a),'change request') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_date_and_time_assignment |
(VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'date time')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- date_time_for_change_request
RULE document_has_at_least_one_references FOR (document);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF document := [];
t2_set : SET OF document_representation_type := [];
END_LOCAL;
t1_set := QUERY ( i <* document |
VALUE_IN(which_class(i),'document') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.DOCUMENT_REPRESENTATION_TYPE.' +
'REPRESENTED_DOCUMENT'));
violate := SIZEOF(t2_set) < 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- document_has_at_least_one_references
RULE document_has_exactly_one_author FOR (document);
LOCAL
violate : LOGICAL := FALSE;
bag_3 : BAG OF applied_organization_assignment := [];
bag_2 : BAG OF applied_person_and_organization_assignment := [];
bag_1 : BAG OF applied_person_assignment := [];
END_LOCAL;
REPEAT i := 1 TO SIZEOF(document) BY 1 WHILE NOT violate;
bag_1 := USEDIN(document[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_PERSON_ASSIGNMENT.ITEMS');
bag_1 := QUERY ( assign <* bag_1 | (assign.role.name = 'author') );
bag_2 := USEDIN(document[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS');
bag_2 := QUERY ( assign <* bag_2 | (assign.role.name = 'author') );
bag_3 := USEDIN(document[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS');
bag_3 := QUERY ( assign <* bag_3 | (assign.role.name = 'author') );
violate := NOT ((SIZEOF(bag_1) + SIZEOF(bag_2) +
SIZEOF(bag_3)) = 1);
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- document_has_exactly_one_author
RULE document_reference_with_address_has_at_least_one_references FOR (document);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF document := [];
t2_set : SET OF applied_external_identification_assignment := [];
END_LOCAL;
t1_set := QUERY ( i <* document | VALUE_IN(which_class(i),
'document reference with address') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.APPLIED_EXTERN
AL_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violate := SIZEOF(t2_set) < 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; --document_reference_with_address_has_at_least_one_references
RULE envisaged_version_creation_has_mandatory_attribute_description FOR (action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
END_LOCAL;
t1_set := QUERY ( i <* action | VALUE_IN(which_class(i),
'envisaged version creation') );
violate := SIZEOF(QUERY ( k <* t1_set | (NOT EXISTS(k.description)) )) > 0;
WHERE
wr1: (NOT violate);
END_RULE; --envisaged_version_creation_has_mandatory_attribute_description
RULE executed_action_with_identification_assignment FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF executed_action := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['change realization'];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = arg_list[j]) );
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTI
FICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | (j.role.name = 'globally unambiguous identifier') );
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- executed_action_with_identification_assignment
RULE external_instance_reference_has_same_identifier FOR (
applied_external_identification_assignment);
LOCAL
violation : LOGICAL := FALSE;
extref_set : SET OF applied_external_identification_assignment := [];
aia_set : SET OF applied_identification_assignment := [];
END_LOCAL;
extref_set := QUERY ( i <* applied_external_identification_assignment |
(i.role.name = 'external instance reference') );
REPEAT i := 1 TO HIINDEX(extref_set) BY 1 WHILE NOT violation;
aia_set := bag_to_set(USEDIN(extref_set[i].items[1],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violation := NOT (aia_set[1].assigned_id = extref_set[i].assigned_id);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE; -- external_instance_reference_has_same_identifier
RULE floating_position_compound_representation_with_name FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['moulded form displacement',
'draught at amidships','length of waterline',
'breadth of waterline','angle of trim','angle of heel'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'floating position') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- floating_position_compound_representation_with_name
RULE global_axis_placement_has_properties FOR (
property_definition_representation, group, applied_classification_assignment);
LOCAL
t3_set : LIST OF property_definition := [];
violation : LOGICAL := FALSE;
t4_set : LIST OF product_definition := [];
t1_set : LIST OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |(i.
assigned_class.name = 'global axis placement') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
t2_set := QUERY ( i <* property_definition_representation |
(i.name = 'global axis placement') );
REPEAT i := 1 TO HIINDEX(t2_set) BY 1;
t3_set := t3_set + t2_set[i].definition;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_set) BY 1;
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
violation := t1_set <> t4_set;
WHERE
wr1: (NOT violation);
END_RULE; -- global_axis_placement_has_properties
RULE global_id_is_unique FOR (applied_identification_assignment);
LOCAL
violation : LOGICAL := FALSE;
set_1 : SET OF applied_identification_assignment := [];
bag_2 : BAG OF STRING := [];
END_LOCAL;
set_1 := QUERY ( i <* applied_identification_assignment |
(i.role.name = 'globally unambiguous identifier') );
REPEAT i := 1 TO HIINDEX(set_1) BY 1;
bag_2 := bag_2 + [set_1[i].assigned_id];
END_REPEAT;
violation := SIZEOF(QUERY ( i <* set_1 | (SIZEOF(i.items) = 1))) <> SIZEOF(set_1);
WHERE
wr1: VALUE_UNIQUE(bag_2);
wr2: (NOT violation);
END_RULE; -- global_id_is_unique
RULE hull_moulded_form_design_parameter_with_class_references FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation := [];
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'hull moulded form design parameter'));
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA. PROPERTY_DEFINITION_REPRESENTATION.' +
'DEFINITION'));
REPEAT j := 1 TO HIINDEX(t2_set) BY 1;
t3_set := t3_set + t2_set[j].used_representation;
END_REPEAT;
violation := SIZEOF(QUERY ( t2_inst <* t3_set | ('midship tumble' IN
which_class(t2_inst)) )) > 1;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- hull_moulded_form_design_parameter_with_class_references
RULE hydrostatic_properties_with_specified_class FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
c_a_set2 : SET OF applied_classification_assignment := [];
l_rep_item : list_representation_item;
t2_set : SET OF compound_representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'hydrostatic properties for constant floating position') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c_a_set2 := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'floating position') );
REPEAT i := 1 TO HIINDEX(c_a_set2) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items) BY 1;
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
l_rep_item := t1_set[i].item_element;
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element) BY 1;
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) <> 1;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- hydrostatic_properties_with_specified_class
RULE hydrostatic_property_with_specified_name FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['property type'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'hydrostatic property') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- hydrostatic_property_with_specified_name
RULE identification_role_optional_attribute_description_required FOR (
identification_role);
WHERE
wr1: (SIZEOF (QUERY ( i <* identification_role |
((i.name = 'external reference') AND (NOT EXISTS(i.description))))) = 0);
END_RULE; --identification_role_optional_attribute_description_required
RULE initiator_for_change_request FOR (
applied_person_and_organization_assignment, versioned_action_request);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF versioned_action_request := [];
a_set : SET OF applied_person_and_organization_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* versioned_action_request | VALUE_IN(
which_class(a),'change request') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <*applied_person_and_organization_assignment | (
VALUE_IN(b.items,t1_set[i]) AND (b.role.name = 'initiator')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- initiator_for_change_request
RULE mandatory_entity_type_for_external_instance_reference FOR (
external_source, external_source_relationship);
LOCAL
violate : LOGICAL := FALSE;
bag_1: BAG OF external_source:= [];
END_LOCAL;
bag_1 := QUERY ( a <* external_source | (a.description = 'schema name') );
REPEAT i := 1 TO SIZEOF(bag_1) BY 1 WHILE NOT violate;
violate := SIZEOF(QUERY ( a <* external_source_relationship |
((a.relating_source :=: bag_1[i]) AND
(a.related_source.description = 'entity type')) )) = 0;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- mandatory_entity_type_for_external_instance_reference
RULE members_is_referenced_by_at_least_one_revision FOR (
applied_group_assignment, group);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF group := [];
a_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* group |
VALUE_IN(which_class(a),'revision') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_group_assignment |
((b.assigned_group :=: t1_set[i]) AND (b.role.name = 'members')) );
violate := SIZEOF(a_set) < 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- members_is_referenced_by_at_least_one_revision
RULE no_approvals_except_in_approval_history FOR (approval);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF approval := [];
t2_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* approval | VALUE_IN(which_class(a), 'approval event') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_GROUP_ASSIGNMENT.ITEMS'));
violate := SIZEOF(t2_set) = 0;
REPEAT k := 1 TO HIINDEX(t2_set) BY 1 WHILE NOT violate;
violate := NOT
VALUE_IN(which_class(t2_set[k].assigned_group), 'approval history');
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- no_approvals_except_in_approval_history
RULE offset_point_table_model_compound_representation_has_name FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['offset point table type'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'offset point table model') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set |
(items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --offset_point_table_model_compound_representation_has_name
RULE principal_characteristics_has_properties FOR (
property_definition_representation, applied_classification_assignment);
LOCAL
t3_set : LIST OF property_definition := [];
violation : LOGICAL := FALSE;
t4_set : LIST OF product_definition := [];
t1_set : LIST OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'principal characteristics') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
t2_set := QUERY ( i <* property_definition_representation |
(i.name = 'principal characteristics') );
REPEAT i := 1 TO HIINDEX(t2_set) BY 1;
t3_set := t3_set + t2_set[i].definition;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_set) BY 1;
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
violation := t1_set <> t4_set;
WHERE
wr1: (NOT violation);
END_RULE; -- principal_characteristics_has_properties
RULE product_definition_for_call_sign FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'ship designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.role.name = 'call sign') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_for_call_sign
RULE product_definition_for_class_notation FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'class and statutory designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set | (
'class notation' IN which_class(t2_inst)) )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_for_class_notation
RULE product_definition_for_flag_state FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL: = FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'ship designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set(i).items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.role.name = 'flag state') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_for_flag_state
RULE product_definition_for_hydrostatic_definition_requires_reference FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF property_definition_representation := [];
violation : LOGICAL := FALSE;
t4_set : SET OF property_definition := [];
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
c2_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'hydrostatic definition') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c2_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'hydrostatic table') );
REPEAT i := 1 TO HIINDEX(c2_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items) BY 1;
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t2_set) BY 1;
t3_set := t3_set +
bag_to_set(USEDIN(t2_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'));
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_set) BY 1;
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
violation := t1_set <> t4_set;
WHERE
wr1: (NOT violation);
END_RULE; --product_definition_for_hydrostatic_definition_requires_reference
RULE product_definition_for_managing_company FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF applied_organization_assignment := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'owner designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.role.name = 'managing company') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_for_managing_company
RULE product_definition_for_ordering_company FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF applied_organization_assignment := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'owner designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.role.name = 'ordering company') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_for_ordering_company
RULE product_definition_for_owning_company FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF applied_organization_assignment := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'owner designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.role.name = 'owning company') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_for_owning_company
RULE product_definition_for_port_of_registration FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'ship designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.role.name = 'port of registration') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_for_port_of_registration
RULE product_definition_for_regulation FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'class and statutory designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
('regulation' IN which_class(t2_inst)) )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_for_regulation
RULE product_definition_for_shipyard FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF applied_organization_assignment := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'shipyard designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.role.name = 'shipyard') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_for_shipyard
RULE product_definition_for_stability_definition FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF property_definition_representation := [];
violation : LOGICAL := FALSE;
t4_set : SET OF property_definition := [];
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
c2_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'stability definition') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c2_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'stability table') );
REPEAT i := 1 TO HIINDEX(c2_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items) BY 1;
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t2_set) BY 1;
t3_set := t3_set +
bag_to_set(USEDIN(t2_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'));
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_set) BY 1;
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
violation := t1_set <> t4_set;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_for_stability_definition
RULE product_definition_relationship_references_are_distinct FOR (
product_definition_relationship);
LOCAL
cyclic_relationship : LOGICAL := FALSE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(product_definition_relationship) BY 1
WHILE
NOT cyclic_relationship;
cyclic_relationship := product_definition_relationship[i].
related_product_definition :=:
product_definition_relationship[i].relating_product_definition;
END_REPEAT;
WHERE
wr1: (NOT cyclic_relationship);
END_RULE; --product_definition_relationship_references_are_distinct
RULE product_definition_relationship_related_to_class_moulded_form FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF product_definition := [];
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition_relationship := [];
c_a_set : SET OF applied_classification_assignment := [];
c2_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF product_definition := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'moulded form relationship') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1;
t2_set := t2_set + t1_set[i].related_product_definition;
t2_set := t2_set + t1_set[i].relating_product_definition;
END_REPEAT;
c2_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'moulded form') );
REPEAT i := 1 TO HIINDEX(c2_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items) BY 1;
t3_set := t3_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
violation := NOT (t2_set <= t3_set);
WHERE
wr1: (NOT violation);
END_RULE; --product_definition_relationship_related_to_class_moulded_form
RULE product_definition_relationship_with_identification_assignment FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition_relationship := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['item relationship'];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = arg_list[j]) );
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | (j.role.name = 'globally unambiguous identifier') );
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --product_definition_relationship_with_identification_assignment
RULE product_definition_shape_with_identification_assignment FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition_shape := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['definition'];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = arg_list[j]) );
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | (j.role.name = 'globally unambiguous identifier') );
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --product_definition_shape_with_identification_assignment
RULE product_definition_with_identification_assignment FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['definition','definable object'];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = arg_list[j]) );
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | (j.role.name = 'globally unambiguous identifier') );
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_definition_with_identification_assignment
RULE product_related_product_category_with_identification_assignment FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_related_product_category := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['Shiptype'];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = arg_list[j]) );
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | (j.role.name = 'globally unambiguous identifier') );
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --product_related_product_category_with_identification_assignment
RULE product_with_identification_assignment FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['ship'];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = arg_list[j]) );
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | (j.role.name = 'globally unambiguous identifier') );
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- product_with_identification_assignment
RULE propeller_moulded_form_design_parameter_with_class_references FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation := [];
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'propeller moulded form design parameter') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'DEFINITION'));
REPEAT j := 1 TO HIINDEX(t2_set) BY 1;
t3_set := t3_set + t2_set[j].used_representation;
END_REPEAT;
violation := SIZEOF(QUERY ( t2_inst <* t3_set | (
'propeller location' IN which_class(t2_inst)) )) > 1;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --propeller_moulded_form_design_parameter_with_class_references
RULE property_definition_appendage_moulded_form_design_parameter FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'appendage moulded form design parameter') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'appendage moulded form design parameter') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- property_definition_appendage_moulded_form_design_parameter
RULE property_definition_for_bottom_moulded_form_design_parameter FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'bottom moulded form design parameter') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'bottom moulded form design parameter') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --property_definition_for_bottom_moulded_form_design_parameter
RULE property_definition_for_bulb_moulded_form_design_parameter FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'bulb moulded form design parameter'));
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'bulb moulded form design parameter') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --property_definition_for_bulb_moulded_form_design_parameter
RULE property_definition_for_class_notation FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'class notation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'class notation') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- property_definition_for_class_notation
RULE property_definition_for_class_society FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF applied_organization_assignment := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'class notation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.role.name = 'class society') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- property_definition_for_class_society
RULE property_definition_for_deck_moulded_form_design_parameter FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'deck moulded form design parameter'));
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'deck moulded form design parameter') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --property_definition_for_deck_moulded_form_design_parameter
RULE property_definition_for_hull_moulded_form_design_parameter FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'hull moulded form design parameter'));
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'hull moulded form design parameter') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --property_definition_for_hull_moulded_form_design_parameter
RULE property_definition_for_local_coordinate_system FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'local co-ordinate system') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'local co-ordinate system') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- property_definition_for_local_coordinate_system
RULE property_definition_for_local_coordinate_system_with_position FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'local co-ordinate system with position reference') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'local co-ordinate system with position reference') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --property_definition_for_local_coordinate_system_with_position
RULE property_definition_for_moulded_form_function_parameters FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'moulded form functional definition'));
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'moulded form function parameters') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --property_definition_for_moulded_form_function_parameters
RULE property_definition_for_rudder_moulded_form_design_parameter FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'rudder moulded form design parameter') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'rudder moulded form design parameter') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --property_definition_for_rudder_moulded_form_design_parameter
RULE property_definition_for_thruster_moulded_form_design_parameter FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'thruster moulded form design parameter') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'thruster moulded form design parameter') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --property_definition_for_thruster_moulded_form_design_parameter
RULE property_definition_for_thruster_propeller_parameter FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_relationship := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'thruster moulded form design parameter') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_RELATIONSHIP' +
'.RELATING_PROPERTY_DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'thruster propeller parameter') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- property_definition_for_thruster_propeller_parameter
RULE property_definition_of_propeller_moulded_form_design_parameter FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'propeller moulded form design parameter') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],'SHIP_MOULDED_FORM_SCHEMA.' +
'PROPERTY_DEFINITION_REPRESENTATION' + '.DEFINITION'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.name = 'propeller moulded form design parameter') )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --property_definition_of_propeller_moulded_form_design_parameter
RULE property_definition_with_identification_assignment FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF property_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := [
'moulded form characteristics definition',
'moulded form functional definition',
'local co-ordinate system','spacing table',
'hydrostatic definition','stability definition'];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = arg_list[j]) );
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | (j.role.name = 'globally unambiguous identifier') );
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- property_definition_with_identification_assignment
RULE representation_for_appendage_moulded_form_design_parameter FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['appendage length',
'appendage breadth','appendage depth',
'type of appendage'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'appendage moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_appendage_moulded_form_design_parameter
RULE representation_for_bottom_moulded_form_design_parameter FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['bilge radius','rise of floor',
'aft end of flat of bottom',
'front end of flat of bottom','flat of bottom breadth', 'rake of keel'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY (temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <*bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'bottom moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_bottom_moulded_form_design_parameter
RULE representation_for_bulb_moulded_form_design_parameter FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['bulb length','bulb length from pp',
'bulb breadth','bulb breadth pp','bulb depth',
'bulb depth pp','bulb frame section area at pp', 'bulb location'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <*bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'bulb moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_bulb_moulded_form_design_parameter
RULE representation_for_class_and_statutory_designation FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['class number'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'class and statutory designation') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_class_and_statutory_designation
RULE representation_for_deck_moulded_form_design_parameter FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['camber','sheer at ap','sheer at fp'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <*bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'deck moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_deck_moulded_form_design_parameter
RULE representation_for_global_axis_placement FOR (representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['global axes and origin',
'after perpendicular offset','orientation'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'global axis placement') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_global_axis_placement
RULE representation_for_hull_moulded_form_design_parameter FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := [
'aft end of parallel midbody at design draught',
'front end of parallel midbody at design draught',
'aft end of flat of side','front end of flat of side',
'block coefficient','prismatic coefficient',
'max wetted frame section area','waterplane coefficient'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <*bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'hull moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_hull_moulded_form_design_parameter
RULE representation_for_hydrostatic_table_constrained FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF representation := [];
c_a_set : SET OF applied_classification_assignment := [];
c2_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'hydrostatic table') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c2_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'hydrostatic properties for constant floating position') );
REPEAT i := 1 TO HIINDEX(c2_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items) BY 1;
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(t1_set[i].items) BY 1;
t3_set := t3_set + t1_set[i].items[j];
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) < 1;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_hydrostatic_table_constrained
RULE representation_for_hydrostatic_table_restricted FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF representation := [];
c_a_set : SET OF applied_classification_assignment := [];
c2_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'hydrostatic table') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c2_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'hydrostatic property') );
REPEAT i := 1 TO HIINDEX(c2_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items) BY 1;
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(t1_set[i].items) BY 1;
t3_set := t3_set + t1_set[i].items[j];
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) < 1;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_hydrostatic_table_restricted
RULE representation_for_hydrostatic_table_restricted_by_class_id FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF representation := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['mean shell thickness'];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'hydrostatic table') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* t1_set[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_hydrostatic_table_restricted_by_class_id
RULE representation_for_local_coordinate_system FOR (representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['local axes and origin'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'local co-ordinate system') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_local_coordinate_system
RULE representation_for_midship_tumble_restricted_by_class_id FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF representation := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['tumble out at bottom',
'tumble in at top','tumble out at side', 'tumble in at side'];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'midship tumble') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* t1_set[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_midship_tumble_restricted_by_class_id
RULE representation_for_moulded_form_function_parameters FOR (representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['function'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <*bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'moulded form function parameters') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_moulded_form_function_parameters
RULE representation_for_offset_point_table_model_for_point FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['section point'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'section of offset point table') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) < 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_offset_point_table_model_for_point
RULE representation_for_offset_point_table_model_for_section FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['offset point table section'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'offset point table model') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) < 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_offset_point_table_model_for_section
RULE representation_for_offset_table_shape_representation_restricted FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF representation := [];
c_a_set : SET OF applied_classification_assignment := [];
c2_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'offset table shape representation'));
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c2_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'offset point table model') );
REPEAT i := 1 TO HIINDEX(c2_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items) BY 1;
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(t1_set[i].items) BY 1;
t3_set := t3_set + t1_set[i].items[j];
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) < 1;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_offset_table_shape_representation_restricted
RULE representation_for_propeller_location_restricted_by_class_id FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF representation := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['shaft line inclination x',
'shaft line inclination y','shaft line location','propeller location'];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'propeller location') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX (arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* t1_set[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_propeller_location_restricted_by_class_id
RULE representation_for_propeller_moulded_form_design_parameter FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['type of propulsion',
'propeller diameter','chord length at 0 7 radius',
'thickness at 0 7 radius','number of propeller blades',
'expanded area ratio','hub diameter ratio',
'nominal design pitch ratio','type of propeller blades',
'rake','skew','design sense of rotation'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <*bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'propeller moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_propeller_moulded_form_design_parameter
RULE representation_for_rudder_moulded_form_design_parameter FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['rudder height','rudder mean height',
'rudder length','rudder mean length','rudder thickness',
'projected rudder area','type of the rudder','rudder location'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <*bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'rudder moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_rudder_moulded_form_design_parameter
RULE representation_for_stability_table_restricted FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF representation := [];
c_a_set : SET OF applied_classification_assignment := [];
c2_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'stability table') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c2_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'stability properties for one floating position') );
REPEAT i := 1 TO HIINDEX(c2_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c2_a_set[i].items) BY 1;
t2_set := t2_set + c2_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(t1_set[i].items) BY 1;
t3_set := t3_set + t1_set[i].items[j];
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) < 1;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_for_stability_table_restricted
RULE representation_for_stability_table_restricted_by_class_id FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF representation := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['mean shell thickness'];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'stability table') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* t1_set[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_stability_table_restricted_by_class_id
RULE representation_for_thruster_moulded_form_design_parameter FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['thruster tunnel diameter',
'thruster tunnel min length', 'thruster tunnel max length',
'geometric thruster location','thruster location'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'thruster moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_for_thruster_moulded_form_design_parameter
RULE representation_has_global_uncertainty_assigned_context FOR (
shape_representation);
LOCAL
has_gunac : LOGICAL := TRUE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(shape_representation) BY 1 WHILE has_gunac;
has_gunac := 'SHIP_MOULDED_FORM_SCHEMA.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT'
IN TYPEOF(shape_representation[i].context_of_items);
END_REPEAT;
WHERE
wr1: has_gunac;
END_RULE; --representation_has_global_uncertainty_assigned_context
RULE representation_has_global_unit_assigned_context FOR
(representation);
LOCAL
has_guac : LOGICAL := TRUE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(representation) BY 1 WHILE has_guac;
REPEAT j := 1 TO SIZEOF(representation[i].items) BY 1 WHILE has_guac;
IF ('SHIP_MOULDED_FORM_SCHEMA.VALUE_REPRESENTATION_ITEM' IN
TYPEOF(representation[i].items[j])) OR (
'SHIP_MOULDED_FORM_SCHEMA.GEOMETRIC_REPRESENTATION_ITEM' IN
TYPEOF(representation[i].items[j])) THEN
has_guac := 'SHIP_MOULDED_FORM_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN
TYPEOF(representation[i].context_of_items);
END_IF;
END_REPEAT;
END_REPEAT;
WHERE
wr1: has_guac;
END_RULE; -- representation_has_global_unit_assigned_context
RULE representation_item_for_transformation_to_parent FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation := [];
t4_set : SET OF representation_map := [];
t1_set : SET OF property_definition := [];
t5_set : SET OF mapped_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['local coordinate system
position in global coordinate system','local coordinate system
position in parent local coordinate system','local coordinate system
position in parent local coordinate system with position reference'];
violation1 : LOGICAL := FALSE;
violation2 : LOGICAL := FALSE;
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'local co-ordinate system') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation1;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'));
violation1 := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
(t2_inst.used_representation.name = 'local axis representation') )) = 1);
t3_set := t3_set + t2_set[i].used_representation;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1 set) BY 1 WHILE NOT violation1;
t4_set := bag_to_set(USEDIN(t3_set[i],
'SHIP_MOULDED_FORM_SCHEMA.REPRESENTATION_MAP.MAPPED_REPRESENTATION'));
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation1;
t5_set := bag_to_set(USEDIN(t4_set[i],
'SHIP_MOULDED_FORM_SCHEMA.MAPPED_ITEM.MAPPING_SOURCE'));
REPEAT j := 1 TO 3 BY 1 WHILE NOT violation2;
violation2 := NOT (SIZEOF(QUERY ( t2_inst <* t5_set |
(t2_inst.name = arg_list[j]) )) = 1);
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation1);
wr2: (NOT violation2);
END_RULE; -- representation_item_for_transformation_to_parent
RULE representation_items_appendage_moulded_form_design_parameter FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING: = ['moulded form outer surface',
'moulded form displacement','user def appendage type'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'appendage moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_appendage_moulded_form_design_parameter
RULE representation_items_for_bottom_moulded_form_design_parameter FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['moulded form outer surface',
'moulded form displacement'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'bottom moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_for_bottom_moulded_form_design_parameter
RULE representation_items_for_bulb_moulded_form_design_parameter FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['moulded form outer surface',
'moulded form displacement'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'bulb moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j:= 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_for_bulb_moulded_form_design_parameter
RULE representation_items_for_deck_moulded_form_design_parameter FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['moulded form outer surface',
'moulded form displacement'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'deck moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_for_deck_moulded_form_design_parameter
RULE representation_items_for_hull_moulded_form_design_parameter FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['moulded form outer surface',
'moulded form displacement',
'waterline angle of entrance at stern',
'waterline angle of entrance at bow',
'max frame section area location','hull length pp',
'hull length waterline','hull breadth','hull depth',
'hull design draught','gunwale radius'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'hull moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_for_hull_moulded_form_design_parameter
RULE representation_items_for_moulded_form_design_parameters FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['status'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'moulded form design parameters') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_for_moulded_form_design_parameters
RULE representation_items_for_moulded_form_function_parameters FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['user def function'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <*
bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION'))
| (temp_prop_def_rep.name = 'moulded form function parameters') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_for_moulded_form_function_parameters
RULE representation_items_for_rudder_moulded_form_design_parameter FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['moulded form outer surface',
'moulded form displacement'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'rudder moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_for_rudder_moulded_form_design_parameter
RULE representation_items_of_thruster_moulded_form_design_parameter FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['moulded form outer surface',
'moulded form displacement'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'thruster moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_of_thruster_moulded_form_design_parameter
RULE representation_items_optional_for_class_notation FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['ice class notation','service factor',
'approval required for heavy cargo'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name = 'class notation') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; -- representation_items_optional_for_class_notation
RULE representation_items_optional_for_owner_designation FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['owner approval'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'owner designation') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; -- representation_items_optional_for_owner_designation
RULE representation_items_optional_for_principal_characteristics FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['block coefficient','design draught',
'design deadweight','min draught at fp',
'max draught at fp','min draught at ap',
'max draught at ap'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'principal characteristics') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_optional_for_principal_characteristics
RULE representation_items_propeller_moulded_form_design_parameter FOR (
representation);
LOCAL
found : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['blade_mean_height',
'moulded form outer surface','moulded form displacement'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'propeller moulded form design parameter') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT found;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT found;
found := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) > 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT found);
END_RULE; --representation_items_propeller_moulded_form_design_parameter
RULE representation_of_local_coordinate_system_with_position_reference FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['local axes and origin'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'local co-ordinate system with position reference') )) > 0));
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i).items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_of_local_coordinate_system_with_position_reference
RULE representation_restricted_by_name_class_notation FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['service area',
'approval required for oil cargo',
'approval required for loading unloading aground',
'approval required for unloading grabs'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'class notation') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_restricted_by_name_class_notation
RULE representation_restricted_by_name_class_parameters FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['length class','length solas',
'scantlings draught','block coefficient class',
'design speed ahead','design speed astern'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'class parameters') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- representation_restricted_by_name_class_parameters
RULE representation_restricted_by_name_principal_characteristics FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['length between perpendiculars',
'moulded breadth','moulded depth'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name = 'principal characteristics') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_restricted_by_name_principal_characteristics
RULE representation_restricted_by_name_ship_overall_dimensions FOR (
representation);
LOCAL
violation : LOGICAL := FALSE;
arg_list : LIST OF STRING := ['overall breadth','overall depth',
'overall length','stem overhang','stern overhang'];
reps : BAG OF representation := [];
END_LOCAL;
reps := QUERY ( temp_rep <* representation | (SIZEOF(
QUERY ( temp_prop_def_rep <* bag_to_set(USEDIN(temp_rep,
'SHIP_MOULDED_FORM_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.' +
'USED_REPRESENTATION')) | (temp_prop_def_rep.name =
'ship overall dimensions') )) > 0) );
REPEAT i := 1 TO HIINDEX(reps) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
violation := SIZEOF(QUERY ( rep_item <* reps[i].items |
(rep_item.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --representation_restricted_by_name_ship_overall_dimensions
RULE revision_has_mandatory_attribute_description FOR (group);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF group := [];
END_LOCAL;
t1_set := QUERY ( i <* group |
VALUE_IN(which_class(i),'revision') );
violate := SIZEOF(QUERY ( k <* t1_set | (NOT EXISTS(k.description)) )) > 0;
WHERE
wr1: (NOT violate);
END_RULE; -- revision_has_mandatory_attribute_description
RULE revision_with_context_referenced_for_context_of_revision FOR (
applied_group_assignment, group);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF group := [];
a_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* group | VALUE_IN(which_class(a),
'revision with context') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_group_assignment |
((b.assigned_group = t1_set[i]) AND (b.role.name = 'context of revision')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; --revision_with_context_referenced_for_context_of_revision
RULE ship_curve_has_name FOR (applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['side condition','curve shape');
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'ship curve') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- ship_curve_has_name
RULE ship_curve_segment_has_class FOR (applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
c_a_set2 : SET OF applied_classification_assignment := [];
l_rep_item : list_representation_item;
t2_set : SET OF compound_representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'ship curve segment') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c_a_set2 := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'ship curve') );
REPEAT i := 1 TO HIINDEX(c_a_set2) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items) BY 1;
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element) BY 1;
l_rep_item := t1_set[i].item_element;
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) <> 1;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- ship_curve_segment_has_class
RULE ship_curve_with_spacing_position_has_class FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
c_a_set2 : SET OF applied_classification_assignment := [];
l_rep_item : list_representation_item;
t2_set : SET OF compound_representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'ship curve with spacing position') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c_a_set2 := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'spacing position') );
REPEAT i := 1 TO HIINDEX(c_a_set2) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items) BY 1;
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element) BY 1;
l_rep_item := t1_set[i].item_element;
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) <> 1;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- ship_curve_with_spacing_position_has_class
RULE ship_designation_has_one_specified_names FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'ship designation') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
violation := NOT (SIZEOF(QUERY ( t2_inst <* t2_set |
((t2_inst.role.name = 'imo number') OR
(t2_inst.role.name = 'pennant hull number')) )) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- ship_designation_has_one_specified_names
RULE ship_moulded_form_revision_has_description FOR (
product_definition_relationship);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF product_definition_relationship := [];
END_LOCAL;
t1_set := QUERY ( i <* product_definition_relationship |
VALUE_IN(which_class(i),'ship moulded form revision') );
violate := SIZEOF(QUERY ( k <* t1_set | (NOT
EXISTS(k.description)) )) > 0;
WHERE
wr1: (NOT violate);
END_RULE; -- ship_moulded_form_revision_has_description
RULE ship_overall_dimensions_has_properties FOR (
property_definition_representation,applied_classification_assignment);
LOCAL
t3_set : LIST OF property_definition := [];
violation : LOGICAL := FALSE;
t4_set : LIST OF product_definition := [];
t1_set : LIST OF product_definition := [];
c_a_set : SET OF applied_classification_assignment := [];
t2_set : SET OF property_definition_representation := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'ship overall dimensions') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
t2_set := QUERY ( i <* property_definition_representation |
(i.name = 'ship overall dimensions') );
REPEAT i := 1 TO HIINDEX(t2_set) BY 1;
t3_set := t3_set + t2_set[i].definition;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t3_set) BY 1;
t4_set := t4_set + t3_set[i].definition;
END_REPEAT;
violation := t1_set <> t4_set;
WHERE
wr1: (NOT violation);
END_RULE; -- ship_overall_dimensions_has_properties
RULE ship_point_compound_representation_has_name FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['point shape'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'ship point') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- ship_point_compound_representation_has_name
RULE ship_surface_compound_representation_has_name FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['surface shape'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'ship surface') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- ship_surface_compound_representation_has_name
RULE spacing_position_compound_representation_has_name FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['position number','position'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'spacing position') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- spacing_position_compound_representation_has_name
RULE spacing_position_with_offset_compound_representation_has_class FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
c_a_set2 : SET OF applied_classification_assignment := [];
t2_set : SET OF compound_representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'spacing position with offset') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c_a_set2 := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'spacing position') );
REPEAT i := 1 TO HIINDEX(c_a_set2) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items) BY 1;
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element) BY 1;
t3_set := t3_set + t1_set[i].item_element;
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) <> 1;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --spacing_position_with_offset_compound_representation_has_class
RULE spacing_position_with_offset_compound_representation_has_name FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['offset'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'spacing position with offset') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --spacing_position_with_offset_compound_representation_has_name
RULE stability_properties_for_floating_position_has_class FOR (
applied_classification_assignment);
LOCAL
t3_set : SET OF representation_item := [];
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
c_a_set2 : SET OF applied_classification_assignment := [];
l_rep_item : list_representation_item;
t2_set : SET OF compound_representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'stability properties for one floating position') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
c_a_set2 := QUERY ( i <* applied_classification_assignment | (i.
assigned_class.name = 'stability property') );
REPEAT i := 1 TO HIINDEX(c_a_set2) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set2[i].items) BY 1;
t2_set := t2_set + c_a_set2[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(t1_set[i].item_element) BY 1;
l_rep_item := t1_set[i].item_element;
t3_set := t3_set + l_rep_item[j];
END_REPEAT;
violation := SIZEOF(t3_set * t2_set) < 1;
t3_set := [];
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- stability_properties_for_floating_position_has_class
RULE stability_properties_for_floating_position_has_name FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['centre of gravity above keel',
'definition of starting floating position'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'stability properties for one floating position') );
REPEAT i:= 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- stability_properties_for_floating_position_has_name
RULE stability_property_has_name FOR
(applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF compound_representation_item := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['angle of heel','righting arm',
'centre of buoyancy'];
t2_set : SET OF representation_item := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'stability property') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
t2_set := t1_set[i].item_element;
violation := SIZEOF(QUERY ( items <* t2_set | (items.name = arg_list[j]) )) <> 1;
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- stability_property_has_name
RULE surface with identification assignment FOR (APPLIED_CLASSIFICATION_ASSIGNMENT);
LOCAL
c_a_set: SET OF APPLIED_CLASSIFICATION_ASSIGNMENT := [];
t1_set: SET OF surface := [];
t2_set: SET OF applied_identification_assignment := [];
arg_list: LIST OF STRING := ['surface with identifier'];
violation: LOGICAL := FALSE;
END_LOCAL;
(* get all classification_assignment instances *)
REPEAT j:=1 TO HIINDEX(arg_list) WHILE (NOT violation);
c_a_set := QUERY(i <* APPLIED_CLASSIFICATION_ASSIGNMENT |
i.assigned class.NAME = arg LIST[j]);
END_REPEAT;
(* get all instances of surface that have class id *)
REPEAT i := 1 TO HIINDEX(c_a_set);
REPEAT j := 1 TO HIINDEX(c_a_set[i].items);
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set |
j.role.name = 'globally unambiguous identifier');
violation := NOT (SIZEOF(T2_SET) = 1);
END_REPEAT;
WHERE
wr1: NOT violation;
END_RULE; -- surface_with_identification_assignment
RULE unique_approvals_in_approval_history FOR (group,
applied_group_assignment);
LOCAL
violate : LOGICAL := FALSE;
t3_set : SET OF approval := [];
t1_set : SET OF group := [];
t2_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( i <* group | VALUE_IN(which_class(i),
'approval history') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
t2_set := QUERY ( a <* applied_group_assignment |
(a.assigned_group = t1_set[i]) );
t3_set := QUERY ( b <* t2_set[1].items | (
'SHIP_MOULDED_FORM_SCHEMA.APPROVAL' IN TYPEOF(b)) );
violate := NOT VALUE_UNIQUE(t3_set);
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- unique_approvals_in_approval_history
RULE user_def_appendage_type_description_required FOR (representation);
LOCAL
violation : LOGICAL := FALSE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(representation) BY 1 WHILE NOT violation;
violation := (SIZEOF(QUERY ( r <* representation[i].items | ((
'SHIP_MOULDED_FORM_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN
TYPEOF(r)) AND (r.name = 'type of appendage') AND (r\
descriptive_representation_item.description = 'user defined')) ))
> 0) AND (SIZEOF(QUERY ( r <* representation[i].items |
(r.name = 'user def appendage type') )) = 0);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- user_def_appendage_type_description_required
RULE user_def_function_description_required FOR (representation);
LOCAL
violation : LOGICAL := FALSE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(representation) BY 1 WHILE NOT violation;
violation := (SIZEOF(QUERY ( r <* representation[i].items | ((
'SHIP_MOULDED_FORM_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN
TYPEOF(r)) AND (r.name = 'function') AND (r\
descriptive_representation_item.description = 'user defined')) ))
> 0) AND (SIZEOF(QUERY ( r <* representation[i].items |
(r.name = 'user def function') )) = 0);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- user_def_function_description_required
RULE valid_product_definition_for_class_moulded_form FOR (
applied_classification_assignment, applied_group_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF product_definition := [];
violate1 : LOGICAL;
violate2 : LOGICAL;
c_a_set : SET OF applied_classification_assignment := [];
gr_ass : SET OF applied_group_assignment := [];
groups : SET OF group := [];
END_LOCAL;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = 'ship moulded form') );
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
gr_ass := QUERY ( i <* applied_group_assignment | (i.role.name = 'equivalence') );
REPEAT i := 1 TO HIINDEX(gr_ass) BY 1;
REPEAT j := 1 TO HIINDEX(gr_ass[i].items) BY 1;
IF gr_ass[i].items[j] IN t1_set THEN
groups := groups + gr_ass[i].assigned_group;
END_IF;
END_REPEAT;
END_REPEAT;
gr_ass := QUERY ( i <* applied_group_assignment |
((SIZEOF(i.items) <> 0) AND (i.role.name = 'item structure') AND
(i.assigned_group IN groups)) );
REPEAT i := 1 TO HIINDEX(gr_ass) BY 1 WHILE NOT violation;
REPEAT j := 1 TO HIINDEX(gr_ass[i].items) BY 1 WHILE NOT violation;
violate1 := VALUE_IN(which_class(gr_ass[i].items[j]), 'moulded form');
violate2 := VALUE_IN(which_class(gr_ass[i].items[j]), 'moulded form relationship');
violation := NOT (violate1 OR violate2);
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; -- valid_product_definition_for_class_moulded_form
RULE version_creation_has_mandatory_attribute_description FOR (action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
END_LOCAL;
t1_set := QUERY ( i <* action | VALUE_IN(which_class(i),
'version creation') );
violate := SIZEOF(QUERY ( k <* t1_set | (NOT EXISTS(k.description)) )) > 0;
WHERE
wr1: (NOT violate);
END_RULE; -- version_creation_has_mandatory_attribute_description
RULE version_deletion_has_mandatory_attribute_description FOR (action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
END_LOCAL;
t1_set := QUERY ( i <* action | VALUE_IN(which_class(i),'version deletion') );
violate := SIZEOF(QUERY ( k <* t1_set | (NOT EXISTS(k.description)) )) > 0;
WHERE
wr1: (NOT violate);
END_RULE; -- version_deletion_has_mandatory_attribute_description
RULE version_history_has_exactly_one_assigned_group FOR (
applied_group_assignment, group);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF group := [];
set_1 : SET OF applied_group_assignment := [];
set_3 : SET OF group_item := [];
set_2 : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* group | VALUE_IN(which_class(a),
'version history') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
set_1 := QUERY ( b <* applied_group_assignment |
((b.assigned_group = t1_set[i]) AND (b.role.name = 'current version')) );
set_2 := QUERY ( c <* applied_group_assignment |
((c.assigned_group = t1_set[i]) AND (c.role.name = 'members')) );
violate := (SIZEOF(set_1) <> 1) OR (SIZEOF(set_2) <> 1);
IF NOT violate THEN set_3 := set_1[1].items * set_2[1].items;
violate := (SIZEOF(set_3) <> 1) OR (NOT
VALUE_IN(which_class(set_3 [1]),'versionable object'));
END_IF;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- version_history_has_exactly_one_assigned_group
RULE version_history_is_referenced_by_at_least_one_versions FOR (
applied_group_assignment, group);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF group := [];
a_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* group | VALUE_IN(which_class(a),
'version history') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_group_assignment |
((b.assigned_group = t1_set[i]) AND (b.role.name = 'versions')) );
violate := SIZEOF(a_set) < 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; --version_history_is_referenced_by_at_least_one_versions
RULE version_history_referenced_by_exactly_one_current_version FOR (
applied_group_assignment, group);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF group := [];
a_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* group | VALUE_IN(which_class(a),
'version history') );
REPEAT := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_group_assignment |
((b.assigned_group = t1_set[i]) AND (b.role.name = 'current version')) );
violate := SIZEOF(a_set) <> 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- version_history_referenced_by_exactly_one_current_version
RULE version_history_referenced_by_multiple_roles FOR (
applied_group_assignment, group);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF group := [];
a_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* group | VALUE_IN(which_class(a),
'version history') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_group_assignment |
((b.assigned_group = t1_set[i]) AND (NOT (b.role.name IN ['versions',
'current version','relationships']))) );
violate := SIZEOF(a_set) < 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- version_history_referenced_by_multiple_roles
RULE version_modification_has_mandatory_attribute_description FOR (action);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF action := [];
END_LOCAL;
t1_set := QUERY ( i <* action | VALUE_IN(which_class(i),
'version modification') );
violate := SIZEOF(QUERY ( k <* t1_set | (NOT EXISTS(k.description)) )) > 0;
WHERE
wr1: (NOT violate);
END_RULE; --version_modification_has_mandatory_attribute_description
RULE version_relationship_associates_with_versionable_object FOR (
applied_identification_assignment);
LOCAL
violate : LOGICAL := FALSE;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(applied_identification_assignment) BY 1
WHILE NOT violate;
IF (SIZEOF(USEDIN(applied_identification_assignment[i],'SHIP_MOULDED_FO
RM_SCHEMA.IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.'
+ 'RELATING_IDENTIFICATION_ASSIGNMENT')) > 0) OR
(SIZEOF(USEDIN(applied_identification_assignment[i],
'SHIP_MOULDED_FORM_SCHEMA.IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.'
+ 'RELATED_IDENTIFICATION_ASSIGNMENT')) > 0) THEN
REPEAT j := 1 TO HIINDEX(applied_identification_assignment[i].items) BY 1 WHILE NOT violate;
violate := NOT VALUE_IN(which_class(applied_identification_assignment[i].items[j]),
'versionable object');
END_REPEAT;
END_IF;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; --version_relationship_associates_with_versionable_object
RULE version_relationship_has_mandatory_attribute_description FOR (
identification_assignment_relationship);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF identification_assignment_relationship := [];
END_LOCAL;
t1_set := QUERY ( i <* identification_assignment_relationship |
VALUE_IN(which_class(i),'version relationship') );
violate := SIZEOF(QUERY ( k <* t1_set | (NOT EXISTS(k.description)) )) > 0;
WHERE
wr1: (NOT violate);
END_RULE; --version_relationship_has_mandatory_attribute_description
RULE version_relationship_has_unique_versions FOR (
identification_assignment_relationship);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF identification_assignment_relationship := [];
END_LOCAL;
t1_set := QUERY ( a <* identification_assignment_relationship |
VALUE_IN(which_class(a),'version relationship') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
violate := t1_set[i].relating_identification_assignment.assigned_id
= t1_set[i].related_identification_assignment.assigned_id;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; -- version_relationship_has_unique_versions
RULE versionable_object_has_one_version_id FOR (
applied_identification_assignment);
LOCAL
version_ids : SET OF applied_identification_assignment := [];
duplicate : LOGICAL := FALSE;
versionable_objects : BAG OF identification_item := [];
END_LOCAL;
version_ids := QUERY ( i <* applied_identification_assignment |
(i.role.name = 'version identifier') );
REPEAT i := 1 TO HIINDEX(version_ids) BY 1;
versionable_objects := versionable_objects + version_ids[i].items;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(versionable_objects) BY 1 WHILE NOT duplicate;
REPEAT j := i + 1 TO HIINDEX(versionable_objects) BY 1 WHILE NOT duplicate;
duplicate := versionable_objects[i] :=: versionable_objects[j];
END_REPEAT;
END_REPEAT;
WHERE
wr1: (NOT duplicate);
END_RULE; -- versionable_object_has_one_version_id
RULE versioned_action_request_with_identification_assignment FOR (
applied_classification_assignment);
LOCAL
violation : LOGICAL := FALSE;
t1_set : SET OF versioned_action_request := [];
c_a_set : SET OF applied_classification_assignment := [];
arg_list : LIST OF STRING := ['change request'];
t2_set : SET OF applied_identification_assignment := [];
END_LOCAL;
REPEAT j := 1 TO HIINDEX(arg_list) BY 1 WHILE NOT violation;
c_a_set := QUERY ( i <* applied_classification_assignment |
(i.assigned_class.name = arg_list[j]) );
END_REPEAT;
REPEAT i := 1 TO HIINDEX(c_a_set) BY 1;
REPEAT j := 1 TO HIINDEX(c_a_set[i].items) BY 1;
t1_set := t1_set + c_a_set[i].items[j];
END_REPEAT;
END_REPEAT;
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violation;
t2_set := bag_to_set(USEDIN(t1_set[i],
'SHIP_MOULDED_FORM_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS'));
t2_set := QUERY ( j <* t2_set | (j.role.name = 'globally unambiguous identifier') );
violation := NOT (SIZEOF(t2_set) = 1);
END_REPEAT;
WHERE
wr1: (NOT violation);
END_RULE; --versioned_action_request_with_identification_assignment
RULE versions_is_referenced_by_at_least_one_version_history FOR (
applied_group_assignment, group);
LOCAL
violate : LOGICAL := FALSE;
t1_set : SET OF group := [];
a_set : SET OF applied_group_assignment := [];
END_LOCAL;
t1_set := QUERY ( a <* group |
VALUE_IN(which_class(a),'versions') );
REPEAT i := 1 TO HIINDEX(t1_set) BY 1 WHILE NOT violate;
a_set := QUERY ( b <* applied_group_assignment |
((b.assigned_group = t1_set[i]) AND (b.role.name = 'version history')) );
violate := SIZEOF(a_set) < 1;
END_REPEAT;
WHERE
wr1: (NOT violate);
END_RULE; --versions_is_referenced_by_at_least_one_version_history
FUNCTION acyclic_curve_replica(
rep: curve_replica;
parent: curve
): BOOLEAN;
IF NOT ('SHIP_MOULDED_FORM_SCHEMA.CURVE_REPLICA' IN TYPEOF(parent))
THEN
RETURN(TRUE);
END_IF;
IF parent :=: rep THEN
RETURN(FALSE);
ELSE
RETURN(acyclic_curve_replica(rep,parent\curve_replica.parent_curve));
END_IF;
END_FUNCTION; -- acyclic_curve_replica
FUNCTION acyclic_mapped_representation(
parent_set: SET OF representation;
children_set: SET OF representation_item
): BOOLEAN;
LOCAL
x : SET OF representation_item;
y : SET OF representation_item;
END_LOCAL;
x := QUERY ( z <* children_set | ('SHIP_MOULDED_FORM_SCHEMA.MAPPED_ITEM' IN TYPEOF(z)) );
IF SIZEOF(x) > 0 THEN
REPEAT i := 1 TO HIINDEX(x) BY 1;
IF x[i]\mapped_item.mapping_source.mapped_representation IN
parent_set THEN
RETURN(FALSE);
END_IF;
IF NOT acyclic_mapped_representation(parent_set +
x[i]\mapped_item.mapping_source.mapped_representation,
x[i]\mapped_item.mapping_source.mapped_representation.items) THEN RETURN(FALSE);
END_IF;
END_REPEAT;
END_IF;
x := children_set - x;
IF SIZEOF(x) > 0 THEN
REPEAT i := 1 TO HIINDEX(x) BY 1;
y := QUERY ( z <* bag_to_set(USEDIN(x[i],'')) | (
'SHIP_MOULDED_FORM_SCHEMA.REPRESENTATION_ITEM' IN
TYPEOF(z)) );
IF NOT acyclic_mapped_representation(parent_set,y) THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
END_IF;
RETURN(TRUE);
END_FUNCTION; -- acyclic_mapped_representation
FUNCTION acyclic_point_replica(
rep: point_replica;
parent: point
): BOOLEAN;
IF NOT ('SHIP_MOULDED_FORM_SCHEMA.POINT_REPLICA' IN TYPEOF(parent))
THEN RETURN(TRUE);
END_IF;
IF parent :=: rep THEN RETURN(FALSE);
ELSE
RETURN(acyclic_point_replica(rep,parent\point_replica.parent_pt));
END_IF;
END_FUNCTION; -- acyclic_point_replica
FUNCTION acyclic_product_category_relationship(
relation: product_category_relationship;
children: SET OF product_category
): BOOLEAN;
LOCAL
x : SET OF product_category_relationship;
local_children : SET OF product_category;
END_LOCAL;
REPEAT i := 1 TO HIINDEX(children) BY 1;
IF relation.category :=: children[i] THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
x := bag_to_set(USEDIN(relation.category,'SHIP_MOULDED_FORM_SCHEMA.' +
'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY'));
local_children := children + relation.category;
IF SIZEOF(x) > 0 THEN
REPEAT i := 1 TO HIINDEX(x) BY 1;
IF NOT
acyclic_product_category_relationship(x[i],local_children)
THEN RETURN(FALSE);
END_IF;
END_REPEAT;
END_IF;
RETURN(TRUE);
END_FUNCTION; -- acyclic_product_category_relationship
FUNCTION acyclic_surface_replica(
rep: surface_replica;
parent: surface
): BOOLEAN;
IF NOT ('SHIP_MOULDED_FORM_SCHEMA.SURFACE_REPLICA' IN
TYPEOF(parent))
THEN
RETURN(TRUE);
END_IF;
IF parent :=: rep THEN
RETURN(FALSE);
ELSE
RETURN(acyclic_surface_replica(rep,parent\surface_replica.parent_surface));
END_IF;
END_FUNCTION; -- acyclic_surface_replica
FUNCTION associated_surface(
arg: pcurve_or_surface
): surface;
LOCAL
surf : surface;
END_LOCAL;
IF 'SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(arg) THEN
surf := arg.basis_surface;
ELSE
surf := arg;
END_IF;
RETURN(surf);
END_FUNCTION; -- associated_surface
FUNCTION bag_to_set(
the_bag: BAG OF GENERIC:intype
): SET OF GENERIC:intype;
LOCAL
the_set : SET OF GENERIC:intype := [];
END_LOCAL;
IF SIZEOF(the_bag) > 0 THEN
REPEAT i := 1 TO HIINDEX(the_bag) BY 1;
the_set := the_set + the_bag[i];
END_REPEAT;
END_IF;
RETURN(the_set);
END_FUNCTION; -- bag_to_set
FUNCTION base_axis(
dim: INTEGER;
axis1, axis2, axis3: direction
): LIST [2:3] OF direction;
LOCAL
u : LIST [2:3] OF direction;
d1 : direction;
d2 : direction;
factor : REAL;
END_LOCAL;
IF dim = 3 THEN
d1 := NVL(normalise(axis3),dummy_gri || direction([0,0,1]));
d2 := first_proj_axis(d1,axis1);
u := [d2,second_proj_axis(d1,d2,axis2),d1];
ELSE
IF EXISTS(axis1) THEN
d1 := normalise(axis1);
u := [d1,orthogonal_complement(d1)];
IF EXISTS(axis2) THEN
factor := dot_product(axis2,u[2]);
IF factor < 0 THEN
u[2].direction_ratios[1] := -u[2].direction_ratios[1];
u[2].direction_ratios[2] := -u[2].direction_ratios[2];
END_IF;
END_IF;
ELSE
IF EXISTS(axis2) THEN
d1 := normalise(axis2);
u := [orthogonal_complement(d1),d1];
u[1].direction_ratios[1] := -u[1].direction_ratios[1];
u[1].direction_ratios[2] := -u[1].direction_ratios[2];
ELSE;
u := [dummy_gri || direction([1,0]),dummy_gri ||
direction([0,1])];
END_IF;
END_IF;
END_IF;
RETURN(u);
END_FUNCTION; -- base_axis
FUNCTION boolean_choose(
b: BOOLEAN;
choice1: GENERIC:item;
choice2: GENERIC:item
): GENERIC:item;
IF b THEN
RETURN(choice1);
ELSE
RETURN(choice2);
END_IF;
END_FUNCTION; -- boolean_choose
FUNCTION build_2axes(
ref_direction: direction
): LIST [2:2] OF direction;
LOCAL
d : direction := NVL(normalise(ref_direction),dummy_gri ||
direction([1,0]));
END_LOCAL;
RETURN([d,orthogonal_complement(d)]);
END_FUNCTION; -- build_2axes
FUNCTION build_axes(
axis, ref_direction: direction
): LIST [3:3] OF direction;
LOCAL
d1 : direction;
d2 : direction;
END_LOCAL;
d1 := NVL(normalise(axis),dummy_gri || direction([0,0,1]));
d2 := first_proj_axis(d1,ref_direction);
RETURN([d2,normalise(cross_product(d1,d2)).orientation,d1]);
END_FUNCTION; -- build_axes
FUNCTION closed_shell_reversed(
a_shell: closed_shell
): oriented_closed_shell;
LOCAL
the_reverse : oriented_closed_shell;
END_LOCAL;
IF 'SHIP_MOULDED_FORM_SCHEMA.ORIENTED_CLOSED_SHELL' IN
TYPEOF(a_shell)
THEN
the_reverse := dummy_tri || connected_face_set(a_shell\
connected_face_set.cfs_faces) || closed_shell() ||
oriented_closed_shell(a_shell\oriented_closed_shell.closed_shell_element,NOT
a_shell\oriented_closed_shell.orientation);
ELSE
the_reverse := dummy_tri || connected_face_set(a_shell\connected_face_set.cfs_faces)
|| closed_shell() || oriented_closed_shell(a_shell,FALSE);
END_IF;
RETURN(the_reverse);
END_FUNCTION; -- closed_shell_reversed
FUNCTION conditional_reverse(
p: BOOLEAN;
an_item: reversible_topology
): reversible_topology;
IF p THEN
RETURN(an_item);
ELSE
RETURN(topology_reversed(an_item));
END_IF;
END_FUNCTION; -- conditional_reverse
FUNCTION constraints_composite_curve_on_surface(
c: composite_curve_on_surface
): BOOLEAN;
LOCAL
n_segments : INTEGER := SIZEOF(c.segments);
END_LOCAL;
REPEAT k := 1 TO n_segments BY 1;
IF (NOT ('SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(c\
composite_curve.segments[k].parent_curve))) AND (NOT (
'SHIP_MOULDED_FORM_SCHEMA.SURFACE_CURVE' IN TYPEOF(c\
composite_curve.segments[k].parent_curve))) AND (NOT (
'SHIP_MOULDED_FORM_SCHEMA.COMPOSITE_CURVE_ON_SURFACE' IN
TYPEOF(c\composite_curve.segments[k].parent_curve))) THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
RETURN(TRUE);
END_FUNCTION; -- constraints_composite_curve_on_surface
FUNCTION constraints_param_b_spline(
degree: INTEGER;
up_knots: INTEGER;
up_cp: INTEGER;
knot_mult: LIST OF INTEGER;
knots: LIST OF parameter_value
): BOOLEAN;
LOCAL
k : INTEGER;
sum : INTEGER;
result : BOOLEAN := TRUE;
END_LOCAL;
sum := knot_mult[1];
REPEAT i := 2 TO up_knots BY 1;
sum := sum + knot_mult[i];
END_REPEAT;
IF (degree < 1) OR (up_knots < 2) OR (up_cp < degree) OR (sum <> (
degree + up_cp + 2)) THEN
result := FALSE;
RETURN(result);
END_IF;
k := knot_mult[1];
IF (k < 1) OR (k > (degree + 1)) THEN
result := FALSE;
RETURN(result);
END_IF;
REPEAT i := 2 TO up_knots BY 1;
IF (knot_mult[i] < 1) OR (knots[i] <= knots [i - 1]) THEN
result := FALSE;
RETURN(result);
END_IF;
k := knot_mult[i];
IF (i < up_knots) AND (k > degree) THEN
result := FALSE;
RETURN(result);
END_IF;
IF (i = up_knots) AND (k > (degree + 1)) THEN
result := FALSE;
RETURN(result);
END_IF;
END_REPEAT;
RETURN(result);
END_FUNCTION; -- constraints_param_b_spline
FUNCTION cross_product(
arg1, arg2: direction
): vector;
LOCAL
v2 : LIST [3:3] OF REAL;
v1 : LIST [3:3] OF REAL;
mag : REAL;
res : direction;
result : vector;
END_LOCAL;
IF (NOT EXISTS(arg1)) OR (argl.dim = 2) OR (NOT EXISTS(arg2)) OR
(arg2.dim = 2) THEN
RETURN(?);
ELSE
BEGIN
v1 := normalise(arg1).direction_ratios;
v2 := normalise(arg2).direction_ratios;
res := dummy_gri || direction([(v1[2] * v2[3]) - (v1[3] * v2[2]),(
v1[3] * v2[1]) - (v1[1] * v2[3]),(v1[1] * v2[2]) - (v1[2] * v2[1])]);
mag := 0;
REPEAT i := 1 TO 3 BY 1;
mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]);
END_REPEAT;
IF mag > 0 THEN
result := dummy_gri || vector(res,SQRT(mag));
ELSE
result := dummy_gri || vector(arg1,0);
END_IF;
RETURN(result);
END;
END_IF;
END_FUNCTION; -- cross_product
FUNCTION curve_weights_positive(
b: rational_b_spline_curve
): BOOLEAN;
LOCAL
result : BOOLEAN := TRUE;
END_LOCAL;
REPEAT i := 0 TO b.upper_index_on_control_points BY 1;
IF b.weights[i] <= 0 THEN
result := FALSE;
RETURN(result);
END_IF;
END_REPEAT;
RETURN(result);
END_FUNCTION; -- curve_weights_positive
FUNCTION derive_dimensional_exponents(
x: unit
): dimensional_exponents;
LOCAL
result : dimensional_exponents :=
dimensional_exponents(0,0,0,0,0,0,0);
END_LOCAL;
IF 'SHIP_MOULDED_FORM_SCHEMA.DERIVED_UNIT' IN TYPEOF(x) THEN
REPEAT i := LOINDEX(x.elements) TO HIINDEX(x.elements) BY 1;
result.length_exponent := result.length_exponent +
(x.elements[i].exponent * x.elements[i].unit.dimensions.length_exponent);
result.mass_exponent := result.mass_exponent + (x.elements[i].
exponent * x.elements[i].unit.dimensions.mass_exponent);
result.time_exponent := result.time_exponent +
(x.elements[i].exponent * x.elements[i].unit.dimensions.time_exponent);
result.electric_current_exponent := result.
electric_current_exponent + (x.elements[i].exponent * x.
elements[i].unit.dimensions.electric_current_exponent);
result.thermodynamic_temperature_exponent := result.
thermodynamic_temperature_exponent + (x.elements[i].exponent *
x.elements[i].unit.dimensions.thermodynamic_temperature_exponent);
result.amount_of_substance_exponent := result.
amount_of_substance_exponent + (x.elements[i].exponent *
x.elements[i].unit.dimensions.amount_of_substance_exponent);
result.luminous_intensity_exponent := result.
luminous_intensity_exponent + (x.elements[i].exponent *
x.elements[i].unit.dimensions.luminous_intensity_exponent);
END_REPEAT;
ELSE
result := x.dimensions;
END_IF;
RETURN(result);
END_FUNCTION; -- derive_dimensional_exponents
FUNCTION dimension_of(
item: geometric_representation_item
): dimension_count;
LOCAL
x : SET OF representation;
y : representation_context;
dim : dimension_count;
END_LOCAL;
IF 'SHIP_MOULDED_FORM_SCHEMA.CARTESIAN_POINT' IN TYPEOF(item)
THEN
dim := SIZEOF(item\cartesian_point.coordinates);
RETURN(dim);
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.DIRECTION' IN TYPEOF(item) THEN
dim := SIZEOF(item\direction.direction_ratios);
RETURN(dim);
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.VECTOR' IN TYPEOF(item) THEN
dim := SIZEOF(item\vector.orientation\direction.direction_ratios);
RETURN(dim);
END_IF;
x := using_representations(item);
y := x[1].context_of_items;
dim := y\geometric_representation_context.coordinate_space_dimension;
RETURN(dim);
END_FUNCTION; -- dimension_of
FUNCTION dimensions_for_si_unit(
n: si_unit_name
): dimensional_exponents;
CASE n OF
metre : RETURN(dimensional_exponents(1,0,0,0,0,0,0));
gram : RETURN(dimensional_exponents(0,1,0,0,0,0,0));
second : RETURN(dimensional_exponents(0,0,1,0,0,0,0));
ampere : RETURN(dimensional_exponents(0,0,0,1,0,0,0));
kelvin : RETURN(dimensional_exponents(0,0,0,0,1,0,0));
mole RETURN(dimensional_exponents(0,0,0,0,0,1,0));
candela : RETURN(dimensional_exponents(0,0,0,0,0,0,1));
radian : RETURN(dimensional_exponents(0,0,0,0,0,0,0));
steradian : RETURN(dimensional_exponents(0,0,0,0,0,0,0));
hertz : RETURN(dimensional_exponents(0,0,-1,0,0,0,0));
newton : RETURN(dimensional_exponents(1,1,-2,0,0,0,0));
pascal : RETURN(dimensional_exponents(-1,1,-2,0,0,0,0));
joule : RETURN(dimensional_exponents(2,1,-2,0,0,0,0));
watt : RETURN(dimensional_exponents(2,1,-3,0,0,0,0));
coulomb : RETURN(dimensional_exponents(0,0,1,1,0,0,0));
volt : RETURN(dimensional_exponents(2,1,-3,-1,0,0,0));
farad : RETURN(dimensional_exponents(-2,-1,4,1,0,0,0));
ohm : RETURN(dimensional_exponents(2,1,-3,-2,0,0,0));
siemens : RETURN(dimensional_exponents(-2,-1,3,2,0,0,0));
weber : RETURN(dimensional_exponents(2,1,-2,-1,0,0,0));
tesla : RETURN(dimensional_exponents(0,1,-2,-1,0,0,0));
henry : RETURN(dimensional_exponents(2,1,-2,-2,0,0,0));
degree_celsius : RETURN(dimensional_exponents(0,0,0,0,1,0,0));
lumen : RETURN(dimensional_exponents(0,0,0,0,0,0,1));
lux : RETURN(dimensional_exponents(-2,0,0,0,0,0,1));
becquerel : RETURN(dimensional_exponents(0,0,-1,0,0,0,0));
gray : RETURN(dimensional_exponents(2,0,-2,0,0,0,0));
sievert : RETURN(dimensional_exponents(2,0,-2,0,0,0,0));
OTHERWISE : RETURN(?);
END_CASE;
END_FUNCTION; -- dimensions_for_si_unit
FUNCTION dot_product(
arg1, arg2: direction
): REAL;
LOCAL
ndim : INTEGER;
scalar : REAL;
vec1 : direction;
vec2 : direction;
END_LOCAL;
IF (NOT EXISTS(arg1)) OR (NOT EXISTS(arg2)) THEN
scalar := ?;
ELSE
IF arg1.dim <> arg2.dim THEN
scalar := ?;
ELSE
BEGIN
vec1 := normalise(arg1);
vec2 := normalise(arg2);
ndim := arg1.dim;
scalar := 0;
REPEAT i := 1 TO ndim BY 1;
scalar := scalar + (vec1.direction_ratios[i] * vec2.
direction_ratios[i]);
END_REPEAT;
END;
END_IF;
END_IF;
RETURN(scalar);
END_FUNCTION; -- dot_product
FUNCTION edge_reversed(
an_edge: edge
): oriented_edge;
LOCAL
the_reverse : oriented_edge;
END_LOCAL;
IF 'SHIP_MOULDED_FORM_SCHEMA.ORIENTED_EDGE' IN TYPEOF(an_edge)
THEN
the_reverse := dummy_tri ||
edge(an_edge.edge_end,an_edge.edge_start)
|| oriented_edge(an_edge\oriented_edge.edge_element,NOT an_edge\
oriented_edge.orientation);
ELSE
the_reverse := dummy_tri ||
edge(an_edge.edge_end,an_edge.edge_start)
|| oriented_edge(an_edge,FALSE);
END_IF;
RETURN(the_reverse);
END_FUNCTION; -- edge_reversed
FUNCTION face_bound_reversed(
a_face_bound: face_bound
): face_bound;
LOCAL
the_reverse : face_bound;
END_LOCAL;
IF 'SHIP_MOULDED_FORM_SCHEMA.FACE_OUTER_BOUND' IN
TYPEOF(a_face_bound)
THEN
the_reverse := dummy_tri ||
face_bound(a_face_bound\face_bound.bound,
NOT a_face_bound\face_bound.orientation) ||
face_outer_bound();
ELSE
the_reverse := dummy_tri || face_bound(a_face_bound.bound,NOT
a_face_bound.orientation);
END_IF;
RETURN(the_reverse);
END_FUNCTION; -- face_bound_reversed
FUNCTION face_reversed(
a_face: face
): oriented_face;
LOCAL
the_reverse : oriented_face;
END_LOCAL;
IF 'SHIP_MOULDED_FORM_SCHEMA.ORIENTED_FACE' IN TYPEOF(a_face)
THEN
the_reverse := dummy_tri ||
face(set_of_topology_reversed(a_face.bounds)) ||
oriented_face(a_face\oriented_face.face_element,NOT
a_face\oriented_face.orientation);
ELSE
the_reverse := dummy_tri ||
face(set_of_topology_reversed(a_face.bounds)) || oriented_face(a_face,FALSE);
END_IF;
RETURN(the_reverse);
END_FUNCTION; -- face_reversed
FUNCTION first_proj_axis(
z_axis, arg: direction
): direction;
LOCAL
x_vec : vector;
v : direction;
z : direction;
x_axis : direction;
END_LOCAL;
IF NOT EXISTS(z_axis) THEN
RETURN(?);
ELSE
z := normalise(z_axis);
IF NOT EXISTS(arg) THEN
IF z.direction_ratios <> [1,0,0] THEN
v := dummy_gri || direction([1,0,0]);
ELSE
v := dummy_gri || direction([0,1,0]);
END_IF;
ELSE
IF arg.dim <> 3 THEN
RETURN(?);
END_IF;
IF cross_product(arg,z).magnitude = 0 THEN
RETURN(?);
ELSE
v := normalise(arg);
END_IF;
END_IF;
x_vec := scalar_times_vector(dot_product(v,z),z);
x_axis := vector_difference(v,x_vec).orientation;
x_axis := normalise(x_axis);
END_IF;
RETURN(x_axis);
END_FUNCTION; -- first_proj_axis
FUNCTION get_basis_surface(
c: curve_on_surface
): SET [0:2] OF surface;
LOCAL
surfs : SET [0:2] OF surface;
n : INTEGER;
END_LOCAL;
surfs := [];
IF 'SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(c) THEN
surfs := [c\pcurve.basis_surface];
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.SURFACE_CURVE' IN TYPEOF(c) THEN
n := SIZEOF(c\surface_curve.associated_geometry);
REPEAT i := 1 TO n BY 1;
surfs := surfs + associated_surface(c\surface_curve.
associated_geometry[i]);
END_REPEAT;
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.COMPOSITE_CURVE_ON_SURFACE' IN
TYPEOF(c)
THEN
n := SIZEOF(c\composite_curve.segments);
surfs := get_basis_surface(c\composite_curve.segments[1].parent_curve);
IF n > 1 THEN
REPEAT i := 2 TO n BY 1;
surfs := surfs *
get_basis_surface(c\composite_curve.segments[i].parent_curve);
END_REPEAT;
END_IF;
END_IF;
RETURN(surfs);
END_FUNCTION; -- get_basis_surface
FUNCTION get_description_value(
obj: description_attribute_select
): text;
LOCAL
description_bag : BAG OF description_attribute := USEDIN(obj,
'SHIP_MOULDED_FORM_SCHEMA.' +
'DESCRIPTION_ATTRIBUTE.' + 'DESCRIBED_ITEM');
END_LOCAL;
IF SIZEOF(description_bag) = 1 THEN
RETURN(description_bag[1].attribute_value);
ELSE
RETURN(?);
END_IF;
END_FUNCTION; -- get_description_value
FUNCTION get_id_value(
obj: id_attribute_select
): identifier;
LOCAL
id_bag : BAG OF id_attribute := USEDIN(obj,
'SHIP_MOULDED_FORM_SCHEMA.' + 'ID_ATTRIBUTE.' +
'IDENTIFIED_ITEM');
END_LOCAL;
IF SIZEOF(id_bag) = 1 THEN
RETURN(id_bag[1].attribute_value);
ELSE
RETURN(?);
END_IF;
END_FUNCTION; -- get_id_value
FUNCTION get_name_value(
obj: name_attribute_select
): label;
LOCAL
name_bag : BAG OF name_attribute := USEDIN(obj,
'SHIP_MOULDED_FORM_SCHEMA.' + 'NAME_ATTRIBUTE.' +
'NAMED_ITEM');
END_LOCAL;
IF SIZEOF(name_bag) = 1 THEN
RETURN(name_bag[1].attribute_value);
ELSE
RETURN(?);
END_IF;
END_FUNCTION; -- get_name_value
FUNCTION get_role(
obj: role_select
): object_role;
LOCAL
role_bag : BAG OF role_association := USEDIN(obj,
'SHIP_MOULDED_FORM_SCHEMA.' + 'ROLE_ASSOCIATION.' + 'ITEM_WITH_ROLE');
END_LOCAL;
IF SIZEOF(role_bag) = 1 THEN
RETURN(role_bag[1].role);
ELSE
RETURN(?);
END_IF;
END_FUNCTION; -- get_role
FUNCTION item_in_context(
item: representation_item;
cntxt: representation_context
): BOOLEAN;
LOCAL
y : BAG OF representation_item;
END_LOCAL;
IF
SIZEOF(USEDIN(item,'SHIP_MOULDED_FORM_SCHEMA.REPRESENTATION.ITEMS')
* cntxt.representations_in_context) > 0 THEN RETURN(TRUE);
ELSE
y := QUERY ( z <* USEDIN(item,'') | (
'SHIP_MOULDED_FORM_SCHEMA.REPRESENTATION_ITEM' IN
TYPEOF(z)) );
IF SIZEOF(y) > 0 THEN
REPEAT i := 1 TO HIINDEX(y) BY 1;
IF item_in_context(y[i],cntxt) THEN
RETURN(TRUE);
END_IF;
END_REPEAT;
END_IF;
END_IF;
RETURN(FALSE);
END_FUNCTION; -- item_in_context
FUNCTION leap_year(
year: year_number
): BOOLEAN;
IF (((year MOD 4) = 0) AND ((year MOD 100) <> 0)) OR ((year MOD 400) = 0) THEN
RETURN(TRUE);
ELSE
RETURN(FALSE);
END_IF;
END_FUNCTION; -- leap_year
FUNCTION list_face_loops(
f: face
): LIST [0:?] OF loop;
LOCAL
loops : LIST [0:?] OF loop := [];
END_LOCAL;
REPEAT i := 1 TO SIZEOF(f.bounds) BY 1;
loops := loops + f.bounds[i].bound;
END_REPEAT;
RETURN(loops);
END_FUNCTION; -- list_face_loops
FUNCTION list_of_topology_reversed(
a_list: list_of_reversible_topology_item
): list_of_reversible_topology_item;
LOCAL
the_reverse : list_of_reversible_topology_item;
END_LOCAL;
the_reverse := [];
REPEAT i := 1 TO SIZEOF(a_list) BY 1;
the_reverse := topology_reversed(a_list[i]) + the_reverse;
END_REPEAT;
RETURN(the_reverse);
END_FUNCTION; -- list_of_topology_reversed
FUNCTION list_to_array(
lis: LIST [0:?] OF GENERIC:t;
low: INTEGER;
u: INTEGER
): ARRAY OF GENERIC:t;
LOCAL
n : INTEGER;
res : ARRAY [low:u] OF GENERIC:t;
END_LOCAL;
n := SIZEOF(lis);
IF n <> ((u - low) + 1) THEN
RETURN(?);
ELSE
res := [lis[1]];
REPEAT i := 2 TO n BY 1;
res[(low + i) - 1] := lis[i];
END_REPEAT;
RETURN(res);
END_IF;
END_FUNCTION; -- list_to_array
FUNCTION list_to_set(
l: LIST [0:?] OF GENERIC:t
): SET OF GENERIC:t;
LOCAL
s : SET OF GENERIC:t := [];
END_LOCAL;
REPEAT i := 1 TO SIZEOF(l) BY 1;
s := s + l[i];
END_REPEAT;
RETURN(s);
END_FUNCTION; -- list_to_set
FUNCTION make_array_of_array(
lis: LIST [1:?] OF LIST [1:?] OF GENERIC:t;
low1: INTEGER;
u1: INTEGER;
low2: INTEGER;
u2: INTEGER
): ARRAY OF ARRAY OF GENERIC:t;
LOCAL
res : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC:t;
END_LOCAL;
IF ((u1 - low1) + 1) <> SIZEOF(lis) THEN
RETURN(?);
END_IF;
IF ((u2 - low2) + 1) <> SIZEOF(lis[1]) THEN
RETURN(?);
END_IF;
res := [list_to_array(lis[1],low2,u2)];
REPEAT i := 2 TO HIINDEX(lis) BY 1;
IF ((u2 - low2) + 1) <> SIZEOF(lis[i]) THEN
RETURN(?);
END_IF;
res[(low1 + i) - 1) := list_to_array(lis[i],low2,u2);
END_REPEAT;
RETURN(res);
END_FUNCTION; -- make_array_of_array
FUNCTION mixed_loop_type_set (
l: SET [0:?] OF loop
): LOGICAL;
LOCAL
poly_loop_type : LOGICAL;
END_LOCAL;
IF SIZEOF(l) <= 1 THEN
RETURN(FALSE);
END_IF;
poly_loop_type := 'SHIP_MOULDED_FORM_SCHEMA.POLY_LOOP' IN
TYPEOF(l[1]);
REPEAT i := 2 TO SIZEOF(l) BY 1;
IF ('SHIP_MOULDED_FORM_SCHEMA.POLY_LOOP' IN TYPEOF(l[i])) <>
poly_loop_type THEN
RETURN(TRUE);
END_IF;
END_REPEAT;
RETURN(FALSE);
END_FUNCTION; -- mixed_loop_type_set
FUNCTION nmsf_curve_check(
cv: representation_item
): BOOLEAN;
IF SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.BOUNDED_CURVE',
'SHIP_MOULDED_FORM_SCHEMA.CONIC',
'SHIP_MOULDED_FORM_SCHEMA.CURVE_REPLICA',
'SHIP_MOULDED_FORM_SCHEMA.LINE',
'SHIP_MOULDED_FORM_SCHEMA.OFFSET_CURVE_3D') * TYPEOF(cv)) > 1 THEN
RETURN(FALSE);
ELSE
IF (('SHIP_MOULDED_FORM_SCHEMA.B_SPLINE_CURVE' IN TYPEOF(cv))
AND (cv\b_spline_curve.self_intersect = FALSE)) OR
(cv\b_spline_curve.self_intersect = UNKNOWN) THEN
RETURN(TRUE);
ELSE
IF SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.CONIC',
'SHIP_MOULDED_FORM_SCHEMA.LINE'] * TYPEOF(cv)) = 1 THEN RETURN(TRUE);
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.CURVE_REPLICA' IN TYPEOF(cv)
THEN
RETURN(nmsf_curve_check(cv\curve_replica.parent_curve));
ELSE
IF ('SHIP_MOULDED_FORM_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(cv))
AND ((cv\offset_curve_3d.self_intersect = FALSE) OR
(cv\offset_curve_3d.self_intersect = UNKNOWN)) AND (NOT(
'SHIP_MOULDED_FORM_SCHEMA.POLYLINE' IN TYPEOF(cv\
offset_curve_3d.basis_curve))) THEN
RETURN(nmsf_curve_check(cv\offset_curve_3d.basis_curve));
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN TYPEOF(cv)
THEN
RETURN(nmsf_curve_check(cv\pcurve.reference_to_curve\
representation.items[1]) AND
nmsf_surface_check(cv\pcurve.basis_surface));
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.SURFACE_CURVE' IN
TYPEOF(cv)
THEN
IF nmsf_curve_check(cv\surface_curve.curve_3d)
THEN
REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry) BY 1;
IF 'SHIP_MOULDED_FORM_SCHEMA.SURFACE' IN
TYPEOF(cv\surface_curve.associated_geometry[i]) THEN
IF NOT nmsf_surface_check(cv\surface_curve.
associated_geometry[i]) THEN
RETURN(FALSE);
END_IF;
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.PCURVE' IN
TYPEOF(cv\surface_curve.associated_geometry[i])
THEN
IF NOT nmsf_curve_check(cv\surface_curve.
associated_geometry[i]) THEN
RETURN(FALSE);
END_IF;
END_IF;
END_IF;
END_REPEAT;
RETURN(TRUE);
END_IF;
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.POLYLINE' IN
TYPEOF(cv)
THEN
IF SIZEOF(cv\polyline.points) >= 3 THEN
RETURN(TRUE);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN(FALSE);
END_FUNCTION; -- nmsf_curve_check
FUNCTION nmsf_surface_check(
surf: surface
): BOOLEAN;
IF 'SHIP_MOULDED_FORM_SCHEMA.ELEMENTARY_SURFACE' IN TYPEOF(surf)
THEN
RETURN(TRUE);
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.SWEPT_SURFACE' IN TYPEOF(surf)
THEN
RETURN(nmsf_curve_check(surf\swept_surface.swept_curve));
ELSE
IF (('SHIP_MOULDED_FORM_SCHEMA.OFFSET_SURFACE' IN TYPEOF(surf))
AND (surf\offset_surface.self_intersect = FALSE)) OR
(surf\offset_surface.self_intersect = UNKNOWN) THEN
RETURN(nmsf_surface_check(surf\offset_surface.basis_surface));
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.SURFACE_REPLICA' IN
TYPEOF(surf)
THEN
RETURN(nmsf_surface_check(surf\surface_replica.parent_surface));
ELSE
IF (('SHIP_MOULDED_FORM_SCHEMA.B_SPLINE_SURFACE' IN
TYPEOF(surf)) AND (surf\b_spline_surface.self_intersect = FALSE))
OR (surf\b_spline_surface.self_intersect = UNKNOWN)
THEN
RETURN(TRUE);
END_IF;
END_IF;
END_IF;
END_IF;
END_IF;
RETURN(FALSE);
END_FUNCTION; -- nmsf_surface_check
FUNCTION normalise(
arg: vector_or_direction
): vector_or_direction;
LOCAL
ndim : INTEGER;
v : direction;
vec : vector;
mag : REAL;
result : vector_or_direction;
END_LOCAL;
IF NOT EXISTS(arg) THEN
result := ?;
ELSE
ndim := arg.dim;
IF 'SHIP_MOULDED_FORM_SCHEMA.VECTOR' IN TYPEOF(arg) THEN
BEGIN
v := dummy_gri ||
direction(arg.orientation.direction_ratios);
IF arg.magnitude = 0 THEN
RETURN(?);
ELSE
vec := dummy_gri || vector(v,1);
END_IF;
END;
ELSE
v := dummy_gri || direction(arg.direction_ratios);
END_IF;
mag := 0;
REPEAT i := 1 TO ndim BY 1;
mag := mag + (v.direction_ratios[i] *
v.direction_ratios[i]);
END_REPEAT;
IF mag > 0 THEN
mag := SQRT(mag);
REPEAT i := 1 TO ndim BY 1;
v.direction_ratios[i] := v.direction_ratios[i] / mag;
END_REPEAT;
IF 'SHIP_MOULDED_FORM_SCHEMA.VECTOR' IN TYPEOF(arg) THEN
vec.orientation := v;
result := vec;
ELSE
result := v;
END_IF;
ELSE
RETURN(?);
END_IF;
END_IF;
RETURN(result);
END_FUNCTION; -- normalize
FUNCTION open_shell_reversed(
a_shell: open_shell
): oriented_open_shell;
LOCAL
the_reverse : oriented_open_shell;
END_LOCAL;
IF 'SHIP_MOULDED_FORM_SCHEMA.ORIENTED_OPEN_SHELL' IN
TYPEOF(a_shell)
THEN
the_reverse := dummy_tri || connected_face_set(a_shell\
connected_face_set.cfs_faces) || open_shell() ||
oriented_open_shell(a_shell\oriented_open_shell.open_shell_element,NOT
a_shell\oriented_open_shell.orientation);
ELSE
the_reverse := dummy_tri || connected_face_set(a_shell\
connected_face_set.cfs_faces) || open_shell() ||
oriented_open_shell(a_shell,FALSE);
END_IF;
RETURN(the_reverse);
END_FUNCTION; -- open_shell_reversed
FUNCTION orthogonal_complement(
vec: direction
): direction;
LOCAL
result : direction;
END_LOCAL;
IF (vec.dim <> 2) OR (NOT EXISTS(vec)) THEN
RETURN(?);
ELSE
result := dummy_gri ||
direction([-vec.direction_ratios[2],vec.
direction_ratios[1]]);
RETURN(result);
END_IF;
END_FUNCTION; -- orthogonal_complement
FUNCTION path_head_to_tail(
a_path: path
): BOOLEAN;
LOCAL
n : INTEGER;
p : BOOLEAN := TRUE;
END_LOCAL;
n := SIZEOF(a_path.edge_list);
REPEAT i := 2 TO n BY 1;
p := p AND (a_path.edge_list[i - 1].edge_end :=:
a_path.edge_list[i].edge_start);
END_REPEAT;
RETURN(p);
END_FUNCTION; -- path_head_to_tail
FUNCTION path_reversed(
a_path: path
): oriented_path;
LOCAL
the_reverse : oriented_path;
END_LOCAL;
IF 'SHIP_MOULDED_FORM_SCHEMA.ORIENTED_PATH' IN TYPEOF(a_path)
THEN
the_reverse := dummy_tri ||
path(list_of_topology_reversed(a_path.edge_list)) ||
oriented_path(a_path\oriented_path.path_element,
NOT a_path\oriented_path.orientation);
ELSE
the_reverse := dummy_tri ||
path(list_of_topology_reversed(a_path.
edge_list)) || oriented_path(a_path,FALSE);
END_IF;
RETURN(the_reverse);
END_FUNCTION; -- path_reversed
FUNCTION scalar_times_vector(
scalar: REAL;
vec: vector_or_direction
): vector;
LOCAL
v : direction;
mag : REAL;
result : vector;
END_LOCAL;
IF (NOT EXISTS(scalar)) OR (NOT EXISTS(vec)) THEN
RETURN(?);
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.VECTOR' IN TYPEOF(vec) THEN
v := dummy_gri ||
direction(vec.orientation.direction_ratios);
mag := scalar * vec.magnitude;
ELSE
v := dummy_gri || direction(vec.direction_ratios);
mag := scalar;
END_IF;
IF mag < 0 THEN
REPEAT i := 1 TO SIZEOF(v.direction_ratios) BY 1;
v.direction_ratios[i] := -v.direction_ratios[i];
END_REPEAT;
mag := -mag;
END_IF;
result := dummy_gri || vector(normalise(v),mag);
END_IF;
RETURN(result);
END_FUNCTION; -- scalar_times_vector
FUNCTION second_proj_axis(
z_axis, x_axis, arg: direction
): direction;
LOCAL
temp : vector;
v : direction;
y_axis : vector;
END_LOCAL;
IF NOT EXISTS(arg) THEN
v := dummy_gri || direction([0,1,0]);
ELSE
v := arg;
END_IF;
temp := scalar_times_vector(dot_product(v,z_axis),z_axis);
y_axis := vector_difference(v,temp);
temp := scalar_times_vector(dot_product(v,x_axis),x_axis);
y_axis := vector_difference(y_axis,temp);
y_axis := normalise(y_axis);
RETURN(y_axis.orientation);
END_FUNCTION; -- second_proj_axis
FUNCTION set_of_topology_reversed(
a_set: set_of_reversible_topology_item
): set_of_reversible_topology_item;
LOCAL
the_reverse : set_of_reversible_topology_item;
END_LOCAL;
the_reverse := [];
REPEAT i := 1 TO SIZEOF(a_set) BY 1;
the_reverse := the_reverse + topology_reversed(a_set[i]);
END_REPEAT;
RETURN(the_reverse);
END_FUNCTION; -- set_of_topology_reversed
FUNCTION shell_reversed(
a_shell: shell
): shell;
IF 'SHIP_MOULDED_FORM_SCHEMA.OPEN_SHELL' IN TYPEOF(a_shell) THEN
RETURN(open_shell_reversed(a_shell));
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.CLOSED_SHELL' IN TYPEOF(a_shell)
THEN
RETURN(closed_shell_reversed(a_shell));
ELSE
RETURN(?);
END_IF;
END_IF;
END_FUNCTION; -- shell_reversed
FUNCTION surface_weights_positive(
b: rational_b_spline_surface
): BOOLEAN;
LOCAL
result : BOOLEAN := TRUE;
END_LOCAL;
REPEAT i := 0 TO b.u_upper BY 1;
REPEAT j := 0 TO b.v_upper BY 1;
IF b.weights[i][j] <= 0 THEN
result := FALSE;
RETURN(result);
END_IF;
END_REPEAT;
END_REPEAT;
RETURN(result);
END_FUNCTION; -- surface_weights_positive
FUNCTION topology_reversed(
an_item: reversible_topology
): reversible_topology;
IF 'SHIP_MOULDED_FORM_SCHEMA.EDGE' IN TYPEOF(an_item) THEN
RETURN(edge_reversed(an_item));
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.PATH' IN TYPEOF(an_item) THEN
RETURN(path_reversed(an_item));
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.FACE_BOUND' IN TYPEOF(an_item) THEN
RETURN(face_bound_reversed(an_item));
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.FACE' IN TYPEOF(an_item) THEN
RETURN(face_reversed(an_item));
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.SHELL' IN TYPEOF(an_item) THEN
RETURN(shell_reversed(an_item));
END_IF;
IF 'SET' IN TYPEOF(an_item) THEN
RETURN(set_of_topology_reversed(an_item));
END_IF;
IF 'LIST' IN TYPEOF(an_item) THEN
RETURN(list_of_topology_reversed(an_item));
END_IF;
RETURN(?);
END_FUNCTION; -- topology_reversed
FUNCTION using_items(
item: founded_item_select;
checked_items: SET OF founded_item_select
): SET OF founded_item_select;
LOCAL
next_items : SET OF founded_item_select;
new_check_items : SET OF founded_item_select;
result_items : SET OF founded_item_select;
END_LOCAL;
result_items := [];
new_check_items := checked_items + item;
next_items := QUERY ( z <* bag_to_set(USEDIN(item,'')) | ((
'SHIP_MOULDED_FORM_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z))
OR ('SHIP_MOULDED_FORM_SCHEMA.FOUNDED_ITEM' IN TYPEOF(z))) );
IF SIZEOF(next_items) > 0 THEN
REPEAT i := 1 TO HIINDEX(next_items) BY 1;
IF NOT (next_items[i] IN new_check_items) THEN
result_items := result_items + next_items[i] +
using_items(next_items[i],new_check_items);
END_IF;
END_REPEAT;
END_IF;
RETURN(result_items);
END_FUNCTION; -- using_items
FUNCTION using_representations(
item: founded_item_select
): SET OF representation;
LOCAL
results : SET OF representation;
intermediate_items : SET OF founded_item_select;
result_bag : BAG OF representation;
END_LOCAL;
results := [];
result_bag := USEDIN(item,
'SHIP_MOULDED_FORM_SCHEMA.REPRESENTATION.ITEMS');
IF SIZEOF(result_bag) > 0 THEN
REPEAT i := 1 TO HIINDEX(result_bag) BY 1;
results := results + result_bag[i];
END_REPEAT;
END_IF;
intermediate_items := using_items(item,[]);
IF SIZEOF(intermediate_items) > 0 THEN
REPEAT i := 1 TO HIINDEX(intermediate_items) BY 1;
result_bag := USEDIN(intermediate_items[i],
'SHIP_MOULDED_FORM_SCHEMA.REPRESENTATION.ITEMS');
IF SIZEOF(result_bag) > 0 THEN
REPEAT j := 1 TO HIINDEX(result_bag) BY 1;
results := results + result_bag[j];
END_REPEAT;
END_IF;
END_REPEAT;
END_IF;
RETURN(results);
END_FUNCTION; -- using_representations
FUNCTION valid_calendar_date(
date: calendar_date
): LOGICAL;
CASE date.month_component OF
1 : RETURN((1 <= date.day_component) AND (date.day_component <= 31));
2 : BEGIN
IF leap_year(date.year_component) THEN
RETURN((1 <= date.day_component) AND (date.day_component <= 29));
ELSE
RETURN((1 <= date.day_component) AND (date.day_component <= 28));
END_IF;
END;
3 : RETURN((1 <= date.day_component) AND (date.day_component <= 31));
4 : RETURN((1 <= date.day_component) AND (date.day_component <= 30));
5 : RETURN((1 <= date.day_component) AND (date.day_component <= 31));
6 : RETURN((1 <= date.day_component) AND (date.day_component <= 30));
7 : RETURN((1 <= date.day_component) AND (date.day_component <= 31));
8 : RETURN((1 <= date.day_component) AND (date.day_component <= 31));
9 : RETURN((1 <= date.day_component) AND (date.day_component <= 30));
10 : RETURN((1 <= date.day_component) AND (date.day_component <= 31));
11 : RETURN((1 <= date.day_component) AND (date.day_component <= 30));
12 : RETURN((1 <= date.day_component) AND (date.day_component <= 31));
END_CASE;
RETURN(FALSE);
END_FUNCTION; -- valid_calendar_date
FUNCTION valid_measure_value(
m: measure_value
): BOOLEAN;
IF 'REAL' IN TYPEOF(m) THEN
RETURN(m > 0);
ELSE
IF 'INTEGER' IN TYPEOF(m) THEN
RETURN(m > 0);
ELSE
RETURN(TRUE);
END_IF;
END_IF;
END_FUNCTION; -- valid_measure_value
FUNCTION valid_time(
time: local_time
): BOOLEAN;
IF EXISTS(time.second_component) THEN
RETURN(EXISTS(time.minute_component));
ELSE
RETURN(TRUE);
END_IF;
END_FUNCTION; -- valid_time
FUNCTION valid_units(
m: measure_with_unit
): BOOLEAN;
IF 'SHIP_MOULDED_FORM_SCHEMA.LENGTH_MEASURE' IN TYPEOF(m.
value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(1,0,0,0,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.MASS_MEASURE' IN
TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,1,0,0,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.TIME_MEASURE' IN
TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,0,1,0,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.ELECTRIC_CURRENT_MEASURE' IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,0,0,1,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.THERMODYNAMIC_TEMPERATURE_MEASURE' IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,0,0,0,1,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.CELSIUS_TEMPERATURE_MEASURE' IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,0,0,0,1,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.AMOUNT_OF_SUBSTANCE_MEASURE' IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,0,0,0,0,1,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.LUMINOUS_INTENSITY_MEASURE' IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,0,0,0,0,0,1) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,0,0,0,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,0,0,0,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.AREA_MEASURE' IN
TYPEOF(m.value_component)
THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(2,0,0,0,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.VOLUME_MEASURE' IN TYPEOF(m.
value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(3,0,0,0,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.RATIO_MEASURE' IN TYPEOF(m.
value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,0,0,0,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.POSITIVE_LENGTH_MEASURE' IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(1,0,0,0,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.POSITIVE_PLANE_ANGLE_MEASURE' IN
TYPEOF(m.value_component) THEN
IF derive_dimensional_exponents(m.unit_component) <>
dimensional_exponents(0,0,0,0,0,0,0) THEN
RETURN(FALSE);
END_IF;
END_IF;
RETURN(TRUE);
END_FUNCTION; -- valid_units
FUNCTION valid_wireframe_edge_curve(
crv: curve
): BOOLEAN;
IF SIZEOF(['SHIP_MOULDED_FORM_SCHEMA.LINE',
'SHIP_MOULDED_FORM_SCHEMA.CONIC',
'SHIP_MOULDED_FORM_SCHEMA.B_SPLINE_CURVE',
'SHIP_MOULDED_FORM_SCHEMA.POLYLINE'] * TYPEOF(crv)) = 1 THEN
RETURN(TRUE);
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.CURVE_REPLICA' IN TYPEOF(crv)
THEN
RETURN(valid_wireframe_edge_curve(crv\curve_replica.parent_curve));
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.OFFSET_CURVE_3D' IN TYPEOF(crv)
THEN
RETURN(valid_wireframe_edge_curve(crv\offset_curve_3d.basis_curve));
END_IF;
END_IF;
END_IF;
RETURN(FALSE);
END_FUNCTION; -- valid_wireframe_edge_curve
FUNCTION valid_wireframe_vertex_point(
pnt: point
): BOOLEAN;
IF 'SHIP_MOULDED_FORM_SCHEMA.CARTESIAN_POINT' IN TYPEOF(pnt)
THEN
RETURN(TRUE);
ELSE
IF 'SHIP_MOULDED_FORM_SCHEMA.POINT_REPLICA' IN TYPEOF(pnt)
THEN
RETURN(valid_wireframe_vertex_point(pnt\point_replica.parent_pt));
END_IF;
END_IF;
RETURN(FALSE);
END_FUNCTION; -- valid_wireframe_vertex_point
FUNCTION vector_difference(
arg1, arg2: vector_or_direction
): vector;
LOCAL
ndim : INTEGER;
mag2 : REAL;
mag1 : REAL;
mag : REAL;
res : direction;
vec1 : direction;
vec2 : direction;
result : vector;
END_LOCAL;
IF (NOT EXISTS(arg1)) OR (NOT EXISTS(arg2)) OR (arg1.dim <> arg2.dim)
THEN
RETURN(?);
ELSE
BEGIN
IF 'SHIP_MOULDED_FORM_SCHEMA.VECTOR' IN TYPEOF(arg1) THEN
mag1 := arg1.magnitude;
vec1 := arg1.orientation;
ELSE
mag1 := 1;
vec1 := arg1;
END_IF;
IF 'SHIP_MOULDED_FORM_SCHEMA.VECTOR' IN TYPEOF(arg2) THEN
mag2 := arg2.magnitude;
vec2 := arg2.orientation;
ELSE
mag2 := 1;
vec2 := arg2;
END_IF;
vec1 := normalise(vec1);
vec2 := normalise(vec2);
ndim := SIZEOF(vec1.direction_ratios);
mag := 0;
res := dummy_gri || direction(vec1.direction_ratios);
REPEAT i := 1 TO ndim BY 1;
res.direction_ratios[i] := (mag1 * vec1.direction_ratios[i]) + (
mag2 * vec2.direction_ratios[i]);
mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]);
END_REPEAT;
IF mag > 0 THEN
result := dummy_gri || vector(res,SQRT(mag));
ELSE
result := dummy_gri || vector(vec1,0);
END_IF;
END;
END_IF;
RETURN(result);
END_FUNCTION; -- vector_difference
FUNCTION which_class(
t: GENERIC
): LIST OF STRING;
LOCAL
class_list : LIST OF STRING := [];
elements : BAG OF applied_classification_assignment;
END_LOCAL;
elements := USEDIN(t,'SHIP_MOULDED_FORM_SCHEMA.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS');
REPEAT i := 1 TO HIINDEX(elements) BY 1;
IF elements[i]\classification_assignment.role.name = 'class membership' THEN
class_list := class_list +
elements[i]\classification_assignment.assigned_class\group.name;
END_IF;
END_REPEAT;
RETURN(class_list);
END_FUNCTION; -- which_class
END_SCHEMA; -- ship_moulded_form_schema
Приложение B
(обязательное)
СОКРАЩЕННЫЕ НАИМЕНОВАНИЯ ОБЪЕКТОВ ПРИКЛАДНОЙ
ИНТЕРПРЕТИРОВАННОЙ МОДЕЛИ
В таблице B.1 приведены сокращенные наименования объектов, указанных в ПИМ настоящего стандарта. Требования к использованию сокращенных наименований определены в методах реализации, описанных в ИСО 10303-21, ИСО 10303-22, ISO/TS 10303-28.
Таблица B.1
Сокращенные наименования объектов ПИМ
Наименование объекта
Сокращенное наименование
ACTION
ACTION
ACTION_ASSIGNMENT
ACTASS
ACTION_METHOD
ACTMTH
ACTION_RELATIONSHIP
ACTRLT
ACTION_REQUEST_ASSIGNMENT
ACRQAS
ACTION_REQUEST_SOLUTION
ACRQSL
ADDRESS
ADDRSS
ADVANCED_FACE
ADVFC
AMOUNT_OF_SUBSTANCE_UNIT
AOSU
APPLICATION_CONTEXT
APPCNT
APPLICATION_CONTEXT_ELEMENT
APCNEL
APPLICATION_PROTOCOL_DEFINITION
APPRDF
APPLIED_ACTION_ASSIGNMENT
APACAS
APPLIED_ACTION_REQUEST_ASSIGNMENT
AARA
APPLIED_APPROVAL_ASSIGNMENT
APAPAS
APPLIED_CLASSIFICATION_ASSIGNMENT
APCLAS
APPLIED_DATE_AND_TIME_ASSIGNMENT
ADATA
APPLIED_DOCUMENT_REFERENCE
APDCRF
APPLIED_EFFECTIVITY_ASSIGNMENT
APEFAS
APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT
AEIA
APPLIED_GROUP_ASSIGNMENT
APGRAS
APPLIED_IDENTIFICATION_ASSIGNMENT
APIDAS
APPLIED_ORGANIZATION_ASSIGNMENT
APORAS
APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT
APAOA
APPLIED_PERSON_ASSIGNMENT
APPRAS
APPROVAL
APPRVL
APPROVAL_ASSIGNMENT
APPASS
APPROVAL_DATE_TIME
APDTTM
APPROVAL_PERSON_ORGANIZATION
APPROR
APPROVAL_ROLE
APPRL
APPROVAL_STATUS
APPSTT
AXIS1_PLACEMENT
AX1PLC
AXIS2_PLACEMENT_2D
A2PL2D
AXIS2_PLACEMENT_3D
A2PL3D
B_SPLINE_CURVE
BSPCR
B_SPLINE_CURVE_WITH_KNOTS
BSCWK
B_SPLINE_SURFACE
BSPSR
B_SPLINE_SURFACE_WITH_KNOTS
BSSWK
BEZIER_CURVE
BZRCRV
BEZIER_SURFACE
BZRSRF
BOUNDED_CURVE
BNDCRV
BOUNDED_PCURVE
BNDPCR
BOUNDED_SURFACE
BNDSRF
BOUNDED_SURFACE_CURVE
BNSRCR
CALENDAR_DATE
CLNDT
CARTESIAN_POINT
CRTPNT
CARTESIAN_TRANSFORMATION_OPERATOR
CRTROP
CARTESIAN_TRANSFORMATION_OPERATOR_3D
CTO3
CHARACTERIZED_OBJECT
CHROBJ
CIRCLE
CIRCLE
CLASS
CLASS
CLASSIFICATION_ASSIGNMENT
CLSASS
CLASSIFICATION_ROLE
CLSRL
CLOSED_SHELL
CLSSHL
COMPOSITE_CURVE
CMPCRV
COMPOSITE_CURVE_ON_SURFACE
CCOS
COMPOSITE_CURVE_SEGMENT
CMCRSG
COMPOUND_REPRESENTATION_ITEM
CMRPIT
CONIC
CONIC
CONICAL_SURFACE
CNCSRF
CONNECTED_EDGE_SET
CNEDST
CONNECTED_FACE_SET
CNFCST
CONTEXT_DEPENDENT_UNIT
CNDPUN
CONVERSION_BASED_UNIT
CNBSUN
COORDINATED_UNIVERSAL_TIME_OFFSET
CUTO
CURVE
CURVE
CURVE_REPLICA
CRVRPL
CYLINDRICAL_SURFACE
CYLSRF
DATE
DATE
DATE_AND_TIME
DTANTM
DATE_AND_TIME_ASSIGNMENT
DATA
DATE_TIME_ROLE
DTTMRL
DEFINITIONAL_REPRESENTATION
DFNRPR
DEGENERATE_PCURVE
DGNPCR
DEGENERATE_TOROIDAL_SURFACE
DGTRSR
DERIVED_UNIT
DRVUNT
DERIVED_UNIT_ELEMENT
DRUNEL
DESCRIPTION_ATTRIBUTE
DSCATT
DESCRIPTIVE_REPRESENTATION_ITEM
DSRPIT
DIMENSIONAL_EXPONENTS
DMNEXP
DIRECTION
DRCTN
DOCUMENT
DCMNT
DOCUMENT_REFERENCE
DCMRFR
DOCUMENT_REPRESENTATION_TYPE
DCRPTY
DOCUMENT_TYPE
DCMTYP
DOCUMENT_USAGE_CONSTRAINT
DCUSCN
EDGE
EDGE
EDGE_BASED_WIREFRAME_MODEL
EBWM
EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION
EBWSR
EDGE_CURVE
EDGCRV
EDGE_LOOP
EDGLP
EFFECTIVITY
EFFCTV
EFFECTIVITY_ASSIGNMENT
EFFASS
ELECTRIC_CURRENT_UNIT
ELCRUN
ELEMENTARY_SURFACE
ELMSRF
ELLIPSE
ELLPS
EVALUATED_DEGENERATE_PCURVE
EVDGPC
EXECUTED_ACTION
EXCACT
EXTERNAL_IDENTIFICATION_ASSIGNMENT
EXIDAS
EXTERNAL_SOURCE
EXTSRC
EXTERNAL_SOURCE_RELATIONSHIP
EXSRRL
EXTERNALLY_DEFINED_ITEM
EXDFIT
FACE
FACE
FACE_BASED_SURFACE_MODEL
FBSM
FACE_BOUND
FCBND
FACE_OUTER_BOUND
FCOTBN
FACE_SURFACE
FCSRF
FACETED_BREP
FCTBR
FOUNDED_ITEM
FNDITM
FUNCTIONALLY_DEFINED_TRANSFORMATION
FNDFTR
GEOMETRIC_CURVE_SET
GMCRST
GEOMETRIC_REPRESENTATION_CONTEXT
GMRPCN
GEOMETRIC_REPRESENTATION_ITEM
GMRPIT
GEOMETRIC_SET
GMTST
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT
GC
GLOBAL_UNIT_ASSIGNED_CONTEXT
GUAC
GROUP
GROUP
GROUP_ASSIGNMENT
GRPASS
GROUP_RELATIONSHIP
GRPRLT
HYPERBOLA
HYPRBL
ID_ATTRIBUTE
IDATT
IDENTIFICATION_ASSIGNMENT
IDNASS
IDENTIFICATION_ASSIGNMENT_RELATIONSHIP
IDASRL
IDENTIFICATION_ROLE
IDNRL
INTERSECTION_CURVE
INTCRV
ITEM_DEFINED_TRANSFORMATION
ITDFTR
LENGTH_MEASURE_WITH_UNIT
LMWU
LENGTH_UNIT
LNGUNT
LINE
LINE
LOCAL_TIME
LCLTM
LOOP
LOOP
LUMINOUS_INTENSITY_UNIT
LMINUN
MANIFOLD_SOLID_BREP
MNSLBR
MAPPED_ITEM
MPPITM
MASS_MEASURE_WITH_UNIT
MMWU
MASS_UNIT
MSSUNT
MEASURE_WITH_UNIT
MSWTUN
NAME_ATTRIBUTE
NMATT
NAMED_UNIT
NMDUNT
NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION
NMSSR
OBJECT_ROLE
OBJRL
OFFSET_CURVE_3D
OFCR3D
OFFSET_SURFACE
OFFSRF
OPEN_SHELL
OPNSHL
ORDINAL_DATE
ORDDT
ORGANIZATION
ORGNZT
ORGANIZATION_ASSIGNMENT
ORGASS
ORGANIZATION_ROLE
ORGRL
ORGANIZATIONAL_ADDRESS
ORGADD
ORGANIZATIONAL_PROJECT
ORGPRJ
ORIENTED_CLOSED_SHELL
ORCLSH
ORIENTED_EDGE
ORNEDG
ORIENTED_FACE
ORNFC
ORIENTED_OPEN_SHELL
OROPSH
ORIENTED_PATH
ORNPTH
ORIENTED_SURFACE
ORNSRF
PARABOLA
PRBL
PARAMETRIC_REPRESENTATION_CONTEXT
PRRPCN
PATH
PATH
PCURVE
PCURVE
PERSON
PERSON
PERSON_AND_ORGANIZATION
PRANOR
PERSON_AND_ORGANIZATION_ASSIGNMENT
PAOA
PERSON_AND_ORGANIZATION_ROLE
PAOR
PERSON_ASSIGNMENT
PRSASS
PERSON_ROLE
PRSRL
PERSONAL_ADDRESS
PRSADD
PLACEMENT
PLCMNT
PLANE
PLANE
PLANE_ANGLE_MEASURE_WITH_UNIT
PAMWU
PLANE_ANGLE_UNIT
PLANUN
POINT
POINT
POINT_ON_CURVE
PNONCR
POINT_ON_SURFACE
PNONSR
POINT_REPLICA
PNTRPL
POLY_LOOP
PLYLP
POLYLINE
PLYLN
PRODUCT
PRDCT
PRODUCT_CATEGORY
PRDCTG
PRODUCT_CATEGORY_RELATIONSHIP
PRCTRL
PRODUCT_CONTEXT
PRDCNT
PRODUCT_DEFINITION
PRDDFN
PRODUCT_DEFINITION_CONTEXT
PRDFCN
PRODUCT_DEFINITION_FORMATION
PRDFFR
PRODUCT_DEFINITION_RELATIONSHIP
PRDFRL
PRODUCT_DEFINITION_SHAPE
PRDFSH
PRODUCT_RELATED_PRODUCT_CATEGORY
PRPC
PROPERTY_DEFINITION
PRPDFN
PROPERTY_DEFINITION_RELATIONSHIP
PRDFR
PROPERTY_DEFINITION_REPRESENTATION
PRDFRP
QUASI_UNIFORM_CURVE
QSUNCR
QUASI_UNIFORM_SURFACE
QSUNSR
RATIO_UNIT
RTUNT
RATIONAL_B_SPLINE_CURVE
RBSC
RATIONAL_B_SPLINE_SURFACE
RBSS
REPRESENTATION
RPRSNT
REPRESENTATION_CONTEXT
RPRCNT
REPRESENTATION_ITEM
RPRITM
REPRESENTATION_MAP
RPRMP
REPRESENTATION_RELATIONSHIP
RPRRLT
ROLE_ASSOCIATION
RLASS
SEAM_CURVE
SMCRV
SERIAL_NUMBERED_EFFECTIVITY
SRNMEF
SHAPE_ASPECT
SHPASP
SHAPE_DEFINITION_REPRESENTATION
SHDFRP
SHAPE_REPRESENTATION
SHPRPR
SI_UNIT
SUNT
SOLID_ANGLE_MEASURE_WITH_UNIT
SAMWU
SOLID_ANGLE_UNIT
SLANUN
SOLID_MODEL
SLDMDL
SPHERICAL_SURFACE
SPHSRF
SUBFACE
SBFC
SURFACE
SRFC
SURFACE_CURVE
SRFCRV
SURFACE_OF_LINEAR_EXTRUSION
SL
SURFACE_OF_REVOLUTION
SROFRV
SURFACE_REPLICA
SRFRPL
SWEPT_SURFACE
SWPSRF
THERMODYNAMIC_TEMPERATURE_UNIT
THTMUN
TIME_UNIT
TMUNT
TOPOLOGICAL_REPRESENTATION_ITEM
TPRPIT
TOROIDAL_SURFACE
TRDSRF
UNCERTAINTY_MEASURE_WITH_UNIT
UMWU
UNIFORM_CURVE
UNFCRV
UNIFORM_SURFACE
UNFSRF
VALUE_REPRESENTATION_ITEM
VLRPIT
VECTOR
VECTOR
VERSIONED_ACTION_REQUEST
VRACRQ
VERTEX
VERTEX
VERTEX_LOOP
VRTLP
VERTEX_POINT
VRTPNT
WEEK_OF_YEAR_AND_DAY_DATE
WOYADD
Приложение C
(обязательное)
СПЕЦИАЛЬНЫЕ ТРЕБОВАНИЯ К МЕТОДАМ РЕАЛИЗАЦИИ
Метод реализации определяет, какие типы поведения при обмене необходимы относительно настоящего стандарта. Соответствие настоящего стандарта должно быть реализовано в структуре обмена. Файловый формат должен быть закодирован в соответствии с синтаксисом и отображением языка EXPRESS, как определено в ИСО 10303-21, ИСО 10303-28, а также в ПИМ, определенной в приложении A настоящего стандарта. Заголовок структуры обмена должен определять использование настоящего стандарта посредством наименования схемы 'ship moulded form schema'.
C.1 Общие требования
По разным причинам некоторые сущности могут не полностью экспортироваться в структуру обмена. В ПИМ может быть обязательная информация, не имеющая соответствия в ПЭМ. Иногда приложение может не поддерживать всю информацию, предусмотренную для обмена данными. В других случаях информация может поддерживаться отправляющей системой, но не включаться в обмен данными. Тем не менее, препроцессор должен обеспечивать значения для всех обязательных атрибутов в файле обмена.
Если отправляющая система не предоставляет данных для требуемого строкового значения, препроцессор должен использовать ".UNUSED". или пустую строку ".
Для дальнейшего указания причины отсутствия данных используется следующее соглашение:
- пустая строка " указывает пользовательские данные, управляемые отправляющей системой, но не предоставленные для обмена данными. Поскольку программное обеспечение принимающей системы может зависеть от набора реалистичных значений данных для требуемых атрибутов, использование пустых строк не рекомендуется;
- строка со значением '.UNUSED.' указывает данные пользователя в обязательном атрибуте, который не управляется отправляющей системой, неизвестен на момент обмена данными или является обязательной информацией ПИМ, не имеющей соответствия в ПЭМ;
- $ используется в физическом файле, если необязательный атрибут не создан.
C.2 Требования к методу реализации, определенному в ИСО 10303-21
Если используется метод реализации ИСО 10303-21, формат файла должен быть закодирован в соответствии с синтаксисом и языковым отображением языка EXPRESS, определенным в ИСО 10303-21.
Элемент FILE_SCHEMA заголовка должен указывать имя используемой схемы EXPRESS и включать идентификатор информации об объекте (см. приложение E).
Пример - Приведенный ниже экземпляр идентифицирует схему ship_moulded_form:
FILE_SCHEMA (('SHIP_MOULDED_FORM_SCHEMA { 1 0 10303 216 2 1 1} '))
C.3 Требования к методу реализации, определенному во 2-м издании ИСО 10303-21
В ИСО 10303-21:2002 добавлена возможность указания конкретного класса соответствия, которому соответствует раздел "Данные файла обмена". Файлы обмена, соответствующие ISO 10303-21 издания 2002 г., должны содержать один или несколько экземпляров сущности Section_context в разделе "Заголовок файла".
Пример - SECTION_CONTEXT ($,('CC1'));
Если в файл обмена включен один раздел данных, то должен быть включен один экземпляр сущности Section_context, а значением атрибута section_context.section должно быть $. Набор значений атрибута section_context.context_identifiers должен содержать одно значение для идентификации конкретного класса соответствия прикладного протокола, которому соответствуют эти данные.
Значение атрибута должно быть одним из следующих:
- CC1;
- CC2;
- CC3;
- CC4;
- CC5.
Приложение D
(обязательное)
Форма заявки о соответствии реализации протоколу
В данном приложении перечислены необязательные элементы настоящего стандарта. Реализация может выбирать поддержку любой комбинации этих необязательных элементов. Однако некоторые комбинации вариантов, вероятно, будут реализованы вместе. Эти комбинации называются классами соответствия и описаны в подразделах данного приложения.
Данное приложение представляет собой анкету, которая заполняется реализатором и может использоваться при подготовке к проверке соответствия в испытательной лаборатории. Заполненная форма называется ЗСРП.
Ряд вариантов (опций) определен в настоящем стандарте с целью их возможного использования в соответствующих реализациях. Некоторые из этих опций могут быть использованы (или не использованы) при динамическом выборе (для прогона), например, в качестве атрибутов OPTIONAL какого-либо объекта. Другие опции могут быть выбраны статически (в пределах времени формирования соответствующей конфигурации), например конкретный стиль геометрии, заданный в классе соответствия.
Вопросы:
1 Для упрощения ссылки, необходим идентификатор изделия или системы, с помощью которого тестируемая реализация STEP (стандарт для обмена данными об изделии) формируется в пакет и/или закупается.
Идентификатор (или наименование) изделия/системы: _____________
2 В настоящем стандарте определено 12 классов. Каждый класс задает подмножество конструктивов ПИМ. Данные классы описываются в настоящем стандарте (см. раздел 6). Для соответствия настоящего стандарта требуется хотя бы один из основных классов соответствия с 1 по 4.
Требуемые классы соответствия (функциональные возможности) - нужное обвести:
класс 1. Поддержка обмена гидростатическими данными;
класс 2. Поддержка обмена базовой геометрией теоретических обводов в форме таблицы ординат;
класс 3. Поддержка обмена класса 2 плюс представления каркасной формы;
класс 4. Поддержка обмена класса 3 плюс представления поверхностной формы;
класс 5. Поддержка обмена класса 4 плюс применимость корпуса.
3 Соответствие настоящему стандарту может быть выполнено посредством одного или нескольких различных методов реализации. Эти методы реализации определяют необходимые типы выполнения обмена данными в соответствии с настоящим стандартом.
Требуемые формы реализации - нужное обвести:
- структура обмена (ИСО 10303-21);
- структура обмена (ИСО 10303-22);
- структура обмена (ISO/TS 10303-28).
4 Используется ли структура обмена в ISO/TS 10303-28, какая?
Структура обмена ISO/TS 10303-28: _____________
5 Если эта реализация получает данные, не отвечающие требованиям настоящего стандарта в части выбора класса(ов) соответствия или требованиям части 20 данной серии по выбранному методу реализации, должен быть выдан ответ по умолчанию. Ответ по умолчанию должен быть статическим.
Ответ по умолчанию: _____________
6 Соответствующая реализация должна обеспечивать статические опции, выбранные посредством последующей динамической оценки (тестирования) без необходимости внесения изменений. В среде пользователя соответствующая реализация должна постоянно обеспечивать выполнение выбранных статических опций, или обеспечивать авторизованный контроль пользователем изменений и определений выбранных статических опций, или то и другое (в зависимости от специфики данной опции).
Обеспечивает ли тестируемая реализация (ТР) некоторую свободу пользователю при изменении и определении статических опций?
Да или Нет
7 Если да, то какие?
(a) Класс(ы) соответствия: _____________
(b) Ответ по умолчанию: _____________
8 Формулировка соответствия должна включать идентификацию хотя бы одной стороны, заявляющей о соответствии данной реализации.
Эксперт(ы) (испытатель/сертификатор/аккредитатор): _____________
Приложение E
(обязательное)
РЕГИСТРАЦИЯ ИНФОРМАЦИОННОГО ОБЪЕКТА
E.1 Обозначение документа
Для обеспечения однозначной идентификации информационного объекта в открытой системе настоящему стандарту присвоен идентификатор объекта {iso standard 10303 part(216) version(2)}.
Смысл данного обозначения определен в ИСО/МЭК 8824-1 и описан в ИСО 10303-1.
E.2 Обозначение схемы
Для обеспечения однозначной идентификации схемы ship_moulded_form_schema в открытой системе полной схеме ship_moulded_form_schema присвоен идентификатор объекта
{iso standard 10303 part(216) version(2) object(1) ship-moulded-form-schema(1)} (см. приложение A).
Смысл данного обозначения определен в ИСО/МЭК 8824-1 и описан в ИСО 10303-1.
Приложение F
(справочное)
ПРИКЛАДНАЯ ФУНКЦИОНАЛЬНАЯ МОДЕЛЬ
ПФМ предназначена для облегчения понимания области применения и информационных требований, определяемых в настоящем стандарте. Данная модель представлена в виде набора рисунков, на которых показаны диаграммы действий, и набора определений видов деятельности и их данных. Виды деятельности и потоки данных, выходящие за область применения, отмечены звездочкой.
ПФМ охватывает виды деятельности, выходящие за рамки данного ПП. В схемах использована измененная нотация IDEF0 [9]. Базовая нотация показана на рисунке F.1. Каждый вид деятельности может быть разбит на части с целью более детального рассмотрения. Если какой-либо вид деятельности разбит на части, то он представлен на отдельном рисунке.
Рисунок F.1 - Основная нотация IDEF0
Как и любая модель IDEF0, ПФМ зависит от конкретной точки зрения и цели. Точка зрения ПФМ определяется инженером-технологом. Целью ПФМ является объяснение контекста и области применения данного ПП.
Это функциональная модель жизненного цикла во всем судостроении. Существует несколько диаграмм деятельности, на которых все виды деятельности выходят за рамки, но они важны для иллюстрации того, как разрабатывался процесс изготовления детали и как были получены требования, входящие в объем работ.
Примечание - Точка зрения ПФМ представляет собой глобальный процесс разработки судна. Эта функциональная модель определяет виды деятельности жизненного цикла для всех ПП в области судостроения. Виды деятельности, связанные с жизненным циклом в судостроении, не развернутые в данной функциональной модели, подробно описаны в других прикладных протоколах в области судостроения.
F.1 Определения и сокращения ПФМ
Ниже приведены термины, используемые в прикладной функциональной модели. Термины, отмеченные "звездочкой", не входят в область применения данного прикладного протокола.
Определения, приведенные в данном приложении, не заменяют определения, приведенные в основном тексте настоящего стандарта.
F.1.1 утвержденный проект (approved design): Состояние передачи проекта для производства и инспекции.
F.1.2 планы расположения (arrangements)*: Отсеки и помещения судна.
Примечание - Любое описание планов расположения будет включать соответствующие определения назначения отсека или помещения.
F.1.3 сборка судна (assemble ship)*: Этап изготовления судна, в ходе которого собираются модульные блоки и дополнительные части.
Примечание - Результатом является собранное судно, которое должно еще пройти испытания.
F.1.4 информация об эксплуатационной готовности, надежности и ремонтопригодности (availability, reliability and maintainability information)*: Информация, необходимая для монтажа и планового обслуживания всех компонентов на судне.
F.1.5 основные параметры корпуса (basic hull parameters): Главные размеры и пропорции, основанные на оценках по данным за предыдущие периоды или взятые по предварительным проектным разработкам.
F.1.6 бюджет (budget)*: Ограниченные денежные средства на проектирование, строительство и техническое обслуживание судна.
F.1.7 расчет с применением вычислительной гидродинамики (calculate CFD)*: Выполнение расчета движения жидкости вокруг корпуса.
Примечание - Эти результаты используют в расчетах требований к гидродинамике и силовым двигателям.
F.1.8 расчет стоимости судна (calculate cost of ship)*: Описание формирования документов для переговоров на основе технических данных о продукции и расчет сметной стоимости ее изготовления.
Примечание - Результаты этого вида деятельности могут включать документацию о цене продажи, план обеспечения финансирования, а также документы, описывающие финансирование заемными средствами и возможные займы.
F.1.9 расчет гидростатических характеристик (calculate hydrostatic properties): Выполнение расчета теоретической плавучей части судна исходя из его проектных параметров.
F.1.10 свидетельства (certificates)*: Документы, лицензии и разрешения, выданные на готовое судно.
F.1.11 проверка проекта в части правил и нормативов (check design against rules and regulations): Рассмотрение проекта для обеспечения соответствия требованиям национальной и международной классификации.
Примечание - Это вид деятельности высшего уровня для утверждения по утверждению базисного проекта в рамках процесса утверждения и сертификации. Содержание этого вида деятельности одинаково для всех судов, когда речь идет о соответствии основным правилам класса, но может отличаться, когда речь идет о дополнительных правилах класса (типе судна) и нотациях регистра. Выполняемые виды деятельности адаптированы к требованиям правил в части общего расположения и глобальной прочности. Эта часть утверждения необходима до того, как верфь сможет начать заказывать сталь.
F.1.12 классификационное общество (Classification Society): Организация, которая повышает безопасность человеческой жизни и имущества в море, обеспечивая правила, положения и персонал для оценки и классификации судов в течение их жизненного цикла.
F.1.13 завершение и утверждение проекта машин и механизмов (complete and approve design of machinery)*: Выбор, устройство и утверждение всех машин и механизмов на судне.
F.1.14 завершение и утверждение проекта насыщения и распределительных систем (complete and approve design of outfitting and distribution systems)*: Выбор и утверждение всего необходимого достроечного оборудования.
Примечание - Выбор основывается, главным образом, на предыдущих проектах и в соответствии с установленными требованиями к судну. Также включает компоновку распределительных систем различных типов, таких как трубопроводы, электрические системы и системы ОВКВ.
F.1.15 завершение и утверждение проекта конструкции судна (complete and approve design of ship structure)*: Утверждение окончательного проекта судна до начала строительства.
F.1.16 завершение и утверждение проекта судна (complete and approve ship design): Создание, проверка и утверждение данных об изделии проекта судна, необходимых правил и нормативов, документов и классификационных чертежей с использованием предварительного проекта.
Примечание - Результатом этого вида деятельности является утвержденный проект и график изготовления и поставки.
F.1.17 проведение приемочных испытаний (conduct acceptance trials): Окончательные испытания для поставки судна.
F.1.18 выполнение ходовых испытаний подрядчиком (conduct contractor sea trials): Ходовые испытания для проверки соответствия построенного судна контрактным требованиям.
F.1.19 выполненная строевая по шпангоутам (completed sectional area curve): Кривая, построенная путем представления площади каждого поперечного сечения, в виде точки на кривой, через заданные интервалы через корпус по всей длине судна (см. рисунок 43).
Примечание - Выполненная строевая по шпангоутам используется для оценки соответствия теоретических обводов корпуса.
F.1.20 консультанты (consultants): Организации и учреждения, предоставляющие определенные услуги верфям, судовладельцам и классификационным обществам в течение жизненного цикла судна.
F.1.21 контракт (contract): Юридическое соглашение, документирующее и утверждающее заказ на судно.
Примечание - Контракт используется как инструмент для ограничения последующих видов деятельности, таких как окончательный проект, утверждение и производство.
F.1.22 стоимость (cost)*: Рассчитываемые денежные затраты на судно, основанные на затратах на материалы, труд и накладные расходы.
F.1.23 выполнение предварительного проектирования (create preliminary design): Начальный этап проектирования судна с учетом классификационных правил, национальных и международных требований, ограничений на судостроительной верфи, а также требований владельца.
F.1.24 выполнение предварительных планов общего расположения (create preliminary general arrangements)*: Создание начальных планов деления на отсеки исходя из предварительного определения формы корпуса.
F.1.25 создание предварительной формы корпуса (create preliminary hull form): Начальный этап проектирования формы корпуса судна.
Примечание - Первый этап проектирования судна с использованием основных размеров и параметров формы судов-прототипов. Создают один или несколько вариантов предварительной формы судна.
F.1.26 выполнение предварительного проектирования машин и механизмов (create preliminary machinery design)*: Начальный выбор и расположение главных машин и механизмов судна.
Примечание - Включает главную силовую установку, систему валов, энергосистемы и погрузочно-разгрузочное оборудование.
F.1.27 выполнение предварительного проектирования насыщения (create preliminary outfitting design)*: Создание начального проекта корабельного достроечного оборудования.
Примечание - Включает распределительные системы, такие как трубопроводы и электрические системы.
F.1.28 выполнение предварительного конструктивного проектирования (create preliminary structure design)*: Создание начального проекта стальной конструкции и расположения основных конструктивных элементов.
F.1.29 принятие решения об обеспечении послепродажного и технического обслуживания (decide post-sales & maintenance support)*: Подготовка предложения по техническому обслуживанию судна.
Примечание - Эта часть относится к конкурсной пакетной документации и включает в себя обеспечение послепродажного обслуживания.
F.1.30 вывод из эксплуатации и разборка (decommission and disassemble)*: Фаза жизненного цикла судна, в ходе которой судно изымается из эксплуатации или демонтируется.
F.1.31 график выполнения проекта (design schedule): Данные, которые контролируют промежуток времени от этапа проектирования до производства.
F.1.32 данные потока (details of flow): Результаты анализа вычислительной гидродинамики, который моделирует поток жидкости вдоль корпуса. Используются для оценки сопротивления корпуса воде, а также при оценке требований к силовым установкам судна.
F.1.33 проектирование насыщения и распределительных систем (distribution and outfitting design)*: Выполнение проекта распределительных систем и насыщения.
Пример - К распределительным системам относятся системы ОВКВ, электрические и трубопроводные системы. К насыщению относятся двери, трапы, насосы, электродвигатели, а также пульты управления.
F.1.34 выполнение изменений параметров (do parametric variations): Выполнение оценки альтернативных проектных решений для корпуса, созданных путем изменения параметров теоретических обводов корпуса.
Примечание - При изменении скорости, длины или ширины судна меняется форма корпуса судна.
F.1.35 свидетельства на оборудование (equipment certificates)*: Свидетельства (сертификаты), выданные классификационным обществом по завершении изготовления элементов оборудования, которые будут собираться для создания конечного изделия.
F.1.36 оценка параметров формы (estimate form parameters): Определение предварительных параметров формы корпуса на основе предыдущих данных судна-прототипа и расчетных главных размерений.
F.1.37 оценка гидродинамики и мощности (estimate hydrodynamics and powering)*: Расчеты, аппроксимирующие данные гидродинамических характеристик для предварительной формы корпуса.
Пример - Типы оценок: сопротивление, ходкости, мореходность и маневренность.
F.1.38 оценка главных размерений и параметров (estimate main dimensions and parameters): Параметры и измерения, отвечающие требованиям клиентов.
Пример - К требованиям клиентов относятся скорость, загрузка, задача и емкости.
F.1.39 оценка маневренности (estimate manoeuvrability)*: Аппроксимация маневренности судна и сравнение результатов модельных испытаний с проектными требованиями.
Примечание - Подтверждение маневренности судна в основном обеспечивается на практике или путем модельных испытаний. Измерение усилий и моментов на рулях, а также радиуса поворота при модельных испытаниях будет выполняться либо в циркуляционных гидроканалах, либо в бассейнах для испытаний на маневренность.
F.1.40 оценка сопротивления и мощности (estimate resistance and powering)*: Расчеты, выполняемые на основе предыдущих данных для получения данных о мощности силовых установок и сопротивлении для эскизного предварительного проекта.
F.1.41 оценка мореходности (estimate sea-keeping)*: Расчеты теоретического поведения судна на волнении.
Примечание - Результирующие коэффициенты уравнений движения могут быть получены либо аналитическими, либо численными методами. Собственные периоды колебаний судна будут рассчитаны для бортовой, килевой и вертикальной качки.
F.1.42 оценка запроса и составление графика подготовки предложения (evaluate request and schedule bid): Функция судостроительной верфи в части выполнения анализа и рассмотрения заявки от судовладельца на новое судно.
F.1.43 придание обтекаемой формы корпусу (fair hull): Корректировки теоретического обвода корпуса для исправления любых искажений (аберраций) поверхности.
F.1.44 обратная связь (feedback): Возврат информации после выполнения какого-либо вида деятельности.
F.1.45 окончательное формирование и утверждение планов общего расположения (finalise and approve general arrangements)*: Окончательный проект распределения пространства и расположения отсеков и входов.
F.1.46 окончательное формирование и утверждение формы корпуса (finalise and approve hull form)*: Получение утвержденной законченной формы корпуса за счет выполнения предварительного проекта.
Примечание - Результатом этого вида деятельности является утвержденный проект формы корпуса.
F.1.47 окончательное формирование и утверждение гидродинамики и силовых установок (finalise and approve hydrodynamics and powering)*: Выполнение гидродинамического анализа для окончательного проекта.
Примечание - Включает соответствующие гидродинамические расчеты, такие как сопротивление, ходкость, мореходность и маневренность.
F.1.48 получение окончательных главных размерений и параметров (finalise main dimensions and parameters): Доработка модельных испытаний, анализа и требований к использованию.
F.1.49 определение носовой части корпуса (fore-body definition): Проектирование теоретических обводов корпуса, относящихся к носовой части судна.
Примечание - Носовой частью называется часть судна, идущая от передней стороны средней части корпуса до форштевня судна.
F.1.50 планы общего расположения (general arrangements)*: Проект распределения пространства и расположения отсеков и входов.
Примечание - Планом общее расположения судна является чертеж отсека доступом, показывающий местоположение, доступ и размер различных отсеков.
F.1.51 создание начального определения кормовой части корпуса (generate initial aft-body definition): Установка основной формы теоретического обвода корпуса, относящейся к кормовой части корпуса судна, на основе главных размерений, предварительной формы корпуса и эксплуатационных характеристик с учетом количества и размера гребных винтов.
Примечание - Кормовая часть корпуса судна - это часть судна в корму от средней части судна (для цилиндрической вставки корпуса) или мидель-шпангоута (для нецилиндрической вставки корпуса).
F.1.52 создание начального определения палубы (generate initial deck definition): Определение положения и формы главной открытой палубы судна по главным размерам, предварительной форме корпуса и эксплуатационным характеристикам.
F.1.53 создание начального определения носовой части корпуса (generate initial fore-body definition): Установка основной формы теоретического обвода корпуса, относящейся к носовой части корпуса судна, на основе главных размерений, предварительной формы корпуса и эксплуатационных характеристик.
Примечание - Носовая часть корпуса судна - это часть судна в нос от средней части судна (для цилиндрической вставки корпуса) или мидель-шпангоута (для нецилиндрической вставки корпуса).
F.1.54 создание начального определения формы корпуса (generate initial hull form definition): Установка первичной формы теоретического обвода корпуса на основе рассчитанных главных размерений, предварительной формы корпуса и эксплуатационных характеристик.
F.1.55 создание начального определения средней части корпуса (generate initial mid-body definition): Установка основной формы теоретического обвода корпуса, относящейся к средней части корпуса судна, на основе главных размерений, предварительной формы корпуса и эксплуатационных характеристик.
F.1.56 данные из предыдущих проектов (historical data from previous designs): Данные, хранящиеся на судостроительной верфи или в модельном бассейне, по предыдущим проектам судов.
Примечание - Эти данные используют для оценки гидродинамики, требований к силовым установкам и мореходности.
F.1.57 параметры формы корпуса (hull form parameters): Коэффициент полноты водоизмещения, призматический коэффициент и число Фруде, используемые на этапе предварительного проектирования для оценки гидростатических и гидродинамических характеристик судна.
F.1.58 сечения формы корпуса (hull form sections): Деления теоретических обводов корпуса между плоскостными сечениями по продольной оси судна.
F.1.59 определение формы теоретического обвода корпуса с палубой (hull moulded form with deck definition): Теоретический обвод корпуса, включающий водонепроницаемую палубу судна.
F.1.60 теоретический обвод корпуса (hull moulded form): Поверхность, определяющая форму корпуса судна.
Примечание - Включает определения формы корпуса в кормовой, средней и носовой части, но не учитывает толщину материала, из которого изготавливается корпус.
F.1.61 результаты в части гидродинамики и силовой установки (hydrodynamics & powering results)*: Конструкторские расчеты и данные модельных испытаний в опытовом бассейне.
Примечание - Содержат данные о сопротивлении, ходкости, рабочих характеристиках гребного винта, полезной мощности двигателей, эксплуатационной скорости, мореходности и маневренности.
F.1.62 таблица гидростатических характеристик (hydrostatics table): Таблицы с данными, описывающими гидростатические характеристики судна, полученные в результате расчетов на начальном и конечном этапах проектирования.
F.1.63 знания и опыт (knowledge and experience): Предыдущая история работы компании, осмысление информации о судах, понимание проблемных областей и способность выполнять анализ в отношении судна на протяжении всего его жизненного цикла.
F.1.64 законы, правила и нормативы (laws, rules and regulations): Национальные законы, законодательные акты и правила классификационных обществ, которые используются для управления проектированием, производством, эксплуатацией, техническим обслуживанием и утилизацией судна.
F.1.65 перечень необходимых свидетельств (list of required certificates)*: Свидетельства (сертификаты) на судно, выданные классификационным обществом, национальными и международными регулирующими органами.
F.1.66 условия загрузки (loading conditions)*: Количества груза, водяного балласта и расходных материалов, определенных для каждого помещения или отсека, которые используются в качестве основы для проектирования.
Пример - К расходным материалам относятся запасы продуктов, топлива и медикаментов.
F.1.67 руководство по обеспечению остойчивости и загрузки (loading and stability manual): Буклет, хранящийся на борту судна, в котором указаны предписанные пределы загрузки и разгрузки судна в зависимости от прочности и остойчивости судна.
F.1.68 проект машин и механизмов (machinery design): Проектные чертежи, прототипы, а также модели в электронном формате машин и механизмов судна.
Примечание - Результаты, полученные в процессе окончательного проектирования.
F.1.69 главное размерение (main dimension): Длина, ширина, высота и осадка судна.
Примечание - Оценивают во время предварительного проектирования теоретического обвода корпуса, а затем окончательно уточняют на этапе основного проектирования.
F.1.70 вес машин и механизмов (machinery weights): Оцененный или рассчитанный проектный вес всех машин и механизмов на борту судна.
Примечание - Являются результатом нескольких расчетов и проектной деятельности.
F.1.71 результаты в части маневрирования (manoeuvring results)*: Просчитанные результаты зигзагообразных маневров, запланированных движений и поворотов, основанные на предыдущих модельных испытаниях в опытовом бассейне или ходовых испытаниях.
F.1.72 производственные ограничения (manufacturing restrictions): Ограничения процессов строительства, сборки и проектирования судов, регулируемые доступными технологиями и мощностями судостроительной верфи.
F.1.73 ведомость материалов (material list)*: Перечень всех исходных материалов, необходимых для изготовления судна.
Примечание - Результат процесса окончательного проектирования.
F.1.74 определение средней части корпуса (mid-body definition): Проект теоретического обвода корпуса прямостенной части корпуса, которая включает в себя проект плоскости мидель-шпангоута судна, которая идет между кормовой частью и носовой частью корпуса судна, или проект теоретического обвода корпуса проекта плоскости мидель-шпангоута для судов без прямостенной части корпуса.
Пример - У нефтяных танкеров и сухогрузов имеется прямостенная часть корпуса, при этом у военных судов прямостенная часть корпуса встречается редко.
F.1.75 консультанты модельного бассейна (model basin consultants): Организации, выполняющие испытания в модельном бассейне для расчета данных в части гидродинамики и силовых установок.
F.1.76 теория модельного бассейна (model basin theory)*: Формулы, а также опыт, знания и эмпирические данные, используемые консультантами модельного бассейна для расчета данных в части гидродинамики и силовых установок.
F.1.77 изменения на основании машин и механизмов (modifications from machinery)*: Внесение изменений или корректировок в гидродинамику и требования к силовым установкам на базе обратной связи, полученной из предварительного проекта машин и механизмов.
F.1.78 изменения формы корпуса (modifications to hull form): Внесение изменений или корректировок в геометрическую форму корпуса на базе обратной связи, полученной по результатам гидродинамики и требований к силовым установкам, а также в процессе окончательного проектирования.
F.1.79 изменения параметров формы корпуса (modifications to hull form parameters): Внесение изменений или корректировок в параметры формы по результатам выполнения изменений параметров на этапе предварительного проектирования.
F.1.80 изменения главных измерений (modifications to main dimensions): Внесение изменений или корректировок в главные размеры корпуса, возникшие в процессе проектирования теоретических обводов корпуса.
F.1.81 модульные блоки (modular units)*: Подсекции судна, уже оборудованного машинами, механизмами и достроечным оборудованием, которые будут собираться для создания конечного изделия.
F.1.82 предложение (offer): Предложение от судостроительной верфи на изготовление указанного в запросе судна.
Примечание - Являются данными верфи, получаемыми в процессе предварительного проектирования.
F.1.83 указания по предложению (offer guidelines): Данные, необходимые для того, чтобы сделать безусловное предложение судовладельцу.
F.1.84 эксплуатация и техническое обслуживание судна (operate and maintain a ship)*: Процедуры и документация по эксплуатации, обслуживанию и ремонту судна в течение его срока службы.
F.1.85 эксплуатационная информация (operational information)*: Документ, составляемый в результате эксплуатации, технического обслуживания и освидетельствования судна, в который входит информация о состоянии судна.
Примечание - Этот документ включает в себя накопленную информацию, записываемую на этапе функционирования и обслуживаемости судна, используемую для технического обслуживания, а также на заключительном этапе утилизации.
F.1.86 владелец (owner): Организация, которая направляет запрос на судно, заказывает, принимает поставку и эксплуатирует его.
F.1.87 запрос владельца с требованиями (owner request with requirements): Документ, содержащий требования, представляемые на судостроительную верфь владельцем с приглашением на подачу конкурсной заявки.
F.1.88 выполнение модельных испытаний (perform model tests)*: Проведение модельных испытаний в буксировочном или модельном бассейне.
Примечание - Результаты этих испытаний используют при проектировании гидродинамической части и требований к силовым установкам.
F.1.89 выполнение жизненного цикла судна (perform ship lifecycle): Завершенные этапы существования судна, включающие разработку концепции, проектирование, строительство, эксплуатацию и утилизацию.
F.1.90 размещение заказа (place order)*: Подтверждение получения и принятие тендерного предложения судостроительной верфи на изготовление судна.
Примечание - На основании этого заключается контракт с судостроительной верфью.
F.1.91 система планового технического обслуживания (planned maintenance system)*: Данные, полученные в процессе окончательного проектирования и используемые во время эксплуатации и технического обслуживания судна.
F.1.92 требования к мощности двигателя (power requirements for engine)*: Данные в части гидродинамики и ходкости, используемые при выборе главного двигателя.
F.1.93 предварительная компоновка (pre layout): Первая компоновка судна, разработанная на стадии рассмотрения тендерных предложений и являющаяся основой для выполнения предварительного проекта.
F.1.94 прогнозирование полезной мощности двигателей и рабочей скорости (predict brake power and service speed)*: Выполнение оценки требуемой полезной мощности двигателя и необходимой мощности, подаваемой на гребной винт, для определения типоразмера основного двигателя.
F.1.95 прогнозирование рабочих характеристик гребного винта (predict propeller performance)*: Выполнение оценки данных в части требований к ходкости для создания предварительного проекта гребного винта.
F.1.96 прогнозирование данных в части ходкости (predict propulsion data)*: Выполнение расчета требований к силовой установке судна.
Примечание - Приблизительное определение движущей силы может быть выполнено с помощью уравнения перемещения для конкретных чисел Фруда (см. 4.2.21.4) на этапе предварительного проектирования.
F.1.97 прогнозирование сопротивления (predict resistance)*: Выполнение оценки площади смачиваемой поверхности судна, оказывающей сопротивление волнению.
Примечание - В расчетах сопротивления используются данные за предыдущий период в части геометрии теоретического обвода корпуса.
F.1.98 предварительный проект (проектирование) (preliminary design): Проект, в результате которого представляется тендерное предложение.
F.1.99 предварительные планы общего расположения (preliminary general arrangements): Определение помещений и отсеков на судне на раннем этапе.
Примечание - Планы общего расположения аппроксимируют или рассчитывают в результате процесса выполнения предварительного проектирования.
F.1.100 предварительная форма корпуса (preliminary hull form): Определение на раннем этапе теоретического обвода корпуса, в результате процесса выполнения предварительного проектирования.
Примечание - Используют в документации тендерного предложения для предварительного проектирования отсеков, гидродинамики, а также расчетов требований к силовой установке.
F.1.101 предварительный проект машин и механизмов (preliminary machinery design)*: Определение на раннем этапе проектирования машин и механизмов.
Примечание - Используют на ранних этапах для оценки шумов, скорости вращения и вибрации, а также для оценки веса машин и механизмов.
F.1.102 предварительный проект машин и механизмов, конструкции и насыщения (preliminary machinery, structure and outfitting design)*: Имеющаяся на раннем этапе обратная связь в части проектной информации по машинам и механизмам, конструкции, а также насыщению и отделке.
Примечание - Используют при разработке предварительных планов общего расположения.
F.1.103 предварительный проект насыщения (preliminary outfitting design)*: Определение на раннем этапе судового насыщения и жилых помещений.
Примечание - Входит в процесс предварительного проектирования.
F.1.104 предварительный конструктивный проект (preliminary structure design)*: Определение на раннем этапе стальной конструкции судна.
Примечание - Входит в процесс предварительного проектирования.
F.1.105 подготовка тендерной заявки (prepare bid): Подготовка всей документации и данных, необходимых для подачи предложения владельцу на постройку судна.
F.1.106 представление предложения (present offer)*: Предоставление всей необходимой документации в составе тендерного предложения на изготовление указанного в запросе судна потенциальному владельцу.
F.1.107 разработка и утверждение нормативной документации (produce and approve reference documents): Составление и подборка технической документации, утвержденной для судна, с использованием производственной информации.
Примечание - Документация на выходе включает руководство по загрузке и остойчивости, одобренное классификационным обществом.
F.1.108 изготовление и инспектирование судна (produce and inspect a ship): Выполнение строительства и обеспечение качества на каждом этапе постройки или сборки судна.
Примечание - Инспектирование означает контроль всех видов деятельности на протяжении всего жизненного цикла судна.
F.1.109 изготовление модульных стандартных блоков (produce modular build units)*: Выполнение сборки стальных подсекций и их монтажа в большие отдельные сертифицированные блоки, которые после сборки или присоединения составляют готовое судно.
Примечание - Их изготовление контролируют графиком, контрактом, утвержденным проектом, любыми производственными ограничениями и классификационным обществом. В результате получаются модульные блоки, из которых собирается судно.
F.1.110 изготовление стальных подсекций (produce steel sub-sections)*: Создание и соединение элементы стальной конструкции, которые после сборки и сертификации образуют модульный блок.
Примечание - Их изготовление контролируют графиком, контрактом, утвержденным проектом, любыми производственными ограничениями и классификационным обществом. В результате получаются стальные подсекции, которые собираются в модульные блоки для сборки в окончательное судно.
F.1.111 информация о комплектующих изделиях (product component information)*: Технические данные по всем деталям, частям и элементам, которые будут использованы на судне.
Примечание - Эти данные учитывают при выполнении предварительных проектов.
F.1.112 график производства и поставки (production and delivery schedule): График, в соответствии с которым судно должно быть изготовлено и поставлено.
F.1.113 производственная информация (production information): Данные, описывающие детали изготовления и строительства.
Пример - К этим данным относятся: размеры, механические свойства, материалы и информация о цехах.
F.1.114 проект гребного винта (propeller design)*: Проект гребного винта или движителя на основании гидродинамических и расчетов требований к силовой установке.
Примечание - Этот проект определяет некоторые конструкции судовых машин и механизмов.
F.1.115 теория гребного винта (propeller theory)*: Знания, основанные на опыте, данных за предыдущие периоды и научных исследованиях характеристик судовых гребных винтов.
F.1.116 обеспечение качества (quality assurance): Правила, применяемые организацией на территории судостроительной верфи, перед которой поставлена задача провести аудит организации верфи и процессов, применяемых таким образом, чтобы обеспечить качество конечной продукции.
F.1.117 теория регулярных волн (regular wave theory)*: Знания и опыт, относящиеся к реакции судна движения на перемещения на волнах с постоянной высотой и периодом.
F.1.118 заявка на судно (quest a ship): Первое действие или обращение судовладельца, имеющего намерение заказать судно.
Примечание - Имея определенные представления о внешнем виде и функциональности судна, владелец излагает эти представления в своем запросе, направляемом на верфь.
F.1.119 запрос на внесение производственных изменений (request for production changes): Запрашиваемые изменения в проект судна на основании производственного опыта или трудностей с реализацией данного проекта судна.
F.1.120 сопротивление и мощность на валу (resistance and shaft power)*: Противодействие движению, на основании которого выполняются оценки гидродинамики и требований к силовой установке.
Примечание - Сопротивление и мощность на валу являются ограничивающими параметрами при создании предварительной формы корпуса.
F.1.121 теория сопротивления (resistance theory)*: Принципы, теоремы и правила, используемые для прогнозирования сопротивления корпуса при движении вперед в море.
F.1.122 ресурсы (resources): Судостроительная верфь, классификационное общество и внешние консультанты.
F.1.123 график (schedule): План управления сроками производственных этапов.
Примечание - Формируется в составе процесса окончательного проектирования.
F.1.124 план утилизации (scrapping plan)*: Документ, используемый для планирования времени и ресурсов, необходимых для разборки судна.
F.1.125 судно (ship): Большое плавучее судно, проектирование, производство и жизненный цикл которого регулируются принципами теории судостроения, а также в соответствии с международными правилами и правилами классификационного общества.
F.1.126 данные модели изделия судна (ship product model data): Данные об изделии для судна, накопленные на протяжении всего его жизненного цикла.
Примечание - Поскольку утилизация также входит в жизненный цикл, судно не является результатов на выходе (выходом), и сохраняется только задокументированная информация и знания о судне.
F.1.127 изменение веса судна (ship weight modifications)*: Пересмотр веса судна после выполнения предварительного проекта конструкций.
Примечание - Является обратной связью для изменения предварительной формы корпуса и пересмотра планов общего расположения.
F.1.128 судостроительная верфь (shipyard): Организация, выполняющая проектирование, строительство, техническое обслуживание и ремонт судов.
F.1.129 краткосрочные и долгосрочные реакции (short and long term responses)*: Аппроксимация мореходных качеств с расчетами, основанными на регулярном волнении определенной высоты и периода.
Примечание - Эти результаты используют для прогнозирования максимальной реакции на нерегулярных волнах в течение длительного периода времени.
F.1.130 задание технических требований на судно (specify ship): Разработка точных спецификаций на судно до заключения контракта.
F.1.131 стальные подсекции (steel sub-sections)*: Подсекции стальной конструкции, в которые устанавливают машины, механизмы и распределительные системы до сборки.
F.1.132 конструктивный проект (structural design)*: Проект основания и набора судна.
Пример - Этот проект включает в себя киль, корпус, переборки, палубы, надстройки, балки, ребра жесткости и пр.
F.1.133 техническая документация (technical documentation): Детальная информация о существенных вещах, необходимых для изготовления судна и системы.
Примечание - При техническом обслуживании техническая документация какой-либо системы означает часть описания изделия, необходимая для выполнения планово-предупредительного ремонта, ремонта и устранения неисправностей данной системы.
F.1.134 технические требования (technical requirements): Спецификации владельца, которые должны быть реализованы в готовом судне.
F.1.135 результаты испытаний (test results)*: Задокументированные оценки и заключения по каждому контролю, проверке или анализу на соответствие проектным спецификациям, правилам и нормативам.
Примечание - В рамках технического обслуживания судна на протяжении всего его жизненного цикла результатами испытаний являются результаты функциональных испытаний, проводимых после выполнения работ по техническому обслуживанию.
F.1.136 испытание судна (test ship): Выполнение испытаний и оценки фактического судна на соответствие проектным спецификациям, правилам и нормативам, а также контрактным требованиям.
Примечание - Выполняют испытания конструкции и проводят ходовые испытания. Результаты испытаний документируют.
F.1.137 испытание конструкций (test structures): Выполнение испытания и оценка стальных конструкций на соответствие проектным спецификациям, правилам и нормативам, а также контрактным требованиям.
Примечание - Результатом является документация с результатами испытаний.
F.1.138 испытание систем (test systems)*: Судовые системы, включая оборудование, которые испытывают и оценивают на соответствие проектным спецификациям, правилам и нормативам, а также контрактным требованиям.
Примечание - Результатом является документация с результатами испытаний.
F.1.139 суммарное сопротивление (total resistance)*: Противодействующие силы, действующие на корпус при движении вперед.
Пример - Суммарное сопротивление включает в себя сопротивление трения, сопротивление волны, вихревое сопротивление и сопротивление воздуха.
F.1.140 модель для буксировочного опытового бассейна (towing tank model): Масштабная модель судна, используемая в буксировочном опытовом бассейне для оценки гидродинамических характеристик.
F.1.141 необходимость транспортировки (transportation need): Ограничение, определяющее спецификацию для строительства судна.
F.1.142 вес и центры тяжести (weights and centres of gravity)*: Значение веса предметов и центры тяжести этих предметов.
Примечание - Вес и центры тяжести необходимы для дальнейших расчетов.
F.1.143 трудоемкость (workload)*: Суммарные усилия, необходимые для строительства судна выбранного проекта, по оценке судостроительной верфи и привлекаемых консультантов.
F.2 Диаграммы прикладной функциональной модели
Диаграммы ПФМ представлены на рисунках F.2 - F.15. Графическая форма ПФМ представлена в формате моделирования видов деятельности IDEF0 [9]. Виды деятельности и потоки данных, не относящиеся к рассматриваемой области, отмечены звездочкой.
Рисунок F.2 - Узел A0 - жизненный цикл теоретического обвода
Рисунок F.3 - Узел A0 - выполнение жизненного цикла судна
Рисунок F.4 - Узел A0 - задание технических
требований на судно
Рисунок F.5 - Узел A12 - подготовка тендерной заявки
Рисунок F.6 - Узел A122 - создание предварительного проекта
Рисунок F.7 - Узел A1221 - создание предварительной
формы корпуса
Рисунок F.8 - Узел A12214 - создание начального определения
формы корпуса
Рисунок F.9 - Узел A1223 - оценка гидродинамики и требований
к силовой установке
Рисунок F.10 - Узел A12231 - оценка сопротивления
и требований к силовой установке
Рисунок F.11 - Узел A2 - завершение и утверждение
проекта судна
Рисунок F.12 - Узел A22 - окончательное определение
и утверждение формы корпуса
Рисунок F.13 - Узел A23 - окончательное определение
и утверждение гидродинамики и требований к силовой установке
Рисунок F.14 - Узел A3 - изготовление
и инспектирование судна
Рисунок F.15 - Узел A34 - испытания судна
Приложение G
(справочное)
ПРИКЛАДНАЯ ЭТАЛОННАЯ МОДЕЛЬ
В настоящем приложении приведена ПЭМ для настоящего стандарта, которая представлена на рисунках G.1 - G.25. Прикладная эталонная модель является графическим представлением структуры и ограничений прикладных объектов (см. раздел 4). Графическая форма прикладной эталонной модели представлена нотацией EXPRESS-G. Прикладная эталонная модель не зависит от методов реализации. Определение нотации EXPRESS-G приведено в ИСО 10303-11:2004 (приложение D).
Рисунок G.1 - Схема ПЭМ 1 из 25 в EXPRESS-G
Рисунок G.2 - Схема ПЭМ 2 из 25 в EXPRESS-G
Рисунок G.3 - Схема ПЭМ 3 из 25 в EXPRESS-G
Рисунок G.4 - Схема ПЭМ 4 из 25 в EXPRESS-G
Рисунок G.5 - Схема ПЭМ 5 из 25 в EXPRESS-G
Рисунок G.6 - Схема ПЭМ 6 из 25 в EXPRESS-G
Рисунок G.7 - Схема ПЭМ 7 из 25 в EXPRESS-G
Рисунок G.8 - Схема ПЭМ 8 из 25 в EXPRESS-G
Рисунок G.9 - Схема ПЭМ 9 из 25 в EXPRESS-G
Рисунок G.10 - Схема ПЭМ 10 из 25 в EXPRESS-G
Рисунок G.11 - Схема ПЭМ 11 из 25 в EXPRESS-G
Рисунок G.12 - Схема ПЭМ 12 из 25 в EXPRESS-G
Рисунок G.13 - Схема ПЭМ 13 из 25 в EXPRESS-G
Рисунок G.14 - Схема ПЭМ 14 из 25 в EXPRESS-G
Рисунок G.15 - Схема ПЭМ 15 из 25 в EXPRESS-G
Рисунок G.16 - Схема ПЭМ 16 из 25 в EXPRESS-G
Рисунок G.17 - Схема ПЭМ 17 из 25 в EXPRESS-G
Рисунок G.18 - Схема ПЭМ 18 из 25 в EXPRESS-G
Рисунок G.19 - Схема ПЭМ 19 из 25 в EXPRESS-G
Рисунок G.20 - Схема ПЭМ 20 из 25 в EXPRESS-G
Рисунок G.21 - Схема ПЭМ 21 из 25 в EXPRESS-G
Рисунок G.22 - Схема ПЭМ 22 из 25 в EXPRESS-G
Рисунок G.23 - Схема ПЭМ 23 из 25 в EXPRESS-G
Рисунок G.24 - Схема ПЭМ 24 из 25 в EXPRESS-G
Рисунок G.25 - Схема ПЭМ 25 из 25 в EXPRESS-G
Приложение H
(справочное)
ПРИКЛАДНАЯ ИНТЕРПРЕТИРОВАННАЯ МОДЕЛЬ EXPRESS-G
Рисунки H.1 - H.26 соответствуют аннотированному EXPRESS-листингу ПИМ, приведенному в приложении A. В этих рисунках использована графическая нотация EXPRESS-G языка EXPRESS. Определение EXPRESS-G приведено в ИСО 10303-11:2004 (приложение A).
Рисунок H.1 - Прикладной контекст - схема ПИМ 1 из 26
в EXPRESS-G
Рисунок H.2 - Определение изделия - схема ПИМ 2 из 26
в EXPRESS-G
Рисунок H.3 - Определение свойства - схема ПИМ 3 из 26
в EXPRESS-G
Рисунок H.4 - Представление - схема ПИМ 4 из 26 в EXPRESS-G
Рисунок H.5 - Действие - схема ПИМ 5 из 26 в EXPRESS-G
Рисунок H.6 - Человек и организация - схема ПИМ 6 из 26
в EXPRESS-G
Рисунок H.7 - Назначение человека и организации - схема
ПИМ 7 из 26 в EXPRESS-G
Рисунок H.8 - Согласование - схема ПИМ 8 из 26 в EXPRESS-G
Рисунок H.9 - Дата и время - схема ПИМ 9 из 26 в EXPRESS-G
Рисунок H.10 - Присвоение классификации и группа - схема
ПИМ 10 из 26 в EXPRESS-G
Рисунок H.11 - Присвоение идентификации - схема ПИМ 11 из 26
в EXPRESS-G
Рисунок H.12 - Документ - схема ПИМ 12 из 26 в EXPRESS-G
Рисунок H.13 - Измерение с единицей измерения - схема
ПИМ 13 из 26 в EXPRESS-G
Рисунок H.14 - Измеряемое значение - схема ПИМ 14 из 26
в EXPRESS-G
Рисунок H.15 - Геометрическое и топологическое
представление - схема ПИМ 15 из 26 в EXPRESS-G
Рисунок H.16 - Точка - схема ПИМ 16 из 26 в EXPRESS-G
Рисунок H.17 - Расположение - схема ПИМ 17 из 26 в EXPRESS-G
Рисунок H.18 - Кривая - схема ПИМ 18 из 26 в EXPRESS-G
Рисунок H.19 - Ограниченная кривая - схема ПИМ 19 из 26
в EXPRESS-G
Рисунок H.20 - Поверхность - схема ПИМ 20 из 26 в EXPRESS-G
Рисунок H.21 - Элементарная поверхность - схема ПИМ 21 из 26
в EXPRESS-G
Рисунок H.22 - Ограниченная поверхность - схема ПИМ 22 из 26
в EXPRESS-G
Рисунок H.23 - Твердая модель и обшивка - схема ПИМ 23 из 26
в EXPRESS-G
Рисунок H.24 - Топология - схема ПИМ 24 из 26 в EXPRESS-G
Рисунок H.25 - Атрибут имени и ролевая связь - схема
ПИМ 25 из 26 в EXPRESS-G
Рисунок H.26 - Идентификационный и описательный
атрибуты - схема ПИМ 26 из 26 в EXPRESS-G
Приложение J
(справочное)
МАШИННО-ИНТЕРПРЕТИРУЕМЫЕ ЛИСТИНГИ
В настоящем стандарте приведены также листинги всех EXPRESS-схем, указанных в настоящем стандарте, без комментариев или прочих пояснений. Эти листинги представлены в машинно-интерпретируемой форме и находятся по следующим адресам в Интернете:
- сокращенные имена: http://www.tc184-sc4.org/Short_names/
- EXPRESS: http:www.tc84-sc4.ord/EXPRESS/
В случае каких-либо затруднений при доступе к данным сайтам, следует обращаться в Центральный секретариат ИСО или напрямую в ИСО ТК 184/ПК4 по адресу: sc4sec@tc184-sc4.org.
Примечание - Информация, представленная в машинно-интерпретируемой форме по указанным выше адресам в Интернете, носит справочный характер. Обязательной является информация, приведенная в тексте настоящего стандарта.
Приложение K
(справочное)
РУКОВОДСТВО ПО ПРИМЕНЕНИЮ ПРИКЛАДНОГО ПРОТОКОЛА
В настоящем приложении приведены ответы на некоторые вопросы в отношении ПЭМ настоящего стандарта.
K.1 Каким образом можно привязать интервальное расстояние (spacing position) к теоретическому обводу (moulded form)?
Используйте прикладной объект local_co_ordinate_system_with_position_reference, указывающий на этот объект moulded_form.
K.2 Каким образом можно дать ссылку на определенный во внешнем коде теоретический обвод (moulded form)?
Перечень теоретических обводов в теоретических обводах судна включает определенный во внешнем коде теоретический обвод, идентифицируемый внешней ссылкой и, в частности, глобальным идентификатором.
K.3 Что происходит с системами координат, когда судно находится в воде в определенном положении на плаву?
У судна фиксированная глобальная система координат. Для гидростатических расчетов приведена локальная система координат, привязанная к поверхности воды. Глобальная система координат является родительской системой координат.
K.4 Руководство по использованию и определения тестовых сценариев
Руководство по использованию приведено в ESTEP AP 216 Test Case Definitions [12]. В этом руководстве описываются сценарии использования, а также примеры тестовых сценариев.
Приложение L
(справочное)
ТЕХНИЧЕСКИЕ ПОЯСНЕНИЯ
L.1 Модель изделия судна
Целью STEP <1> является поддержка методов и функций для разработки моделей изделий. Модель изделия - это однозначное представление изделия, такого как судно, автомобиль, самолет или производственная установка, в нейтральном машинно-интерпретируемом формате, на протяжении всего срока службы изделия. Задача состоит в том, чтобы представить изделие от этапа определения требований и концептуального проектирования до производства, технического обслуживания и, наконец, вывода из эксплуатации и демонтажа. Представление должно включать все геометрические и негеометрические данные, связанные с изделием, включая топологию, геометрию, функциональность, прочность, параметры и характеристики, статус состояния и историю обслуживания.
--------------------------------
<1> Стандарт по обмену данными моделей изделий.
STEP основан на идее, что основное представление изделия связано с его структурой. Это означает, что для определения судна в STEP необходимо предоставить базовую идентификационную информацию и информацию о конструкции судна. В рамках этого подхода геометрия рассматривается как отдельный вид представления судна и его конструкции. Поэтому при обмене геометрией теоретических обводов с использованием STEP также происходит обмен дополнительной информацией о том, как каждый элемент, представленный этой геометрией, относится к конкретной части конкретного судна. В этом заключается отличие от существующих и предыдущих стандартов обмена, в которых происходит обмен чисто геометрией. Именно поэтому STEP основан на изделии, а не на чертежах или геометрии. Также по этой причине STEP используется в качестве набора стандартных описаний повторно используемых данных об изделии, суммарная совокупность которых называется моделью данных изделия. STEP разработан в комплексе со своими собственными методами, и, таким образом, его допускается использовать как при обмене файлами, так и в базах данных.
Из-за сложности судна неизбежно разделение модели изделия судна STEP на узнаваемые и возможные для использования части; в результате получают согласованную модель планирования ПП. Эта модель делит область судостроения на отдельные функциональные области, что позволяет выполнить разделение на фиксированное количество ПП. Схематично текущая версия модели изделия судна представлена на рисунке L.1.
Рисунок L.1 - Модель изделия судна
Ключевыми элементами модели изделия судна являются:
- планы расположения;
- теоретические обводы;
- механические системы (машины и механизмы, силовые установки, погрузо-разгрузочные системы);
- конструкции;
- распределительные системы (трубопроводы, ОВКВ, электрические, гидравлические/пневматические);
- оснащение и меблировка;
- связь;
- боевые системы;
- навигация;
- эксплуатация.
Каждая функциональная область модели изделия судна описывается одним или несколькими разными ПП. В судостроении используют следующие ПП:
- ИСО 10303-215: Ship Arrangements (планы расположения судна);
- ИСО 10303-216: Ship Moulded Forms (теоретические обводы судна);
- ИСО 10303-218: Ship Structures (судовые конструкции).
Подразделение модели изделия судна в целом позволяет применять подход с использованием распределенного моделирования. После этого также можно начать работы по моделированию с функциональных областей, отражающих начальные этапы жизненного цикла судна, и проверить эти модели перед началом моделирования в областях на более поздних этапах жизненного цикла. Жизненный цикл настоящего стандарта, а также функциональные единицы, представляющие этот жизненный цикл, представлены на рисунке L.2.
Рисунок L.2 - Структура настоящего стандарта
ПП приложений являются единственными частями STEP, предназначенными для использования при обмене данными, но, тем не менее, каждый ПП в области судостроения распространяется только на часть модели изделия судна. Таким образом, если ПП должны работать вместе как единая модель изделия судна, необходимо определить общий механизм, вокруг которого могут быть интегрированы все ПП в области судостроения. Только после этого модель изделия может быть реализована в системе управления данными об изделии, где все данные хранятся вне прикладных систем в нейтральном формате данных модели изделия судна. Этот механизм интеграции различных точек доступа называется ОМК. Эта модель описана в следующем разделе.
L.2 Общая модель судна
ОМК определяет общий каркас и основу моделирования для всех ПП в области судостроения в целях обеспечения взаимодействия между этими ПП.
Общая модель судна представляет собой набор строительных блоков, которые используют в контексте модели изделия судна. ОМК обеспечивает каркас для моделирования, набор моделей предметной области (отдельных и многократно используемых) структуры изделия, которые требуются более чем для одного ПП, а также набор общеиспользуемых конструктивов или утилит, например, которые используются для управления конфигурацией и концепций управления. Задача ОМК заключается в обеспечении интеграции и общей согласованности ПЭМ различных ПП судна.
ОМК описывается в руководстве по разработке ПП для судостроения [11]. В этом руководстве описываются:
- подход с использованием стандартных блоков;
- руководство по моделированию;
- общая модель судна.
L.3 Руководство по моделированию
Руководство по моделированию можно рассматривать как расширение языка EXPRESS, определенного в разделе 11 STEP. Оно определяет использование конструктивов языка EXPRESS для моделирования данных в области судостроения. Это руководство по моделированию также используют в общей модели судна.
Все работы по моделированию ПП в области судостроения выполняются в форме стандартных блоков. Стандартный блок - это спецификация на основе языка EXPRESS, которая используется для определения функциональной единицы для точки доступа. Функциональная единица может включать один или несколько стандартных блоков. Стандартный блок состоит из трех схем:
- схема импорта, обеспечивающая интерфейс для тех элементов других стандартных блоков, которые будут использоваться схемой модели этого стандартного блока;
- схема экспорта, обеспечивающая наличие тех элементов схемы модели, которые предназначены для использования другими строительными блоками; и
- схема модели, определяющая все новые элементы для данного стандартного блока.
Помимо схем у каждого стандартного блока имеется заголовок стандартного блока с некоторой административной информацией, позволяющей выполнять автоматическую обработку почтовым сервером стандартного блока. Руководство по моделированию относится к концепции стандартных блоков. Текущее руководство охватывает следующие области:
- имя стандартного блока;
- размер стандартного блока;
- существующие стандартные блоки;
- комментирование стандартных блоков;
- ограничения по использованию языка EXPRESS;
- ссылки на ресурсы STEP;
- ограничения на количество элементов в стандартных блоках;
- модельные функции;
- ссылочные экземпляры в прикладных протоколах;
- импортирование стандартных блоков в прикладные протоколы;
- составление стандартных блоков.
Руководство по комментированию стандартных блоков имеет важность для ПП и т.д. Эти комментарии используются инструментами для (полу)автоматического создания пунктов 4.2 и 4.3 ПП.
L.4 Каркас моделирования
Каркас моделирования, являющийся частью общей модели судна, обеспечивает реализацию общих концепций установки отношений между вещами, определения их свойств и их представления. Этот каркас определяют следующие три стандартных блока на основе языка:
- definitions;
- generic_product_structures;
- representation_resources.
Этот каркас представляет собой укрупненный подход, который делит модель изделия на основные конструктивы, а именно:
- items (элементы);
- definitions (определения);
- representations (представления),
при этом они связаны через ряд обобщенных отношений, приведенных на рисунке L.3.
Рисунок L.3 - Каркас моделирования
Элементы представляют концепцию и могут рассматриваться как местозаполнитель. Элемент - это постоянный флаг на протяжении всего жизненного цикла физического объекта. Новые элементы в судостроительных ПП вводятся путем создания их подтипов из элемента.
К типовым элементам в судостроительных прикладных протоколах относятся:
- комплектующие судна (корпус, надстройка, палуба, руль, гребной винт и пр.);
- оборудование (насос, генератор, главный двигатель, труба и пр.);
- элементы стальной конструкции (двойное дно, шпангоут, переборка, ребра жесткости и пр.).
Свойства элемента переносятся определениями. Для элемента должно быть задано определение, но элемент может существовать без какого-либо определения. Определение элемента может меняться в течение жизненного цикла. Эти аспекты жизненного цикла учитываются в понятии жизненного цикла (см. рисунок L.4), где для элемента вводятся разные определения для разных этапов жизненного цикла. Новые определения в судостроительных ПП могут создаваться путем создания их подтипов из определения.
Рисунок L.4 - Понятие жизненного цикла
Каждое свойство понятия и, следовательно, каждое определение элемента может быть описано многими различными способами. Определение теоретического обвода может быть представлено с помощью:
- представления таблицы ординат теоретического чертежа;
- каркасного представления;
- поверхностного представления;
- интервального положения.
Таким образом, определение может иметь разные представления, но в некоторых случаях может быть определение без представления. Новые представления в ПП в области судостроения могут создаваться путем создания их подтипов из представления.
Высокоуровневые отношения между основными конструктивами каркаса моделирования могут ограничиваться в подтипе каждого ПП. Это выполняется переопределениями атрибутов. Например, определение проекта теоретического обвода, подтип определения определяется для теоретического обвода, который является подтипом элемента, как показано на рисунке L.5.
Рисунок L.5 - Переопределение атрибутов
L.5 Модели предметной области
Целью моделей предметной области является создание нового уровня обобщенных элементов под основными конструктивами каркаса моделирования, с возможностью ограничения отношений атрибутов с помощью переопределений. Эти новые элементы, вводимые моделями предметной области, являются подтипами основных конструктивов каркаса моделирования.
В состав общей модели судна входят следующие модели предметной области:
- структура изделия (product structure);
- часть (part);
- структура изделия по системам (product structure by system);
- структура изделия по сборке (product structure by assembly);
- структура изделия по пространству (product structure by space);
- возможность подключения.
L.6 Общие утилиты
Общие утилиты представляют собой стандартные блоки на основе языка EXPRESS, которые относятся к ПП в области судостроения, но также являются достаточно общими, чтобы их можно было использовать в разных ПП.
Общие утилиты в настоящее время доступны для:
- общих параметров судна (ship general characteristics);
- управления конфигурацией (configuration management);
- концепции местоположения [глобальная локальная система координат, пространственная сетка (location concepts (global local co-ordinate system, spacing grid)];
- базовой геометрии и топологии (basic geometry and topology);
- точек форм обводов (moulded form points);
- линий форм обводов (moulded form lines);
- поверхности форм обводов (moulded form surfaces);
- судов (ships);
- материалов (materials);
- функций (features);
- единиц измерений (units);
- внешней ссылки/внешней ссылки на экземпляр.
Подробная информация о ОМК, а также руководство по моделированию представлены в руководстве по разработке ПП для судостроения (AP Development Guidelines for Shipbuilding).
L.7 Параметры и единицы
Некоторые атрибуты прикладных объектов в настоящем стандарте определяют отношения к типам параметров. Необходимая единица измерения, соответствующая каждому параметру, определяется глобально в атрибуте unit объекта Ship (см. 4.2.88) или локально в атрибуте local_units объекта Definition (см. 4.2.23). Единицы могут быть указаны либо в единицах СИ, либо в других системах единиц измерения.
Существует много объектов ПЭМ, которые определяют свои собственные локальные единицы. Для отображения такой локальной единицы требуется property_definition_representation (где name = "local units") для указания представления с помощью global_unit_assigned_context. Однако у многих из этих же объектов ПЭМ уже имеются атрибуты, которые отображают другое представление, содержащее сложный объект geometric_representation_context и global_unit_assigned_context. Такой сложный экземпляр требуется правилом 5.2.4.114 - representation_has_global_unit_assigned_context. Также, если с параметром связано значение допуска, для сложного экземпляра будет иметься дополнительный вид объекта global_uncertainty_assigned_context. Поэтому, если объекту ПЭМ требуются локальные единицы измерения, рекомендуется, чтобы единицы, связанные с этим сложным экземпляром, были такими же, как единицы, на которые приведена ссылка через ссылочный путь атрибута local units.
В таблице L.7 приведены единицы, используемые в прикладной интерпретируемой модели настоящего стандарта, соответствующие каждому типу параметра ПЭМ.
ИС МЕГАНОРМ: примечание.
Нумерация таблиц дана в соответствии с официальным текстом документа.
Таблица L.7
Параметры ПЭМ и соответствующие параметры и единицы ПИМ
Ссылка атрибута прикладного объекта
Параметры и единицы, используемые в прикладной интерпретируемой модели
Area_measure
value_representation_item с value_representation_item.value_component вида area_measure и derived_unit в наборе элементов, указанных из global_unit_assigned_context.units. Где derived_unit.name будет area_unit.
Derived_unit.elements будет состоять из одного derived_unit_element:
1) derived_unit_element.unit = length_unit, а derived_unit_element.exponent = 2.
Length_measure
value_representation_item с value_representation_item.value_component вида length_measure and length_unit в наборе элементов, указанных из global_unit_assigned_context.units
Positive_length_measure
value_representation_item с value_representation_item.value_component вида positive_length_measure и length_unit в наборе элементов, указанных из global_unit_assigned_context.units
Luminous_intensity_measure
value_representation_item с value_representation_item.value_component вида luminous_intensity_measure и luminous_intensity_unit в наборе элементов, указанных из global_unit_assigned_context.units
Mass_measure
value_representation_item с value_representation_item.value_component вида mass_measure и mass_unit в наборе элементов, указанных из global_unit_assigned_context.units
Plane_angle_measure
value_representation_item с value_representation_item.value_component вида plane_angle_measure и plane_angle_unit в наборе элементов, указанных из global_unit_assigned_context.units.
Ratio_measure
value_representation_item с value_representation_item.value_component вида ratio_measure и ratio_unit в наборе элементов, указанных из global_unit_assigned_context.units
Thermodynamic_temperature_measure
value_representation_item с value_representation_item.value_component вида thermodynamic_temperature_measure и thermodynamic_temperature_unit в наборе элементов, указанных из global_unit_assigned_context.units
Volume_measure
value_representation_item с value_representation_item.value_component вида volume_measure and derived_unit in в наборе элементов, указанных из global_unit_assigned_context.units. Где derived_unit.name будет volume_unit.
Derived_unit.elements будет состоять из одного derived_unit_element:
1) derived_unit_element.unit = length_unit, а derived_unit_element.exponent = 3.
Density_measure
value_representation_item с value_representation_item.value_component вида context_dependent_measure и derived_unit в наборе элементов, указанных из global_unit_assigned_context.units. Где derived_unit.name будет density. Derived_unit.elements будет состоять из двух derived_unit_elements:
1) derived_unit_element.unit = mass_unit, а derived_unit_element.exponent = 1;
2) derived_unit_element.unit = length_unit, а derived_unit_element.exponent = -3.
Force_measure
value_representation_item с value_representation_item.value_component вида context_dependent_measure и derived_unit в наборе элементов, указанных из global_unit_assigned_context.units. Где derived_unit.name будет force_unit. Derived_unit.elements будет состоять из трех derived_unit_elements:
1) derived_unit_element.unit = mass_unit, а derived_unit_element.exponent = 1;
2) derived_unit_element.unit = length_unit, а derived_unit_element.exponent = 1;
3) derived_unit_element.unit = time_unit, а derived_unit_element.exponent = -2.
Inertia_moment_measure
value_representation_item с value_representation_item.value_component вида context_dependent_measure и derived_unit в наборе элементов, указанных из global_unit_assigned_context.units. Где derived_unit.name будет inertia_moment_unit. Derived_unit.elements будет состоять из одного derived_unit_element:
1) derived_unit_element.unit = length_unit и derived_unit_element.exponent = 4.
Moment_measure
value_representation_item с value_representation_item.value_component вида context_dependent_measure и derived_unit в наборе элементов, указанных из global_unit_assigned_context.units. Где derived_unit.name будет moment_unit. Derived_unit.elements будет состоять из трех derived_unit_elements:
1) derived_unit_element.unit = mass_unit and derived_unit_element.exponent = 1;
2) derived_unit_element.unit = length_unit and derived_unit_element.exponent = 2;
3) derived_unit_element.unit = time_unit and derived_unit_element.exponent = -2.
Pressure_measure
value_representation_item с value_representation_item.value_component вида context_dependent_measure и derived_unit в наборе элементов, указанных из global_unit_assigned_context.units. Где derived_unit.name будет pressure_unit. Derived_unit.elements будет состоять из трех derived_unit_elements:
1) derived_unit_element.unit = mass_unit and derived_unit_element.exponent = 1;
2) derived_unit_element.unit = length_unit and derived_unit_element.exponent = -1;
3) derived_unit_element.unit = time_unit and derived_unit_element.exponent = -2.
Speed_measure
value_representation_item с value_representation_item.value_component вида context_dependent_measure и derived_unit в наборе элементов, указанных из global_unit_assigned_context.units. Где derived_unit.name будет speed_unit. Derived_unit.elements будет состоять из двух derived_unit_elements:
1) derived_unit_element.unit = length_unit and derived_unit_element.exponent = 1;
2) derived_unit_element.unit = time_unit and derived_unit_element.exponent = -1.
L.8 Использование однозначного глобального идентификатора
Однозначные глобальные идентификаторы (GUID) были включены в общую модель судна и используются всеми ПП в области судостроения. Они используются для поддержки следующих сценариев пошагового обмена:
- отдельный обмен элементами, определениями и представлениями внутри ПП при сохранении взаимосвязей между этими прикладными объектами. Например, первый обмен может идентифицировать только moulded_forms, отправляя только объекты Moulded_form, в то время как второй обмен может содержать определенные свойства и представления, отправляя объекты Moulded_form и Moulded_form_design_definition;
- отдельный обмен одной моделью судна с использованием ПП AP 216 с сохранением взаимосвязей между выбранными прикладными объектами AP 216. Например, первый обмен может включать в себя объект Moulded_form корпуса, а второй - объект Moulded_form главной палубы, граница которого определяется объектом External_instance_reference, содержащим однозначный глобальный идентификатор корпуса;
- отдельный обмен одной моделью с использованием нескольких точек доступа в области судостроения с сохранением взаимосвязей между прикладными объектами в разных точках доступа. Например, первый обмен может включать в себя объект Moulded_form палубы в AP 216, а второй может включать в себя листы (Plates) главной палубы в AP 218, нижняя поверхность которых определяется объектом External_instance_reference, содержащим однозначный глобальный идентификатор палубы moulded_form в AP 216.
Однозначные глобальные идентификаторы и пошаговые обмены важны для судостроения по следующим причинам:
- объем данных в проекте судна. Выполнить обмен всего проекта судна за один раз просто невозможно. Как правило, обмен данными сосредоточен на определенных зонах судна или конкретных системах. Важно, чтобы результатом этих множественных обменов стала модель судна, в которой сохраняются основные взаимосвязи между судостроительными элементами;
- длительные сроки проектирования и изготовления. Проект судна разрабатывается в течение длительного периода времени, вплоть до нескольких лет в случае с военными судами. Аналогично, производственная информация также разрабатывается за такой же период. Важно осуществлять обмен данными в любой момент проектирования или производственного цикла, сохраняя при этом основные взаимосвязи между судостроительными элементами;
- проект на основе экземпляров. Проект судна состоит из отдельных появлений частей в определенных местах на судне. Важно однозначно идентифицировать и отслеживать каждый отдельный экземпляр на судне в процессе проектирования, производства и, в конечном итоге, до эксплуатации;
- применимость корпуса. Класс судов может быть проектирован так же, как и отдельное судно, с исключениями, относящимися к корпусу. Он состоит из отдельных появлений частей в определенных местах на судах. Важно однозначно идентифицировать и отслеживать каждый отдельный экземпляр в классе судов на этапах проектирования, производства и, в конечном итоге, до эксплуатации;
- параллельное проектирование и производство. Как правило, изготовление судна начинается до завершения проекта полностью. Информация о проекте и производстве собирается постепенно. Кроме того, для управления изменениями важно однозначно идентифицировать каждый отдельный экземпляр на судне в процессе проектирования и производства;
- совместное проектирование. Над проектом судна или класса судов могут совместно работать несколько проектных организаций. Это возможно только в том случае, если каждая компания сможет определять пошаговые изменения, вносимые другим партнером;
- совместное производство. При производстве судна или класса судов могут сотрудничать несколько судостроительных организаций. Это возможно только в том случае, если каждая компания сможет определять пошаговые изменения, вносимые другим партнером;
- сотрудничество. Ряд компаний могут сотрудничать при проектировании и изготовлении судна или класса судов. Это возможно только в том случае, если каждая компания сможет определять пошаговые изменения, внесенные каждой компанией.
L.8.1 Функциональные требования
Поскольку GUID используются для поддержки пошаговых обменов, невозможно указать полностью функциональные требования к GUID в ПП в области судостроения. Функциональные требования к GUID приведены ниже:
- идентификатор GUID должен быть уникальным в глобальном масштабе и постоянным в рамках одного проекта судна, в разных проектах судов и в разных компаниях. Он должен указывать на экземпляр, который он обозначает, или не указывать вообще ни на что (например, когда экземпляр был удален);
- каждая система ПО должна назначать постоянные идентификаторы GUID каждому созданному или обновленному прикладному объекту;
- каждая система ПО должна поддерживать доступ к прикладному объекту через GUID;
- каждая система ПО должна хранить идентификатор GUID всех прикладных объектов;
- каждая система ПО должна возвращать тот же идентификатор GUID, который она получила, если прикладной объект не был изменен.
L.8.2 Ограничения реализации
Для поддержки этой нотации идентификатора GUID допускается использовать ряд различных схем и технологий реализации. Однако существует несколько ограничений реализации, которые следует учитывать:
- должна поддерживаться функциональная совместимость между компаниями, приложениями/системами и технологиями. (Идентификатор не должен быть непрозрачным, но должен раскрывать основные элементы данных, необходимые для постоянной идентификации. Непрозрачные идентификаторы были заданы в CORBA v1 и, как оказалось, препятствовали взаимодействию между системами);
- должны поддерживаться системы, использующие ключи на основе значений, а также системы, использующие сгенерированные системой идентификаторы объектов. (Требование хранить дополнительный атрибут для идентификаторов, сгенерированных системой, не следует применять к системам, основанным на значениях);
- идентификаторы экземпляров должны содержать уникальные глобальные идентификаторы типов, но при этом также иметь дополнительные требования. Следовательно, идентификаторы экземпляров несут больше информации, чем идентификаторы типов (например, PLIB BSU);
- идентификатор должен быть символьным, а синтаксис должен быть указан таким образом, чтобы можно было использовать стандартные отраслевые инструменты и алгоритмы;
- идентификатор должен поддерживать использование существующей части 21 и SDAI, а также использование ожидаемого XML части 28;
- идентификаторы должны быть основаны на уникальной идентификации отдельных объектов данных в программном приложении. Общая модель судна обычно использует четыре или более объектов для описания одного объекта данных: item, design_definition, functional_definition и manufacturing_definition. При том что важно однозначно идентифицировать каждый прикладной объект STEP, для программного приложения также важно однозначно идентифицировать объект данных, который генерирует эти прикладные объекты STEP.
L.8.3 Формат GUID, рекомендованный ISE
В проекте интегрированной среды в области судостроения (ISE) приняты и внедряются трансляторы на основе следующего формата GUID.
Атрибут ПЭМ Global_id.id (атрибут ПИМ applied_classification_assignment.id) записывается в виде строки в следующем формате:
'<XX_Key
x_href=YY
Id=WW
x-owner=ZZ
x-rev=AA/>'
Определение аргументов:
XX_Key - XX - это имя связанного объекта ПЭМ, например Moulded_form_function_definition. Этот аргумент является обязательным. Первая буква объекта приложения заглавная, остальные строчные. Суффикс = "_Key".
x-href=YY - YY - это URL-адрес SOAP-сервера и/или базы данных. Этот аргумент является обязательным.
Id=WW - WW - это строка, идентифицирующая объект. Идентификатор Id необходим только для definable_objects. Идентификатор Id может быть одним из двух типов:
Value (прозрачное использование) - уникальное значение, идентифицирующее данный экземпляр
GUID (непрозрачное использование) - сгенерированный системой идентификатор. Должен иметь префикс "guid:"
x-owner=ZZ - ZZ - это строка, идентифицирующая объект. Этот аргумент требуется только для объектов Definition. Та же строка, что и идентификатор Id связанного объекта definable_object.
x-rev=AA - AA - номер изменения. Этот аргумент требуется только для объектов Definition. Та же строка, что и Definition.version_id attribute.
Сочетание (XX_key, x-href, Id) уникально для definable_objects.
Сочетание (XX_key, x-href, x-owner, x-rev) уникально для Definitions
Пример 1 - Следующие примеры иллюстрируют такое использование для связанных объектов moulded_form в прикладном протоколе AP 216:
'<Moulded_form_Key x-href="//j oshua.ingr.com"
Id="guid:123-123-123" />'
'<Moulded_form_functional_definition_Key
x-href="//joshua.ingr.com"
x-owner="guid:123-123-123"
x-rev="A"/>'
'<Moulded_form_design_definition_Key
x-href="//joshua.ingr.com"
x-owner="guid:123-123-123"
x-rev="A"/>'
Пример 2 - Объект Part определен в языке EXPRESS и инстанцирован в репозитории, локатором которого является "http://www.acme.com/stepdataserver". В приведенном ниже примере показано, как его постоянный идентификатор будет закодирован, а затем представлен в файле части 21:
SCHEMA part_schema;
ENTITY Part
Name: STRING;
Description: STRING;
END_ENTITY;
END_SCHEMA;
Глобально-уникальный постоянный идентификатор для экземпляра этого типа будет закодирован как:
<Part_Key href = "http://www.acme.com/stepdataserver" Id =
"P1" />
Этот пример показывает три основных компонента данных для глобально уникальной постоянной идентификации экземпляра: глобально уникальное имя типа, глобально уникальный локатор экземпляра (репозиторий), локально уникальный идентификатор (ключ) в этом локаторе (репозиторий).
Глобально уникальное имя типа представляет собой комбинацию схемы на языке EXPRESS и имен типов, отображаемых в соответствии с ISO/TS 10303-28. Имя EXPRESS SCHEMA связано с пространством имен типа ("urn:iso10303:osb/part_schema"); а имя EXPRESS ENTITY фиксируется как квалифицированное имя элемента со строкой '_Key', к которой добавлено (p:Part_Key). Атрибут xlink:href фиксирует локатор репозитория, который управляет экземпляром. Он включает орган (компанию) и устанавливает глобальную уникальность идентификатора. Остальные элементы фиксируют имена и значения атрибутов локальной идентификации (Id = "P1"), которые будут гарантированно уникальными в репозитории. Рекомендуемое имя при наличии одного локального идентификатора - Id.
Для предоставления информации о версии экземпляра, на который дана ссылка, может быть включен специальный атрибут x-rev. Это правило заключается в том, что присутствие x-rev означает особое отношение этого экземпляра к другим экземплярам, ключи которых имеют одинаковые значения для всех полей, кроме x-rev. Каждый такой экземпляр представляет разные версии одного и того же объекта; порядок версий зависит от приложения.
Система, использующая сгенерированные системой идентификаторы объектов (например, guid's), будет использовать строку guid в качестве значения первого ключевого атрибута.
<p:Part_Key xmlns:p = "urn:iso10303:osb/part_schema" x-id = "_10"
xlink:href = "http://www.acme.com/stepdataserver"
Id = "guid: BDA4A1BA-110C-11d0-8CC3-0080F394BA32" x-rev = "A"/>
Глобально-уникальный постоянный идентификатор будет представлен в файле STEP как:
#10 = Part('P1','Description for this part');
#20 = applied_identification_assignment(
'<p:Part_Key xmlns:p = "urn:iso10303:osb/part_schema"
xlink:href = "http://www.acme.com/stepdataserver" Id = "P1" x-re v= "A"/>',
#21,#10);
#21 = identification_role('xml_guid',' ');
Приложение ДА
(справочное)
ИНФОРМАЦИЯ ОБ УЧЕТЕ ТЕХНИЧЕСКОЙ ПОПРАВКИ
К ИСО 10303-216:2003
В текст настоящего стандарта внесена техническая поправка ИСО 10303-216:2003/Попр. 1:2008.
Эта поправка относится к следующим элементам стандарта:
- подпункт 4.1.14 (добавление прикладного объекта Surface_with_identifier в ПЭМ в функциональную единицу surface_representations);
- подпункт 4.2.110 (4.2.110.1) после подпункта 4.2.109.1 [добавление прикладного объекта Surface_with_identifier в прикладную эталонную модель (ПЭМ (ARM)), изменение нумерации следующих за ним подпунктов соответственно];
- подпункт 4.3.109, после подпункта 4.3.108 [добавление условия между прикладными объектами Surface_with_identifier и Global_id в ПЭМ, изменение нумерации следующих за ним подпунктов соответственно];
- подпункт 5.1.1.9 [добавление заключающих косых черт в шаблоны отображения (Mapping Templates), на которые ссылаются другие шаблоны отображения];
- подпункт 5.1.1.10 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.11 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.12 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.13 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.14 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.18 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.23 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.28 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.30 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.31 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.32 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.33 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.34 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.35 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.36 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.38 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.39 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.40 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения)
- подпункт 5.1.1.42 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.43 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.44 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.45 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.47 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.48 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.51 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.1.54 (добавление заключающих косых черт в шаблоны отображения данных, на которые ссылаются другие шаблоны отображения);
- подпункт 5.1.13.2 [не используются параметры плотности, силы и давления. Целью данного изменения является удаление фрагментов "Пути Отображения" (Mapping Path) Derived_unit в части единицы плотности, единицы силы и единицы давления и замена другим текстом];
- подпункт 5.1.15.3 (5.1.15.3.1) (добавление спецификации отображения для прикладного объекта Surface_with_identifier);
- пункт 5.2 (добавление context_dependent_measure в USE FROM measure_schema);
- подпункт 5.2.2.4 [изменение AIM EXPRESS с целью добавления определения прикладного объекта Surface_with_identifier и исправления ошибок компиляции глобальных правил, добавление поверхности (surface) и representation_item в выбор типа classification_item Select type];
- подпункт 5.2.2.10 [изменение AIM EXPRESS с целью добавления отображения прикладного объекта Surface_with_identifier, добавление Surface (поверхность) в выбор типа identification_item Select type];
- подпункт 5.2.4.42 (исправление ошибки глобального правила, замена определения EXPRESS другим текстом);
- подпункт 5.2.4.144 (исправление ошибки компиляции глобального правила и приведение правила в соответствие с другими этого же типа, замена текста);
ИС МЕГАНОРМ: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. 5.2.4.149, а не 5.2.2.149.
- подпункт 5.2.4.150 (изменение AIM EXPRESS с целью добавления отображения Surface_with_identifier в прикладное условие Global_id, добавление глобального правила для обеспечения данного прикладного условия, приведение нового подпункта 5.2.2.149 после подпункта 5.2.4.148, изменение нумерации следующих за ним подпунктов соответственно;
- приложение A (страница 420: изменение AIM EXPRESS с целью добавления определения прикладного объекта Surface_with_identifier и исправления ошибок компиляции глобальных правил. Добавление поверхности surface и representation_item в classification_item Select type);
- приложение A (страница 420: добавление context_dependent_measure в расширенный листинг AIM EXPRESS);
- приложение A (страница 422: изменение расширенного листинга AIM EXPRESS с целью добавления отображения прикладного объекта Surface_with_identifier, добавление поверхности Surface в выбор типа identification_item Select type);
- приложение A (страница 423: добавление context_dependent_measure в measure_value SELECT Type);
- приложение A (страница 476: исправление ошибки в глобальном правиле, замена текста);
- приложение A (страницы 522, 523: изменение AIM EXPRESS с целью добавления отображения Surface_with_identifier в прикладное условие Global_id);
- приложение C [добавление части 28 в качестве допустимого метода реализации дополнительно к части 21, добавление спецификации значений для настоящего стандарта в целях использования данной возможности (добавлены пункты C.1 - C.3)];
- приложение E (замена идентификаторов объектов);
- приложение G (изменение AIM EXPRESS с целью добавления прикладного объекта Surface_with_identifier, замена рисунка G.24);
- приложение H (изменение AIM EXPRESS-G в целях добавления ссылки на другую страницу к representation_item для classification_item SELECT type, замена рисунка H.4);
- приложение H (изменение AIM EXPRESS-G в целях добавления поверхности surface и representation_item в classification_item SELECT type, замена рисунков H.10, H.11);
- приложение H (добавление context_dependent_measure в measure_value SELECT Type в схеме AIM, замена рисунка H.14);
- приложение H (изменение AIM EXPRESS-G в целях корректировки ссылок на другие страницы для поверхности, замена рисунка H.20);
- приложение L, таблица L.7 (удаление Density_measure и Force_measure, удаление Pressure_measure в связи с их неприменением в настоящем стандарте).
Приложение ДБ
(справочное)
СВЕДЕНИЯ О СООТВЕТСТВИИ ССЫЛОЧНЫХ МЕЖДУНАРОДНЫХ СТАНДАРТОВ
И ДОКУМЕНТОВ НАЦИОНАЛЬНЫМ СТАНДАРТАМ
Таблица ДБ.1
Обозначение ссылочного международного стандарта, документа
Степень соответствия
Обозначение и наименование соответствующего национального стандарта
ISO 31 (all parts)
-
ISO 1000:1992
-
ISO 10303-1:1994
-
ISO/IEC 8824-1:1998
IDT
ГОСТ Р ИСО/МЭК 8824-1-2001 "Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 1. Спецификация основной нотации"
ISO 10303-11:1994
-
ISO 10303-21:2002
-
ISO 10303-22:1998
IDT
ГОСТ Р ИСО 10303-22-2002 "Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 22. Методы реализации. Стандартный интерфейс доступа к данным"
ISO/TS 10303-28
-
ISO 10303-31:1994
-
ISO 10303-41:2000
-
ISO 10303-42:2000
-
ISO 10303-43:2000
-
ISO 10303-45:1998
-
ISO 10303-501:2000
IDT
ГОСТ Р ИСО 10303-501-2006 "Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 501. Прикладные интерпретированные конструкции. Каркасное представление формы на основе ребер"
ISO 10303-508:2001
IDT
ГОСТ Р ИСО 10303-508-2009 "Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 508. Прикладные интерпретированные конструкции. Многосвязные поверхности"
ISO 10303-511:2001
IDT
ГОСТ Р ИСО 10303-511-2006 "Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 511. Прикладные интерпретированные конструкции. Топологически ограниченная поверхность"
RFC 2396:1998
-
<*> Соответствующий национальный стандарт отсутствует. До его принятия рекомендуется использовать перевод на русский язык данного международного стандарта (документа).
Примечание - В настоящей таблице использовано следующее условное обозначение степени соответствия стандартов:
- IDT - идентичные стандарты.
--------------------------------
<1> Действует ГОСТ Р ИСО 10303-1-2022 "Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 1. Общие представления и основополагающие принципы", идентичный ИСО 10303-1:2021.
<2> Действует ГОСТ Р ИСО 10303-45-2022 "Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 45. Интегрированный обобщенный ресурс. Материал и другие технические характеристики", идентичный ИСО 10303-45:2019.
БИБЛИОГРАФИЯ
[1]
ISO 10303-209:2001
Industrial automation systems and integration - Product data representation and exchange - Part 209: Application protocol: Composite and metallic structural analysis and related design
[2]
ISO 10303-212:2000
Industrial automation systems and integration - Product data representation and exchange - Part 212: Application protocol: Electrotechnical design and installation
[3]
ISO 10303-215:2004
Industrial automation systems and integration - Product data representation and exchange - Part 215: Application protocol: Ship arrangement
[4]
ISO 10303-218:2004
Industrial automation systems and integration - Product data representation and exchange - Part 218: Application protocol: Ship structures
[5]
ISO 10303-227:2005
Industrial automation systems and integration - Product data representation and exchange - Part 227: Application protocol: Plant spatial configuration
[6]
ISO 10303-233:2012
Industrial automation systems and integration - Product data representation and exchange - Part 233: Application protocol: Systems engineering data representation
[7]
ISO 10303-234
Industrial automation systems and integration - Product data representation and exchange - Part 234: Application protocol: Ship Operational logs, records, and messages
[8]
ISO 13584-42:1998
Industrial automation systems and integration - Parts library - Part 42: Description methodology: Methodology for structuring part families
[9]
IDEF0 Federal Information Processing Standards Publication 183, Integration Definition for Function Modeling (IDEF0), FIPS PUB 183, National Institute of Standards and Technology, December 1993
[10]
Lewis, Edward J., Editor, "Principles of Naval Architecture, Second Revision", The Society of Naval Architects and Marine Engineers, 1988
[11]
AP Development Guidelines for Shipbuilding, ISO TC184/SC4/WG3 N701, 19th October, 1997
[12]
ESTEP AP 216 Test Case Definition, Rev. C, ISO TC184/SC4/WG3 N1143, 18th December, 2001
УДК 629.5.012.6:006.35
ОКС 25.040.40
Ключевые слова: суда, система автоматизации, интеграция, данные, изделие, прикладной протокол, форма обводов корпуса, функциональная единица