Template:— representing_breakdown (rep_bkdn) Date: 2009/04/06 15:57:39
Revision: 1.20

This section specifies the template representing_breakdown.

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 general breakdown of a product, which cannot use any of the AP239 provided breakdown subtypes System_breakdown, Functional_breakdown, Physical_breakdown, or Zone_breakdown.

This template should be used instead of the subtype Hybrid_breakdown, for breakdowns that are a mix of several types of breakdowns, with the @bkdn_type parameter set to "Hybrid_breakdown".

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_breakdown". The text highlighted in blue shows the template parameters.
Grey areas and templates with dashed lines are not included in the template, but may be used to further characterize the template.


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

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

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 representing_breakdown template

Figure 2 —  The graphical representation of the representing_breakdown template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Breakdown.
id_class_name (Default=Breakdown_name,Type='CLASS')
The name of the class being used to classify the identification (Identification_assignment) of the breakdown. This provides the role or reason for the identification.
The following classes and their sub-classes can be used:
classifications: "Breakdown_identification_code" (urn:plcs:rdl:std:Breakdown_identification_code), "Breakdown_name" (urn:plcs:rdl:std:Breakdown_name)
id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library storing the definition of the class referenced by the parameter @id_class_name.
id_owner (Type='STRING')
The name or identifier of the organization owning the id or name (@id).
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class being used to classify the identification of the organization (@id_owner). For example CAGE code, or organization name.
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)
id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library storing the @id_owner_class_name.
bkdn_type (Type='CLASS')
The name of the class being used to classify the Breakdown.
The following classes and their sub-classes can be used:
classifications: "Breakdown" (urn:plcs:rdl:std:Breakdown)
bkdn_type_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library storing the definition of the class referenced by the parameter @bkdn_type.
vn_id (Default=Unknown,Type='STRING')
The identifier of the Breakdown_version.
vn_id_class_name (Default=Version_identification_code,Type='CLASS')
The name of the class being used to classify the identification (Identification_assignment) of the breakdown version. This provides the role or reason for the identification.
The following classes and their sub-classes can be used:
classifications: "Version_identification_code" (urn:plcs:rdl:std:Version_identification_code)
vn_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library storing the definition of the class referenced by the parameter @vn_id_class_name.
vn_id_owner (Default=Unknown,Type='STRING')
The name or identifier of the organization owning the @vn_id.
vn_id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class being used to classify the identification of the organization (@vn_id_owner). For example CAGE code, or organization name.
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)
vn_id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library storing the @vn_id_owner_class_name.
of_product (Type= 'ENTITY (Product_view_definition)' )
The product that has been broken down.
Reference parameters
The following reference parameters are defined for this template:
bkdn(Type='ENTITY (Breakdown)')
Allow the Breakdown entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown entity can be referenced in a template path by:
%^target = $representing_breakdown.bkdn%
where target is the parameter to which the Breakdown is bound.
bkdn_vn(Type='ENTITY (Breakdown_version)')
Allow the Breakdown_version entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown_version entity can be referenced in a template path by:
%^target = $representing_breakdown.bkdn_vn%
where target is the parameter to which the Breakdown_version is bound.
bkdn_of(Type='ENTITY (Breakdown_of)')
Allow the Breakdown_of entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown_of entity can be referenced in a template path by:
%^target = $representing_breakdown.bkdn_of%
where target is the parameter to which the Breakdown_of is bound.
Uniqueness constraints

The following parameter combinations specify a uniqueness constraint:
Unique constraint: External id class for Breakdown
Each instance of the entity (Breakdown) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_breakdown) namely: id, id_class_name, id_ecl_id, id_owner, id_owner_class_name, id_owner_ecl_id.
The instance is referenced by the following template parameter: bkdn.
Unique constraint: External id class for Breakdown_version
Each instance of the entity (Breakdown_version) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_breakdown) namely: vn_id, vn_id_class_name, vn_id_ecl_id, vn_id_owner, vn_id_owner_class_name, vn_id_owner_ecl_id.
The instance is referenced by the following template parameter: bkdn_vn.
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 Templates Help/Information section.
-- instantiate Breakdown
Breakdown
%^bkdn = Breakdown%
Breakdown.id = '/IGNORE'
Breakdown.name = '/IGNORE'
Breakdown.description = '/IGNORE'

-- assign ID to Breakdown
/assigning_identification(
    id=@id,
    id_class_name=@id_class_name,
    id_ecl_id=@id_ecl_id,
    org_id=@id_owner,
    org_id_class_name=@id_owner_class_name,
    org_id_ecl_id=@id_owner_ecl_id,
    items=^bkdn)/

-- instantiate Breakdown_version
Breakdown_version
%^bkdn_vn = Breakdown_version%
Breakdown_version.id = '/IGNORE'
Breakdown_version.description = '/IGNORE'
Breakdown_version.of_product -> Breakdown

-- assign ID to Breakdown_version
/assigning_identification(
    id=@vn_id,
    id_class_name=@vn_id_class_name,
    id_ecl_id=@vn_id_ecl_id,
    org_id=@vn_id_owner,
    org_id_class_name=@vn_id_owner_class_name,
    org_id_ecl_id=@vn_id_owner_ecl_id,
    items=^bkdn_vn)/

-- instantiate Breakdown_of
Breakdown_of
%^bkdn_of = Breakdown_of%
Breakdown_of.id = '/IGNORE'
Breakdown_of.name = '/IGNORE'
Breakdown_of.description = '/IGNORE'
Breakdown_of.breakdown -> Breakdown_version
Breakdown_of.of_view -> @of_product

-- assign type of breakdown to the Breakdown
/assigning_reference_data(
    items=^bkdn,
    class_name=@bkdn_type,
    ecl_id=@bkdn_type_ecl_id)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Breakdown.id '/IGNORE' Product.id
Breakdown.name '/IGNORE' Product.name
Breakdown.description '/IGNORE' Product.description
Breakdown_version.id '/IGNORE' Product_version.id
Breakdown_version.description '/IGNORE' Product_version.description
Breakdown_of.id '/IGNORE'
Breakdown_of.name '/IGNORE'
Breakdown_of.description '/IGNORE'
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_breakdown(id='Breakdown of the bike', id_class_name='Breakdown_name', id_ecl_id='urn:plcs:rdl:std', id_owner='Express Delivery Inc', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', bkdn_type='LSI breakdown', bkdn_type_ecl_id='urn:plcs:rdl:sample', vn_id='A', vn_id_class_name='Version_identification_code', vn_id_ecl_id='urn:plcs:rdl:std', vn_id_owner='Express Delivery Inc', vn_id_owner_class_name='Organization_name', vn_id_owner_ecl_id='urn:plcs:rdl:std', of_product='#4')/
(an illustration of the consolidated representing_breakdown template is shown in Figure 4 below.)
Note that the assigning_reference_data and assigning_identification templates are used in the diagram. Namely:
/assigning_reference_data(items='#1', class_name='LSI breakdown', ecl_id='urn:plcs:rdl:sample')/
/assigning_identification(items='#1', id='Breakdown of the bike', id_class_name='Breakdown_name', id_ecl_id='urn:plcs:rdl:std', org_id='Express Delivery Inc', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std')/
/assigning_identification(items='#2', id='A', id_class_name='Version_identification_code', id_ecl_id='urn:plcs:rdl:std', org_id='Express Delivery Inc', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std')/


Figure 3 —  Entities instantiated by representing_breakdown template

Figure 3 —  Entities instantiated by representing_breakdown 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:
/representing_breakdown(id='Breakdown of the bike', id_class_name='Breakdown_name', id_ecl_id='urn:plcs:rdl:std', id_owner='Express Delivery Inc', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', bkdn_type='LSI breakdown', bkdn_type_ecl_id='urn:plcs:rdl:sample', vn_id='A', vn_id_class_name='Version_identification_code', vn_id_ecl_id='urn:plcs:rdl:std', vn_id_owner='Express Delivery Inc', vn_id_owner_class_name='Organization_name', vn_id_owner_ecl_id='urn:plcs:rdl:std', of_product='#4')/


Figure 4 —  Instantiation of representing_breakdown template

Figure 4 —  Instantiation of representing_breakdown template

Characterizations
The following section details how the representing_breakdown 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 General

NOTE   this characterization is optional.

Any Breakdown may be characterized in several ways. None of those are specific to Breakdowns, and therefore not discussed in detail here.

The following is a few examples of such general characterizations. Breakdowns and Breakdown_versions can be characterized by:

© OASIS 2010 — All rights reserved