Application module: External properties | ISO/TS 10303-1129:2018-11(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:
*)
SCHEMA External_properties_mim;
USE FROM
External_library_mim;
--
ISO/TS 10303-1778
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
external_reference_schema
--
ISO 10303-41
(externally_defined_item,
externally_defined_item_with_multiple_references,
externally_defined_item_relationship);
USE FROM
support_resource_schema
--
ISO 10303-41
(identifier);
REFERENCE FROM
management_resources_schema
--
ISO 10303-41
(identification_role);
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
External_library_mim ISO/TS 10303-1778 Identification_assignment_mim ISO/TS 10303-1021 Independent_property_mim ISO/TS 10303-1036 Plib_class_reference_mim ISO/TS 10303-1291 external_reference_schema ISO 10303-41 support_resource_schema ISO 10303-41 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 type for this application module. The MIM type and definition is specified below.
The external_identification_for_plib_property type is an extension of the external_identification_item type. It adds the data type externally_defined_general_property to the list of alternate data types.
EXPRESS specification:
*)
TYPE
external_identification_for_plib_property =
SELECT
BASED_ON
external_identification_item
WITH
(externally_defined_general_property);
END_TYPE;
(*
This subclause specifies the MIM entity for this module. The MIM entity and definition is specified below.
EXPRESS specification:
*)
ENTITY externally_defined_general_property
SUBTYPE OF (general_property, externally_defined_item);
END_ENTITY;
(*
This subclause specifies the MIM function for this module. The MIM function and definition is specified below.
EXPRESS specification:
*)
FUNCTION external_version_assignment_is_valid (aia : applied_external_identification_assignment) : BOOLEAN;
LOCAL item: external_identification_item; role: identification_role; END_LOCAL; role:= aia.role; IF role.name='version' THEN REPEAT i := LOINDEX(aia\applied_external_identification_assignment.items) TO HIINDEX(aia\applied_external_identification_assignment.items); item:= aia\applied_external_identification_assignment.items[i]; IF (SIZEOF(['EXTERNAL_PROPERTIES_MIM.EXTERNALLY_DEFINED_GENERAL_PROPERTY']*TYPEOF(item))=0) THEN -- item invalid if item does not belong to versionable types RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); ELSE -- case where aia does not convey a version id RETURN(TRUE); END_IF;
END_FUNCTION;
(*
Argument definitions:
aia: the instance of applied_external_identification_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 external_version_assignments_are_valid FOR
(applied_external_identification_assignment);
WHERE
WR1: SIZEOF(QUERY(aia <* applied_external_identification_assignment |
NOT external_version_assignment_is_valid(aia)))=0;
END_RULE;
(*
Argument definitions:
applied_external_identification_assignment : the set of all instances of applied_external_identification_assignment.
Formal propositions:
WR1: there shall not be any instance of applied_external_identification_assignment that provides a version identifier to an instance of an entity not listed in externally_defined_general_property.
EXPRESS specification:
*)
RULE plib_property_reference_requires_name_scope FOR
(externally_defined_general_property);
LOCAL known_sourced_properties : SET OF externally_defined_general_property; END_LOCAL; known_sourced_properties := QUERY( edc <* externally_defined_general_property | 'PLIB_CLASS_REFERENCE_MIM.KNOWN_SOURCE' IN TYPEOF(edc.source) );
WHERE
WR1: SIZEOF ( QUERY ( edgp <* known_sourced_properties |
( SIZEOF ( QUERY ( edir <* USEDIN ( edgp, 'EXTERNAL_REFERENCE_SCHEMA.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM' )|
( edir.name = 'name scope' ) AND
('EXTERNAL_CLASS_MIM.EXTERNALLY_DEFINED_CLASS' IN TYPEOF ( edir.related_item ) ) AND
( 'PLIB_CLASS_REFERENCE_MIM.KNOWN_SOURCE' IN TYPEOF ( edir.related_item.source ) ) ) ) <>1 ) ) ) = 0;
END_RULE;
(*
Argument definitions:
externally_defined_general_property : the set of all instances of externally_defined_general_property.
Formal propositions:
WR1: Each instance oof externally_defined_general_property that has as its source a "known source", is referenced as the "relating item" by exactly one instance of "externally defined item relationship" which has a name of 'name scope' and which references as the "related item" an "externally defined class" that has as its source a "known source".
EXPRESS specification:
*)
RULE plib_property_reference_requires_version FOR
(externally_defined_general_property);
LOCAL plib_properties : SET OF externally_defined_general_property := []; END_LOCAL; plib_properties := QUERY ( edgp <* externally_defined_general_property | ( 'EXTERNAL_PROPERTIES_MIM.KNOWN_SOURCE' IN TYPEOF ( edgp.source ) ) AND ( 'EXTERNAL_PROPERTIES_MIM.KNOWN_SOURCE' + '.NAME' = 'ISO 13584 library' ) );
WHERE
WR1: SIZEOF( QUERY( edgp <* plib_properties |
(SIZEOF( QUERY( edir <* USEDIN(edgp, 'EXTERNAL_ITEM_IDENTIFICATION_ASSIGNMENT_MIM.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS')
|
(edir.role.name = 'version') )) <> 1) )) = 0;
END_RULE;
(*
Argument definitions:
externally_defined_general_property : the set of all instances of externally_defined_general_property.
Formal propositions:
WR1: Each instance of externally_defined_general_property that has as its source a known_source which has a predetermined name 'ISO 13584 library', is contained in the set of items of exactly one applied_external_identification_assignment which references as its role an identification_role with a name of 'version'.
*)
END_SCHEMA; -- External_properties_mim
(*
© ISO 2018 — All rights reserved