| Application module: Component feature | ISO/TS 10303-1657:2019(E) © ISO | 
This clause specifies the information requirements for the Component feature application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Component_feature_arm schema and identifies the necessary external references.
EXPRESS specification:
         *)
            SCHEMA Component_feature_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
            USE FROM
            Assembly_component_arm;
               -- 
            ISO/TS 10303-1802
            USE FROM
            Assembly_shape_arm;
               -- 
            ISO/TS 10303-1808
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Assembly_component_arm ISO/TS 10303-1802 Assembly_shape_arm ISO/TS 10303-1808 
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
This subclause specifies the ARM type for this application module. The ARM type and definition is specified below.

The cf_groupable_item type is an extension of the groupable_item type. It adds the data type Component_feature to the list of alternate data types.
EXPRESS specification:
            *)
            TYPE 
            cf_groupable_item =
            
            
            SELECT
            BASED_ON 
            groupable_item
            WITH 
            
               (Component_feature);
            END_TYPE; 
            (*
            
This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.


EXPRESS specification:
            *)
            ENTITY Component_feature
              SUBTYPE OF (Shape_element);
            
            
            
              definition : 
            OPTIONAL 
            Part_shape_element;
            
            
            
              SELF\Shape_element.associated_definition : Assembly_component;
DERIVE
              SELF\Shape_element.product_definitional : BOOLEAN := TRUE;
UNIQUE
              UR1: definition, associated_definition;
              UR2: SELF\Shape_element.element_name, associated_definition;
            END_ENTITY;
(*
            
Attribute definitions:
definition: the General_part_feature that serves as a definition for the Component_feature. The value of this attribute need not be specified.
associated_definition: the Assembly_component that has the Component_feature.
NOTE The subtypes of Component_feature specify specializations of Assembly_component that are consistent with the subtype of definition.
product_definitional: a Component_feature is always definitional.
Formal propositions:
UR1: The combination of definition and associated_definition shall be unique within a population of Component_feature.
UR2: The combination of element_name and associated_definition shall be unique within a population of Component_feature.


EXPRESS specification:
            *)
            ENTITY Component_feature_joint
              ABSTRACT SUPERTYPE
            
              SUBTYPE OF (Component_feature_relationship, Shape_element);
            
            
            
              SELF\Component_feature_relationship.relating RENAMED feature_1 : Component_feature;
            
            
            
              SELF\Component_feature_relationship.related RENAMED feature_2 : Component_feature;
            
            
            
              SELF\Shape_element.associated_definition : Assembly_definition;
WHERE
 
              WR1: feature_1 <> feature_2;
 
              WR2: associated_definition IN 
            feature_1\Shape_element.associated_definition\Assembly_component.assemblies;
 
              WR3: associated_definition IN 
            feature_2\Shape_element.associated_definition\Assembly_component.assemblies;
            END_ENTITY;
(*
            
Attribute definitions:
feature_1: specifies one role of the Component_feature for the Component_feature_joint.
feature_2: specifies another role of the Component_feature for the Component_feature_joint.
associated_definition: specifies the Assembly_definition to which the Component_feature_joint belongs.
Formal propositions:
WR1: the feature_1 and feature_2 shall not point to the same instance of Component_feature.
WR2: the Component_feature referenced by feature_1 shall be used by the same Assembly_definition as the associated_definition.
WR3: the Component_feature referenced by feature_2 shall be used by the same Assembly_definition as the associated_definition.


EXPRESS specification:
            *)
            ENTITY Component_feature_make_from_relationship
              SUBTYPE OF (Component_feature_relationship);
            
            
            
              SELF\Shape_element_relationship.relating RENAMED reusable_feature : Component_feature;
            
            
            
              SELF\Shape_element_relationship.related RENAMED resultant_feature : Component_feature;
            END_ENTITY;
(*
            
Attribute definitions:
reusable_feature: specifies the Component_feature that is modified or reused to become the resultant_feature in the Component_feature_make_from_relationship.
resultant_feature: specifies the Component_feature that results from modifying or reusing the reusable_feature in the Component_feature_make_from_relationship.


EXPRESS specification:
            *)
            ENTITY Component_feature_relationship
              SUPERTYPE OF (ONEOF (Component_feature_joint,
                       Component_feature_make_from_relationship))
              SUBTYPE OF (Shape_element_relationship);
            
            
            
              SELF\Shape_element_relationship.relating : Component_feature;
            
            
            
              SELF\Shape_element_relationship.related : Component_feature;
            END_ENTITY;
(*
            
Attribute definitions:
relating: the first instance of Component_feature that is part of the relationship.
related: the second of the instances of Component_feature that is part of the relationship. If one element of the relationship is dependent upon the other, this attribute shall be the dependent one.


EXPRESS specification:
            *)
            ENTITY Component_terminal
              ABSTRACT SUPERTYPE
            
              SUBTYPE OF (Component_feature);
            
            
            
              local_swappable : 
            OPTIONAL 
            BOOLEAN;
            
            
            
              global_swappable : 
            OPTIONAL 
            BOOLEAN;
            
            
            
              swap_code : 
            OPTIONAL 
            STRING;
            END_ENTITY;
(*
            
Attribute definitions:
local_swappable: specifies a Boolean value that indicates if the terminal can be exchanged within the associated functional unit. The value of this attribute need not be specified.
global_swappable: specifies a Boolean value that indicates if the terminal can be exchanged within associated functional units of the same type. The value of this attribute need not be specified.
swap_code: specifies a string for the Component_terminal. The value of this attribute need not be specified.
         *)
         END_SCHEMA;  -- Component_feature_arm
(*
         © ISO 2019 — All rights reserved