Application module: Assembly structure | ISO/TS 10303-1026:2019(E) © ISO |
This clause specifies the information requirements for the Assembly structure application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.
NOTE 1 A graphical representation of the information requirements is given in Annex C.
NOTE 2 The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Assembly_structure_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Assembly_structure_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Product_view_definition_arm;
--
ISO/TS 10303-1019
USE FROM
Product_view_definition_reference_arm;
--
ISO/TS 10303-1823
USE FROM
Value_with_unit_arm;
--
ISO/TS 10303-1054
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Product_view_definition_arm ISO/TS 10303-1019 Product_view_definition_reference_arm ISO/TS 10303-1823 Value_with_unit_arm ISO/TS 10303-1054
NOTE 2 See Annex C, Figures C.1and C.2 for a graphical representation of this schema.
This subclause specifies the ARM type for this application module. The ARM type and definition is specified below.
The product_view_definition_or_reference type allows for the designation of the data types Product_view_definition and Generic_product_view_definition_reference.
EXPRESS specification:
*)
TYPE
product_view_definition_or_reference =
SELECT
(Product_view_definition,
Generic_product_view_definition_reference);
END_TYPE;
(*
This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.
The relationship is established between two Product_view_definitions
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.
An Assembly_component_relationship is either a Multi_level_reference_designator, a Next_assembly_usage, a Promissory_usage or a Component_upper_level_identification.
EXPRESS specification:
*)
ENTITY Assembly_component_relationship
ABSTRACT SUPERTYPE
OF (ONEOF (Multi_level_reference_designator,
Next_assembly_usage,
Promissory_usage,
Component_upper_level_identification))
SUBTYPE OF (Product_occurrence_definition_relationship);
location_indicator :
OPTIONAL
STRING;
quantity :
OPTIONAL
Value_with_unit;
WHERE
WR1: NOT(EXISTS(quantity)) OR ((NOT ('NUMBER' IN TYPEOF(quantity.value_component))) XOR (quantity.value_component > 0));
END_ENTITY;
(*
Attribute definitions:
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.
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.
Formal propositions:
WR1: If it is specified and if its value is expressed with a number, the quantity value shall be greater than zero.
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.
EXPRESS specification:
*)
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\Product_occurrence_definition_relationship.relating_view :=: upper_assembly_relationship\Product_occurrence_definition_relationship.relating_view;
WR3: SELF\Product_occurrence_definition_relationship.related_view :=: sub_assembly_relationship\Product_occurrence_definition_relationship.related_view;
WR4: (upper_assembly_relationship\Product_occurrence_definition_relationship.related_view :=: sub_assembly_relationship\Product_occurrence_definition_relationship.relating_view)
OR (SIZEOF (QUERY (pdr <* USEDIN (upper_assembly_relationship\Product_occurrence_definition_relationship.related_view , 'ASSEMBLY_STRUCTURE_ARM.PRODUCT_OCCURRENCE_DEFINITION_RELATIONSHIP.RELATED_VIEW')
| pdr.relating_view :=: sub_assembly_relationship\Product_occurrence_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;
(*
Attribute definitions:
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.
Formal propositions:
UR1: The couple of the upper_assembly_relationship and sub_assembly_relationship attributes shall be unique within a population of the Component_upper_level_identification.
WR1: The upper_assembly_relationship shall not refer to the Component_upper_level_identification.
WR2: The relating_view attribute of the Component_upper_level_identification shall reference the same instance of Product_view_definition as the relating_view of the upper_assembly_relationship.
WR3: The related_view of the Component_upper_level_identification shall reference the same instance of Product_view_definition as the related_view for the sub_assembly_relationship.
WR4: The related_view of the upper_assembly_relationship shall refer to, or be transitively related to, the same instance of Product_view_definition as the relating_view for the sub_assembly_relationship.
WR5: The upper_assembly_relationship shall be an instance of either Next_assembly_usage or of Component_upper_level_identification.
NOTE The Multi_level_reference_designator is used to identify a specific instance of a component within a multi-level assembly structure for which certain properties are to be associated.
EXPRESS specification:
*)
ENTITY Multi_level_reference_designator
SUBTYPE OF (Assembly_component_relationship);
location : LIST[1:?] OF
UNIQUE
Next_assembly_usage;
DERIVE
SELF\Product_occurrence_definition_relationship.relating_view RENAMED root_node : Product_view_definition := location[1]\Product_occurrence_definition_relationship.relating_view;
SELF\Product_occurrence_definition_relationship.related_view RENAMED leaf_node : product_view_definition_or_reference := location[HIINDEX(location)]\Product_occurrence_definition_relationship.related_view;
UNIQUE
UR1: location;
END_ENTITY;
(*
Attribute definitions:
location: specifies the ordered list of connected Next_assembly_usage that defines an unambiguous path from the assembly to the constituent.
root_node: specifies the node in the assembly structure where the path starts.
leaf_node: specifies the node in the assembly structure where the path ends.
Formal propositions:
UR1: The location shall be unique across all instances of Multi_level_reference_designator.
EXPRESS specification:
*)
ENTITY Next_assembly_usage
SUBTYPE OF (Assembly_component_relationship);
END_ENTITY;
(*
EXPRESS specification:
*)
ENTITY Product_occurrence_definition_relationship
ABSTRACT SUPERTYPE
;
relating_view : product_view_definition_or_reference;
related_view : product_view_definition_or_reference;
shape_type :
OPTIONAL
contextual_shape_type_enumeration;
primary_shape_representation :
OPTIONAL
shape_model;
auxiliary_shape_representations :
OPTIONAL
SET[1:?] OF shape_model;
WHERE
WR1: NOT (EXISTS(auxiliary_shape_representations)) OR EXISTS(primary_shape_representation);
END_ENTITY;
(*
Attribute definitions:
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.
shape_type: specified the kind of shape. The value of this attribute need not be specified.
primary_shape_representation: specifies the primary shape_model that represents the shape of the Product_occurrence_definition_relationship. The value of this attribute need not be specified.
auxiliary_shape_representations: specifies additional shape_models that represents the shape of the Product_occurrence_definition_relationship for auxiliary purposes. The value of this attribute need not be specified.
Formal propositions:
WR1: If auxiliary_shape_representations is provided then primary_shape_representation shall be provided.
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.
EXPRESS specification:
*)
ENTITY Promissory_usage
SUBTYPE OF (Assembly_component_relationship);
END_ENTITY;
(*
This subclause specifies the ARM subtype constraint for this module. The subtype constraint places a constraint on the possible super-type / subtype instantiations. The ARM subtype constraint and definition is specified below.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT assembly_component_relationship_constraint FOR Assembly_component_relationship;
ABSTRACT SUPERTYPE;
TOTAL_OVER (Component_upper_level_identification,
Multi_level_reference_designator,
Next_assembly_usage,
Promissory_usage);
END_SUBTYPE_CONSTRAINT;
(*
*)
END_SCHEMA; -- Assembly_structure_arm
(*
© ISO 2019 — All rights reserved