Capability (C003):— representing_assembly_structure Date: 2007/06/22 12:22:09
Revision: 1.28

Capability EXPRESS information model

This section describes the EXPRESS information model for the capability.

From module : assembly_structure - using all


Assembly_component_relationship

An Assembly_component_relationship is a type of View_definition_usage. It identifies a possibly quantified usage of a product version as a component of another product version.

The relationship is established between two instances of Product_view_definition.

The inherited attribute relating_view identifies the Product_view_definition of the assembly.

The inherited attribute related_view identifies the Product_view_definition of the product version that plays the role of component.

The Assembly_component_relationship specifies that, in the initial_context of the Product_view_definition that is referred to as relating_view, it is considered that the product version that is indirectly identified with the related_view attribute, is a component of the product version that is indirectly identified with the relating_view attribute.

NOTE 1   In another context, the structure of the assembly may be described differently, adding, for example, an intermediate level between the products.

NOTE 2   This entity data type may be used to establish assembly relationships during design or to represent the composition of an assembly existing in the real world.

NOTE 3   An Assembly_component_relationship identifies an item in a parts list. Should the quantity be zero, the component would still be listed in the parts list.

In case the component is a part, the following additional specifications apply:

In case the component is a non-countable material, the following additional specifications apply:

EXAMPLE    An assembly may require inclusion of ten grams of grease.

NOTE 4   This version of the Assembly structure module does not enable to represent the fact that the quantity of a fluid component is, for example 'at most 10 grams' or 'between 5 or 20 grams'. However, some ISO 10303 application protocols, for example ISO 10303-214, provide a representation for those requirements.

An Assembly_component_relationship shall be either a Next_assembly_usage, a or a Component_upper_level_identification.


ENTITY Assembly_component_relationship
  ABSTRACT SUPERTYPE OF (ONEOF (Next_assembly_usage,
                                Promissory_usage,
                                Component_upper_level_identification))
  SUBTYPE OF (View_definition_usage);
  quantity : OPTIONAL Value_with_unit;
  location_indicator : OPTIONAL STRING;
WHERE
  WR1: NOT(EXISTS(quantity)) OR ((NOT ('NUMBER' IN TYPEOF(quantity.value_component))) XOR (quantity.value_component > 0));
END_ENTITY;

quantity: the Value_with_unit that defines the amount of this usage of the component in the assembly. The value of this attribute need not be specified.

location_indicator: the text that identifies this usage of the component in the assembly in a diagram, list, chart, or on a physical piece of equipment. The value of this attribute need not be specified.


Next_assembly_usage

A Next_assembly_usage is a type of Assembly_component_relationship. It establishes a relationship between a component and its immediate parent assembly in a product structure.


ENTITY Next_assembly_usage
  SUBTYPE OF (Assembly_component_relationship);
END_ENTITY;


Promissory_usage

A Promissory_usage is a type of Assembly_component_relationship. It establishes a relationship between an assembly and a component, regardless of the number of intermediate levels between them, which may be established with instances of Next_assembly_usage.

NOTE    A Promissory_usage may be used when the product structure is not completely defined, to capture the intent that the constituent will be used in that assembly.


ENTITY Promissory_usage
  SUBTYPE OF (Assembly_component_relationship);
END_ENTITY;


Component_upper_level_identification

A Component_upper_level_identification is a type of Assembly_component_relationship. It identifies a component of an assembly with respect to an upper level in the assembly structure.

NOTE    A Component_upper_level_identification does not add a component in an assembly, it provides a means to further characterize a component with respect to an upper level assembly.

EXAMPLE    A Component_upper_level_identification may be used to assign a property to a component that applies in the context of a particular upper level assembly.

The identified component is the version of product, indirectly referred to as the related_view of the sub_assembly_relationship.

The upper level assembly is the version of product, indirectly referred to as the relating_view of the upper_assembly_relationship.


ENTITY Component_upper_level_identification
  SUBTYPE OF (Assembly_component_relationship);
  upper_assembly_relationship : Assembly_component_relationship;
  sub_assembly_relationship : Next_assembly_usage;
UNIQUE
  UR1: upper_assembly_relationship, sub_assembly_relationship;
WHERE
  WR1: SELF :<>: upper_assembly_relationship ;
  WR2: SELF\View_definition_relationship.relating_view :=: upper_assembly_relationship\View_definition_relationship.relating_view;
  WR3: SELF\View_definition_relationship.related_view :=: sub_assembly_relationship\View_definition_relationship.related_view;
  WR4: (upper_assembly_relationship\View_definition_relationship.related_view :=: sub_assembly_relationship\View_definition_relationship.relating_view) OR (SIZEOF (QUERY (pdr <* USEDIN (upper_assembly_relationship\View_definition_relationship.related_view , 'PRODUCT_VIEW_DEFINITION_RELATIONSHIP_ARM.VIEW_DEFINITION_RELATIONSHIP.RELATED_VIEW') | pdr.relating_view :=: sub_assembly_relationship\View_definition_relationship.relating_view)) = 1);
  WR5: SIZEOF (['ASSEMBLY_STRUCTURE_ARM.NEXT_ASSEMBLY_USAGE', 'ASSEMBLY_STRUCTURE_ARM.COMPONENT_UPPER_LEVEL_IDENTIFICATION'] * TYPEOF(upper_assembly_relationship)) = 1;
END_ENTITY;

upper_assembly_relationship: the Assembly_component_relationship that identifies indirectly the upper level assembly in the context of which the component is identified.

sub_assembly_relationship: the Next_assembly_usage that identifies indirectly the component that is further characterized by the Component_upper_level_identification.

From module : product_structure - using all



TYPE ps_product_property_assignment = SELECT BASED_ON property_assignment_select WITH
   (View_definition_relationship);
END_TYPE;


Alternate_part_relationship

An Alternate_part_relationship is a type of alternate_product_relationship where the alternate and base products are parts.


ENTITY Alternate_part_relationship
  SUBTYPE OF (Alternate_product_relationship);
  SELF\Alternate_product_relationship.alternate_product : Part;
  SELF\Alternate_product_relationship.base_product : Part;
END_ENTITY;

alternate_product: the Part that may replace in all its usages, the base part.

base_product: the Part for which an alternate is specified.

From module : part_definition_relationship - using all


Make_from_relationship

A Make_from_relationship is a type of View_definition_usage established between two instances of Part_view_definition. It specifies that, in the context of the definition of the relating part version, the relating part version is considered as resulting from the manufacturing transformation of the related part version.

NOTE 1   The related part version may identify a raw material or a semi-finished part.

NOTE 2   The characteization of the process of transformation from the related part version to the relating part version it out of the scope of this application module.


ENTITY Make_from_relationship
  SUBTYPE OF (View_definition_usage);
  SELF\View_definition_relationship.relating_view : Part_view_definition;
  SELF\View_definition_relationship.related_view : Part_view_definition;
  quantity : OPTIONAL Value_with_unit;
  priority : OPTIONAL INTEGER;
WHERE
  WR1: SELF\View_definition_relationship.relating_view :<>: SELF\View_definition_relationship.related_view ;
  WR2: NOT(EXISTS(quantity)) XOR ((NOT ('NUMBER' IN TYPEOF(quantity.value_component))) XOR (quantity.value_component > 0));
END_ENTITY;

relating_view: the instance of Part_view_definition that specifies a definition of the part version that results from the manufacturing transformation.

related_view: the instance of Part_view_definition that specifies a definition of the part version that is the input of the manufacturing transformation.

quantity: the Value_with_unit that specifies the amount of the related part version that is used to produce the relating part version. The value of this attribute need not be specified. The quantity is specified when the related part version is a countable material. If the value is absent , it shall be considered that one occurrence of the related part version is used to produce the relating part version.

priority: an integer that ranks the preference for use of the related part version among all instances of Make_from_relationship that have the same value for the inherited relating_view attribute. This value is an integer that only has meaning when comparing it with corresponding values for Make_from_relationship sharing the same relating_view. It is a relative ranking value, not an absolute ranking. A lower value indicates a higher preference for the related_view, and a higher value indicates a lower preference. The value of this attribute need not be specified.

From module : product_view_definition - using all


Product_view_definition

A Product_view_definition is a characterization of a Product_version, relevant in one or more application domains and for one or more life cycle stages.

A Product_view_definition is a collector of the properties that characterize the Product_version in the initial_context and additional_contexts.

EXAMPLE 1   The design of the SS Titanic and the as-built description of the SS Titanic can be represented as two instances of Product_view_definition.


ENTITY Product_view_definition;
  id : STRING;
  name : OPTIONAL STRING;
  additional_characterization : OPTIONAL STRING;
  initial_context : View_definition_context;
  additional_contexts : SET[0:?] OF View_definition_context;
  defined_version : Product_version;
WHERE
  WR1: NOT (initial_context IN additional_contexts);
END_ENTITY;

id:

the identifier that distinguishes the Product_view_definition.

NOTE    The value of this attribute may be an empty string.

name:

the words by which the Product_view_definition is known. The value of this attribute need not be specified.

NOTE 1   This attribute is mapped onto description for compatibility with pre-existing application protocols.

additional_characterization:

the text that provides further information about the Product_view_definition. The value of this attribute need not be specified.

NOTE 2   This attribute may be used to precise the kind of definition.

EXAMPLE 2   In case the Product_view_definition characterizes a mating, this attribute may identify the kind of mating. 'clipping', 'welding' are examples of additional_characterization for a mating definition.

initial_context: the View_definition_context in which the defined_version has been primarily characterized by the Product_view_definition .

additional_contexts: the set of instances of View_definition_context in which this Product_view_definition is also relevant.

defined_version: the Product_version of which the Product_view_definition provides a characterization.


View_definition_context

A View_definition_context is the grouping of an application domain and a life cycle stage. It identifies a universe of discourse suitable for the description of products.

NOTE    Requirements and vocabularies vary among the industrial activity fields. This entity intends to identify such a domain.


ENTITY View_definition_context;
  application_domain : STRING;
  life_cycle_stage : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

application_domain:

the text that identifies the application context that bounds the universe of discourse.

EXAMPLE 1   'assembly study', 'digital mock-up', 'electrical design', 'mechanical design', 'preliminary design', 'process planning' are examples of application domains

If application_domain is an empty string, the View_definition_context shall be considered as not specific of any application domain.

life_cycle_stage:

the text that identifies a stage in the life cycle of a product.

EXAMPLE 2   'design phase', 'production', 'recycling phase' are examples of life cycle stages.

If life_cycle_stage is an empty string, the View_definition_context shall be considered as not specific of any life cycle stage.

description: the text that provides further information about the View_definition_context. The value of this attribute need not be specified.

From module : part_view_definition - using all


Part_view_definition

A Part_view_definition is a type of Product_view_definition that defines a characterization view of a version of a Part.


ENTITY Part_view_definition
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Part_version;
END_ENTITY;

defined_version: the Part_version of which the Part_view_definition defines a view.

From module : product_view_definition_relationship - using all


View_definition_relationship

A View_definition_relationship is an association between two instances of Product_view_definition.

This association represents a relationship between the product versions, indirectly identified by the instances of Product_view_definition, relevant in the definition contexts of the related instances of Product_view_definition.


ENTITY View_definition_relationship;
  id : OPTIONAL STRING;
  relation_type : OPTIONAL STRING;
  description : OPTIONAL STRING;
  relating_view : Product_view_definition;
  related_view : Product_view_definition;
END_ENTITY;

id: the identifier for the View_definition_relationship. The value of this attribute need not be specified.

relation_type: the meaning of the relationship. The value of this attribute need not be specified. In particular, this attribute is not required in subtypes of this entity.

description: the text that provides further information about the View_definition_relationship. The value of this attribute need not be specified.

relating_view: one of the instances of Product_view_definition that is a part of the relationship.

related_view: the other instance of Product_view_definition that is part of the relationship. If one element of the relationship is dependent upon the other, this attribute shall be the dependent one.


View_definition_usage

A View_definition_usage is a type of View_definition_relationship that specifies a directed association between two instances of Product_view_definition.

This association represents a relationship stating that, in the definition contexts of the related instances of Product_view_definition, it is considered that the related product is used in the context of the relating product.


ENTITY View_definition_usage
  SUBTYPE OF (View_definition_relationship);
END_ENTITY;

From module : product_version_relationship - using all


Product_version_relationship

A Product_version_relationship is an association between two versions of Product.

NOTE    A relationship may exist between Product_version of different Products or between different versions of the same Product.


ENTITY Product_version_relationship;
  relation_type : STRING;
  description : OPTIONAL STRING;
  relating_version : Product_version;
  related_version : Product_version;
WHERE
  WR1: relating_version :<>: related_version;
END_ENTITY;

relation_type:

the string that specifies the meaning of the Product_version_relationship.

Where applicable, the following values shall be used:

description: the text that provides further information about the Product_version_relationship. The value of this attribute need not be specified.

relating_version: the first instance of Product_version that is a part of the relationship.

related_version: the other instance of Product_version that is a part of the relationship. If one element of the relationship is dependent up on the other, this attribute shall be the dependent one.


Supplied_part_relationship

A Supplied_part_relationship is a type of Product_version_relationship that relates two instances of Product_version that represent the same object in different organizational contexts.

One of the organizations is the supplier of the object to the other organization.

This entity is applicable for part versions and document versions.

NOTE 1   This entity enables to represent the fact that two organizations may use distinct identifiers to identify their Products and their versions.

NOTE 2   This mechanism can only be used in an information system or in exchange files where the content of the id attribute of instances of Product is not constrained by a particular identification scheme.

NOTE 3   The module Alias identification provides a more general mechanism that can be used to track alias identifiers for any entity data type that has a id attribute.


ENTITY Supplied_part_relationship
  SUBTYPE OF (Product_version_relationship);
WHERE
  WR1: SELF\Product_version_relationship.relation_type IN ['supplied item', 'supplied document'];
END_ENTITY;

From module : product_replacement - using all


Alternate_product_relationship

An Alternate_product_relationship is an association between two instances of Product. It specifies that any version of the alternate_product, may be used in place of any version of the base_product.

The relationship established by the Alternate_product_relationship is not symmetric: if B is an alternate product for A, A is not implied to be an alternate product for B.

NOTE 1   If a product is an alternate for another product, it is understood that there is no interest to keep track of which product, the base or any alternates specified, is used as a particular instance of the base product within a product structure.

NOTE 2   An organization may track design changes for a base part, and establish effectivity conditions for the use of that base part in various assemblies to be manufactured. The use of an alternate product implies that an organization does not specify any particular version of the alternate product nor establish effectivities relating to it.

NOTE 3   An Alternate_product_relationship may relate products of any kind, provided both related instances of Product identify products of the same kind, for example part-part or document-document.

NOTE 4   An Alternate_product_relationship for which the base_product is an assembly involves that the entire product structure of the alternate_product may be used in place of the base_product and its product structure.

EXAMPLE    Two bolts of the same size are products. One bolt has a square head and the other has a hexagonal head. The two bolts are considered equivalent with respect to form, fit, and function: they both have sufficiently close physical shape, they take up the same space when used, and they both serve to fasten two things together. Thus, one of these two bolts could be considered to be an alternate part for the other bolt.


ENTITY Alternate_product_relationship;
  name : OPTIONAL STRING;
  description : OPTIONAL STRING;
  alternate_product : Product;
  base_product : Product;
  criteria : STRING;
UNIQUE
  UR1: alternate_product, base_product;
WHERE
  WR1: alternate_product :<>: base_product ;
END_ENTITY;

name: the words by which the Alternate_product_relationship is known. The value of the attribute need not be specified.

description: the text that provides further information about the Alternate_product_relationship. The value of the attribute need not be specified.

alternate_product: the Product that may be used in place of the base_product.

base_product: the Product that may be replaced.

criteria:

a text description that specifies the rationale and criteria used to assess the capability of replacing the base_product by the alternate_product.

EXAMPLE    The concept of alternate products usually refers to form, fit, function, and quality. Additional properties such as performance, noise, endurance, or reliability may also be considered as a prerequisite for the replacement.


Assembly_relationship_substitution

An Assembly_relationship_substitution is a relationship that indicates that an Assembly_component_relationship may be substituted by another Assembly_component_relationship.

Both assembly relationships shall refer to the same Product_view_definition of the same assembly.

NOTE 1   Consequently, an Assembly_relationship_substitution actually specifies that the product version that plays the role of component in the substitute_relationship may be replaced by the product version that plays the role of component in the base_relationship.

NOTE 2   The instance of the substitute constituent does not require the same spatial relationship or the same quantity. A substitute constituent does not require equivalent form, fit, and function of the constituent for which it is a substitute.

NOTE 3   As instances of Assembly_component_relationship establish assembly relationships relevant in the definition contexts of the assembly, the substitution only apply in these contexts.

An Assembly_relationship_substitution defines a one-way substitution: if A is specified as a substitute for B, B is not implied to be a substitute for A.


ENTITY Assembly_relationship_substitution;
  name : OPTIONAL STRING;
  description : OPTIONAL STRING;
  base_relationship : Assembly_component_relationship;
  substitute_relationship : Assembly_component_relationship;
UNIQUE
  UR1: base_relationship, substitute_relationship;
WHERE
  WR1: base_relationship.relating_view :=: substitute_relationship.relating_view;
  WR2: base_relationship :<>: substitute_relationship;
END_ENTITY;

name: the words by which the Assembly_relationship_substitution is known. The value of the attribute need not be specified.

description: the text that provides further information about the Assembly_relationship_substitution. The value of the attribute need not be specified.

base_relationship: the Assembly_component_relationship that may be substituted.

substitute_relationship: the Assembly_component_relationship that may be used in place of the base_relationship