Capability (C004):— representing_breakdown_structure Date: 2008/02/01 15:00:59
Revision: 1.29

Business overview

This section provides a business level overview of this capability.

This capability provides the necessary information to represent breakdown structures, e.g. to enable the delivery of assured product and support information (APSI) from the Original Equipment Manufacturer (OEM) (for example, Ship Builder , weapon system developer, bicycle manufacturer), to the owner, operator or maintainer who is required to support the product when in service.

Depending upon the specific product, various views of the product will be required to enable the identification of the various systems, functions, or physical parts, together with identifying zones within the product or a combination of these (hybrid view).

With the identification of these aspects, the usual operations of the product might then be supported, for example, regular maintenance, condition based maintenance, usage reporting, failure reporting, part changes, function changes, replacements and the upkeep to both the product and the product information can be enabled. These views are documented as various types of product breakdowns.

The AP239 PLCS approach to product breakdown comprises the following;

  1. the identification of a product or product_as_individual (i.e. what is the product being broken down);
  2. the identification of the type of breakdown selected for the product or product_as_individual (i.e. the type of breakdown);
  3. the identification of the elements that comprise a breakdown (i.e. the constituents of the breakdown);
  4. the identification of parent-child relationships between breakdown elements (i.e. the breakdown structure);
  5. the (optional) identification of relationships between elements in different breakdowns (i.e. the breakdown element relationships).

Basic structure

A breakdown is always related to a design or a real product, of which it is a breakdown. It is identified and versioned as an object in its own rights. It has a number of constituents (breakdown_elements), often structured hierarchically, that makes up the breakdown structure.



Figure 1 —  A sample breakdown of an individual bike, showing the breakdown and some of its constituents (physical_elements).

Figure 1 —  A sample breakdown of an individual bike, showing the breakdown and some of its constituents (physical_elements).

A constituent is valid in the context of a breakdown, i.e. there is always a context breakdown for a breakdown_element as part of its definition (which is different to a traditional assembly structure, e.g. bill-of-materials, where each part exists in its own rights, whether or not it is used in an assembly). It is possible to relate a breakdown_element to breakdown_elements in other breakdowns, but a specific breakdown_element will always only be part of one product breakdown.



Figure 2 —  Sample relationships between breakdowns.

Figure 2 —  Sample relationships between breakdowns.

Each breakdown_element may or may not relate to any number of designs (assembly structures) of which one should be used to realize the constituent.



Figure 3 —  A sample breakdown of a designed bike. Constituents may relate back to design, indicating what realizes the breakdown_element.

Figure 3 —  A sample breakdown of a designed bike. Constituents may relate back to design, indicating what realizes the breakdown_element.

Types of breakdowns

The AP239 PLCS schema defines the following types of product breakdowns.

Other types of breakdowns may be defined and used through the definition of reference data.

NOTE    A Work Breakdown Structure is not a breakdown of a product, but of activities and tasks, and should therefore not use the Breakdown structure as described here. See instead C062: representing_scheme.

Information model overview

This section provides an overview of the information model that supports this capability.

A breakdown is a partitioning of a product into a set of related elements to support engineering, analysis and other activities that may be performed in relation to the product. These breakdowns are explicit, parent-child views that comprise the product elements.

Breakdowns are complementary to the assembly structure and bill of materials views that are the primary focus for manufacturing (realization) of a product (see the C003: representing_assembly_structure capability for details). Breakdowns may be of designs or realized individual products. For any product, more than one breakdown may exist to support various different activities.

Figure 4 captures the essential areas for representing a breakdown.



Figure 4 —  Abstract View of the Breakdown Structure Model

Figure 4 —  Abstract View of the Breakdown Structure Model

NOTE    The use of colour here is to attempt to group the entities at various levels in the model. Those in light-green represent entities that represent the product under consideration. Those in light-red represent intermediate concepts between the product and it's elements (the Breakdown itself). Those entities in shades of blue represent the numerous elements of the product. Those in light-yellow indicate where relationships are used to link the concepts of the different levels. These colours are used elsewhere as an aid-memoire in navigating the model.

The basic schema, shown in Figure 5 provides the following entities:



Figure 5 —  Express-G model of entities for general breakdown structures.

Figure 5 —  Express-G model of entities for general breakdown structures.

A breakdown is represented through a Breakdown (that specifies the representation of various breakdowns of products), or through one of it's subtypes, such as; System_breakdown (for the representation of various breakdowns of a systems), Functional_breakdown (for the representation of various functional breakdowns of products), Physical_breakdown (for the representation of various physical breakdowns of products), Zone_breakdown (for the representation of various zonal breakdowns of products), or through a Hybrid_breakdown (for the representation of various hybrid breakdowns of products). The entities for specific types of breakdowns are shown in Figure 6.



Figure 6 —  Express-G model of entities for breakdown subtypes.

Figure 6 —  Express-G model of entities for breakdown subtypes.

Whenever a Breakdown is referred to in this capability, it implicitly refers to any of it's subtypes mentioned above, unless stated otherwise.
The section "Additional Usage Guidance" describes more about the use of the different subtypes, entities and any related constraints.

There are a number of aspects to note about the functionality of this model. Firstly, for any product design or individual, there may be more than one type of breakdown. The second is that each breakdown may have more than one element as a constituent. Thirdly, the various in-built types of breakdowns made explicit by the model (i.e. functional, physical, zone and system), may reflect the various life cycle stages applicable to many products, so those defined later in the life cycle will not necessarily be present early on. The model thus, provides the means to represent the product at various phases of the life cycle. This can then be exploited during subsequent phases where for example, physical elements may eventually realize the elements defined during the functional design phase. Similarly, the physical elements may be realized by the assembly. Thus, since each breakdown may become a structure (tree-like), they may present orthogonal views on the same part or individual. One way to visualise this is as many product trees inter-connecting at various points across a network. However, they all have their own root according to the breakdown defined.

NOTE    It is not expected, nor to be assumed that every node in one breakdown will correspond with that of one of more nodes in other breakdowns or assembly definitions. Indeed, the structuring of the information may well be different and should be expected to be so.

Representing a Breakdown Structure

The representation of a breakdown structure have been divided in sevaral steps, and uses the general entity Breakdown (not its subtypes) to illustrate a breakdown of access spaces on an aircraft wing.

NOTE    One could argue that the breakdown of the access spaces is a Physical_breakdown, or a Zone_breakdown, but the focus here is to provide an understanding of the general structures of any breakdown, and the "correct type of breakdown" for this particular example is not important. In fact, this actually highlights the potential difficulties one might have in deciding what type of breakdown to use.

Representation and identification of the breakdown

The first step is to determine the type of breakdown and to relate this to an identified product.

The different breakdown types were highlighted earlier and are individually described in Additional Usage Guidance below. The types have been made explicit by the model to enable the easy distinction between them. However, it is neither possible nor sensible to explicitly define all possible types of breakdowns. When a breakdown is required which does not fit into the one of the subtypes (or specializations of them using external reference data), then the generic breakdown entity should be used.

For example, a breakdown of Logistically Significant Items (LSI) could be a general breakdown. Thus, the LSI breakdown of a car may consist of brake pads, air filter, fuel filter, tyres, tubes, gearbox, exhaust etc., which may be different from, and orthogonal to, a parts decomposition or other breakdown views. Alternatively, there could be an "LSI" subtype of a physical breakdown (for example), which may highlight certain, but not all, of the physical items.

A Breakdown is also a Product (see Figure 5 for an overview of the schema) and, thus, has identification and at least one version (Breakdown_version). The representation of the identification is described in the capability C001: assigning_identifiers. The type of breakdown should always, for all breakdowns, be identified through the use of external reference data.

NOTE    This means that e.g. the subtype System_breakdown should have reference data 'System_breakdown" (or one of its subclasses defined in reference data) assigned to it.

Each version of a Breakdown (Breakdown_version) is related to the product (Product_view_definition) that is the subject of the breakdown through the Breakdown_of entity. This enables the versioning of products to be mirrored in the versions of a breakdown, if required.

NOTE    The entity product is abstract which means that one of it's subtypes must be used. Guidance on how to identify and represent products are given in capabilities C002: representing_parts (for designed parts), C045: representing_product_as_individual (for individual, real products), and in C003: representing_assembly_structure (for assemblies of both).

The instantiation diagram below show the use of Breakdown, Breakdown_version and Breakdown_of entities for the breakdown representation, and identification of the Part using the example of an aircraft wing.

NOTE    All attributes of entities Breakdown, Breakdown_version, and Breakdown_of should be set to 'IGNORE', and are not used.



Figure 7 —  Representation and Identification of the Breakdown

Figure 7 —  Representation and Identification of the Breakdown

NOTE    The Breakdown entity instance provides the type of Breakdown selected to represent the view being provided, by assignment of external reference data.

NOTE    The Breakdown_of entity instance may be identified through the usual manner of identification_assignment.

Representation and identification of the breakdown constituents

The second step is to represent and identify the consituents of the breakdown, i.e. the associated breakdown elements (see Figure 5 for an Express-G overview).

A breakdown constituent is represented by a Breakdown_element (a subtype of Product) identifying the constituent, at least one Breakdown_element_version that provides information regarding different versions of the constituent, and one (or more) Breakdown_element_definition defining each version, e.g. with properties assigned etc.

Each element is related to the breakdown through an instance of Breakdown_context. This is a relationship between a Breakdown_version and a Breakdown_element_definition and provides the ability to collect each element associated with a specific context (such as a functional design).

NOTE    Different types of breakdowns have different types of elements and the model constrains these to be of a like-kind (with certain exceptions) as will be shown later. The different types of breakdown also have their own context.

A Breakdown_element may appear in one or more breakdowns, through multiple Breakdown_context entity instances.

Consider an aircraft wing and the various access points to fuel, drainage, wiring and pnuematics. Some of the access spaces are shown in the tree structure below.



Figure 8 —  Hypothetical Wing Breakdown in terms of Access Spaces

Figure 8 —  Hypothetical Wing Breakdown in terms of Access Spaces

NOTE    The letters "AS" denote Access Space

The example (continuing from that previous), attempts to create a breakdown of such spaces which might be considered logistically significant for maintenance support. It groups together the access spaces into a specific set of breakdown elements. These may or may not have also been defined in other breakdowns or assembly structures. The constituents defined below only represent the access spaces, but not the relations between them.

NOTE    The figure below do not show all breakdown_elements in the above example, it focuses on the tank access spaces. It also do not cover all details for all breakdown_elements due to limited space. The top-most breakdown_element is however complete. All attributes of Breakdown_element, Breakdown_element_version, Breakdown_element_definition, and Breakdown_context should be set to 'IGNORE', and are not used.



Figure 9 —  Instantiation diagram showing the relationships between Breakdown and some relevant constituents

Figure 9 —  Instantiation diagram showing the relationships between Breakdown and some relevant constituents

NOTE    The elements, versions and their definitions can be likened to identifying the nodes in a tree structure - but not the structure itself (the relations between the nodes). This is a matter for the following step.

NOTE    The Breakdown_element_definitions may each define a separate view_definition_context where there is significant information to distinguish one definition from another. However, where there is commonality, one view_definition_context may be shared by several definitions. Additional contexts may be defined to further distinguish between such groupings through the additional_contexts attribute of the Breakdown_element_definition.

Representation and identification of the breakdown structure

The third step is to represent and identify parent - child relationships between the breakdown constituents to provide the structure of the breakdown (see Figure 5 for an Express-G overview).

The relationships between different Breakdown_element_definitions are provided by entity Breakdown_element_usage.

NOTE    The Breakdown_element_usage entity may be the subject of configuration management. This is achieved through the Item_usage_effectivity entity, which is further described within the capability C006: assigning_effectivity. Thus, a breakdown and it's elements may be associated with a type of effectivity.

A Breakdown_element_usage identifies the parent-child relationship between a pair of Breakdown_element_definition instances in the context of the relevant breakdown. The complete breakdown hierarchy consists of a tree of Breakdown_element_usage instances.

Hence, each Breakdown_element_usage relates Breakdown_element_definitions, Breakdown_element_versions and ultimately, Breakdown_elements together.

NOTE    Just as there are different types of breakdown elements for the subtypes of Breakdown, there are different subtypes of Breakdown_element_usages as well, and the model constrains these to be of a like-kind (with certain exceptions) as will be shown later.

The simplified instantiation diagram below covers a number of the parent - child relationships depicted in the initial hierarchy earlier in the section. The Breakdown_element_usage instances are here depicted in yellow colour, and the breakdown_elements have been placed in a hierarchical fashion to illustrate the structure.

NOTE    All attributes of Breakdown_element_usage should be set to '/IGNORE', and are not used. Realtionships to the Breakdown context have been omitted here, as well as relationships to View_definition_context. Entity instances are incomplete regarding identification and naming in favour of simplicity.



Figure 10 —  Simplified instantiation diagram showing the structure between breakdown_elements, using instances of Breakdown_element_usage

Figure 10 —  Simplified instantiation diagram showing the structure between breakdown_elements, using instances of Breakdown_element_usage

NOTE    Each Breakdown_element_usage may be uniquely identified using the identification_assignment mechanism, which means that each parent-child relation is identifiable.

Representation of the Breakdown Realization relationship

An optional fourth step is to identify and represent relationships between other breakdowns and their constituents.

This supports the requirement to trace the assured product and support information through the various product structure representations (or views of the product) that may be generated during the life cycle of the product. This would therefore, allow the same part to be traced (for example) from a functional breakdown definition through a physical breakdown, to an assembly view. Other breakdown views such as zone, system or even hybrids may then also be realized by referencing the others already defined.

There is no set order to which must be provided, except to say that most manufacturers' product development moves from functional design to physical design, and thence from design to assembly. Thus, realizations of functional breakdowns (such as a physical breakdown or assembly structure) may not be possible at the early stages of product development

It is also possible that breakdowns for support and maintenance for after product delivery may be realized by structures defined during the earlier stages of design. Hence, maintenance breakdown views may be realized by aspects across functional, physical, zonal, system, hybrid breakdowns including assembly structures.

The requirement to identify the relationship between a breakdown_item and a product_item, is is achieved through a Breakdown_element_realization.

A Breakdown_element_realization is a type of Product_definition_element_relationship that identifies a relationship between a breakdown_item and a relevant product_item, that realizes that element definition or usage.

A breakdown_item may be either a Breakdown_element_definition or a Breakdown_element_usage.

A product_item may be either a type of Product_view_definition, or a type of View_definition_usage.

Types of Product_view_definition include; Part, Breakdown, Slot, Interface_specification, Interface_connector, and Requirement views.

NOTE    The model thus, allows a breakdown element in one breakdown to be the realization of another. For example, a node in a physical_breakdown may well represent the realization of a node in a functional_breakdown. That is, a physical element pump may realize the 'provide fuel to engine' element in a functional breakdown for a ship.

As an example, consider a bicycle where multiple breakdowns have been created from initial design to manufacturing. Figure 11 shows a functional element "Provide illumination" being realized by a system element "Lighting system". This system, in turn, contains a sub-system called "illumination system", which is realized as a physical element "Lights". It contains two elements, and the "Head light" may be realized by any of three different parts from different manufacturers, here said to have been '"validated", i.e. approved for use in the bicycle.



Figure 11 —  Breakdown element realization across breakdowns, and to validated parts

Figure 11 —  Breakdown element realization across breakdowns, and to validated parts

NOTE    There is no restriction as to how many or how few breakdown structures are created for a given product, this must be a business decision. The given example is probably a bit over-worked.

Model Characterization

This section specifies how the information model can be further characterized by the assignment of additional information such as dates, approvals and people or organizations.

The following characterizations may apply.

Characterization: Classification of Breakdown and Breakdown Elements

All instances of Breakdown and Breakdown_element and their subtypes must be classified as to what type of breakdown and breakdown_element it is.

An instance of Breakdown must be classifed by a subclass of "Breakdown" (urn:plcs:rdl:std:Breakdown).
An instance of Breakdown_element must be classifed by a subclass of "Breakdown element" (urn:plcs:rdl:std:Breakdown element).

Thus, an instance of Functional_breakdown must be classifed as "Functional breakdown" (urn:plcs:rdl:std:Functional breakdown) or one of its subclasses.
An instance of Functional_element must be classifed as "Functional element" (urn:plcs:rdl:std:Functional element) or one of its subclasses.
An instance of Physical_breakdown must be classifed as "Physical breakdown" (urn:plcs:rdl:std:Physical breakdown) or one of its subclasses.
An instance of Physical_element must be classifed as "Physical element" (urn:plcs:rdl:std:Physical element) or one of its subclasses.
An instance of System_breakdown must be classifed as "System breakdown" (urn:plcs:rdl:std:System breakdown) or one of its subclasses.
An instance of System_element must be classifed as "System element" (urn:plcs:rdl:std:System element) or one of its subclasses.
An instance of Zone_breakdown must be classifed as "Zone breakdown" (urn:plcs:rdl:std:Zone breakdown) or one of its subclasses.
An instance of Zone_element must be classifed as "Zone element" (urn:plcs:rdl:std:Zone element) or one of its subclasses.
An instance of Hybrid_breakdown (if used) must be classifed as "Hybrid breakdown" (urn:plcs:rdl:std:Hybrid breakdown) or one of its subclasses.

Classification is assigned using external reference data, and is described in Capability C010: assigning_reference_data.

Characterization: Classification of relations (Optional)

Instances of Breakdown_of, Breakdown_element_realization, and In_zone, and instances of Breakdown_context and Breakdown_element_usage and their subtypes, may be classifed using external reference data (see Capability C010: assigning_reference_data).

This is particularly useful when many different types of breakdowns are defined for one product, or when several type of relationships e.g. between elements are needed.

Characterization: Assignment of classification codes (Optional)

All instances of Breakdown_element and its subtypes may be given a classification code, e.g. an LCN-number (a number according to a Logistics Control Number system).

The assignment of codes is described in Capability C093: assigning_codes.

Characterization: Assignment of additional identifiers (Optional)

Any entity for breakdowns except Breakdown_of and In_zone may be given additional identifiers. Identifiers are assigned in a given role, such as "Owner of" (urn:plcs:rdl:std:Owner of), or "Creator of" (urn:plcs:rdl:std:Creator of), and the identifier is considered unique within the context of the given Organization (see further Capability C001: assigning_identifiers).

This is very useful when organizations want to use their specific identifier, or when ithe identifier may change over time. Since a name in PLCS is an identification, it is also very useful when a product requires both an identification code and a name. Both the identification code and the name is assigned using the same mechanisms.

Characterization: Assigning Descriptors (Optional)

A Descriptor (a descriptive text string) can be assigned to any entity for breakdowns except Breakdown_of and In_zone. It is always classified as "Description" (urn:plcs:rdl:std:Description).

The assignment of descriptors is described in the capability C095: assigning_descriptor.

Characterization: Assigning Documents (Optional)

Documents can be assigned to Breakdown_element_definition and Breakdown_version and their subtypes. Documents are assigned in a given role, such as "Definition", "Specification", or "Description". The role of the assignment is represented by classifying the assignment by the use of reference data (see C010: assigning_reference_data. Suitable reference data classes may be defined in business specific external reference data

The assignment of documents is described in the capability C005: representing_documents.

Characterization: Assigning Properties to Breakdown Elements (Optional)

Properties may be assigned to instances of Breakdown_element_definition and its subtypes.

Since a Breakdown_element is a type of Product, properties are assigned as described in capability C076: assigning_product_properties, C079: representing_properties_numerically, and C080: representing_properties_textually.

Characterization: Assigning Date and Time (Optional)

Dates and Time can be assigned to any of the entities for breakdowns except Breakdown_of and In_zone. The date or time must be assigned in a given role, such as "Date actual creation" (urn:plcs:rdl:std:Date actual creation) or "Date planned release" (urn:plcs:rdl:std:Date planned release).

NOTE    Time is classified using the same reference data as Dates, i.e. an assigned time (a date plus hours, minutes and seconds) may be classified as "Date actual creation" (urn:plcs:rdl:std:Date actual creation).

The role of the assignment is represented by classifying the assignment by the use of reference data (see C010: assigning_reference_data). The full set of reference data for dates and time defined in DEXlib are:

NOTE    Dates are also assigned to approvals (see below), so when an approval is assigned to an item, there will be a date set for the approval. There is no need to assign a specific date as well.

NOTE    Further classes may be defined in business specific external reference data.

The assignment of date and time is described in the capability C036: assigning_date_time. Since Time is more accurate than a calendar date, the assignment of time is recommended.

Characterization: Assigning effectivity (Optional)

Effectivity may be assigned to instances of Breakdown_element_usage and Breakdown_element_realization and their subtypes, and also to instances of Breakdown_of. Thus, those entities may be the subject of configuration management., and a breakdown and it's elements may be associated with a type of effectivity.

NOTE    It is not possible to assign effectivity to instances of Breakdown_context. The context of breakdown elements is constant.

NOTE    It is also not possible to assign effectivity to instances of In_zone. This is an important difference between In_zone and Breakdown_element_usage.

The assignment of effectivity is described in Capability C006: assigning_effectivity.

Characterization: Assigning Approval Status (Optional)

An approval may be assigned to all entities of Breakdowns, except to Breakdown_context and Breakdown_of.

Approvals are always accompanied by an approval status, as defined in external reference data, and by a date or time for the approval, as well as the approving person or organization. Approvals and are assigned as described in capability C019: assigning_approvals.

Characterization: Assigning Location (Optional)

An instance of entities Breakdown, Breakdown_version, Breakdown_element, Breakdown_element_version, and Breakdown_element_definition, and all of their subtypes, may have a location assigned. This is particulary useful when considering a product where the location of an individual part is significant. By defining e.g. a Physical_element as being the individual part in a specific location, it is possible to manage each individual usage of the part.

The assignment of a location is described in capability C049: assigning_location.

Characterization: Assigning a Person or Organization (Optional)

A person or organization can be assigned to any of the entities for breakdowns except Breakdown_of. The person or organization must be assigned in a given role, such as "Owner of" (urn:plcs:rdl:std:Owner of) or "Creator of" (urn:plcs:rdl:std:Creator of). Further classes may be defined in business specific external reference data.

The assignment of a person in an organization is described in C016: representing_person_organization.
The assignment of an organization is described in C094: assigning_organization

For example, in the case where a Breakdown_element has an assigned Person_in_organization that is the owner of the Breakdown_element, the Organization_or_person_in_organization_assignment is classified as "Owner of" (urn:plcs:rdl:std:Owner of).

Additional Usage Guidance

Given the typing hierarchies presented above it is possible to provide an overview of each of the major types of representation offered.

Each type is constrained to associate like definitions, versions and elements together in the hierarchy generated. Hence a functional_breakdown will have for each functional_breakdown_version, functional_elements and functional_element_versions. A physical_breakdown will have for each physical_breakdown_version, physical_elements and physical_element_versions etc.. Each will also have functional_element_definitions, functional_element_usage_relationships and physical_element_definitions, physical_element_usage_relationships defined for them respectively. The same is true for the other basic types (system_element and zone_elements). The contraints in the model mean that the different definitions, versions and elements cannot be mixed - apart from one exception.

The exception to this are Hybrid_breakdowns which have hybrid_breakdown_versions, but do not have hybrid elements, element versions or element definitions. Instead these are combinations of two or more of the other four basic types, and hence are mixed - or "hybrid". These types of breakdowns are related to other breakdown types through an instance of hybrid_element_usage, a subtype of breakdown_element_usage.

Functional Breakdowns

A Functional_breakdown is a type of Breakdown that identifies a partitioning of a product into a set of related functional elements so as to form explicit structural views that comprise the product's functional elements.

EXAMPLE    A decomposition of an aircraft in terms of high-level functional processes such as flight, taxiing and at rest all the way down to low-level processes such as detect onboard fuel level, move tail rudder and provide standard tow attachment point.

The schema entities that are specific to functional breakdowns are:

See Figure 6 (and Figure 5) for an Express-G overview. A simplified instance diagram of a functional breakdown is shown below.



Figure 12 —  Sample instances of a Functional Breakdown

Figure 12 —  Sample instances of a Functional Breakdown

NOTE    No attributes, identifiers or classifications are shown in the figure, and there is no instance of Breakdown_element_realization present.

The functional breakdown "Bike functions" (a functional breakdown of the part "Bike") is shown in the figure with three constituents. The functional element "Provide directional control" is the parent of both "Steering control" and "Provide traction".

Physical Breakdowns

A Physical_breakdown is a type of Breakdown that identifies a partitioning of a product into a set of related physical elements so as to form explicit, parent-child views that comprise the product's physical elements.

EXAMPLE    A decomposition of an automobile in terms such as body, roof, bonnet, bumpers and this breakdown might be differerent from, and orthogonal to, a parts decomposition.

The schema entities that are specific to physical breakdowns are:

See Figure 6 (and Figure 5) for an Express-G overview. A simplified instance diagram of a physical breakdown is shown below.



Figure 13 —  Sample instances of a Physical Breakdown

Figure 13 —  Sample instances of a Physical Breakdown

NOTE    No attributes, identifiers or classifications are shown in the figure, and there is no instance of Breakdown_element_realization present.

The physical breakdown "Bike support structure" (a physical breakdown of the part "Bike") is shown in the figure with three constituents. The physical element "Handlebars" is the parent of both "Handle bar grips" and "Front light structure".

System Breakdowns

A System_breakdown is a type of Breakdown that identifies a partitioning of a system into a set of related elements so as to form explicit, assembly - component views that comprise the system elements.

EXAMPLE    A decomposition of an aircraft in terms of high-level mechanisms such as fuel system or flight control system - which might, in the second example, further decompose into low-level systems such as autopilot system and instrument landing system.

The schema entities that are specific to system breakdowns are:

See Figure 6 (and Figure 5) for an Express-G overview. A simplified instance diagram of a system breakdown is shown below.



Figure 14 —  Sample instances of a System Breakdown

Figure 14 —  Sample instances of a System Breakdown

NOTE    No attributes, identifiers or classifications are shown in the figure, and there is no instance of Breakdown_element_realization present.

The system breakdown "Bike systems" (a system breakdown of the part "Bike") is shown in the figure with three constituents. The system element "Braking system" is the parent of both "Front braking system" and "Rear braking system".

Zonal Breakdowns

A Zone_breakdown is a type of Breakdown that identifies a partitioning of a product into a set of related zonal elements so as to form explicit, parent-child views that comprise the product's zone elements.

EXAMPLE    A decomposition of an aircraft in terms of spaces or high-level conceptual parts such as 'wing' - which might further decompose into lower-level zones such as 'inner-wing', and 'outer wing'.

EXAMPLE    A decomposition of a ship in horzontal decks and rooms on each deck. Another zonal breakdown may show vertical sections (such as fire saftey sections) and rooms.

The schema entities that are specific to zonal breakdowns are:

The last entity in the list above, the In_zone, provides a relationship between a Zone_element_definition and a in_zone_item that exists within the zone. An in_zone_item can be any type of Product_view_definition, such as; a Breakdown_element_definition, an Interface_connector_definition, an Interface_specification_definition, a Part_view_definition, a Requirement_view_definition, or an Attachment_slot_definition.

EXAMPLE    An item such as a carburetter (defined as a Physical_element_definition or Part, for example) can be recorded as existing in the engine compartment zone (as defined through a zone_element_definition).

It is possible to define a zone (Zone_element_definition) that locates many items (Product_view_definition). For example, a ship's machinery compartment may contain many items. Such items may, or may not, be represented within other types of breakdowns or assemblies defined elsewhere. However, a separate instance of In_zone is required for each item (Product_view_definition) to be located within the same zone (Zone_element_definition).

An additional feature of the model is that it is also possible to define compartments within other compartments. This is normally achieved through Zone_element_usage used to create child - parent relationships between the various Zone_element_definitions. But in more complex structures, such as zone intersections, permeability, tightness (air/water/radiation) for example, it might be a good thing to combine this method with the usage of an In_zone to define exact relationships between Zone_element_definitions.

NOTE    An instance of In_zone may also be referenced by an approval_item select type. This enables approval functions to be carried out on the items located within a specific zone. This is typical of inspections carried out in the marine industry.

See Figure 6 (and Figure 5) for an Express-G overview. A simplified instance diagram of a zonal breakdown is shown below.



Figure 15 —  Sample instances of a Zone Breakdown

Figure 15 —  Sample instances of a Zone Breakdown

NOTE    No identifiers or classifications are shown in the figure, and there is no instance of Breakdown_element_realization present. Attributes are shown only for the In_zone entity instance.

The zonal breakdown "Ship deck and room breakdown" (a zone breakdown of the part "Ship") is shown in the figure with three constituents. The zone element "Deck 2" is the parent of both "Machine shop" and "Crews washroom". In the crews washroom (defined using the In_zone realtionship) there is a a "Washbasin" (a part) and a "Heating central" (a physical element). The contexts for the latter two is not shown in the figure.

Hybrid Breakdowns

A Hybrid_breakdown is a type of Breakdown that identifies a non-specific partitioning of a product into a set of related elements so as to form explicit, parent-child views that comprise the elements.

There is no added functionality of a Hybrid_breakdown, compared to the generic Breakdown, and therefore the use of Hybrid_breakdown, Hybrid_breakdown_version, Hybrid_breakdown_context, and Hybrid_element_usage is deprecated.
Use Breakdown, Breakdown_version, Breakdown_context, and Breakdown_element_usage instead.

Using Breakdowns for Baselining

Breakdowns are not primarily used for baselining (i.e. to freeze a structure at a point in time, e.g. between design and production), but breakdown structures may be baselined (as may assembly structures).

Through effectivity assigned to all relations, even between Breakdown_element_definitions and products (Product_view_definition) that realize the Breakdown_element, in combination with a strict approval policy for the Breakdown_versions, where the approval status reflects the intention of the baselining, it is possible to achieve frozen baselines of the breakdown and all of its constituents.

NOTE    Zonal breakdowns that make use of the In_zone entity cannot be baselined properly, since effectivity can not be applied.

NOTE    AP 239 cannot achive the full functionality of baselining, it can only record the imformation required for a software system to apply baselining functionality.

Capability templates

The following sections define a set of templates for the capability, where a template is a specification of a set of entities that need to be instantiated to represent a given set of information.

Template: representing_breakdown (Short name: rep_bkdn)

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 Reading Capability Templates help 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:

Template: representing_breakdown_element (Short name: rep_bkdn_elem)

This section specifies the template representing_breakdown_element.

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 Breakdown_element (and its version and definition) in a breakdown. It is generic and may be used for any type of breakdown, except for breakdown elements that are defined subtypes in AP239: i.e. Functional_element, Physical_element, System_element, or Zone_element.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_breakdown_element". The text highlighted in blue shows the template parameters.
Templates within grey rectangles 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_element

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

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

Figure 2 —  The graphical representation of the representing_breakdown_element template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Breakdown_element .
id_class_name (Default=Breakdown_element_identification_code,Type='CLASS')
The name of the class being used to classify the (Identification_assignment) of the breakdown_element. This provides the role or reason for the identification.
The following classes and their sub-classes can be used:
classifications: "Breakdown_element_identification_code" (urn:plcs:rdl:std:Breakdown_element_identification_code), "Breakdown_element_name" (urn:plcs:rdl:std:Breakdown_element_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 class.
id_owner (Type='STRING')
The name or identifier of the organization owning the id or name.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class being used to classify the identification of the organization. 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 class
vn_id (Default=Unknown,Type='STRING')
The identifier of the Breakdown_element_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_element_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 class.
vn_id_owner (Default=Unknown,Type='STRING')
The name or identifier of the organization owning the version_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. 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 class
life_cycle_stage (Default=Support_stage,Type='CLASS')
The identifier of the External_class_library used to describe the type of life cycle stage of the View_definition_context instance.
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage)
life_cycle_stage_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 @life_cycle_stage class.
domain (Default=Product_life_cycle_support,Type='CLASS')
The identifier of the External_class_library used to describe the type of application domain of the View_definition_context instance.
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain)
domain_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 @domain class.
bkdn_vn (Type= 'ENTITY (Breakdown_version)' )
The Breakdown_version of which this Breakdown_element is a constituent.
Reference parameters
The following reference parameters are defined for this template:
bkdn_elem(Type='ENTITY (Breakdown_element)')
Allow the Breakdown_element entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown_element entity can be referenced in a template path by:
%^target = $representing_breakdown_element.bkdn_elem%
where target is the parameter to which the Breakdown_element is bound.
bkdn_elem_vn(Type='ENTITY (Breakdown_element_version)')
Allow the Breakdown_element_version entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown_element_version entity can be referenced in a template path by:
%^target = $representing_breakdown_element.bkdn_elem_vn%
where target is the parameter to which the Breakdown_element_version is bound.
bkdn_elem_def(Type='ENTITY (Breakdown_element_definition)')
Allow the Breakdown_element_definition entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown_element_definition entity can be referenced in a template path by:
%^target = $representing_breakdown_element.bkdn_elem_def%
where target is the parameter to which the Breakdown_element_definition is bound.
def_cntxt(Type='ENTITY (View_definition_context)')
Allow the View_definition_context entity instantiated in this path to be referenced when this template is used.
Note: The View_definition_context entity can be referenced in a template path by:
%^target = $representing_breakdown_element.def_cntxt%
where target is the parameter to which the View_definition_context is bound.
bkdn_cntxt(Type='ENTITY (Breakdown_context)')
Allow the Breakdown_context entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown_context entity can be referenced in a template path by:
%^target = $representing_breakdown_element.bkdn_cntxt%
where target is the parameter to which the Breakdown_context is bound.
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.
-- instantiate Breakdown_element
Breakdown_element
%^bkdn_elem = Breakdown_element%
^bkdn_elem.id = '/IGNORE'
^bkdn_elem.name = '/IGNORE'
^bkdn_elem.description = '/IGNORE'

-- assign ID to breakdown_element
/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_elem)/

-- instantiate Breakdown_element_version
Breakdown_element_version
%^bkdn_elem_vn = Breakdown_element_version%
^bkdn_elem_vn.id = '/IGNORE'
^bkdn_elem_vn.description = '/IGNORE'
^bkdn_elem_vn.of_product -> ^bkdn_elem

-- assign ID to Breakdown_element_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_elem_vn)/

-- instantiate Breakdown_element_definition
Breakdown_element_definition
%^bkdn_elem_def = Breakdown_element_definition%
^bkdn_elem_def.id = '/IGNORE'
^bkdn_elem_def.name = '/IGNORE'
^bkdn_elem_def.additional_characterization = '/IGNORE'
^bkdn_elem_def.defined_version -> ^bkdn_elem_vn

-- instantiate View_definition_context and bind it to the Breakdown_element_definition
^bkdn_elem_def.initial_context -> View_definition_context
%^def_cntxt = View_definition_context%
^def_cntxt.life_cycle_stage = '/IGNORE'
^def_cntxt.application_domain = '/IGNORE'
^def_cntxt.description = '/IGNORE'

-- assign life_cycle_stage to the view_definition_context
/assigning_reference_data(
    items=^def_cntxt,
    class_name=@life_cycle_stage,
    ecl_id=@life_cycle_stage_ecl_id)/

-- assign application_domain to the context
/assigning_reference_data(
    items=^def_cntxt,
    class_name=@domain,
    ecl_id=@domain_ecl_id)/

-- instantiate Breakdown_context to connect breakdown_element_definition
-- to a breakdown_version
Breakdown_context
%^bkdn_cntxt = Breakdown_context%
^bkdn_cntxt.id = '/IGNORE'
^bkdn_cntxt.name = '/IGNORE'
^bkdn_cntxt.description = '/IGNORE'
^bkdn_cntxt.breakdown_element -> ^bkdn_elem_def
^bkdn_cntxt.breakdown -> @bkdn_vn
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Breakdown_element.id '/IGNORE' Product.id
Breakdown_element.name '/IGNORE' Product.name
Breakdown_element.description '/IGNORE' Product.description
Breakdown_element_version.id '/IGNORE' Product_version.id
Breakdown_element_version.description '/IGNORE' Product_version.description
Breakdown_element_definition.id '/IGNORE' Product_view_definition.id
Breakdown_element_definition.name '/IGNORE' Product_view_definition.name
Breakdown_element_definition.additional_characterization '/IGNORE' Product_view_definition.additional_characterization
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.application_domain '/IGNORE'
View_definition_context.description '/IGNORE'
Breakdown_context.id '/IGNORE'
Breakdown_context.name '/IGNORE'
Breakdown_context.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_element(id='Tank access spaces', id_class_name='Breakdown_element_name', id_ecl_id='urn:plcs:rdl:std', id_owner='Motorbike Manufacturers Ltd', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', vn_id='B', vn_id_class_name='Version_identification_code', vn_id_ecl_id='urn:plcs:rdl:std', vn_id_owner='Motorbike Manufacturers Ltd', vn_id_owner_class_name='Organization_name', vn_id_owner_ecl_id='urn:plcs:rdl:std', life_cycle_stage='Support_stage', life_cycle_stage_ecl_id='urn:plcs:rdl:std', domain='Maintenance', domain_ecl_id='urn:plcs:rdl:std', bkdn_vn='#53')/
(an illustration of the consolidated representing_breakdown_element 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='#43', class_name='Maintenance', ecl_id='urn:plcs:rdl:std')/
/assigning_reference_data(items='#43', class_name='Support_stage', ecl_id='urn:plcs:rdl:std')/
/assigning_identification(items='#2', id='Tank access spaces', id_class_name='Breakdown_element_name', id_ecl_id='urn:plcs:rdl:std', org_id='Motorbike Manufacturers Ltd', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std')/
/assigning_identification(items='#22', id='B', id_class_name='Version_identification_code', id_ecl_id='urn:plcs:rdl:std', org_id='Motorbike Manufacturers Ltd', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std')/


Figure 3 —  Entities instantiated by representing_breakdown_element template

Figure 3 —  Entities instantiated by representing_breakdown_element 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_element(id='Tank access spaces', id_class_name='Breakdown_element_name', id_ecl_id='urn:plcs:rdl:std', id_owner='Motorbike Manufacturers Ltd', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', vn_id='B', vn_id_class_name='Version_identification_code', vn_id_ecl_id='urn:plcs:rdl:std', vn_id_owner='Motorbike Manufacturers Ltd', vn_id_owner_class_name='Organization_name', vn_id_owner_ecl_id='urn:plcs:rdl:std', life_cycle_stage='Support_stage', life_cycle_stage_ecl_id='urn:plcs:rdl:std', domain='Maintenance', domain_ecl_id='urn:plcs:rdl:std', bkdn_vn='#53')/


Figure 4 —  Instantiation of representing_breakdown_element template

Figure 4 —  Instantiation of representing_breakdown_element template

Characterizations
The following section details how the representing_breakdown_element 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 EXPRESS-G diagram in Figure 5 shows the possible characterizations of the template "representing_breakdown_element".


Figure 5 —  The graphical representation of the representing_breakdown_element characterizations

Figure 5 —  The graphical representation of the representing_breakdown_element characterizations

The following characterizations may apply:
Characterization Assigning classification or code

NOTE   this characterization is optional.

Classifications and codes may be assigned to a Breakdown_element through external reference data.

A class of a Breakdown_element is represented using the template assigning_reference_data assigned to Breakdown_element.

A code of a Breakdown_element (e.g. "LCN number") is represented by using the template assigning_code assigned to Breakdown_element.

Characterization Assigning location

NOTE   this characterization is optional.

A location can be associated to a Breakdown_element or a Breakdown_element_version by using the template assigning_location.

The location may be expressed as a global location, an address-based location, an organization-based location, or as a location in a regional grid. See further Capability C049: assigning_location.

The assignment of the location (assigning_location) may be classified.

Characterization Assigning properties and documents

NOTE   this characterization is optional.

Properties and documents may be associated with a Breakdown_element_definition.

A property is associated using template assigning_product_property assigned to Breakdown_element_definition using reference parameter "^bkdn_elem_def". The assignment of properties is further explained in capability C076: assigning_product_properties.

A document is associated using template assigning_document assigned to Breakdown_element_definition using reference parameter "^bkdn_elem_def". The assignment of documents is further explained in capability C005: representing_documents.

Characterization Assigning identification

NOTE   this characterization is optional.

Additional identifiers can be assigned to Breakdown_element_definition using reference parameter "^bkdn_elem_def"; Breakdown_element using reference parameter "^bkdn_elem" and Breakdown_element_version using reference parameter "^bkdn_elem_vn"; by using the template assigning_identification. Identifications are further explained in Capability C001: assigning_identifiers .

Template: representing_breakdown_structure (Short name: rep_bkdn_struct)

This section specifies the template representing_breakdown_structure.

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 the structure of elements in a breakdown. It does not define the representation of the elements themselves.

This template should be used to create structures between general Breakdown_element_definitions and in particular if elements from different types of breakdowns are involved (i.e. to form a hybrid breakdown). Do not use the entity Hybrid_element_usage.

The template is not intended for representing the structures of pure (i.e. contianing only one of the following) System_element_definitions, Functional_element_definitions, Physical_element_definitions, or Zone_element_definitions. For these, there are other specific breakdown structure templates.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_breakdown_structure". 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_structure

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

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

Figure 2 —  The graphical representation of the representing_breakdown_structure template

Input parameters
The following input parameters are defined for this template:
rel_type_name (Default=Breakdown_element_usage,Type='CLASS')
The name of the class being used to classify the element usage (Breakdown_element_usage) This provides the type of breakdown structure.
The following classes and their sub-classes can be used:
classifications: "Breakdown_element_usage" (urn:plcs:rdl:std:Breakdown_element_usage)
rel_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 @rel_type_name.
parent (Type= 'ENTITY (Breakdown_element_definition)' )
The immediate parent element Breakdown_element_definition in the breakdown structure.
child (Type= 'ENTITY (Breakdown_element_definition)' )
The immediate child element Breakdown_element_definition in the breakdown structure.
Reference parameters
The following reference parameters are defined for this template:
usage(Type='ENTITY (Breakdown_element_usage)')
Allow the Breakdown_element_usage entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown_element_usage entity can be referenced in a template path by:
%^target = $representing_breakdown_structure.usage%
where target is the parameter to which the Breakdown_element_usage is bound.
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.
-- Create Breakdown_element_usage instance
Breakdown_element_usage

-- Set attributes of Breakdwon_element_usage,
-- and assign a reference parameter to it
Breakdown_element_usage.id = '/IGNORE'
Breakdown_element_usage.name = '/IGNORE'
Breakdown_element_usage.relation_type = '/IGNORE'
Breakdown_element_usage.description = '/IGNORE'
%^usage = Breakdown_element_usage%

-- instantiate relations to Breakdown_element_usage
Breakdown_element_usage.relating_view -> @parent
Breakdown_element_usage.related_view -> @child

-- Classify the relationship
/assigning_reference_data(
    class_name=@rel_type_name,
    ecl_id=@rel_ecl_id,
    items=^usage)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Breakdown_element_usage.id '/IGNORE' View_definition_relationship.id
Breakdown_element_usage.name '/IGNORE'
Breakdown_element_usage.relation_type '/IGNORE' View_definition_relationship.relation_type
Breakdown_element_usage.description '/IGNORE' View_definition_relationship.description
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_structure(rel_type_name='Breakdown_element_usage', rel_ecl_id='urn:plcs:rdl:std', parent='#1', child='#53')/
(an illustration of the consolidated representing_breakdown_structure template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_breakdown_structure template

Figure 3 —  Entities instantiated by representing_breakdown_structure 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_structure(rel_type_name='Breakdown_element_usage', rel_ecl_id='urn:plcs:rdl:std', parent='#1', child='#53')/


Figure 4 —  Instantiation of representing_breakdown_structure template

Figure 4 —  Instantiation of representing_breakdown_structure template

Characterizations
The following section details how the representing_breakdown_structure 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 EXPRESS-G diagram in Figure 5 shows the possible characterizations of the template "representing_breakdown_structure".


Figure 5 —  The graphical representation of the representing_breakdown_structure characterizations

Figure 5 —  The graphical representation of the representing_breakdown_structure characterizations

The following characterizations may apply:
Characterization Assigning identification

NOTE   this characterization is optional.

The Breakdown_element_usage may be identified by assigning it an identifier through the use of template assigning_identification.

NOTE    Identification is described in C001: assigning_identifiers.

Characterization Assigning organization

NOTE   this characterization is optional.

An organization can be assigned in a given role, such as "creator" or "owner", to a relation between breakdown elements. This is represented by assigning the template assigning_organization to the Breakdown_element_usage. The role of the assignment is represented by classifying the assignment by the use of reference data.

NOTE    The assignment of an organization is described in the capability C094: assigning_organization.

Characterization Assigning creation time

NOTE   this characterization is optional.

The time and date when the breakdown structure was created can be represented by assigning a date and time to the Breakdown_element_usage using the template assigning_time with the Date_time being classified as a type of "Date actual creation" (urn:plcs:rdl:std:Date actual creation).

NOTE    The assignment of dates is described the capability C036: assigning_date_time.

Characterization Assigning dated effectivity

NOTE   this characterization is optional.

The time period over which a breakdown element usage is effective can be set by using the template assigning_dated_effectivity.

NOTE    The use of effectivity is described in the capability: C006: assigning_effectivity.

Template: representing_breakdown_element_realization (Short name: rep_bkdn_elem_real)

This section specifies the template representing_breakdown_element_realization.

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 realization of a Breakdown element.

NOTE    This template deprecates the usage of Breakdown_element_realization.

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


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

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

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

Figure 2 —  The graphical representation of the representing_breakdown_element_realization template

Input parameters
The following input parameters are defined for this template:
breakdown (Type= 'ENTITY (Breakdown_element_definition)' )
The breakdown item.
product (Type= 'ENTITY (Product_view_definition)' )
The product item.
class_name (Type='CLASS')
The name of the External_class that determines the role of the breakdown element realization.
The following classes and their sub-classes can be used:
classifications: "Breakdown_element_realization" (urn:plcs:rdl:std:Breakdown_element_realization)
class_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 @class_name.
Reference parameters
The following reference parameters are defined for this template:
bkdn_elem_real(Type='ENTITY (View_definition_usage)')
Allow the View_definition_usage entity instantiated in this path to be referenced when this template is used.
Note: The View_definition_usage entity can be referenced in a template path by:
%^target = $representing_breakdown_element_realization.bkdn_elem_real%
where target is the parameter to which the View_definition_usage is bound.
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.
-- Create the View_definition_usage entity and its reference param
View_definition_usage
%^bkdn_elem_real = View_definition_usage%

-- Set the attributes
View_definition_usage.id = '/IGNORE'
View_definition_usage.relation_type = '/IGNORE'
View_definition_usage.description = '/IGNORE'
View_definition_usage.relating_view -> @breakdown
View_definition_usage.related_view -> @product

-- Assign the External_class in the reference data library
-- being used to determine type of breakdown element realization
/assigning_reference_data(
    items=^bkdn_elem_real,
    class_name=@class_name,
    ecl_id=@class_ecl_id)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
View_definition_usage.id '/IGNORE' View_definition_relationship.id
View_definition_usage.relation_type '/IGNORE' View_definition_relationship.relation_type
View_definition_usage.description '/IGNORE' View_definition_relationship.description
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_element_realization(breakdown='#1', product='#2', class_name='Breakdown_element_realization', ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_breakdown_element_realization template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_breakdown_element_realization template

Figure 3 —  Entities instantiated by representing_breakdown_element_realization template

The instance model in STEP ASCII exchange file format (ISO 10303 Part 21 syntax) is:
#1 = BREAKDOWN_ELEMENT_DEFINITION('/IGNORE','/IGNORE','/IGNORE',$,(),$); #2 = PART_VIEW_DEFINITION('/IGNORE','/IGNORE','/IGNORE',$,(),$); #3 = VIEW_DEFINITION_USAGE('/IGNORE','/IGNORE','/IGNORE',#1,#2); #5 = CLASSIFICATION_ASSIGNMENT(#6,(#3),'/IGNORE'); #6 = EXTERNAL_CLASS('/NULL','Breakdown_element_realization','/IGNORE',#7); #7 = EXTERNAL_CLASS_LIBRARY('urn:plcs:rdl:std','/IGNORE');
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_element_realization(breakdown='#1', product='#2', class_name='Breakdown_element_realization', ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of representing_breakdown_element_realization template

Figure 4 —  Instantiation of representing_breakdown_element_realization template

Characterizations
No common characterizations of the template representing_breakdown_element_realization have been identified. However, the ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
Template: referencing_breakdown_element (Short name: ref_bkdn_elem)

This section specifies the template referencing_breakdown_element.

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

Description

This template describes how to reference a Breakdown_element (or its version or definition) regardless of what breakdown it belongs to. It is generic and may be used for any type of breakdown.

References to a Breakdown_element may use only the first 6 in-parameters, if the Breakdown_element_version is insignificant. Other in-parameters can be set to "/NULL".

References to a specific Breakdown_element_version may use only the 12 first in-parameters, if the Breakdown_element_definition (view) is insignificant. Other in-parameters can be set to "/NULL".

References to a particular Breakdown_element_definition must include all in-parameters.

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

[warning:]Error model_diag_1: Either delete A DESCRIPTION OF THE DIAGRAM or provide a description
A DESCRIPTION OF THE DIAGRAM


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

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

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

[warning:]Error model_diag_1: Either delete A DESCRIPTION OF THE DIAGRAM or provide a description
A DESCRIPTION OF THE DIAGRAM


Figure 2 —  The graphical representation of the referencing_breakdown_element template

Figure 2 —  The graphical representation of the referencing_breakdown_element template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Breakdown_element .
id_class_name (Default=Breakdown_element_identification_code,Type='CLASS')
The name of the class being used to classify the (Identification_assignment) of the breakdown_element. This provides the role or reason for the identification.
The following classes and their sub-classes can be used:
classifications: "Breakdown_element_identification_code" (urn:plcs:rdl:std:Breakdown_element_identification_code), "Breakdown_element_name" (urn:plcs:rdl:std:Breakdown_element_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 class.
id_owner (Type='STRING')
The name or identifier of the organization owning the id or name.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class being used to classify the identification of the organization. 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 class
vn_id (Default=/NULL,Type='STRING')
The identifier of the Breakdown_element_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_element_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 class.
vn_id_owner (Default=/NULL,Type='STRING')
The name or identifier of the organization owning the version_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. 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 class
life_cycle_stage (Default=Life_cycle_stage,Type='CLASS')
The identifier of the External_class_library used to describe the type of life cycle stage of the View_definition_context instance.
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage)
life_cycle_stage_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 @life_cycle_stage class.
domain (Default=Application_domain,Type='CLASS')
The identifier of the External_class_library used to describe the type of application domain of the View_definition_context instance.
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain)
domain_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 @domain class.
Reference parameters
The following reference parameters are defined for this template:
bkdn_elem(Type='ENTITY (Breakdown_element)')
Allow the Breakdown_element entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown_element entity can be referenced in a template path by:
%^target = $referencing_breakdown_element.bkdn_elem%
where target is the parameter to which the Breakdown_element is bound.
bkdn_elem_vn(Type='ENTITY (Breakdown_element_version)')
Allow the Breakdown_element_version entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown_element_version entity can be referenced in a template path by:
%^target = $referencing_breakdown_element.bkdn_elem_vn%
where target is the parameter to which the Breakdown_element_version is bound.
bkdn_elem_def(Type='ENTITY (Breakdown_element_definition)')
Allow the Breakdown_element_definition entity instantiated in this path to be referenced when this template is used.
Note: The Breakdown_element_definition entity can be referenced in a template path by:
%^target = $referencing_breakdown_element.bkdn_elem_def%
where target is the parameter to which the Breakdown_element_definition is bound.
def_cntxt(Type='ENTITY (View_definition_context)')
Allow the View_definition_context entity instantiated in this path to be referenced when this template is used.
Note: The View_definition_context entity can be referenced in a template path by:
%^target = $referencing_breakdown_element.def_cntxt%
where target is the parameter to which the View_definition_context is bound.
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.
-- instantiate Breakdown_element
Breakdown_element
%^bkdn_elem = Breakdown_element%
^bkdn_elem.id = '/IGNORE'
^bkdn_elem.name = '/IGNORE'
^bkdn_elem.description = '/IGNORE'

-- assign ID to breakdown_element
/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_elem)/

-- instantiate Breakdown_element_version
Breakdown_element_version
%^bkdn_elem_vn = Breakdown_element_version%
^bkdn_elem_vn.id = '/IGNORE'
^bkdn_elem_vn.description = '/IGNORE'
^bkdn_elem_vn.of_product -> ^bkdn_elem

-- assign ID to Breakdown_element_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_elem_vn)/

-- instantiate Breakdown_element_definition
Breakdown_element_definition
%^bkdn_elem_def = Breakdown_element_definition%
^bkdn_elem_def.id = '/IGNORE'
^bkdn_elem_def.name = '/IGNORE'
^bkdn_elem_def.additional_characterization = '/IGNORE'
^bkdn_elem_def.defined_version -> ^bkdn_elem_vn

-- instantiate View_definition_context and bind it to the Breakdown_element_definition
^bkdn_elem_def.initial_context -> View_definition_context
%^def_cntxt = View_definition_context%
^def_cntxt.life_cycle_stage = '/IGNORE'
^def_cntxt.application_domain = '/IGNORE'
^def_cntxt.description = '/IGNORE'

-- assign life_cycle_stage to the view_definition_context
/assigning_reference_data(
    items=^def_cntxt,
    class_name=@life_cycle_stage,
    ecl_id=@life_cycle_stage_ecl_id)/

-- assign application_domain to the context
/assigning_reference_data(
    items=^def_cntxt,
    class_name=@domain,
    ecl_id=@domain_ecl_id)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Breakdown_element.id '/IGNORE' Product.id
Breakdown_element.name '/IGNORE' Product.name
Breakdown_element.description '/IGNORE' Product.description
Breakdown_element_version.id '/IGNORE' Product_version.id
Breakdown_element_version.description '/IGNORE' Product_version.description
Breakdown_element_definition.id '/IGNORE' Product_view_definition.id
Breakdown_element_definition.name '/IGNORE' Product_view_definition.name
Breakdown_element_definition.additional_characterization '/IGNORE' Product_view_definition.additional_characterization
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.application_domain '/IGNORE'
View_definition_context.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:
/referencing_breakdown_element(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated referencing_breakdown_element template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by referencing_breakdown_element template

Figure 3 —  Entities instantiated by referencing_breakdown_element template

The instance model in STEP ASCII exchange file format (ISO 10303 Part 21 syntax) is:
#1 = TASK_METHOD($,$,$,$,()); #2 = EXTERNAL_CLASS('/IGNORE','Safety_critical',$,#3); #3 = EXTERNAL_CLASS_LIBRARY('urn:plcs:rdl:std',$); #4 = CLASSIFICATION_ASSIGNMENT(#2,(#1),'/IGNORE');
The instance model in STEP XML exchange file format (ISO 10303 Part 28 ed.2 syntax) is:
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_breakdown_element(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of referencing_breakdown_element template

Figure 4 —  Instantiation of referencing_breakdown_element template

Characterizations
The following section details how the referencing_breakdown_element 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 date

NOTE   this characterization is optional.

The date when the Work_order and the Directed_activity was issued can be represented by assigning a date (using the relationship Date_or_date_time_assignment) to the Work_order and the Directed_activity using the assigning_calendar_date template with the Date_time being classified as a type of "Date actual release" (urn:plcs:rdl:std:Date actual release).

NOTE    The assignment of dates is described the capability C036: assigning_date_time.

Template: representing_physical_breakdown (Short name: rep_phys_bkdn)

This section specifies the template representing_physical_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 physical decomposition.

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


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

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

The graphic for the template to be used in other EXPRESS-G diagrams is shown in Figure  2 below.
Templates within grey areas are not included in the template.


Figure 2 —  The graphical representation of the representing_physical_breakdown template

Figure 2 —  The graphical representation of the representing_physical_breakdown template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Physical_breakdown.
id_class_name (Default=Breakdown_name,Type='CLASS')
The name of the class used to classify the identification (Identification_assignment) of the physical 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 class.
id_owner (Type='STRING')
The name or identifier of the organization that is responsible for naming or identifying the physical breakdown.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class used to classify the identification of the organization. For example, the organization might be identified using a CAGE code or using a 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 class
bkdn_type (Type='CLASS')
The name of the class used to classify the Physical_breakdown.
The following classes and their sub-classes can be used:
classifications: "Physical_breakdown" (urn:plcs:rdl:std:Physical_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 class.
vn_id (Default=Unknown,Type='STRING')
The identifier of the Physical_breakdown_version.
vn_id_class_name (Default=Version_identification_code,Type='CLASS')
The name of the class used to classify the identification (Identification_assignment) of the physical 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 class.
vn_id_owner (Default=Unknown,Type='STRING')
The name or identifier of the organization responsible for identifying the physical breakdown version.
vn_id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class used to classify the identification of the organization. For example, the organization might be identified using a CAGE code or using a 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 class
of_product (Type= 'ENTITY (Product_view_definition)' )
The product that is described in terms of its physical component.
Reference parameters
The following reference parameters are defined for this template:
phys_bkdn(Type='ENTITY (Physical_breakdown)')
Allow the Physical_breakdown entity instantiated in this path to be referenced when this template is used.
Note: The Physical_breakdown entity can be referenced in a template path by:
%^target = $representing_physical_breakdown.phys_bkdn%
where target is the parameter to which the Physical_breakdown is bound.
phys_bkdn_vn(Type='ENTITY (Physical_breakdown_version)')
Allow the Physical_breakdown_version entity instantiated in this path to be referenced when this template is used.
Note: The Physical_breakdown_version entity can be referenced in a template path by:
%^target = $representing_physical_breakdown.phys_bkdn_vn%
where target is the parameter to which the Physical_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_physical_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 Physical_breakdown
Each instance of the entity (Physical_breakdown) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_physical_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: phys_bkdn.
Unique constraint: External id class for Physical_breakdown_version
Each instance of the entity (Physical_breakdown_version) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_physical_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: phys_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 Reading Capability Templates help section.
-- instantiate Physical_breakdown
Physical_breakdown
%^phys_bkdn = Physical_breakdown%
Physical_breakdown.id = '/IGNORE'
Physical_breakdown.name = '/IGNORE'
Physical_breakdown.description = '/IGNORE'

-- assign ID to Physical_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=^phys_bkdn)/

-- instantiate Physical_breakdown_version
Physical_breakdown_version
%^phys_bkdn_vn = Physical_breakdown_version%
Physical_breakdown_version.id = '/IGNORE'
Physical_breakdown_version.description = '/IGNORE'
Physical_breakdown_version.of_product -> Physical_breakdown

-- assign ID to Physical_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=^phys_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 -> Physical_breakdown_version
Breakdown_of.of_view -> @of_product

-- assign type of breakdown to the Physical_breakdown
/assigning_reference_data(
    items=^phys_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
Physical_breakdown.id '/IGNORE' Product.id
Physical_breakdown.name '/IGNORE' Product.name
Physical_breakdown.description '/IGNORE' Product.description
Physical_breakdown_version.id '/IGNORE' Product_version.id
Physical_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_physical_breakdown(id='Physical 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='Physical_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='#46')/
(an illustration of the consolidated representing_physical_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='#142', class_name='Physical_breakdown', ecl_id='urn:plcs:rdl:sample')/
/assigning_identification(items='#142', id='Physical 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='#143', 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_physical_breakdown template

Figure 3 —  Entities instantiated by representing_physical_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_physical_breakdown(id='Physical 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='Physical_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='#46')/


Figure 4 —  Entities instantiated by representing_physical_breakdown template

Figure 4 —  Entities instantiated by representing_physical_breakdown template

Characterizations
The following section details how the representing_physical_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 are a few examples of such general characterizations. Physical_breakdowns and Physical_breakdown_versions can be characterized by:

Template: representing_physical_element (Short name: rep_phys_elmnt)

This section specifies the template representing_physical_element.

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 Physical_element (and its version and definition) in a breakdown.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_physical_element". The text highlighted in blue shows the template parameters.
Templates within grey rectangles 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_physical_element

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

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

Figure 2 —  The graphical representation of the representing_physical_element template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Physical_element.
id_class_name (Default=Breakdown_element_identification_code,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the physical element.
The following classes and their sub-classes can be used:
classifications: "Breakdown_element_identification_code" (urn:plcs:rdl:std:Breakdown_element_identification_code), "Breakdown_element_name" (urn:plcs:rdl:std:Breakdown_element_name)
id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @id_class_name class.
id_owner (Type='STRING')
The name or identifier of the organization responsible for the id or name of the physical element.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the the organization responsible for identifying the physical element. (e.g. "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)
id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @id_owner_class_name class.
vn_id (Default=Unknown,Type='STRING')
The identifier of the Physical_element_version.
vn_id_class_name (Default=Version_identification_code,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the physical element version.
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 that stores the definition of the class referenced by the parameter @vn_id_class_name class.
vn_id_owner (Default=Unknown,Type='STRING')
The name or identifier of the organization responsible for the identification of the physical element version.
vn_id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the the organization responsible for identifying the physical element version. (e.g. "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)
vn_id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @vn_id_owner_class_name class.
life_cycle_stage (Default=Support_stage,Type='CLASS')
A classification of the view definition context.
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage)
life_cycle_stage_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @life_cycle_stage class.
domain (Default=Product_life_cycle_support,Type='CLASS')
A classification of the view definition context.
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain)
domain_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @domain class.
phys_bkdn_vn (Type= 'ENTITY (Physical_breakdown_version)' )
The Physical_breakdown_version of which this Physical_element is a constituent.
Reference parameters
The following reference parameters are defined for this template:
phys_elem(Type='ENTITY (Physical_element)')
Allow the Physical_element entity instantiated in this path to be referenced when this template is used.
Note: The Physical_element entity can be referenced in a template path by:
%^target = $representing_physical_element.phys_elem%
where target is the parameter to which the Physical_element is bound.
phys_elem_vn(Type='ENTITY (Physical_element_version)')
Allow the Physical_element_version entity instantiated in this path to be referenced when this template is used.
Note: The Physical_element_version entity can be referenced in a template path by:
%^target = $representing_physical_element.phys_elem_vn%
where target is the parameter to which the Physical_element_version is bound.
phys_elem_def(Type='ENTITY (Physical_element_definition)')
Allow the Physical_element_definition entity instantiated in this path to be referenced when this template is used.
Note: The Physical_element_definition entity can be referenced in a template path by:
%^target = $representing_physical_element.phys_elem_def%
where target is the parameter to which the Physical_element_definition is bound.
def_cntxt(Type='ENTITY (View_definition_context)')
Allow the View_definition_context entity instantiated in this path to be referenced when this template is used.
Note: The View_definition_context entity can be referenced in a template path by:
%^target = $representing_physical_element.def_cntxt%
where target is the parameter to which the View_definition_context is bound.
phys_cntxt(Type='ENTITY (Physical_breakdown_context)')
Allow the Physical_breakdown_context entity instantiated in this path to be referenced when this template is used.
Note: The Physical_breakdown_context entity can be referenced in a template path by:
%^target = $representing_physical_element.phys_cntxt%
where target is the parameter to which the Physical_breakdown_context is bound.
Uniqueness constraints

The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique def_cntxt
Each instance of the entity (View_definition_context) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_physical_element) namely: life_cycle_stage, life_cycle_stage_ecl_id, domain, domain_ecl_id.
The instance is referenced by the following template parameter: def_cntxt.
Unique constraint: Unique phys_elem
Each instance of the entity (Physical_element) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_physical_element) 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: phys_elem.
Unique constraint: Unique phys_elem_def
Each instance of the entity (Physical_element_definition) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_physical_element) namely: id, id_class_name, id_ecl_id, id_owner, id_owner_class_name, id_owner_ecl_id, vn_id, vn_id_class_name, vn_id_ecl_id, vn_id_owner, vn_id_owner_class_name, vn_id_owner_ecl_id, life_cycle_stage, life_cycle_stage_ecl_id, domain, domain_ecl_id.
The instance is referenced by the following template parameter: phys_elem_def.
This rule means that there can be only one view definition (Physical_element_definition) of a version (Physical_element_version) with any given identifier, in the same View_definition_context) .
Unique constraint: Unique phys_elem_vn
Each instance of the entity (Physical_element_version) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_physical_element) namely: id, id_class_name, id_ecl_id, id_owner, id_owner_class_name, id_owner_ecl_id, 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: phys_elem_vn.
This rule means that there can be only one version (Physical_element_version) of a physical element (Physical_element) 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.
-- instantiate Physical_element
Physical_element
%^phys_elem = Physical_element%
^phys_elem.id = '/IGNORE'
^phys_elem.name = '/IGNORE'
^phys_elem.description = '/IGNORE'

-- assign ID to Physical_element
/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=^phys_elem)/

-- instantiate Physical_element_version
Physical_element_version
%^phys_elem_vn = Physical_element_version%
^phys_elem_vn.id = '/IGNORE'
^phys_elem_vn.description = '/IGNORE'
^phys_elem_vn.of_product -> ^phys_elem

-- assign ID to Physical_element_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=^phys_elem_vn)/

-- instantiate Physical_element_definition
Physical_element_definition
%^phys_elem_def = Physical_element_definition%
^phys_elem_def.id = '/IGNORE'
^phys_elem_def.name = '/IGNORE'
^phys_elem_def.additional_characterization = '/IGNORE'
^phys_elem_def.defined_version -> ^phys_elem_vn

-- instantiate View_definition_context and bind it to the Physical_element_definition
^phys_elem_def.initial_context -> View_definition_context
View_definition_context.life_cycle_stage = '/IGNORE'
View_definition_context.application_domain = '/IGNORE'
View_definition_context.description = '/IGNORE'
%^def_cntxt = View_definition_context%

-- assign life_cycle_stage to the view_definition_context
/assigning_reference_data(
    items=View_definition_context,
    class_name=@life_cycle_stage,
    ecl_id=@life_cycle_stage_ecl_id)/

-- assign application_domain to the context
/assigning_reference_data(
    items=View_definition_context,
    class_name=@domain,
    ecl_id=@domain_ecl_id)/

-- instantiate Physical_breakdown_context to connect Physical_element_definition
-- to a Physical_version
Physical_breakdown_context
%^phys_cntxt = Physical_breakdown_context%
^phys_cntxt.id = '/IGNORE'
^phys_cntxt.name = '/IGNORE'
^phys_cntxt.description = '/IGNORE'
^phys_cntxt.breakdown_element -> ^phys_elem_def
^phys_cntxt.breakdown -> @phys_bkdn_vn
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Physical_element.id '/IGNORE' Product.id
Physical_element.name '/IGNORE' Product.name
Physical_element.description '/IGNORE' Product.description
Physical_element_version.id '/IGNORE' Product_version.id
Physical_element_version.description '/IGNORE' Product_version.description
Physical_element_definition.id '/IGNORE' Product_view_definition.id
Physical_element_definition.name '/IGNORE' Product_view_definition.name
Physical_element_definition.additional_characterization '/IGNORE' Product_view_definition.additional_characterization
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.application_domain '/IGNORE'
View_definition_context.description '/IGNORE'
Physical_breakdown_context.id '/IGNORE' Breakdown_context.id
Physical_breakdown_context.name '/IGNORE' Breakdown_context.name
Physical_breakdown_context.description '/IGNORE' Breakdown_context.description
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_physical_element(id='Forks assembly', id_class_name='Zone_element_name', id_ecl_id='urn:plcs:rdl:std', id_owner='Motorcycle Manufacturers Ltd', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', vn_id='B', vn_id_class_name='Version_identification_code', vn_id_ecl_id='urn:plcs:rdl:std', vn_id_owner='Motorcycle Manufacturers Ltd', vn_id_owner_class_name='Organization_name', vn_id_owner_ecl_id='urn:plcs:rdl:std', life_cycle_stage='Support_stage', life_cycle_stage_ecl_id='urn:plcs:rdl:std', domain='Maintenance', domain_ecl_id='urn:plcs:rdl:std', phys_bkdn_vn='#53')/
(an illustration of the consolidated representing_physical_element template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_physical_element template

Figure 3 —  Entities instantiated by representing_physical_element 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_physical_element(id='Forks assembly', id_class_name='Zone_element_name', id_ecl_id='urn:plcs:rdl:std', id_owner='Motorcycle Manufacturers Ltd', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', vn_id='B', vn_id_class_name='Version_identification_code', vn_id_ecl_id='urn:plcs:rdl:std', vn_id_owner='Motorcycle Manufacturers Ltd', vn_id_owner_class_name='Organization_name', vn_id_owner_ecl_id='urn:plcs:rdl:std', life_cycle_stage='Support_stage', life_cycle_stage_ecl_id='urn:plcs:rdl:std', domain='Maintenance', domain_ecl_id='urn:plcs:rdl:std', phys_bkdn_vn='#53')/


Figure 4 —  Instantiation of representing_physical_element template

Figure 4 —  Instantiation of representing_physical_element template

Characterizations
The following section details how the representing_physical_element 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 EXPRESS-G diagram in Figure 5 shows the possible characterizations of the template "representing_physical_element".


Figure 5 —  Characterizations for representing_physical_element template

Figure 5 —  Characterizations for representing_physical_element template

The following characterizations may apply:
Characterization Assigning classification or code

NOTE   this characterization is optional.

Classifications and codes may be assigned to a Physical_element through external reference data. See Figure 5 for an Express-G overview.

The classification of a Physical_element is represented using the template assigning_reference_data assigned to Physical_element.

A code for a Breakdown_element (e.g. "LCN number") is represented by using the template assigning_code assigned to Physical_element.

Characterization Assigning location

NOTE   this characterization is optional.

A location can be associated to a Physical_element or a Physical_element_version by using the template assigning_location. See Figure 5 for an Express-G overview.

The location may be expressed as a global location, an address-based location, an organization-based location, or as a location in a regional grid. See further Capability C049: assigning_location.

The assignment of the location (assigning_location) may be classified.

Characterization Assigning properties and documents

NOTE   this characterization is optional.

Properties and documents may be associated with a Physical_element_definition. See Figure 5 for an Express-G overview.

A property is associated using template assigning_product_property assigned to Physical_element_definition using reference parameter "phys_elem_def". The assignment of properties is further explained in capability C076: assigning_product_properties.

A document is associated using template assigning_document assigned to Physical_element_definition using reference parameter "phys_elem_def". The assignment of documents is further explained in capability C005: representing_documents.

Characterization Assigning identifications

NOTE   this characterization is optional.

Identifications may be associated with a Physical_element_definition, a Physical_element and a Physical_breakdown_context by using the template assigning_identification. . See Figure 5 for an Express-G overview.

Template: representing_physical_structure (Short name: rep_phys_structr)

This section specifies the template representing_physical_structure.

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 relationships between the elements in a physical breakdown.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_physical_structure". The text highlighted in blue shows the template parameters.
Templates in grey rectangles 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_physical_structure

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

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

Figure 2 —  The graphical representation of the representing_physical_structure template

Input parameters
The following input parameters are defined for this template:
rel_type_name (Default=Physical_element_usage,Type='CLASS')
The name of the class assigned to the Physical_element_usage.
The following classes and their sub-classes can be used:
classifications: "Functional_element_usage" (urn:plcs:rdl:std:Functional_element_usage)
rel_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @rel_type_name class.
parent (Type= 'ENTITY (Physical_element_definition)' )
The immediate parent Physical_element_definition in the breakdown structure.
child (Type= 'ENTITY (Physical_element_definition)' )
The immediate child Physical_element_definition in the breakdown structure.
Reference parameters
The following reference parameters are defined for this template:
usage(Type='ENTITY (Physical_element_usage)')
Allow the Physical_element_usage entity instantiated in this path to be referenced when this template is used.
Note: The Physical_element_usage entity can be referenced in a template path by:
%^target = $representing_physical_structure.usage%
where target is the parameter to which the Physical_element_usage is bound.
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.
-- Create Physical_element_usage instance
Physical_element_usage

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

-- instantiate relations to Physical_element_usage
Physical_element_usage.relating_view -> @parent
Physical_element_usage.related_view -> @child

-- Classify the relationship
/assigning_reference_data(
    class_name=@rel_type_name,
    ecl_id=@rel_ecl_id,
    items=^usage)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Physical_element_usage.id '/IGNORE' View_definition_relationship.id
Physical_element_usage.relation_type '/IGNORE' View_definition_relationship.relation_type
Physical_element_usage.description '/IGNORE' View_definition_relationship.description
Physical_element_usage.name '/IGNORE' Breakdown_element_usage.name
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_physical_structure(parent='#217', child='#269', rel_type_name='Breakdown_element_usage', rel_ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_physical_structure template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_physical_structure template

Figure 3 —  Entities instantiated by representing_physical_structure 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_physical_structure(parent='#217', child='#269', rel_type_name='Breakdown_element_usage', rel_ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of representing_physical_structure template

Figure 4 —  Instantiation of representing_physical_structure template

Characterizations
The following section details how the representing_physical_structure 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 EXPRESS-G diagram in Figure 5 shows the possible characterizations of the template "representing_physical_structure".


Figure 5 —  Characterizations for representing_physical_structure template

Figure 5 —  Characterizations for representing_physical_structure template

The following characterizations may apply:
Characterization Assigning identification

NOTE   this characterization is optional.

The Physical_element_usage> may be identified by assigning it an identifier through the use of template assigning_identification.

NOTE    Identification is described in C001: assigning_identifiers.

Characterization Assigning organization

NOTE   this characterization is optional.

An organization can be assigned in a given role, such as "creator" or "owner", to a relation between physical breakdown elements. This is represented by assigning the template assigning_organization to the Physical_element_usage. The role of the assignment is represented by classifying the assignment by the use of reference data.

NOTE    The assignment of an organization is described in the capability C016: representing_person_organization.

Characterization Assigning creation time

NOTE   this characterization is optional.

The time and date when the physical breakdown structure was created can be represented by assigning a date and time to the Physical_element_usage using the template assigning_time with the Date_time being classified as a type of "Date actual creation" (urn:plcs:rdl:std:Date actual creation).

NOTE    The assignment of dates is described the capability C036: assigning_date_time.

Characterization Assigning dated effectivity

NOTE   this characterization is optional.

The time period over which a physical element usage is effective can be set by using the template assigning_dated_effectivity.

NOTE    The use of effectivity is described in the capability: C006: assigning_effectivity.

Template: representing_functional_breakdown (Short name: repr_funct_bkdn)

This section specifies the template representing_functional_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 functional decomposition.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_functional_breakdown". The text highlighted in blue shows the template parameters.
Templates within grey areas and templates with dashed outlines 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_functional_breakdown

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

The graphic for the template to be used in other EXPRESS-G diagrams is shown in Figure  2 below.
Templates within grey areas and templates with dashed outlines are not included in the template, but may be used to further characterize the template.


Figure 2 —  The graphical representation of the representing_functional_breakdown template

Figure 2 —  The graphical representation of the representing_functional_breakdown template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Functional_breakdown.
id_class_name (Default=Breakdown_name,Type='CLASS')
The name of the class used to classify the identification (Identification_assignment) of the functional 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 class.
id_owner (Type='STRING')
The name or identifier of the organization that is responsible for naming or idenfying the functional breakdown.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class used to classify the identification of the organization. For example, the organization might be identified using a CAGE code or using a 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 class
bkdn_type (Type='CLASS')
The name of the class used to classify the Functional_breakdown.
The following classes and their sub-classes can be used:
classifications: "Functional_breakdown" (urn:plcs:rdl:std:Functional_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 class.
vn_id (Default=Unknown,Type='STRING')
The identifier of the Functional_breakdown_version.
vn_id_class_name (Default=Version_identification_code,Type='CLASS')
The name of the class used to classify the identification (Identification_assignment) of the functional 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 class.
vn_id_owner (Default=Unknown,Type='STRING')
The name or identifier of the organization responsible for identifying the functional breakdown version.
vn_id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class used to classify the identification of the organization. For example, the organization might be identified using a CAGE code or using a 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 class
of_product (Type= 'ENTITY (Product_view_definition)' )
The product that is described in terms of its functional component.
Reference parameters
The following reference parameters are defined for this template:
fnct_bkdn(Type='ENTITY (Functional_breakdown)')
Allow the Functional_breakdown entity instantiated in this path to be referenced when this template is used.
Note: The Functional_breakdown entity can be referenced in a template path by:
%^target = $representing_functional_breakdown.fnct_bkdn%
where target is the parameter to which the Functional_breakdown is bound.
fnct_bkdn_vn(Type='ENTITY (Functional_breakdown_version)')
Allow the Functional_breakdown_version entity instantiated in this path to be referenced when this template is used.
Note: The Functional_breakdown_version entity can be referenced in a template path by:
%^target = $representing_functional_breakdown.fnct_bkdn_vn%
where target is the parameter to which the Functional_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_functional_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 Functional_breakdown
Each instance of the entity (Functional_breakdown) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_functional_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: fnct_bkdn.
Unique constraint: External id class for Functional_breakdown_version
Each instance of the entity (Functional_breakdown_version) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_functional_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: fnct_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 Reading Capability Templates help section.
-- instantiate Functional_breakdown
Functional_breakdown
%^fnct_bkdn = Functional_breakdown%
Functional_breakdown.id = '/IGNORE'
Functional_breakdown.name = '/IGNORE'
Functional_breakdown.description = '/IGNORE'

-- assign ID to Functional_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=^fnct_bkdn)/

-- instantiate Functional_breakdown_version
Functional_breakdown_version
%^fnct_bkdn_vn = Functional_breakdown_version%
Functional_breakdown_version.id = '/IGNORE'
Functional_breakdown_version.description = '/IGNORE'
Functional_breakdown_version.of_product -> Functional_breakdown

-- assign ID to Functional_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=^fnct_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 -> Functional_breakdown_version
Breakdown_of.of_view -> @of_product

-- assign type of breakdown to the Functional_breakdown
/assigning_reference_data(
    items=Functional_breakdown,
    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
Functional_breakdown.id '/IGNORE' Product.id
Functional_breakdown.name '/IGNORE' Product.name
Functional_breakdown.description '/IGNORE' Product.description
Functional_breakdown_version.id '/IGNORE' Product_version.id
Functional_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_functional_breakdown(id='Functional breakdown of the bike', 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='Functional_breakdown', bkdn_type_ecl_id='urn:plcs:rdl:sample', vn_id='A', vn_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='#46')/
(an illustration of the consolidated representing_functional_breakdown template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_functional_breakdown template

Figure 3 —  Entities instantiated by representing_functional_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_functional_breakdown(id='Functional breakdown of the bike', 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='Functional_breakdown', bkdn_type_ecl_id='urn:plcs:rdl:sample', vn_id='A', vn_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='#46')/


Figure 4 —  Instantiation of representing_functional_breakdown template

Figure 4 —  Instantiation of representing_functional_breakdown template

Characterizations
The following section details how the representing_functional_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 are a few examples of such general characterizations. Functional_breakdowns and Functional_breakdown_versions can be characterized by:

Template: representing_functional_element (Short name: repr_funct_elmnt)

This section specifies the template representing_functional_element.

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 Functional_element (and its version and definition) in a breakdown.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_functional_element". The text highlighted in blue shows the template parameters.
Templates within grey rectangles 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_functional_element

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

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

Figure 2 —  The graphical representation of the representing_functional_element template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Functional_element.
id_class_name (Default=Breakdown_element_identification_code,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the functional element.
The following classes and their sub-classes can be used:
classifications: "Breakdown_element_identification_code" (urn:plcs:rdl:std:Breakdown_element_identification_code), "Breakdown_element_name" (urn:plcs:rdl:std:Breakdown_element_name)
id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @id_class_name class.
id_owner (Type='STRING')
The name or identifier of the organization responsible for the id or name of the functional element.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the the organization responsilbe for identifying the the functional element. (e.g. "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)
id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @id_owner_class_name class.
vn_id (Default=Unknown,Type='STRING')
The identifier of the Functional_element_version.
vn_id_class_name (Default=Version_identification_code,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the functional element version.
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 that stores the definition of the class referenced by the parameter @vn_id_class_name class.
vn_id_owner (Default=Unknown,Type='STRING')
The name or identifier of the organization responsible for the identification of the functional element version.
vn_id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the the organization responsilbe for identifying the the functional element version. (e.g. "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)
vn_id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @vn_id_owner_class_name class.
life_cycle_stage (Default=Support_stage,Type='CLASS')
A classification of the view definition context.
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage)
life_cycle_stage_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @life_cycle_stage class.
domain (Default=Product_life_cycle_support,Type='CLASS')
A classification of the view definition context.
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain)
domain_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @domain class.
fnct_bkdn_vn (Type= 'ENTITY (Functional_breakdown_version)' )
The Functional_element_version of which this Functional_element is a constituent.
Reference parameters
The following reference parameters are defined for this template:
fnct_elem(Type='ENTITY (Functional_element)')
Allow the Functional_element entity instantiated in this path to be referenced when this template is used.
Note: The Functional_element entity can be referenced in a template path by:
%^target = $representing_functional_element.fnct_elem%
where target is the parameter to which the Functional_element is bound.
fnct_elem_vn(Type='ENTITY (Functional_element_version)')
Allow the Functional_element_version entity instantiated in this path to be referenced when this template is used.
Note: The Functional_element_version entity can be referenced in a template path by:
%^target = $representing_functional_element.fnct_elem_vn%
where target is the parameter to which the Functional_element_version is bound.
fnct_elem_def(Type='ENTITY (Functional_element_definition)')
Allow the Functional_element_definition entity instantiated in this path to be referenced when this template is used.
Note: The Functional_element_definition entity can be referenced in a template path by:
%^target = $representing_functional_element.fnct_elem_def%
where target is the parameter to which the Functional_element_definition is bound.
def_cntxt(Type='ENTITY (View_definition_context)')
Allow the View_definition_context entity instantiated in this path to be referenced when this template is used.
Note: The View_definition_context entity can be referenced in a template path by:
%^target = $representing_functional_element.def_cntxt%
where target is the parameter to which the View_definition_context is bound.
fnct_cntxt(Type='ENTITY (Functional_breakdown_context)')
Allow the Functional_breakdown_context entity instantiated in this path to be referenced when this template is used.
Note: The Functional_breakdown_context entity can be referenced in a template path by:
%^target = $representing_functional_element.fnct_cntxt%
where target is the parameter to which the Functional_breakdown_context is bound.
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.
-- instantiate Functional_element
Functional_element
%^fnct_elem = Functional_element%
^fnct_elem.id = '/IGNORE'
^fnct_elem.name = '/IGNORE'
^fnct_elem.description = '/IGNORE'

-- assign ID to Functional_element
/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=^fnct_elem)/

-- instantiate Functional_element_version
Functional_element_version
%^fnct_elem_vn = Functional_element_version%
^fnct_elem_vn.id = '/IGNORE'
^fnct_elem_vn.description = '/IGNORE'
^fnct_elem_vn.of_product -> ^fnct_elem

-- assign ID to Functional_element_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=^fnct_elem_vn)/

-- instantiate Functional_element_definition
Functional_element_definition
%^fnct_elem_def = Functional_element_definition%
^fnct_elem_def.id = '/IGNORE'
^fnct_elem_def.name = '/IGNORE'
^fnct_elem_def.additional_characterization = '/IGNORE'
^fnct_elem_def.defined_version -> ^fnct_elem_vn

-- instantiate View_definition_context and bind it to the Functional_element_definition
^fnct_elem_def.initial_context -> View_definition_context
View_definition_context.life_cycle_stage = '/IGNORE'
View_definition_context.application_domain = '/IGNORE'
View_definition_context.description = '/IGNORE'
%^def_cntxt = View_definition_context%

-- assign life_cycle_stage to the view_definition_context
/assigning_reference_data(
    items=View_definition_context,
    class_name=@life_cycle_stage,
    ecl_id=@life_cycle_stage_ecl_id)/

-- assign application_domain to the context
/assigning_reference_data(
    items=View_definition_context,
    class_name=@domain,
    ecl_id=@domain_ecl_id)/

-- instantiate Functional_breakdown_context to connect Functional_element_definition
-- to a Functional_version
Functional_breakdown_context
%^fnct_cntxt = Functional_breakdown_context%
^fnct_cntxt.id = '/IGNORE'
^fnct_cntxt.name = '/IGNORE'
^fnct_cntxt.description = '/IGNORE'
^fnct_cntxt.breakdown_element -> ^fnct_elem_def
^fnct_cntxt.breakdown -> @fnct_bkdn_vn
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Functional_element.id '/IGNORE' Product.id
Functional_element.name '/IGNORE' Product.name
Functional_element.description '/IGNORE' Product.description
Functional_element_version.id '/IGNORE' Product_version.id
Functional_element_version.description '/IGNORE' Product_version.description
Functional_element_definition.id '/IGNORE' Product_view_definition.id
Functional_element_definition.name '/IGNORE' Product_view_definition.name
Functional_element_definition.additional_characterization '/IGNORE' Product_view_definition.additional_characterization
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.application_domain '/IGNORE'
View_definition_context.description '/IGNORE'
Functional_breakdown_context.id '/IGNORE' Breakdown_context.id
Functional_breakdown_context.name '/IGNORE' Breakdown_context.name
Functional_breakdown_context.description '/IGNORE' Breakdown_context.description
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_functional_element(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_functional_element template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_functional_element template

Figure 3 —  Entities instantiated by representing_functional_element 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_functional_element(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of representing_functional_element template

Figure 4 —  Instantiation of representing_functional_element template

Characterizations
The following section details how the representing_functional_element 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 classification or code

NOTE   this characterization is optional.

Classifications and codes may be assigned to a Functional_element through external reference data. See Figure 1 for an Express-G overview.

The classification of a Functional_element is represented using the template assigning_reference_data assigned to Functional_element.

A code for a Breakdown_element (e.g. "LCN number") is represented by using the template assigning_code assigned to Functional_element.

Characterization Assigning location

NOTE   this characterization is optional.

A location can be associated to a Functional_element or a Functional_element_version by using the template assigning_location. See Figure 1 for an Express-G overview.

The location may be expressed as a global location, an address-based location, an organization-based location, or as a location in a regional grid. See further Capability C049: assigning_location.

The assignment of the location (assigning_location) may be classified.

Characterization Assigning properties and documents

NOTE   this characterization is optional.

Properties and documents may be associated with a Functional_element_definition. See Figure 1 for an Express-G overview.

A property is associated using template assigning_product_property assigned to Functional_element_definition using reference parameter "fnct_elem_def". The assignment of properties is further explained in capability C076: assigning_product_properties.

A document is associated using template assigning_document assigned to Functional_element_definition using reference parameter "fnct_elem_def". The assignment of documents is further explained in capability C005: representing_documents.

Template: representing_functional_structure (Short name: repr_funct_structr)

This section specifies the template representing_functional_structure.

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 structure of elements in a functional breakdown.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_functional_structure". The text highlighted in blue shows the template parameters.
Templates in grey rectangles 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_functional_structure

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

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

Figure 2 —  The graphical representation of the representing_functional_structure template

Input parameters
The following input parameters are defined for this template:
rel_type_name (Default=Functional_element_usage,Type='CLASS')
The name of the class assigned to the Functional_element_usage.
The following classes and their sub-classes can be used:
classifications: "Functional_element_usage" (urn:plcs:rdl:std:Functional_element_usage)
rel_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @rel_type_name class.
parent (Type= 'ENTITY (Functional_element_definition)' )
The immediate parent Functional_element_definition in the breakdown structure.
child (Type= 'ENTITY (Functional_element_definition)' )
The immediate child Functional_element_definition in the breakdown structure.
Reference parameters
The following reference parameters are defined for this template:
usage(Type='ENTITY (Functional_element_usage)')
Allow the Functional_element_usage entity instantiated in this path to be referenced when this template is used.
Note: The Functional_element_usage entity can be referenced in a template path by:
%^target = $representing_functional_structure.usage%
where target is the parameter to which the Functional_element_usage is bound.
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.
-- Create Functional_element_usage instance
Functional_element_usage

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

-- instantiate relations to Functional_element_usage
Functional_element_usage.relating_view -> @parent
Functional_element_usage.related_view -> @child

-- Classify the relationship
/assigning_reference_data(
    class_name=@rel_type_name,
    ecl_id=@rel_ecl_id,
    items=^usage)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Functional_element_usage.id '/IGNORE' View_definition_relationship.id
Functional_element_usage.relation_type '/IGNORE' View_definition_relationship.relation_type
Functional_element_usage.description '/IGNORE' View_definition_relationship.description
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_functional_structure(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_functional_structure template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_functional_structure template

Figure 3 —  Entities instantiated by representing_functional_structure 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_functional_structure(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of representing_functional_structure template

Figure 4 —  Instantiation of representing_functional_structure template

Characterizations
The following section details how the representing_functional_structure 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.

The Functional_element_usage may be identified by assigning it an identifier through the use of template assigning_identification.

NOTE    Identification is described in C001: assigning_identifiers.

Characterization Assigning organization

NOTE   this characterization is optional.

An organization can be assigned in a given role, such as "creator" or "owner", to a relation between breakdown elements. This is represented by assigning the template assigning_organization to the Functional_element_usage. The role of the assignment is represented by classifying the assignment by the use of reference data.

NOTE    The assignment of an organization is described in the capability C016: representing_person_organization.

Characterization Assigning creation time

NOTE   this characterization is optional.

The time and date when the functional breakdown structure was created can be represented by assigning a date and time to the Functional_element_usage using the template assigning_time with the Date_time being classified as a type of "Date actual creation" (urn:plcs:rdl:std:Date actual creation).

NOTE    The assignment of dates is described the capability C036: assigning_date_time.

Characterization Assigning dated effectivity

NOTE   this characterization is optional.

The time period over which a functional element usage is effective can be set by using the template assigning_dated_effectivity.

NOTE    The use of effectivity is described in the capability: C006: assigning_effectivity.

Template: representing_system_breakdown (Short name: repr_sys_bkdn)

This section specifies the template representing_system_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 the decomposition of systems.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_system_breakdown". The text highlighted in blue shows the template parameters.
Templates within grey areas and templates with dashed outlines 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_system_breakdown

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

The graphic for the template to be used in other EXPRESS-G diagrams is shown in Figure  2 below.
Templates within grey areas and templates with dashed outlines are not included in the template, but may be used to further characterize the template.


Figure 2 —  The graphical representation of the representing_system_breakdown template

Figure 2 —  The graphical representation of the representing_system_breakdown template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the System_breakdown.
id_class_name (Default=Breakdown_name,Type='CLASS')
The name of the class used to classify the identification (Identification_assignment) of the system 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 class.
id_owner (Type='STRING')
The name or identifier of the organization that is responsible for naming or idenfying the system breakdown.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class used to classify the identification of the organization. For example, the organization might be identified using a CAGE code or using a 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 class
bkdn_type (Type='CLASS')
The name of the class used to classify the System_breakdown.
The following classes and their sub-classes can be used:
classifications: "System_breakdown" (urn:plcs:rdl:std:System_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 class.
vn_id (Default=Unknown,Type='STRING')
The identifier of the System_breakdown_version.
vn_id_class_name (Default=Version_identification_code,Type='CLASS')
The name of the class used to classify the identification (Identification_assignment) of the system 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 class.
vn_id_owner (Default=Unknown,Type='STRING')
The name or identifier of the organization responsible for identifying the system breakdown version.
vn_id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class used to classify the identification of the organization. For example, the organization might be identified using a CAGE code or using a 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 class
of_product (Type= 'ENTITY (Product_view_definition)' )
The product that is described in terms of its component systems.
Reference parameters
The following reference parameters are defined for this template:
sys_bkdn(Type='ENTITY (System_breakdown)')
Allow the System_breakdown entity instantiated in this path to be referenced when this template is used.
Note: The System_breakdown entity can be referenced in a template path by:
%^target = $representing_system_breakdown.sys_bkdn%
where target is the parameter to which the System_breakdown is bound.
sys_bkdn_vn(Type='ENTITY (System_breakdown_version)')
Allow the System_breakdown_version entity instantiated in this path to be referenced when this template is used.
Note: The System_breakdown_version entity can be referenced in a template path by:
%^target = $representing_system_breakdown.sys_bkdn_vn%
where target is the parameter to which the System_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_system_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 System_breakdown
Each instance of the entity (System_breakdown) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_system_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: sys_bkdn.
Unique constraint: External id class for System_breakdown_version
Each instance of the entity (System_breakdown_version) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_system_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: sys_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 Reading Capability Templates help section.
-- instantiate System_breakdown
System_breakdown
%^sys_bkdn = System_breakdown%
System_breakdown.id = '/IGNORE'
System_breakdown.name = '/IGNORE'
System_breakdown.description = '/IGNORE'

-- assign ID to System_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=^sys_bkdn)/

-- instantiate System_breakdown_version
System_breakdown_version
%^sys_bkdn_vn = System_breakdown_version%
System_breakdown_version.id = '/IGNORE'
System_breakdown_version.description = '/IGNORE'
System_breakdown_version.of_product -> System_breakdown

-- assign ID to System_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=^sys_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 -> System_breakdown_version
Breakdown_of.of_view -> @of_product

-- assign type of breakdown to the System_breakdown
/assigning_reference_data(
    items=System_breakdown,
    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
System_breakdown.id '/IGNORE' Product.id
System_breakdown.name '/IGNORE' Product.name
System_breakdown.description '/IGNORE' Product.description
System_breakdown_version.id '/IGNORE' Product_version.id
System_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_system_breakdown(id='System breakdown of the bike', 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='System_breakdown', bkdn_type_ecl_id='urn:plcs:rdl:sample', vn_id='A', vn_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='#46')/
(an illustration of the consolidated representing_system_breakdown template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_system_breakdown template

Figure 3 —  Entities instantiated by representing_system_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_system_breakdown(id='System breakdown of the bike', 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='System_breakdown', bkdn_type_ecl_id='urn:plcs:rdl:sample', vn_id='A', vn_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='#46')/


Figure 4 —  Instantiation of representing_system_breakdown template

Figure 4 —  Instantiation of representing_system_breakdown template

Characterizations
The following section details how the representing_system_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 are a few examples of such general characterizations. System_breakdowns and System_breakdown_versions can be characterized by:

Template: representing_system_element (Short name: repr_sys_elmnt)

This section specifies the template representing_system_element.

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 System_element (and its version and definition) in a breakdown.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_system_element". The text highlighted in blue shows the template parameters.
Templates within grey rectangles 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_system_element

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

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

Figure 2 —  The graphical representation of the representing_system_element template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the System_element.
id_class_name (Default=Breakdown_element_identification_code,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the system element.
The following classes and their sub-classes can be used:
classifications: "Breakdown_element_identification_code" (urn:plcs:rdl:std:Breakdown_element_identification_code), "Breakdown_element_name" (urn:plcs:rdl:std:Breakdown_element_name)
id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @id_class_name class.
id_owner (Type='STRING')
The name or identifier of the organization responsible for the id or name of the system element.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the the organization responsilbe for identifying the the system element. (e.g. "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)
id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @id_owner_class_name class.
vn_id (Default=Unknown,Type='STRING')
The identifier of the System_element_version.
vn_id_class_name (Default=Version_identification_code,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the system element version.
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 that stores the definition of the class referenced by the parameter @vn_id_class_name class.
vn_id_owner (Default=Unknown,Type='STRING')
The name or identifier of the organization responsible for the identification of the system element version.
vn_id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the the organization responsilbe for identifying the the system element version. (e.g. "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)
vn_id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @vn_id_owner_class_name class.
life_cycle_stage (Default=Support_stage,Type='CLASS')
A classification of the view definition context.
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage)
life_cycle_stage_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @life_cycle_stage class.
domain (Default=Product_life_cycle_support,Type='CLASS')
A classification of the view definition context.
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain)
domain_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @domain class.
sys_bkdn_vn (Type= 'ENTITY (System_breakdown_version)' )
The System_breakdown_version of which this System_element is a constituent.
Reference parameters
The following reference parameters are defined for this template:
sys_elem(Type='ENTITY (System_element)')
Allow the System_element entity instantiated in this path to be referenced when this template is used.
Note: The System_element entity can be referenced in a template path by:
%^target = $representing_system_element.sys_elem%
where target is the parameter to which the System_element is bound.
sys_elem_vn(Type='ENTITY (System_element_version)')
Allow the System_element_version entity instantiated in this path to be referenced when this template is used.
Note: The System_element_version entity can be referenced in a template path by:
%^target = $representing_system_element.sys_elem_vn%
where target is the parameter to which the System_element_version is bound.
sys_elem_def(Type='ENTITY (System_element_definition)')
Allow the System_element_definition entity instantiated in this path to be referenced when this template is used.
Note: The System_element_definition entity can be referenced in a template path by:
%^target = $representing_system_element.sys_elem_def%
where target is the parameter to which the System_element_definition is bound.
def_cntxt(Type='ENTITY (View_definition_context)')
Allow the View_definition_context entity instantiated in this path to be referenced when this template is used.
Note: The View_definition_context entity can be referenced in a template path by:
%^target = $representing_system_element.def_cntxt%
where target is the parameter to which the View_definition_context is bound.
sys_cntxt(Type='ENTITY (System_breakdown_context)')
Allow the System_breakdown_context entity instantiated in this path to be referenced when this template is used.
Note: The System_breakdown_context entity can be referenced in a template path by:
%^target = $representing_system_element.sys_cntxt%
where target is the parameter to which the System_breakdown_context is bound.
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.
-- instantiate System_element
System_element
%^sys_elem = System_element%
^sys_elem.id = '/IGNORE'
^sys_elem.name = '/IGNORE'
^sys_elem.description = '/IGNORE'

-- assign ID to System_element
/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=^sys_elem)/

-- instantiate System_element_version
System_element_version
%^sys_elem_vn = System_element_version%
^sys_elem_vn.id = '/IGNORE'
^sys_elem_vn.description = '/IGNORE'
^sys_elem_vn.of_product -> ^sys_elem

-- assign ID to System_element_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=^sys_elem_vn)/

-- instantiate System_element_definition
System_element_definition
%^sys_elem_def = System_element_definition%
^sys_elem_def.id = '/IGNORE'
^sys_elem_def.name = '/IGNORE'
^sys_elem_def.additional_characterization = '/IGNORE'
^sys_elem_def.defined_version -> ^sys_elem_vn

-- instantiate View_definition_context and bind it to the System_element_definition
^sys_elem_def.initial_context -> View_definition_context
View_definition_context.life_cycle_stage = '/IGNORE'
View_definition_context.application_domain = '/IGNORE'
View_definition_context.description = '/IGNORE'
%^def_cntxt = View_definition_context%

-- assign life_cycle_stage to the view_definition_context
/assigning_reference_data(
    items=View_definition_context,
    class_name=@life_cycle_stage,
    ecl_id=@life_cycle_stage_ecl_id)/

-- assign application_domain to the context
/assigning_reference_data(
    items=View_definition_context,
    class_name=@domain,
    ecl_id=@domain_ecl_id)/

-- instantiate System_breakdown_context to connect System_element_definition
-- to a System_version
System_breakdown_context
%^sys_cntxt = System_breakdown_context%
^sys_cntxt.id = '/IGNORE'
^sys_cntxt.name = '/IGNORE'
^sys_cntxt.description = '/IGNORE'
^sys_cntxt.breakdown_element -> ^sys_elem_def
^sys_cntxt.breakdown -> @sys_bkdn_vn
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
System_element.id '/IGNORE' Product.id
System_element.name '/IGNORE' Product.name
System_element.description '/IGNORE' Product.description
System_element_version.id '/IGNORE' Product_version.id
System_element_version.description '/IGNORE' Product_version.description
System_element_definition.id '/IGNORE' Product_view_definition.id
System_element_definition.name '/IGNORE' Product_view_definition.name
System_element_definition.additional_characterization '/IGNORE' Product_view_definition.additional_characterization
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.application_domain '/IGNORE'
View_definition_context.description '/IGNORE'
System_breakdown_context.id '/IGNORE' Breakdown_context.id
System_breakdown_context.name '/IGNORE' Breakdown_context.name
System_breakdown_context.description '/IGNORE' Breakdown_context.description
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_system_element(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_system_element template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_system_element template

Figure 3 —  Entities instantiated by representing_system_element 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_system_element(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of representing_system_element template

Figure 4 —  Instantiation of representing_system_element template

Characterizations
The following section details how the representing_system_element 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 classification or code

NOTE   this characterization is optional.

Classifications and codes may be assigned to a System_element through external reference data. See Figure 1 for an Express-G overview.

The classification of a System_element is represented using the template assigning_reference_data assigned to System_element.

A code for a Breakdown_element (e.g. "LCN number") is represented by using the template assigning_code assigned to System_element.

Characterization Assigning location

NOTE   this characterization is optional.

A location can be associated to a System_element or a System_element_version by using the template assigning_location. See Figure 1 for an Express-G overview.

The location may be expressed as a global location, an address-based location, an organization-based location, or as a location in a regional grid. See further Capability C049: assigning_location.

The assignment of the location (assigning_location) may be classified.

Characterization Assigning properties and documents

NOTE   this characterization is optional.

Properties and documents may be associated with a System_element_definition. See Figure 1 for an Express-G overview.

A property is associated using template assigning_product_property assigned to System_element_definition using reference parameter "sys_elem_def". The assignment of properties is further explained in capability C076: assigning_product_properties.

A document is associated using template assigning_document assigned to System_element_definition using reference parameter "sys_elem_def". The assignment of documents is further explained in capability C005: representing_documents.

Template: representing_system_structure (Short name: repr_sys_structr)

This section specifies the template representing_system_structure.

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 structure of elements in a system breakdown.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_system_structure". The text highlighted in blue shows the template parameters.
Templates in grey rectangles 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_system_structure

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

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

Figure 2 —  The graphical representation of the representing_system_structure template

Input parameters
The following input parameters are defined for this template:
rel_type_name (Default=System_element_usage,Type='CLASS')
The name of the class assigned to the System_element_usage.
The following classes and their sub-classes can be used:
classifications: "System_element_usage" (urn:plcs:rdl:std:System_element_usage)
rel_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @rel_type_name class.
parent (Type= 'ENTITY (System_element_definition)' )
The immediate parent System_element_definition in the breakdown structure.
child (Type= 'ENTITY (System_element_definition)' )
The immediate child System_element_definition in the breakdown structure.
Reference parameters
The following reference parameters are defined for this template:
usage(Type='ENTITY (System_element_usage)')
Allow the System_element_usage entity instantiated in this path to be referenced when this template is used.
Note: The System_element_usage entity can be referenced in a template path by:
%^target = $representing_system_structure.usage%
where target is the parameter to which the System_element_usage is bound.
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.
-- Create System_element_usage instance
System_element_usage

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

-- instantiate relations to System_element_usage
System_element_usage.relating_view -> @parent
System_element_usage.related_view -> @child

-- Classify the relationship
/assigning_reference_data(
    class_name=@rel_type_name,
    ecl_id=@rel_ecl_id,
    items=^usage)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
System_element_usage.id '/IGNORE' View_definition_relationship.id
System_element_usage.relation_type '/IGNORE' View_definition_relationship.relation_type
System_element_usage.description '/IGNORE' View_definition_relationship.description
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_system_structure(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_system_structure template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_system_structure template

Figure 3 —  Entities instantiated by representing_system_structure 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_system_structure(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of representing_system_structure template

Figure 4 —  Instantiation of representing_system_structure template

Characterizations
The following section details how the representing_system_structure 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.

The System_element_usage may be identified by assigning it an identifier through the use of template assigning_identification.

NOTE    Identification is described in C001: assigning_identifiers.

Characterization Assigning organization

NOTE   this characterization is optional.

An organization can be assigned in a given role, such as "creator" or "owner", to a relation between breakdown elements. This is represented by assigning the template assigning_organization to the System_element_usage. The role of the assignment is represented by classifying the assignment by the use of reference data.

NOTE    The assignment of an organization is described in the capability C016: representing_person_organization.

Characterization Assigning creation time

NOTE   this characterization is optional.

The time and date when the system breakdown structure was created can be represented by assigning a date and time to the System_element_usage using the template assigning_time with the Date_time being classified as a type of "Date actual creation" (urn:plcs:rdl:std:Date actual creation).

NOTE    The assignment of dates is described the capability C036: assigning_date_time.

Characterization Assigning dated effectivity

NOTE   this characterization is optional.

The time period over which a system element usage is effective can be set by using the template assigning_dated_effectivity.

NOTE    The use of effectivity is described in the capability: C006: assigning_effectivity.

Template: representing_zone_breakdown (Short name: rep_zone_bkdn)

This section specifies the template representing_zone_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 zonal decomposition.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_zone_breakdown". The text highlighted in blue shows the template parameters.
Templates within grey areas and templates with dashed outlines 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_zone_breakdown

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

The graphic for the template to be used in other EXPRESS-G diagrams is shown in Figure  2 below.
Templates within grey areas and templates with dashed outlines are not included in the template, but may be used to further characterize the template.


Figure 2 —  The graphical representation of the representing_zone_breakdown template

Figure 2 —  The graphical representation of the representing_zone_breakdown template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Zone_breakdown.
id_class_name (Default=Breakdown_name,Type='CLASS')
The name of the class used to classify the identification (Identification_assignment) of the zone 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 class.
id_owner (Type='STRING')
The name or identifier of the organization that is responsible for naming or identifying the zonal breakdown.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class used to classify the identification of the organization. For example, the organization might be identified using a CAGE code or using a 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 class
bkdn_type (Type='CLASS')
The name of the class used to classify the Zone_breakdown.
The following classes and their sub-classes can be used:
classifications: "Zone_breakdown" (urn:plcs:rdl:std:Zone_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 class.
vn_id (Default=Unknown,Type='STRING')
The identifier of the Zone_breakdown_version.
vn_id_class_name (Default=Version_identification_code,Type='CLASS')
The name of the class used to classify the identification (Identification_assignment) of the zonal 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 class.
vn_id_owner (Default=Unknown,Type='STRING')
The name or identifier of the organization responsible for identifying the zonal breakdown version.
vn_id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class used to classify the identification of the organization. For example, the organization might be identified using a CAGE code or using a 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 class
of_product (Type= 'ENTITY (Product_view_definition)' )
The product that is described in terms of its component zones.
Reference parameters
The following reference parameters are defined for this template:
zone_bkdn(Type='ENTITY (Zone_breakdown)')
Allow the Zone_breakdown entity instantiated in this path to be referenced when this template is used.
Note: The Zone_breakdown entity can be referenced in a template path by:
%^target = $representing_zone_breakdown.zone_bkdn%
where target is the parameter to which the Zone_breakdown is bound.
zone_bkdn_vn(Type='ENTITY (Zone_breakdown_version)')
Allow the Zone_breakdown_version entity instantiated in this path to be referenced when this template is used.
Note: The Zone_breakdown_version entity can be referenced in a template path by:
%^target = $representing_zone_breakdown.zone_bkdn_vn%
where target is the parameter to which the Zone_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_zone_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 Zone_breakdown
Each instance of the entity (Zone_breakdown) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_zone_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: zone_bkdn.
Unique constraint: External id class for Zone_breakdown_version
Each instance of the entity (Zone_breakdown_version) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_zone_breakdown) namely: id, id_owner, 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: zone_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 Reading Capability Templates help section.
-- instantiate Zone_breakdown
Zone_breakdown
%^zone_bkdn = Zone_breakdown%
Zone_breakdown.id = '/IGNORE'
Zone_breakdown.name = '/IGNORE'
Zone_breakdown.description = '/IGNORE'

-- assign ID to Zone_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=^zone_bkdn)/

-- instantiate Zone_breakdown_version
Zone_breakdown_version
%^zone_bkdn_vn = Zone_breakdown_version%
Zone_breakdown_version.id = '/IGNORE'
Zone_breakdown_version.description = '/IGNORE'
Zone_breakdown_version.of_product -> Zone_breakdown

-- assign ID to Zone_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=^zone_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 -> Zone_breakdown_version
Breakdown_of.of_view -> @of_product

-- assign type of breakdown to the Zone_breakdown
/assigning_reference_data(
    items=Zone_breakdown,
    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
Zone_breakdown.id '/IGNORE' Product.id
Zone_breakdown.name '/IGNORE' Product.name
Zone_breakdown.description '/IGNORE' Product.description
Zone_breakdown_version.id '/IGNORE' Product_version.id
Zone_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_zone_breakdown(id='Zone breakdown of the bike', 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='Zone_breakdown', bkdn_type_ecl_id='urn:plcs:rdl:sample', vn_id='A', vn_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='#46')/
(an illustration of the consolidated representing_zone_breakdown template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_zone_breakdown template

Figure 3 —  Entities instantiated by representing_zone_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_zone_breakdown(id='Zone breakdown of the bike', 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='Zone_breakdown', bkdn_type_ecl_id='urn:plcs:rdl:sample', vn_id='A', vn_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='#46')/


Figure 4 —  Instantiation of representing_zone_breakdown template

Figure 4 —  Instantiation of representing_zone_breakdown template

Characterizations
The following section details how the representing_zone_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 EXPRESS-G diagram in Figure 5 shows the possible characterizations of the template "representing_zone_breakdown".


Figure 5 —  Characterizations for representing_zone_breakdown template

Figure 5 —  Characterizations for representing_zone_breakdown 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 are a few examples of such general characterizations. Zone_breakdowns and Zone_breakdown_versions can be characterized by:

Characterization Assigning identifications

NOTE   this characterization is optional.

Identifications may be associated with a Breakdown_of by using the template assigning_identification. See Figure 5 for an Express-G overview.

Template: representing_zone_element (Short name: rep_zone_elmnt)

This section specifies the template representing_zone_element.

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 Zone_element (and its version and definition) in a breakdown.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_zone_element". The text highlighted in blue shows the template parameters.
Templates within grey rectangles 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_zone_element

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

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

Figure 2 —  The graphical representation of the representing_zone_element template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Zone_element.
id_class_name (Default=Breakdown_element_identification_code,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the zone element.
The following classes and their sub-classes can be used:
classifications: "Breakdown_element_identification_code" (urn:plcs:rdl:std:Breakdown_element_identification_code), "Breakdown_element_name" (urn:plcs:rdl:std:Breakdown_element_name)
id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @id_class_name class.
id_owner (Type='STRING')
The name or identifier of the organization responsible for the id or name of the zone element.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the the organization responsible for identifying the zone element. (e.g. "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)
id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @id_owner_class_name class.
vn_id (Default=Unknown,Type='STRING')
The identifier of the Zone_element_version.
vn_id_class_name (Default=Version_identification_code,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the zone element version.
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 that stores the definition of the class referenced by the parameter @vn_id_class_name class.
vn_id_owner (Default=Unknown,Type='STRING')
The name or identifier of the organization responsible for the identification of the zone element version.
vn_id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class assigned to the Identification_assignment that applies to the the organization responsible for identifying the zone element version. (e.g. "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)
vn_id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library that stores the @vn_id_owner_class_name class.
life_cycle_stage (Default=Support_stage,Type='CLASS')
A classification of the view definition context.
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage)
life_cycle_stage_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @life_cycle_stage class.
domain (Default=Product_life_cycle_support,Type='CLASS')
A classification of the view definition context.
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain)
domain_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @domain class.
zone_bkdn_vn (Type= 'ENTITY (Zone_breakdown_version)' )
The Zone_breakdown_version of which this Zone_element is a constituent.
Reference parameters
The following reference parameters are defined for this template:
zone_elem(Type='ENTITY (Zone_element)')
Allow the Zone_element entity instantiated in this path to be referenced when this template is used.
Note: The Zone_element entity can be referenced in a template path by:
%^target = $representing_zone_element.zone_elem%
where target is the parameter to which the Zone_element is bound.
zone_elem_vn(Type='ENTITY (Zone_element_version)')
Allow the Zone_element_version entity instantiated in this path to be referenced when this template is used.
Note: The Zone_element_version entity can be referenced in a template path by:
%^target = $representing_zone_element.zone_elem_vn%
where target is the parameter to which the Zone_element_version is bound.
zone_elem_def(Type='ENTITY (Zone_element_definition)')
Allow the Zone_element_definition entity instantiated in this path to be referenced when this template is used.
Note: The Zone_element_definition entity can be referenced in a template path by:
%^target = $representing_zone_element.zone_elem_def%
where target is the parameter to which the Zone_element_definition is bound.
def_cntxt(Type='ENTITY (View_definition_context)')
Allow the View_definition_context entity instantiated in this path to be referenced when this template is used.
Note: The View_definition_context entity can be referenced in a template path by:
%^target = $representing_zone_element.def_cntxt%
where target is the parameter to which the View_definition_context is bound.
zone_cntxt(Type='ENTITY (Zone_breakdown_context)')
Allow the Zone_breakdown_context entity instantiated in this path to be referenced when this template is used.
Note: The Zone_breakdown_context entity can be referenced in a template path by:
%^target = $representing_zone_element.zone_cntxt%
where target is the parameter to which the Zone_breakdown_context is bound.
Uniqueness constraints

The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique def_cntxt
Each instance of the entity (View_definition_context) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_zone_element) namely: life_cycle_stage, life_cycle_stage_ecl_id, domain, domain_ecl_id.
The instance is referenced by the following template parameter: def_cntxt.
Unique constraint: Unique zone_elem
Each instance of the entity (Zone_element) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_zone_element) 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: zone_elem.
Unique constraint: Unique zone_elem_def
Each instance of the entity (Zone_element_definition) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_zone_element) namely: id, id_class_name, id_ecl_id, id_owner, id_owner_class_name, id_owner_ecl_id, vn_id, vn_id_class_name, vn_id_ecl_id, vn_id_owner, vn_id_owner_class_name, vn_id_owner_ecl_id, life_cycle_stage, life_cycle_stage_ecl_id, domain, domain_ecl_id.
The instance is referenced by the following template parameter: zone_elem_def.
This rule means that there can be only one view definition (Zone_element_definition) of a version (Zone_element_version) with any given identifier, in the same View_definition_context) .
Unique constraint: Unique zone_elem_vn
Each instance of the entity (Zone_element_version) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_zone_element) namely: id, id_class_name, id_ecl_id, id_owner, id_owner_class_name, id_owner_ecl_id, 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: zone_elem_vn.
This rule means that there can be only one version (Zone_element_version) of a zone element (Zone_element) 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.
-- instantiate Zone_element
Zone_element
%^zone_elem = Zone_element%
^zone_elem.id = '/IGNORE'
^zone_elem.name = '/IGNORE'
^zone_elem.description = '/IGNORE'

-- assign ID to Zone_element
/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=^zone_elem)/

-- instantiate Zone_element_version
Zone_element_version
%^zone_elem_vn = Zone_element_version%
^zone_elem_vn.id = '/IGNORE'
^zone_elem_vn.description = '/IGNORE'
^zone_elem_vn.of_product -> ^zone_elem

-- assign ID to Zone_element_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=^zone_elem_vn)/

-- instantiate Zone_element_definition
Zone_element_definition
%^zone_elem_def = Zone_element_definition%
^zone_elem_def.id = '/IGNORE'
^zone_elem_def.name = '/IGNORE'
^zone_elem_def.additional_characterization = '/IGNORE'
^zone_elem_def.defined_version -> ^zone_elem_vn

-- instantiate View_definition_context and bind it to the Zone_element_definition
^zone_elem_def.initial_context -> View_definition_context
View_definition_context.life_cycle_stage = '/IGNORE'
View_definition_context.application_domain = '/IGNORE'
View_definition_context.description = '/IGNORE'
%^def_cntxt = View_definition_context%

-- assign life_cycle_stage to the view_definition_context
/assigning_reference_data(
    items=View_definition_context,
    class_name=@life_cycle_stage,
    ecl_id=@life_cycle_stage_ecl_id)/

-- assign application_domain to the context
/assigning_reference_data(
    items=View_definition_context,
    class_name=@domain,
    ecl_id=@domain_ecl_id)/

-- instantiate zone_breakdown_context to connect zone_element_definition
-- to a zone_version
Zone_breakdown_context
%^zone_cntxt = Zone_breakdown_context%
^zone_cntxt.id = '/IGNORE'
^zone_cntxt.name = '/IGNORE'
^zone_cntxt.description = '/IGNORE'
^zone_cntxt.breakdown_element -> ^zone_elem_def
^zone_cntxt.breakdown -> @zone_bkdn_vn
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Zone_element.id '/IGNORE' Product.id
Zone_element.name '/IGNORE' Product.name
Zone_element.description '/IGNORE' Product.description
Zone_element_version.id '/IGNORE' Product_version.id
Zone_element_version.description '/IGNORE' Product_version.description
Zone_element_definition.id '/IGNORE' Product_view_definition.id
Zone_element_definition.name '/IGNORE' Product_view_definition.name
Zone_element_definition.additional_characterization '/IGNORE' Product_view_definition.additional_characterization
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.application_domain '/IGNORE'
View_definition_context.description '/IGNORE'
Zone_breakdown_context.id '/IGNORE' Breakdown_context.id
Zone_breakdown_context.name '/IGNORE' Breakdown_context.name
Zone_breakdown_context.description '/IGNORE' Breakdown_context.description
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_zone_element(id='Engine compartment', id_class_name='Breakdown_element_idnetification_code', id_ecl_id='urn:plcs:rdl:std', id_owner='Motorcycle Manufacturers Ltd', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', vn_id='B', vn_id_class_name='Version_identification_code', vn_id_ecl_id='urn:plcs:rdl:std', vn_id_owner='Motorcycle Manufacturers Ltd', vn_id_owner_class_name='Organization_name', vn_id_owner_ecl_id='urn:plcs:rdl:std', life_cycle_stage='Support_stage', life_cycle_stage_ecl_id='urn:plcs:rdl:std', domain='Maintenance', domain_ecl_id='urn:plcs:rdl:std', phys_bkdn_vn='#52')/
(an illustration of the consolidated representing_zone_element template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_zone_element template

Figure 3 —  Entities instantiated by representing_zone_element 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_zone_element(id='Engine compartment', id_class_name='Breakdown_element_idnetification_code', id_ecl_id='urn:plcs:rdl:std', id_owner='Motorcycle Manufacturers Ltd', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', vn_id='B', vn_id_class_name='Version_identification_code', vn_id_ecl_id='urn:plcs:rdl:std', vn_id_owner='Motorcycle Manufacturers Ltd', vn_id_owner_class_name='Organization_name', vn_id_owner_ecl_id='urn:plcs:rdl:std', life_cycle_stage='Support_stage', life_cycle_stage_ecl_id='urn:plcs:rdl:std', domain='Maintenance', domain_ecl_id='urn:plcs:rdl:std', phys_bkdn_vn='#52')/


Figure 4 —  Instantiation of representing_zone_element template

Figure 4 —  Instantiation of representing_zone_element template

Characterizations
The following section details how the representing_zone_element 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 EXPRESS-G diagram in Figure 5 shows the possible characterizations of the template "representing_zone_element".


Figure 5 —  Characterizations for representing_zone_breakdown template

Figure 5 —  Characterizations for representing_zone_breakdown template

The following characterizations may apply:
Characterization Assigning classification or code

NOTE   this characterization is optional.

Classifications and codes may be assigned to a Zone_element through external reference data. See Figure 5 for an Express-G overview.

The classification of a Zone_element is represented using the template assigning_reference_data assigned to Zone_element.

A code for a Breakdown_element (e.g. "LCN number") is represented by using the template assigning_code assigned to Zone_element.

Characterization Assigning location

NOTE   this characterization is optional.

A location can be associated to a Zone_element or a Zone_element_version by using the template assigning_location. See Figure 5 for an Express-G overview.

The location may be expressed as a global location, an address-based location, an organization-based location, or as a location in a regional grid. See further Capability C049: assigning_location.

The assignment of the location (assigning_location) may be classified.

Characterization Assigning properties and documents

NOTE   this characterization is optional.

Properties and documents may be associated with a Zone_element_definition. See Figure 5 for an Express-G overview.

A property is associated using template assigning_product_property assigned to Zone_element_definition using reference parameter "zone_elem_def". The assignment of properties is further explained in capability C076: assigning_product_properties.

A document is associated using template assigning_document assigned to Zone_element_definition using reference parameter "zone_elem_def". The assignment of documents is further explained in capability C005: representing_documents.

Characterization Assigning identifications

NOTE   this characterization is optional.

Identifications may be associated with a Zone_element, a Zone_element_definition and a Zone_breakdown_context by using the template assigning_identification. . See Figure 5 for an Express-G overview.

Template: representing_zone_structure (Short name: rep_zone_structr)

This section specifies the template representing_zone_structure.

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 relationships between elements in a zonal breakdown.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_zone_structure". The text highlighted in blue shows the template parameters.
Templates in grey rectangles 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_zone_structure

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

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

Figure 2 —  The graphical representation of the representing_zone_structure template

Input parameters
The following input parameters are defined for this template:
rel_type_name (Default=Zone_element_usage,Type='CLASS')
The name of the class assigned to the Zone_element_usage.
The following classes and their sub-classes can be used:
classifications: "Zone_element_usage" (urn:plcs:rdl:std:Zone_element_usage)
rel_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library that stores the definition of the class referenced by the parameter @rel_type_name class.
parent (Type= 'ENTITY (Zone_element_definition)' )
The immediate parent Zone_element_definition in the breakdown structure.
child (Type= 'ENTITY (Zone_element_definition)' )
The immediate child Zone_element_definition in the breakdown structure.
Reference parameters
The following reference parameters are defined for this template:
usage(Type='ENTITY (Zone_element_usage)')
Allow the Zone_element_usage entity instantiated in this path to be referenced when this template is used.
Note: The Zone_element_usage entity can be referenced in a template path by:
%^target = $representing_zone_structure.usage%
where target is the parameter to which the Zone_element_usage is bound.
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.
-- Create Zone_element_usage instance
Zone_element_usage

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

-- instantiate relations to Zone_element_usage
Zone_element_usage.relating_view -> @parent
Zone_element_usage.related_view -> @child

-- Classify the relationship
/assigning_reference_data(
    class_name=@rel_type_name,
    ecl_id=@rel_ecl_id,
    items=^usage)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Zone_element_usage.id '/IGNORE' View_definition_relationship.id
Zone_element_usage.name '/IGNORE' Breakdown_element_usage.name
Zone_element_usage.relation_type '/IGNORE' View_definition_relationship.relation_type
Zone_element_usage.description '/IGNORE' View_definition_relationship.description
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_zone_structure(parent='#6', child='#58', rel_type_name='Breakdown_element_usage', rel_ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_zone_structure template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_zone_structure template

Figure 3 —  Entities instantiated by representing_zone_structure 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_zone_structure(parent='#6', child='#58', rel_type_name='Breakdown_element_usage', rel_ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of representing_zone_structure template

Figure 4 —  Instantiation of representing_zone_structure template

Characterizations
The following section details how the representing_zone_structure 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 EXPRESS-G diagram in Figure 5 shows the possible characterizations of the template "representing_zone_structure".


Figure 5 —  Characterizations for representing_zone_breakdown template

Figure 5 —  Characterizations for representing_zone_breakdown template

The following characterizations may apply:
Characterization Assigning identification

NOTE   this characterization is optional.

The Zone_element_usage may be identified by assigning it an identifier through the use of template assigning_identification.

NOTE    Identification is described in C001: assigning_identifiers.

Characterization Assigning organization

NOTE   this characterization is optional.

An organization can be assigned in a given role, such as "creator" or "owner", to a relation between breakdown elements. This is represented by assigning the template assigning_organization to the Zone_element_usage. The role of the assignment is represented by classifying the assignment by the use of reference data.

NOTE    The assignment of an organization is described in the capability C016: representing_person_organization.

Characterization Assigning creation time

NOTE   this characterization is optional.

The time and date when the zone breakdown structure was created can be represented by assigning a date and time to the Zone_element_usage using the template assigning_time with the Date_time being classified as a type of "Date actual creation" (urn:plcs:rdl:std:Date actual creation).

NOTE    The assignment of dates is described the capability C036: assigning_date_time.

Characterization Assigning dated effectivity

NOTE   this characterization is optional.

The time period over which a zone element usage is effective can be set by using the template assigning_dated_effectivity.

NOTE    The use of effectivity is described in the capability: C006: assigning_effectivity.

Template: assigning_zone (Short name: asg_zone)

This section specifies the template assigning_zone.

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 an association the between an item and a the zone its in.

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


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

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

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

Figure 2 —  The graphical representation of the assigning_zone template

Input parameters
The following input parameters are defined for this template:
zone (Type= 'ENTITY (Zone_element_definition)' )
The zone (Zone_element_definition) to which the @item is related.
item (Type= 'SELECT (in_zone_item)' )
The entity which relates to the @zone.
Reference parameters
The following reference parameters are defined for this template:
in_zone(Type='ENTITY (In_zone)')
Allow the In_zone entity instantiated in this path to be referenced when this template is used.
Note: The In_zone entity can be referenced in a template path by:
%^target = $assigning_zone.in_zone%
where target is the parameter to which the In_zone is bound.
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.
In_zone

-- Mark the In_zone entity as
-- referable when this template is used by binding it to the reference
-- parameter ^in_zone
%^in_zone = In_zone%
^in_zone.id = '/IGNORE'
^in_zone.name = '/IGNORE'
^in_zone.description = '/IGNORE'
^in_zone.located_item -> @item
^in_zone.zone -> @zone
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
In_zone.id '/IGNORE'
In_zone.name '/IGNORE'
In_zone.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:
/assigning_zone(item='#2', zone='#48')/
(an illustration of the consolidated assigning_zone template is shown in Figure 4 below.)

NOTE    The input parameter zone = '#48' refers to the Zone_element_definition entity instantiated in the template representing_zone_element.



Figure 3 —  Entities instantiated by assigning_zone template

Figure 3 —  Entities instantiated by assigning_zone template

The instance model in STEP ASCII exchange file format (ISO 10303 Part 21 syntax) is:
#2 = PART_VIEW_DEFINITION('/IGNORE','/IGNORE','/IGNORE',#3,(),#4); #1 = IN_ZONE('/IGNORE','/IGNORE','/IGNORE',#2,#48); #48 = ZONE_ELEMENT_DEFINITION('/IGNORE','/IGNORE','/IGNORE',#49,(),#26);
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:
/assigning_zone(item='#2', zone='#48')/

NOTE    The input parameter zone = '#48' refers to the Zone_element_definition entity instantiated in the template representing_zone_element.



Figure 4 —  Instantiation of assigning_zone template

Figure 4 —  Instantiation of assigning_zone template

Characterizations
No common characterizations of the template assigning_zone have been identified. However, the ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
Template: referencing_zone_element (Short name: ref_zone_elmnt)

This section specifies the template referencing_zone_element.

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 @@@@

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

[warning:]Error model_diag_1: Either delete A DESCRIPTION OF THE DIAGRAM or provide a description
A DESCRIPTION OF THE DIAGRAM


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

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

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

[warning:]Error model_diag_1: Either delete A DESCRIPTION OF THE DIAGRAM or provide a description
A DESCRIPTION OF THE DIAGRAM


Figure 2 —  The graphical representation of the referencing_zone_element template

Figure 2 —  The graphical representation of the referencing_zone_element template

Input parameters
The following input parameters are defined for this template:
class_name (Type='CLASS')
THE DESCRIPTION OF THE INPUT PARAMETER
The following classes and their sub-classes can be used:
classifications: "PLCS-ARM-LF-THING" (urn:plcs:rdl:std:PLCS-ARM-LF-THING)
Reference parameters
The following reference parameters are defined for this template:
ext_class(Type='ENTITY (External_class)')
Allow the External_class entity instantiated in this path to be referenced when this template is used.
Note: The External_class entity can be referenced in a template path by:
%^target = $referencing_zone_element.ext_class%
where target is the parameter to which the External_class is bound.
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.
Identification_assignment

-- Mark the Identification_assignment entity as
-- referable when this template is used by binding it to the reference
-- parameter id_assgn
%^id_assgn = Identification_assignment%

[warning:]Error P8: the template referencing_zone_element does not have a parameter name [id].
Identification_assignment.identifier = @id
Identification_assignment.role = '/IGNORE'
Identification_assignment.description = '/NULL'

[warning:]Error P4: the template referencing_zone_element does not have a parameter name [items].
Identification_assignment.items -> @items

-- provide the role of the identification by classifying the Identification_assignment
/assigning_reference_data(
    items=^id_assgn,
    class_name=@id_class_name,
    ecl_id=@id_ecl_id)/

[warning:]Error t3: the template referencing_zone_element does not have a parameter name [id_class_name]. Parameters are: class_name items class_name ecl_id

[warning:]Error t3: the template referencing_zone_element does not have a parameter name [id_ecl_id]. Parameters are: class_name items class_name ecl_id

-- assign an organization to the identifier and classify it as 'Owner_of'
/assigning_organization(
    items=^id_assgn,
    org_id=@org_id,
    org_id_class_name=@org_id_class_name,
    org_id_ecl_id=@org_id_ecl_id,
    org_assgn_class_name='Owner_of',
    org_assgn_ecl_id='http://www.plcsinc.org/plcs-proposed')/

[warning:]Error t3: the template referencing_zone_element does not have a parameter name [org_id]. Parameters are: class_name items class_name ecl_id

[warning:]Error t3: the template referencing_zone_element does not have a parameter name [org_id_class_name]. Parameters are: class_name items class_name ecl_id

[warning:]Error t3: the template referencing_zone_element does not have a parameter name [org_id_ecl_id]. Parameters are: class_name items class_name ecl_id
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Identification_assignment.identifier @id
Identification_assignment.role '/IGNORE'
Identification_assignment.description '/NULL'
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/referencing_zone_element(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated referencing_zone_element template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by referencing_zone_element template

Figure 3 —  Entities instantiated by referencing_zone_element template

The instance model in STEP ASCII exchange file format (ISO 10303 Part 21 syntax) is:
#1 = TASK_METHOD($,$,$,$,()); #2 = EXTERNAL_CLASS('/IGNORE','Safety_critical',$,#3); #3 = EXTERNAL_CLASS_LIBRARY('urn:plcs:rdl:std',$); #4 = CLASSIFICATION_ASSIGNMENT(#2,(#1),'/IGNORE');
The instance model in STEP XML exchange file format (ISO 10303 Part 28 ed.2 syntax) is:
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_zone_element(items='#1', class_name='Safety_critical', ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of referencing_zone_element template

Figure 4 —  Instantiation of referencing_zone_element template

Characterizations
The following section details how the referencing_zone_element 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 date

NOTE   this characterization is optional.

The date when the Work_order and the Directed_activity was issued can be represented by assigning a date (using the relationship Date_or_date_time_assignment) to the Work_order and the Directed_activity using the assigning_calendar_date template with the Date_time being classified as a type of "Date actual release" (urn:plcs:rdl:std:Date actual release).

NOTE    The assignment of dates is described the capability C036: assigning_date_time.

Related capabilities

This capability "Representing a Breakdown Structure" is related to the following capabilities:

Dependent capabilities

This capability "Representing a Breakdown Structure" is dependent on the following capabilities:

Model reference data

The following classes of reference data are required for this capability:

Date_actual_creation(urn:plcs:rdl:std:Date_actual_creation)
A Date_actual_creation is a Date_actual that classifies the associated assigned_date as being that on which the associated items were created.
Date_actual_release(urn:plcs:rdl:std:Date_actual_release)
A Date_actual_release is a Date_actual that classifies the associated assigned_date as being that on which the associated items were released.
[Date_actual_for_discontinuation]
[warning:]Error RDL1: The class Date_actual_for_discontinuation does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
Date_planned_creation(urn:plcs:rdl:std:Date_planned_creation)
A Date_planned_creation is a Date_planned that classifies the associated assigned_date as being that on which the associated items are planned to be created.
Date_planned_release(urn:plcs:rdl:std:Date_planned_release)
A Date_planned_release is a Date_planned that classifies the associated assigned_date as being that on which the associated items are planned to be released.
[Date_planned_for_discontinuation]
[warning:]Error RDL1: The class Date_planned_for_discontinuation does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml

© OASIS 2010 — All rights reserved