Application module: Alternative solution ISO/TS 10303-1109:2019(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Information requirements
   4.1 Required AM ARMs
   4.2 ARM type definitions
   4.3 ARM entity definitions
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM type definition
     5.2.2 MIM rule definitions

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
F Change history
Bibliography
Index

5.2 MIM EXPRESS short listing

This clause specifies the EXPRESS schema derived from the mapping table. It uses elements from the common resources or from other application modules and defines the EXPRESS constructs that are specific to this part of ISO 10303.

This clause constitutes the Module Interpreted Module (MIM) of the application module.

This clause also specifies the modifications that apply to the constructs imported from the common resources.

The following restrictions apply to the use, in this schema, of constructs defined in common resources or in application modules:

Short names of entities defined in this schema are described in Annex A. Unambiguous identification of this schema is defined in Annex B.

EXPRESS specification:

*)
SCHEMA Alternative_solution_mim;

USE FROM Functional_breakdown_mim;    --  ISO/TS 10303-1216

USE FROM measure_schema    --  ISO 10303-41
  (ratio_measure_with_unit);

USE FROM Part_view_definition_mim;    --  ISO/TS 10303-1023

USE FROM Person_organization_assignment_mim;    --  ISO/TS 10303-1013

USE FROM Physical_breakdown_mim;    --  ISO/TS 10303-1215

USE FROM Product_as_individual_mim;    --  ISO/TS 10303-1164

USE FROM product_definition_schema    --  ISO 10303-41
  (final_solution);

USE FROM Product_occurrence_mim;    --  ISO/TS 10303-1063

USE FROM qualified_measure_schema    --  ISO 10303-45
  (measure_representation_item);

USE FROM Requirement_view_definition_mim;    --  ISO/TS 10303-1141
(*

NOTE 1   The schemas referenced above are specified in the following part of ISO 10303:

Functional_breakdown_mim ISO/TS 10303-1216
measure_schema ISO 10303-41
Part_view_definition_mim ISO/TS 10303-1023
Person_organization_assignment_mim ISO/TS 10303-1013
Physical_breakdown_mim ISO/TS 10303-1215
Product_as_individual_mim ISO/TS 10303-1164
product_definition_schema ISO 10303-41
Product_occurrence_mim ISO/TS 10303-1063
qualified_measure_schema ISO 10303-45
Requirement_view_definition_mim ISO/TS 10303-1141

NOTE 2   See Annex D, Figures D.1and D.2 for a graphical representation of this schema.

5.2.1 MIM type definition

This subclause specifies the MIM type for this application module. The MIM type and definition is specified below.

5.2.1.1 organization_item_solution   EXPRESS-G

The organization_item_solution type is an extension of the organization_item type. It adds the data type product_definition_formation to the list of alternate data types.

EXPRESS specification:

*)
TYPE organization_item_solution = SELECT BASED_ON organization_item WITH
   (product_definition_formation);
END_TYPE;
(*

5.2.2 MIM rule definitions

This subclause specifies the MIM rules for this module. The MIM rules and definitions are specified below.

5.2.2.1 alternative_solution_requires_solution_definition

The alternative_solution_requires_solution_definition rule constrains every instance of product_definition that is a version of a product of category 'alternative solution', to have exactly one definition of type 'alternative definition'.

NOTE    This rule corresponds to the restriction for alternative solutions of the rule complex_product_requires_product_definition defined in ISO 10303-214.

EXPRESS specification:

*)
RULE alternative_solution_requires_solution_definition FOR
(product_definition_formation);
    LOCAL
  solution_versions : SET OF product_definition_formation := [];
    END_LOCAL;
  solution_versions := QUERY(pdf
                             <* product_definition_formation
                             | SIZEOF(QUERY(prpc
                                            <* USEDIN(pdf.of_product, 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS')
                                            | prpc.name = 'alternative solution')) =
                               1);
WHERE
  WR1: SIZEOF(QUERY(pdf <* solution_versions | SIZEOF(QUERY(pd <* USEDIN(pdf, 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION.FORMATION') | pd.frame_of_reference.name = 'alternative definition')) <> 1)) = 0;
END_RULE;
(*

Argument definitions:

product_definition_formation : the set of all instances of product_definition_formation.

Formal propositions:

WR1: There shall not be any product_definition_formation of a product of category 'alternative solution', that is not referred to by exactly one product_definition whose name of frame_of_reference is 'alternative definition'.

5.2.2.2 restrict_alternative_definition

The restrict_alternative_definition rule specifies the restrictions that apply to instances of product_definition that reference as frame_of_reference a product_definition_context with name 'alternative definition'.

EXPRESS specification:

*)
RULE restrict_alternative_definition FOR
(product_definition);
    LOCAL
  solution_definitions : SET OF product_definition := [];
    END_LOCAL;
  solution_definitions := QUERY(pd
                                <* product_definition
                                | (pd.frame_of_reference.name = 'alternative definition'));
WHERE
  WR1: SIZEOF(QUERY(pd <* solution_definitions | (SIZEOF(QUERY(pdr <* USEDIN(pd, 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr.name = 'solution alternative definition')) <> 1))) = 0;
  WR2: SIZEOF(QUERY(pd <* solution_definitions | NOT (pd.name IN ['technical','supplier','technical supplier','']))) = 0;
  WR3: SIZEOF(QUERY(pd <* solution_definitions | (pd.name IN ['supplier','technical supplier']) AND (SIZEOF(QUERY(aoa <* USEDIN(pd.formation, 'PERSON_ORGANIZATION_ASSIGNMENT_MIM.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | aoa.role.name = 'supplier')) <> 1))) = 0;
END_RULE;
(*

Argument definitions:

product_definition : the set of all instances of product_definition.

Formal propositions:

WR1: Any instance of product_definition that references as its frame_of_reference a product_definition_context with name 'alternative definition', shall be referred to as related_product_definition by exactly one instance of product_definition_relationship with name 'alternative solution'.

NOTE    This instance relates the Alternative_solution with the base_element it specifies an alternate implementation for.

WR2: Any instance of product_definition that references as its frame_of_reference a product_definition_context with name 'alternative definition', shall have its name attribute equal to 'technical', 'supplier', 'technical supplier', or ''.

WR3: Any instance of product_definition that references as its frame_of_reference a product_definition_context with name 'alternative definition' and that has a name attribute equal to 'supplier', 'technical supplier', shall be in the set of items of exactly one applied_organization_assignment that has a role name 'supplier'.

5.2.2.3 restrict_product_definitions_for_base_element

The restrict_product_definitions_for_base_element rule restricts the name of instances of product_definition when they are related by a product_definition_relationship with name 'solution alternative definition'. The name of the relating product_definition shall be 'alternative definition', 'functional definition' or 'conceptual definition'. The name of the related product_definition shall be 'alternative definition'.

NOTE    This rule corresponds to the constraint on the type of the attribute base_element.

EXPRESS specification:

*)
RULE restrict_product_definitions_for_base_element FOR
(product_definition_relationship);
WHERE
  WR1: SIZEOF(QUERY(pdr <* product_definition_relationship | (pdr.name = 'solution alternative definition') AND (NOT (pdr.relating_product_definition.frame_of_reference.name IN ['alternative definition','functional definition','conceptual definition']) OR (pdr.related_product_definition.frame_of_reference.name <> 'alternative definition')))) = 0;
END_RULE;
(*

Argument definitions:

product_definition_relationship : the set of all instances of product_definition_relationship.

Formal propositions:

WR1: There shall not be any instance of product_definition_relationship with name 'solution alternative definition', for which the name of the related instances of product_definition does not match the constraint mentioned above.

5.2.2.4 solution_definition_requires_solution_category

The solution_definition_requires_solution_category rule constrains every instance of product_definition of type 'alternative definition' to be a definition of a product of category 'alternative solution'.

EXPRESS specification:

*)
RULE solution_definition_requires_solution_category FOR
(product_definition);
    LOCAL
  solution_definitions : SET OF product_definition := [];
    END_LOCAL;
  solution_definitions := QUERY(pd
                                <* product_definition
                                | (pd.frame_of_reference.name = 'alternative definition'));
WHERE
  WR1: SIZEOF(QUERY(pd <* solution_definitions | (SIZEOF(QUERY(prpc <* USEDIN(pd.formation.of_product, 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'alternative solution')) = 0))) = 0;
END_RULE;
(*

Argument definitions:

product_definition : the set of all instances of product_definition.

Formal propositions:

WR1: There shall not be any instance of product_definition, whose name of frame_of_reference is 'alternative definition', that is not a definition of a product of category 'alternative solution'.



*)
END_SCHEMA;  -- Alternative_solution_mim
(*


© ISO 2019 — All rights reserved