| Application module: Shape feature | ISO/TS 10303-1764:2019(E)  © ISO  | 
         
         (*
ISO/TC 184/SC 4/WG 12 N10170 - ISO/TS 10303-1764 Shape feature - EXPRESS MIM
Supersedes 
         ISO/TC 184/SC 4/WG 12 N9876
*)
         
SCHEMA Shape_feature_mim;
         USE FROM
         machining_feature_schema   -- ISO/DIS 10303-113
  (feature_component_relationship,
           
         shape_defining_relationship);
         
         USE FROM
         Characterizable_object_mim;
            -- ISO/TS 10303-1765
         USE FROM
         Contextual_shape_positioning_mim;
            -- ISO/TS 10303-1027
         USE FROM
         product_property_definition_schema   -- ISO 10303-41
  (characterized_object_relationship,
           
         constituent_shape_aspect);
         
         USE FROM
         Property_assignment_mim;
            -- ISO/TS 10303-1030
         USE FROM
         shape_aspect_definition_schema   -- ISO 10303-47
  (composite_shape_aspect,
           
         feature_definition,
           
         instanced_feature);
         
         REFERENCE FROM 
         product_property_definition_schema   -- ISO 10303-41
  (get_shape_aspects);
         
         REFERENCE FROM 
         product_property_representation_schema   -- ISO 10303-41
  (get_property_definition_representations);
         
ENTITY general_feature
           SUBTYPE OF (shape_feature_definition);
WHERE
           WR1: (SIZEOF(get_property_definition_representations(SELF)) <= 1) AND
            (SIZEOF( QUERY( pdr <* get_property_definition_representations(SELF) |
            'SHAPE_ASPECT_DEFINITION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN 
            TYPEOF(pdr.used_representation)
            )) <= 1);
           WR2: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) |
            sa.description = 'course of travel occurrence')) =
            SIZEOF( QUERY( sa <* get_shape_aspects(SELF) |
            (sa.description = 'course of travel occurrence') AND
            (SIZEOF( QUERY( sar <* USEDIN( sa, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') |
            ('MACHINING_FEATURE_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN
            TYPEOF(sar)) AND
            (sar.name = 'course of travel')
            )) = 1 )));
           WR3: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) |
            sa.description = 'course of travel occurrence')) =
            SIZEOF( QUERY( sa <* get_shape_aspects(SELF) |
            (sa.description = 'course of travel occurrence') AND
            (SIZEOF( QUERY( sar <* USEDIN( sa, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') |
            ('MACHINING_FEATURE_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN
            TYPEOF(sar)) AND
            ('SHAPE_FEATURE_MIM.PATH_FEATURE_COMPONENT' IN
            TYPEOF(sar.relating_shape_aspect))
            )) = 1 )));
           WR4: SIZEOF( QUERY( sa <* get_shape_aspects(SELF) |
            sa.description = 'boundary occurrence')) =
            SIZEOF( QUERY( sa <* get_shape_aspects(SELF) |
            (sa.description = 'boundary occurrence') AND
            (SIZEOF( QUERY( sar <* USEDIN( sa, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') |
            ('MACHINING_FEATURE_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN
            TYPEOF(sar)) AND
            (sar.description = 'profile usage')
            )) = 1 )));
           WR5: (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) |
            ('SHAPE_ASPECT_DEFINITION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN
            TYPEOF(sa))
            )) <= 1 ) AND
            (SIZEOF( QUERY( sa <* get_shape_aspects(SELF) |
            ('SHAPE_ASPECT_DEFINITION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN
            TYPEOF(sa)) AND
            (sa.name = 'general compound feature') AND
            (SIZEOF( QUERY( sar <* USEDIN( sa, 'PRODUCT_PROPERTY_DEFINITION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') |
            ('MACHINING_FEATURE_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN
            TYPEOF(sar)) AND
            ('SHAPE_ASPECT_DEFINITION_SCHEMA.INSTANCED_FEATURE' IN
            TYPEOF(sar.related_shape_aspect))
            )) >= 2 )
            )) <= 1 );
         
         END_ENTITY;
ENTITY placed_feature
           SUBTYPE OF (shape_aspect);
         
         END_ENTITY;
ENTITY shape_feature_definition
           SUBTYPE OF (feature_definition);
         
         END_ENTITY;
ENTITY shape_feature_definition_element_relationship
           SUBTYPE OF (shape_aspect_relationship, characterized_object);
DERIVE
           SELF\characterized_object.name : label := SELF\shape_aspect_relationship.name;
           SELF\characterized_object.description : text := SELF\shape_aspect_relationship.description;
         
         END_ENTITY;
ENTITY shape_feature_definition_relationship
           SUBTYPE OF (characterized_object_relationship, characterized_object);
           SELF\characterized_object_relationship.relating_object : shape_feature_definition;
           SELF\characterized_object_relationship.related_object : shape_feature_definition;
DERIVE
           SELF\characterized_object.name : label := SELF\characterized_object_relationship.name;
           SELF\characterized_object.description : text := SELF\characterized_object_relationship.description;
         
         END_ENTITY;
         END_SCHEMA;  -- Shape_feature_mim
© ISO 2019 — All rights reserved