Application module: Part definition relationship | ISO/TS 10303-1055:2019(E) © ISO |
This clause specifies the information requirements for the Part definition relationship 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 Part_definition_relationship_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Part_definition_relationship_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Part_view_definition_arm;
--
ISO/TS 10303-1023
USE FROM
Product_view_definition_relationship_arm;
--
ISO/TS 10303-1041
USE FROM
Value_with_unit_arm;
--
ISO/TS 10303-1054
REFERENCE FROM
Support_resource_arm
--
ISO/TS 10303-1800
(bag_to_set);
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Part_view_definition_arm ISO/TS 10303-1023 Product_view_definition_relationship_arm ISO/TS 10303-1041 Value_with_unit_arm ISO/TS 10303-1054 Support_resource_arm ISO/TS 10303-1800
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.
EXPRESS specification:
*)
TYPE
pdr_additional_application_domain_enumeration =
ENUMERATION
BASED_ON
additional_application_domain_enumeration
WITH
(complete_design,
partial_design,
partial_design_interface);
END_TYPE;
(*
Enumerated item definitions:
complete_design: the Part_view_definition that represents a complete design.
partial_design: the Part_view_definition that represents a partial design.
partial_design_interface: the Part_view_definition that represents the interface between two or more partial designs.
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.
NOTE 1 A related PartView can be a definitional constituent of the relating PartView only once.
NOTE 2 All implicit and explicit elements from the related Part_view_definition including elements such as Assigned_property, Shape_element, Next_assembly_usage, and others, become implicit elements of the relating Part_view_definition. Several Definitional_part_view_usages might be used to establish a chain or a tree of View_definition_usage.
All Definitional_part_view_usage must describe an acyclic graph.EXPRESS specification:
*)
ENTITY Definitional_part_view_usage
SUBTYPE OF (View_definition_usage);
SELF\View_definition_relationship.relating_view : Part_view_definition;
SELF\View_definition_relationship.related_view : Part_view_definition;
WHERE
WR1: acyclic_definitional_part_view_usage (SELF, [related_view],
'PART_DEFINITION_RELATIONSHIP_ARM.DEFINITIONAL_PART_VIEW_USAGE');
END_ENTITY;
(*
Attribute definitions:
relating_view: the instance of Part_view_definition that is implicitly enriched by the elements of the related Part_view_definition.
related_view: the instance of Part_view_definition whose elements become a definitional part of the relating Part_view_definition.
Formal propositions:
WR1: The graph established by a population of Definitional_part_view_usages shall be acyclic.
NOTE 1 The related Part_view_definition may identify a raw material or a semi-finished part.
NOTE 2 The characterization of the process of transformation from the related Part_view_definition to the relating Part_view_definition is out of the scope of this application module.
EXPRESS specification:
*)
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;
(*
Attribute definitions:
relating_view: the instance of Part_view_definition that specifies the result from the manufacturing transformation.
related_view: the instance of Part_view_definition that specifies the input of the manufacturing transformation.
quantity: the Value_with_unit that specifies the amount of the related Part_view_definition that is used to produce the relating Part_view_definition. The value of this attribute need not be specified. The quantity is specified when the Part of the related Part_view_definition is a countable material. If the value is absent, it shall be considered that one occurrence of the related Part_view_definition is used to produce the relating Part_view_definition.
priority: an integer that ranks the preference for use of the related Part_view_definition 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.
Formal propositions:
WR1: the considered instances of Part_view_definition shall not be the same.
WR2: If it is specified and if its value is expressed with a number, the quantity value shall be greater than zero.
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.
The pdr_view_definition_usage_subtypes constraint specifies a constraint that applies to instances of View_definition_usage and enforces the rule that its subtypes Definitional_part_view_usage and Make_from_relationship are exclusive.
EXPRESS specification:
*)
SUBTYPE_CONSTRAINT pdr_view_definition_usage_subtypes FOR View_definition_usage;
ONEOF (Definitional_part_view_usage,
Make_from_relationship);
END_SUBTYPE_CONSTRAINT;
(*
This subclause specifies the ARM function for this module. The ARM function and definition is specified below.
EXPRESS specification:
*)
FUNCTION acyclic_definitional_part_view_usage (relation : Definitional_part_view_usage; relatives : SET[1:?] OF Part_view_definition; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF Definitional_part_view_usage; END_LOCAL; IF relation.relating_view IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_view, 'PART_DEFINITION_RELATIONSHIP_ARM.DEFINITIONAL_PART_VIEW_USAGE.RELATED_VIEW')) | specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_definitional_part_view_usage(x[i], relatives + relation.relating_view, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: the specified Definitional_part_view_usage.
relatives: the specified Part_view_definitions.
specific_relation: the specified type of Definitional_part_view_usage to be considered.
*)
END_SCHEMA; -- Part_definition_relationship_arm
(*
© ISO 2019 — All rights reserved