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

(*
ISO/TC 184/SC 4/WG 12 N10274 - ISO/TS 10303-1109 Alternative solution - EXPRESS MIM
Supersedes ISO/TC 184/SC 4/WG 12 N7727
*)



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


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

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;

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;

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;

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;

END_SCHEMA;  -- Alternative_solution_mim


© ISO 2019 — All rights reserved