Template:— referencing_part (ref_part) Date: 2008/02/25 19:43:15
Revision: 1.12

This section specifies the template referencing_part.

NOTE  An explanation of a template and the associated instantiation path is provided in the Template overview section.

Description

This template describes how to represent a reference to a Part by its part and version identification.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "referencing_part". The text highlighted in blue shows the template parameters.

NOTE    The Product_category is included in the diagram to conform to the ISO 10303-239 EXPRESS schema. If a category of product is required then the reference data should be assigned to the Part using the template assigning_reference_data.



Figure 1 —  An EXPRESS-G representation of the Information model for referencing_part

Figure 1 —  An EXPRESS-G representation of the Information model for referencing_part

The graphic for the template to be used in other EXPRESS-G diagrams is shown in Figure  2 below.


Figure 2 —  The graphical representation of the referencing_part template

Figure 2 —  The graphical representation of the referencing_part template

Input parameters
The following input parameters are defined for this template:
part_id (Type='STRING')
The identification of the Part being referenced.
part_id_class_name (Default=Part_identification_code,Type='CLASS')
The name of the External_class that determines the type of identifier given by the input parameter @part_id.
The following classes and their sub-classes can be used:
classifications: "Part_identification_code" (urn:plcs:rdl:std:Part_identification_code), "Part_name" (urn:plcs:rdl:std:Part_name)
part_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identification of the External_class_library storing the External_class given by the input parameter @part_id_class_name.
part_org_id (Type='STRING')
The identification of the Organization that "owns" the Part identifier (@part_id).
part_org_id_class_name (Default=Organization_name,Type='CLASS')
The name of the External_class that determines the type of organization identification (@part_org_id) being used. For example CAGE code.
The following classes and their sub-classes can be used:
classifications: "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code), "Organization_name" (urn:plcs:rdl:std:Organization_name)
part_org_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identification of the External_class_library storing the External_class given by the input parameter @part_org_id_class_name
part_vn_id (Type='STRING')
The identifier of the part version
part_vn_id_class_name (Default=Version_identification_code,Type='CLASS')
The name of the class being used to classify the identifier assigned ( Identification_assignment ) to the part version (i.e. the part_vn_id)
The following classes and their sub-classes can be used:
classifications: "Version_identification_code" (urn:plcs:rdl:std:Version_identification_code)
part_vn_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identification of the External_class_library storing the External_class given by the input parameter @part_vn_id_class_name.
part_vn_org_id (Type='STRING')
The name or identifier of the organization owns the part version id.
part_vn_org_id_class_name (Default=Organization_name,Type='CLASS')
The name of the class being used to classify the identification (Identification_assignment) of the organization responsible for providing the part version representation
The following classes and their sub-classes can be used:
classifications: "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code), "Organization_name" (urn:plcs:rdl:std:Organization_name)
part_vn_org_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identification of the External_class_library storing the External_class given by the input parameter @part_vn_org_id_class_name.
Reference parameters
The following reference parameters are defined for this template:
part(Type='ENTITY (Part)')
Allow the Part entity instantiated in this path to be referenced when this template is used.
Note: The Part entity can be referenced in a template path by:
%^target = $referencing_part.part%
where target is the parameter to which the Part is bound.
part_id_assgn(Type='ENTITY (Identification_assignment)')
Allow the Identification_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Identification_assignment entity can be referenced in a template path by:
%^target = $referencing_part.part_id_assgn%
where target is the parameter to which the Identification_assignment is bound.
part_version(Type='ENTITY (Part_version)')
Allow the Part_version entity instantiated in this path to be referenced when this template is used.
Note: The Part_version entity can be referenced in a template path by:
%^target = $referencing_part.part_version%
where target is the parameter to which the Part_version is bound.
part_version_id_assgn(Type='ENTITY (Identification_assignment)')
Allow the Identification_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Identification_assignment entity can be referenced in a template path by:
%^target = $referencing_part.part_version_id_assgn%
where target is the parameter to which the Identification_assignment is bound.
Uniqueness constraints
The following entity/attribute combinations specify a uniqueness constraint:
Unique constraint: Unique product_category
There shall be at most one instance of the entity (Product_category) with the attribute (Product_category.name="part") instantiated in the data set.
Product_category.name = 'part'

The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique part
There shall be at most one instance of the entity (Part) within the data set uniquely identified by a combination of the following parameters on this template (referencing_part) namely: part_id, part_id_class_name, part_id_ecl_id, part_org_id, part_org_id_class_name, part_org_id_ecl_id.
The instance is referenced by the following template parameter: part.
Unique constraint: Unique part version
There shall be at most one instance of the entity (Part_version) within the data set uniquely identified by a combination of the following parameters on this template (referencing_part) namely: part_id, part_id_class_name, part_id_ecl_id, part_org_id, part_org_id_class_name, part_vn_id, part_vn_id_class_name, part_vn_id_ecl_id, part_vn_org_id, part_vn_org_id_class_name.
The instance is referenced by the following template parameter: part_version.
This rule means that there can be only one version (Part_version) of a part (Part) with any given identifier.
Instantiation path
The instantiation path shown below specifies the entities that are to be instantiated by the template.
A description of templates and the syntax for the instantiation path is provided in the Reading Capability Templates help section.
Part

-- Mark the Part entity as
-- referable when this template is used by binding it to the reference
-- parameter part
%^part = Part%
Part.id = '/IGNORE'
Part.name = '/IGNORE'
Part.description = '/IGNORE'

-- assign the identification to the Part
/assigning_identification(
    items=^part,
    id=@part_id,
    id_class_name=@part_id_class_name,
    id_ecl_id=@part_id_ecl_id,
    org_id=@part_org_id,
    org_id_class_name=@part_org_id_class_name,
    org_id_ecl_id=@part_org_id_ecl_id)/
%^part_id_assgn = $assigning_identification.id_assgn%

-- Define a Product category
Product_category
Product_category.id = '/IGNORE'
Product_category.name = 'part'
Product_category.description = '/IGNORE'

-- Product category assignment
Product_category_assignment
Product_category_assignment.products -> Part
Product_category_assignment.category -> Product_category

-- Instantiate Part version
Part_version

-- Mark the Part_version entity as referable when this template
-- is used by binding it to the reference parameter ^part_version
%^part_version = Part_version%
Part_version.id = '/IGNORE'
Part_version.description = '/IGNORE'

-- Relate the part_version to the part
Part_version.of_product -> ^part

-- Identify the Part_version
/assigning_identification(
    items=^part_version,
    id=@part_vn_id,
    id_class_name=@part_vn_id_class_name,
    id_ecl_id=@part_vn_id_ecl_id,
    org_id=@part_vn_org_id,
    org_id_class_name=@part_vn_org_id_class_name,
    org_id_ecl_id=@part_vn_org_id_ecl_id )/
%^part_version_id_assgn = $assigning_identification.id_assgn%
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Part.id '/IGNORE' Product.id
Part.name '/IGNORE' Product.name
Part.description '/IGNORE' Product.description
Product_category.id '/IGNORE'
Product_category.name 'part'
Product_category.description '/IGNORE'
Part_version.id '/IGNORE' Product_version.id
Part_version.description '/IGNORE' Product_version.description
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/referencing_part(part_id='ph-001-001', part_id_class_name='Part_identification_code', part_id_ecl_id='urn:plcs:rdl:std', part_org_id='Parts R Us Ltd', part_org_id_class_name='Organization_name', part_org_id_ecl_id='urn:plcs:rdl:std', part_vn_id='1', part_vn_id_class_name='Version_identification_code', part_vn_id_ecl_id='urn:plcs:rdl:std', part_vn_org_id='Parts R Us Ltd', part_vn_org_id_class_name='Organization_name', part_vn_org_id_ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated referencing_part template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by referencing_part template

Figure 3 —  Entities instantiated by referencing_part template

The instance diagram in Figure 4 shows the graphic symbol for the template that is to be used in other instance diagrams. The example template is:
/referencing_part(part_id='ph-001-001', part_id_class_name='Part_identification_code', part_id_ecl_id='urn:plcs:rdl:std', part_org_id='Parts R Us Ltd', part_org_id_class_name='Organization_name', part_org_id_ecl_id='urn:plcs:rdl:std', part_vn_id='1', part_vn_id_class_name='Version_identification_code', part_vn_id_ecl_id='urn:plcs:rdl:std', part_vn_org_id='Parts R Us Ltd', part_vn_org_id_class_name='Organization_name', part_vn_org_id_ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of referencing_part template

Figure 4 —  Instantiation of referencing_part template

Characterizations
The following section details how the referencing_part template can be optionally characterized by assigning other constructs to it. These are characterizations commonly applied to the template. The ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
The following characterizations may apply:
Characterization Assigning identification

NOTE   this characterization is optional.

Additional identifications (incl. names) of the referenced Part may be assigned using the assigning_identification template.

© OASIS 2008 — All rights reserved