Application module: Classification with attributes | ISO/TS 10303-1111:2019(E) © ISO |
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 Classification_with_attributes_mim;
USE FROM
Classification_assignment_mim;
--
ISO/TS 10303-1114
USE FROM
Extended_measure_representation_mim;
--
ISO/TS 10303-1106
USE FROM
Identification_assignment_mim;
--
ISO/TS 10303-1021
USE FROM
Independent_property_mim;
--
ISO/TS 10303-1036
USE FROM
Plib_class_reference_mim;
--
ISO/TS 10303-1291
USE FROM
Product_view_definition_mim;
--
ISO/TS 10303-1019
USE FROM
group_schema
--
ISO 10303-41
(group,
group_relationship);
USE FROM
product_property_definition_schema
--
ISO 10303-41
(characterized_object,
general_property,
general_property_association,
property_definition);
USE FROM
product_property_representation_schema
--
ISO 10303-41
(property_definition_representation);
USE FROM
representation_schema
--
ISO 10303-43
(set_representation_item);
USE FROM
management_resources_schema
--
ISO 10303-41
(classification_role);
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Classification_assignment_mim ISO/TS 10303-1114 Extended_measure_representation_mim ISO/TS 10303-1106 Identification_assignment_mim ISO/TS 10303-1021 Independent_property_mim ISO/TS 10303-1036 Plib_class_reference_mim ISO/TS 10303-1291 Product_view_definition_mim ISO/TS 10303-1019 group_schema ISO 10303-41 product_property_definition_schema ISO 10303-41 product_property_representation_schema ISO 10303-41 representation_schema ISO 10303-43 management_resources_schema ISO 10303-41
NOTE 2 See Annex D, Figures D.1and D.2 for a graphical representation of this schema.
This subclause specifies the MIM types for this application module. The MIM types and definitions are specified below.
The classification_item_extended type is an extension of the classification_item type. It adds the data types class and classified_item to the list of alternate data types.
EXPRESS specification:
*)
TYPE
classification_item_extended =
SELECT
BASED_ON
classification_item
WITH
(class,
classified_item);
END_TYPE;
(*
The classified_item type allows for the designation of the data types product, product_definition_formation, and product_definition.
EXPRESS specification:
*)
TYPE
classified_item =
SELECT
(product,
product_definition_formation,
product_definition);
END_TYPE;
(*
The cwa_identification_item type is an extension of the identification_item type. It adds the data type class to the list of alternate data types.
EXPRESS specification:
*)
TYPE
cwa_identification_item =
SELECT
BASED_ON
identification_item
WITH
(class);
END_TYPE;
(*
This subclause specifies the MIM entities for this module. The MIM entities and definitions are specified below.
EXPRESS specification:
*)
ENTITY characterized_class
SUBTYPE OF (characterized_object, class);
END_ENTITY;
(*
EXPRESS specification:
*)
ENTITY class_system
SUBTYPE OF (group);
END_ENTITY;
(*
This subclause specifies the MIM function for this module. The MIM function and definition is specified below.
If it assigns a class_system, the role shall be 'class system membership', and, in its items attribute, only instances of types listed in classification_item shall be found.
If it assigns a characterized_class, its classification role shall be 'definitional', 'non-definitional' or empty, and, in its items attribute, only instances of types listed in classified_item shall be found.
EXPRESS specification:
*)
FUNCTION class_assignment_is_valid (aia : applied_classification_assignment) : BOOLEAN;
LOCAL item: classification_item; role: classification_role; END_LOCAL; role:= aia\classification_assignment.role; IF ('CLASSIFICATION_WITH_ATTRIBUTES_MIM.CLASS_SYSTEM' IN TYPEOF(aia\classification_assignment.assigned_class)) THEN IF(role\classification_role.name <> 'class system membership') THEN RETURN(FALSE); END_IF; REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items); item:= aia\applied_classification_assignment.items[i]; IF (SIZEOF(['CLASSIFICATION_WITH_ATTRIBUTES_MIM.CHARACTERIZED_CLASS'] * TYPEOF(item))=0) THEN -- item invalid if item does not belong to the types that may have a class_system RETURN(FALSE); END_IF; END_REPEAT; END_IF; IF ('CLASSIFICATION_WITH_ATTRIBUTES_MIM.CHARACTERIZED_CLASS' IN TYPEOF(aia\classification_assignment.assigned_class)) THEN IF NOT(role\classification_role.name IN ['definitional','non-definitional','']) THEN RETURN(FALSE); END_IF; REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items); item:= aia\applied_classification_assignment.items[i]; IF (SIZEOF(['CLASSIFICATION_WITH_ATTRIBUTES_MIM.CLASSIFIED_ITEM'] * TYPEOF(item))=0) THEN -- item invalid if item does not belong to the types that may have a characterized_class RETURN(FALSE); END_IF; END_REPEAT; END_IF; IF (role\classification_role.name = 'definitional') THEN IF NOT (SIZEOF(QUERY(it <* aia\applied_classification_assignment.items | NOT (SIZEOF(['PRODUCT_DEFINITION_SCHEMA.PRODUCT', 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION_FORMATION', 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION'] * TYPEOF(it)) = 1) )) = 0 ) THEN RETURN(FALSE); END_IF; END_IF; RETURN(TRUE);
END_FUNCTION;
(*
Argument definitions:
aia: the instance of applied_classification_assignment, the validity of which is assessed.
This subclause specifies the MIM rules for this module. The MIM rules and definitions are specified below.
EXPRESS specification:
*)
RULE restrict_classification_assignments FOR
(applied_classification_assignment);
WHERE
WR1: SIZEOF(QUERY(aia <* applied_classification_assignment |
NOT class_assignment_is_valid(aia)))=0;
END_RULE;
(*
Argument definitions:
applied_classification_assignment : the set of all instances of applied_classification_assignment.
Formal propositions:
WR1: There shall not be any instance of applied_classification_assignment whose assignment is not valid.
EXPRESS specification:
*)
RULE restrict_group_relationship_for_classification_hierarchy FOR
(group_relationship);
WHERE
WR1: SIZEOF( QUERY( gr <* group_relationship |
(gr\group_relationship.name = 'class hierarchy') AND
(NOT('CLASSIFICATION_WITH_ATTRIBUTES_MIM.CLASS' IN TYPEOF(gr\group_relationship.related_group)) OR
NOT('CLASSIFICATION_WITH_ATTRIBUTES_MIM.CLASS' IN TYPEOF(gr\group_relationship.relating_group))) )) = 0;
END_RULE;
(*
Argument definitions:
group_relationship : the set of all instances of group_relationship.
Formal propositions:
WR1: There shall not be any instance of group_relationship whose relating or related part are not related to a class instance.
*)
END_SCHEMA; -- Classification_with_attributes_mim
(*
© ISO 2019 — All rights reserved