| Application module: Item definition structure | ISO/TS 10303-1345:2014-02(E) © ISO | 
         (*
ISO TC184/SC4/WG12 N7733 - ISO/TS 10303-1345 Item definition structure - EXPRESS MIM
Supersedes 
         ISO TC184/SC4/WG12 N6912
*)
         
SCHEMA Item_definition_structure_mim;
         USE FROM
         Effectivity_application_mim;
            -- ISO/TS 10303-1059
         USE FROM
         Product_occurrence_mim;
            -- ISO/TS 10303-1063
         USE FROM
         Product_structure_mim;
            -- ISO/TS 10303-1134
         REFERENCE FROM 
         product_definition_schema   -- ISO 10303-41
  (categories_of_product);
         
TYPE effectivity_item_for_replacement =
         
         
         SELECT
         BASED_ON
         effectivity_item
         WITH 
         
            (product_definition_relationship);
         END_TYPE; 
         
RULE product_definition_replacement_requires_effectivity_assignment FOR 
         (product_definition_relationship);
WHERE
           WR1: SIZEOF( QUERY( pdr <* product_definition_relationship | 
            (pdr.name = 'definition replacement') AND 
            (SIZEOF( USEDIN(pdr,'EFFECTIVITY_APPLICATION_MIM.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS') ) = 0) ))
            = 0;
         END_RULE;
         
RULE restrict_assembly_category FOR 
         (product_definition);
LOCAL
      assembly_definitions: SET OF product_definition := [];
    END_LOCAL;
      assembly_definitions :=  QUERY( pd <* product_definition | 
        SIZEOF( QUERY( pdca <* USEDIN( pd, 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') |
        pdca.frame_of_reference.name= 'assembly definition')) > 0 );WHERE
           WR1: SIZEOF( QUERY( pd <* assembly_definitions | 
            NOT ('assembly' IN categories_of_product(pd.formation.of_product)) ))= 0;
         END_RULE;
         
RULE restrict_product_definitions_for_part_definition_relationship FOR 
         (product_definition_relationship);
WHERE
           WR1: SIZEOF ( QUERY ( pdr <* product_definition_relationship |
            ( pdr.name IN [ 'geometrical relationship' , 'definition replacement' ] ) AND 
            	    ( ( pdr.relating_product_definition.frame_of_reference.name <>'part definition' ) OR 
            ( pdr.related_product_definition.frame_of_reference.name <>'part definition' ) ) ) ) =0;
         END_RULE;
         
         END_SCHEMA;  -- Item_definition_structure_mim
© ISO 2014 — All rights reserved