Application module: Part template | ISO/TS 10303-1722:2019(E) © ISO |
This clause specifies the information requirements for the Part template 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 Part_template_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Part_template_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Feature_and_connection_zone_arm;
--
ISO/TS 10303-1671
USE FROM
Part_shape_arm;
--
ISO/TS 10303-1807
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Feature_and_connection_zone_arm ISO/TS 10303-1671 Part_shape_arm ISO/TS 10303-1807
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 plp_material_item_select type is an extension of the material_item_select type. It adds the data type Template_definition to the list of alternate data types.
EXPRESS specification:
*)
TYPE
plp_material_item_select =
SELECT
BASED_ON
material_item_select
WITH
(Template_definition);
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 Template
SUBTYPE OF (Part);
UNIQUE
UR1: SELF\Product.id;
END_ENTITY;
(*
Formal propositions:
UR1: The id shall be unique within a population of Template.
EXPRESS specification:
*)
ENTITY Template_definition
SUBTYPE OF (Part_view_definition);
SELF\Product_view_definition.defined_version : Template_version;
END_ENTITY;
(*
Attribute definitions:
defined_version: an inherited attribute that shall have a value of type Template_version.
EXPRESS specification:
*)
ENTITY Template_version
SUBTYPE OF (Part_version);
SELF\Product_version.of_product : Template;
END_ENTITY;
(*
Attribute definitions:
of_product: an attribute inherited from the Product_version shall be redeclared as the Template of which the Template_version specifies a version.
This subclause specifies the ARM rules for this module. The ARM rules and definitions are specified below.
EXPRESS specification:
*)
RULE template_definition_constraint FOR
(Product_view_definition);
WHERE
WR1: SIZEOF ( QUERY ( pvd <* Product_view_definition | ( NOT ( 'PART_TEMPLATE_ARM.' + 'TEMPLATE_DEFINITION' IN TYPEOF (pvd)
) ) AND ( 'PART_TEMPLATE_ARM.' + 'TEMPLATE_VERSION' IN TYPEOF ( pvd.defined_version) ) ) ) =0;
END_RULE;
(*
Argument definitions:
Product_view_definition : the set of all instances of Product_view_definition.
Formal propositions:
WR1: There shall not be any instance of Product_view_definition that refers to Template_version as defined_version and is not an instance of Template_definition.
EXPRESS specification:
*)
RULE template_version_constraint FOR
(Product_version);
WHERE
WR1: SIZEOF ( QUERY ( pv <* Product_version | ( NOT ( 'PART_TEMPLATE_ARM.' + 'TEMPLATE_VERSION' IN TYPEOF ( pv) ) ) AND (
'PART_TEMPLATE_ARM.' + 'TEMPLATE' IN TYPEOF ( pv.of_product) ) ) ) =0;
END_RULE;
(*
Argument definitions:
Product_version : the set of all instances of Product_version.
Formal propositions:
WR1: There shall not be any instance of Product_version that refers to Template as of_product and is not an instance of Template_version.
*)
END_SCHEMA; -- Part_template_arm
(*
© ISO 2019 — All rights reserved