Application module: Physical unit usage view | ISO/TS 10303-1732:2019(E) © ISO |
This clause specifies the information requirements for the Physical unit usage view 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 Physical_unit_usage_view_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Physical_unit_usage_view_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Feature_and_connection_zone_arm;
--
ISO/TS 10303-1671
USE FROM
Item_definition_structure_arm;
--
ISO/TS 10303-1345
USE FROM
Part_feature_location_arm;
--
ISO/TS 10303-1714
USE FROM
Part_shape_arm;
--
ISO/TS 10303-1807
USE FROM
Requirement_assignment_arm;
--
ISO/TS 10303-1233
USE FROM
Shape_composition_arm;
--
ISO/TS 10303-1742
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:
Feature_and_connection_zone_arm ISO/TS 10303-1671 Item_definition_structure_arm ISO/TS 10303-1345 Part_feature_location_arm ISO/TS 10303-1714 Part_shape_arm ISO/TS 10303-1807 Requirement_assignment_arm ISO/TS 10303-1233 Shape_composition_arm ISO/TS 10303-1742 Support_resource_arm ISO/TS 10303-1800
NOTE 2 See Annex C, Figures C.1, C.2and C.3 for a graphical representation of this schema.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
EXPRESS specification:
*)
TYPE
material_state_change_enumeration =
ENUMERATION
OF
(material_addition,
material_removal);
END_TYPE;
(*
Enumerated item definitions:
material_addition: specifies material state change is due to addition;
material_removal: specifies material state change is due to removal;
The physical_unit type is an extensible list of alternate data types that allows for the designation of the data type Part_usage_view.
NOTE The list of entity data types may be extended in application modules that use the constructs of this module.
EXPRESS specification:
*)
TYPE
physical_unit =
EXTENSIBLE
GENERIC_ENTITY
SELECT
(Part_usage_view);
END_TYPE;
(*
The puuv_groupable_item type is an extension of the groupable_item type. It adds the data type Part_feature to the list of alternate data types.
EXPRESS specification:
*)
TYPE
puuv_groupable_item =
SELECT
BASED_ON
groupable_item
WITH
(Part_feature);
END_TYPE;
(*
The puuv_requirement_assignment_item type is an extension of the requirement_assignment_item type. It adds the data types Part_feature and Part_view_definition to the list of alternate data types.
EXPRESS specification:
*)
TYPE
puuv_requirement_assignment_item =
SELECT
BASED_ON
requirement_assignment_item
WITH
(Part_feature,
Part_view_definition);
END_TYPE;
(*
The puuv_documented_element_select type is an extension of the documented_element_select type. It adds the data type Part_feature to the list of alternate data types.
EXPRESS specification:
*)
TYPE
puuv_documented_element_select =
SELECT
BASED_ON
documented_element_select
WITH
(Part_feature);
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.
EXPRESS specification:
*)
ENTITY Derived_part_view_definition_relationship
SUBTYPE OF (View_definition_relationship);
SELF\view_definition_relationship.relating_view : Part_view_definition;
SELF\view_definition_relationship.related_view : Part_view_definition;
WHERE
WR1: SIZEOF(get_derived_shape_element(related_view)) > 0;
WR2: SIZEOF(QUERY(gdrse <* get_derived_shape_element(related_view) | (SIZEOF(QUERY(se <* gdrse.derived_from
| relating_view <> se.associated_definition)) = 0))) = SIZEOF(get_derived_shape_element(related_view));
WR3: NOT EXISTS(SELF\View_definition_relationship.relation_type);
END_ENTITY;
(*
Attribute definitions:
relating_view: an inherited attribute shall be of type Part_view_definition for the Derived_part_view_definition_relationship.
related_view: an inherited attribute shall be of type Part_view_definition for the Derived_part_view_definition_relationship.
Formal propositions:
WR1: There shall be at least one Derived_shape_element provided for related_view.
WR2: Each Derived_shape_element that references the Derived_part_view_definition_relationship.related_view shall reference one or more Shape_element that reference the Derived_part_view_definition_relationship.relating_view.
WR3: The relation_type shall not be populated.
A Connection_zone_in_usage_view is a type of Connection_zone that is in the context of a Part_usage_view. A Connection_zone_in_usage_view is included in a usage view definition to provide an explicit geometric model of the limited areas in the domain of a terminal that is allowed for a valid connection. If the usage view definition contains no limitations on the connection area of the terminals associated with the usage view definition, this Application Object shall not be provided.
NOTE 1 In some less detailed usage views, the entire point domain for features designated as terminals are considered to be available for connection, and the Connection_zone_in_usage_view is redundant.
NOTE 2 In the case where the connection area is necessary, the application shall be carefully reviewed to determine the necessity for design instances of the connection area as in most cases, simply using the connection area as a constraint on the allowed location of a joint is sufficient.
NOTE 3 The level of detail included in a usage view definition may be classified by a user-defined classification system which is supported by this part of ISO 10303 but this part of ISO 10303 does not predefine a classification system for usage view definition detail level.
EXPRESS specification:
*)
ENTITY Connection_zone_in_usage_view
SUBTYPE OF (Connection_zone);
SELF\shape_element.associated_definition : Part_usage_view;
WHERE
WR1: NOT EXISTS(SELF\Shape_element.element_name);
END_ENTITY;
(*
Attribute definitions:
associated_definition: specifies a role of the Part_usage_view for the Connection_zone_in_usage_view.
Formal propositions:
WR1: The element_name shall not be populated.
EXPRESS specification:
*)
ENTITY Connection_zone_map_identification;
reference_connection_zone_shape : Usage_view_connection_zone_terminal_shape_relationship;
mapped_connection_zone_shape : Usage_view_connection_zone_terminal_shape_relationship;
UNIQUE
UR1: reference_connection_zone_shape, mapped_connection_zone_shape;
WHERE
WR1: reference_connection_zone_shape <> mapped_connection_zone_shape;
WR2: reference_connection_zone_shape.associated_connection_zone_shape_definition <> mapped_connection_zone_shape.associated_connection_zone_shape_definition;
END_ENTITY;
(*
Attribute definitions:
reference_connection_zone_shape: specifies one role of the Usage_view_connection_zone_terminal_shape_relationship for the Connection_zone_map_identification.
mapped_connection_zone_shape: specifies one role of the Usage_view_connection_zone_terminal_shape_relationship for the Connection_zone_map_identification.
Formal propositions:
UR1: The combination of reference_connection_zone_shape and mapped_connection_zone_shape shall be unique within a population of Connection_zone_map_identifications.
WR1: The reference_connection_zone_shape shall not be the mapped_connection_zone_shape.
WR2: The associated_connection_zone_shape_definition of reference_connection_zone_shape shall not be the associated_connection_zone_shape_definition of mapped_connection_zone_shape.
A Part_feature is a type of General_part_feature that is in the context of a Part_usage_view. A Part_feature may be distinguished by its shape or distinguished by its location and orientation or distinguished by its identifier.
NOTE 1 A Part_feature is a distinctive aspect of a part that partially supports the choice of that part in the design.
NOTE 2 A Part_feature inherits a unique constraint from Shape_element that maintains uniqueness of the identifier of a feature within a view. In some cases, only the uniqueness of that feature is what distinguishes it from other features. In those cases, the uniqueness constraint effectively creates a one to one and onto mapping between the location of the feature model in the geometric model of the part and the feature identifier. This mapping allows applications that do not use geometric models to be assured of model integrity.
NOTE 3 This part of ISO 10303 does not support identification of a part feature within the context of a part by its shape classification. ISO 10303-1707 provides predefined shape classification for part features in a limited context, but the shape classification does not override feature identification support provided by this part of ISO 10303.
EXAMPLE One ball in a Ball Grid Array style part may be distinguishable from other balls in the array only by its location in the case that a geometric model is provided. In the case that a geometric model is not provided, it may be distinguished only by its unique identifier element_name inherited from Shape_element in the context of the part view.
EXPRESS specification:
*)
ENTITY Part_feature
SUBTYPE OF (General_part_feature);
SELF\shape_element.associated_definition : Part_usage_view;
material_state_change :
OPTIONAL
material_state_change_enumeration;
precedent_feature :
OPTIONAL
Part_feature;
INVERSE
subsequent_feature : SET[0:1] OF part_feature FOR precedent_feature;
WHERE
WR1: NOT EXISTS(precedent_feature) OR (NOT (SIZEOF(subsequent_feature) = 1) OR (acyclic_part_feature_precedence_relationship(SELF,
[subsequent_feature[1]], 'PHYSICAL_UNIT_USAGE_VIEW_ARM.PART_FEATURE')));
WR2: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
(*
Attribute definitions:
associated_definition: specifies the Part_usage_view for the targeted Part_feature.
material_state_change: specifies the material_state_change_enumeration for the Part_feature. The value of this attribute need not be specified.
precedent_feature: specifies the role of the Part_feature for the Part_feature. The value of this attribute need not be specified.
subsequent_feature: an inverse relationship that specifies that the existence of the Part_feature is dependent on the existence of the Part_feature that specifies the Part_feature as its subsequent_feature. There shall be zero or one Part_feature for a Part_feature.
Formal propositions:
WR1: If precedent_feature exists then Part_feature shall not participate either directly or indirectly in a cyclic relationship by means of precedent_feature and subsequent_feature.
WR2: The description shall not be populated.
EXPRESS specification:
*)
ENTITY Part_feature_make_from_relationship
SUBTYPE OF (Shape_element_relationship);
associated_make_from : View_definition_relationship;
SELF\shape_element_relationship.relating RENAMED reusable_feature : Part_feature;
SELF\shape_element_relationship.related RENAMED resultant_feature : Part_feature;
UNIQUE
UR1: reusable_feature, resultant_feature;
WHERE
WR1: reusable_feature :<>: resultant_feature;
WR2: reusable_feature.associated_definition :<>: resultant_feature.associated_definition;
END_ENTITY;
(*
Attribute definitions:
associated_make_from: specifies the View_definition_relationship for the Part_feature_make_from_relationship.
reusable_feature: an inherited attribute shall be of type Part_feature for the Part_feature_make_from_relationship.
resultant_feature: an inherited attribute shall be of type Part_feature for the Part_feature_make_from_relationship.
Formal propositions:
UR1: The combination of reusable_feature and resultant_feature shall be unique within a population of Part_feature_make_from_relationships.
WR1: The reusable_feature shall not be the resultant_feature.
WR2: The Part_usage_view referenced by the reusable_feature shall not be the Part_usage_view referenced by the resultant_feature within a population of Part_feature_make_from_relationship.
A Part_feature_template_definition is a type of Feature_definition_with_connection_area. A Part_feature_template_definition is a template for one or more features of one or more part. The properties are provided by the Classification_assignment on the Characterizable_object supertype.
NOTE A Part_feature_template_definition is not interpreted as a view of a product.
EXAMPLE A "J lead" Package_terminal may be defined once using Part_feature_template_definition and re-used many times.
EXPRESS specification:
*)
ENTITY Part_feature_template_definition
SUBTYPE OF (Feature_definition_with_connection_area);
id : STRING;
UNIQUE
UR1: id;
END_ENTITY;
(*
Attribute definitions:
id: the identifier that distinguishes the Part_feature_template_definition.
Formal propositions:
UR1: The id shall be unique within a population of Part_feature_template_definitions.
EXPRESS specification:
*)
ENTITY Part_feature_template_shape_model
SUBTYPE OF (Geometric_model);
WHERE
WR1: NOT (SIZEOF(USEDIN(SELF, '')) > 1) OR (SIZEOF(QUERY(foo <* USEDIN(SELF, '')
| NOT (SIZEOF(['PART_FEATURE_LOCATION_ARM.USAGE_CONCEPT_USAGE_RELATIONSHIP', 'SHAPE_PROPERTY_ASSIGNMENT_ARM.SHAPE_DESCRIPTION_ASSOCIATION']
* TYPEOF(foo)) = 1))) = 0);
WR2: NOT EXISTS(SELF\Representation.description);
WR3: ((SIZEOF(USEDIN(SELF, 'PROPERTY_ASSIGNMENT_ARM.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = 0));
END_ENTITY;
(*
Formal propositions:
WR1: The Part_feature_template_shape_model shall only be referenced by Usage_concept_usage_relationship or by Shape_description_association.
NOTE The relationship between a Part_feature_template_shape_model and a Shape_feature_definition is established by a Shape_description_association, where the attribute definition refers to a Shape_feature_definition and the attribute used_representation refers to the Part_feature_template_shape_model.
WR2: The description shall not be populated.
WR3: The Part_feature_template_shape_model shall not be used in role of used_representation by any Shape_description_association.
NOTE 1 The product information provided in this part of ISO 10303 for a Part_usage_view is much less than that necessary to design, manufacture, or verify its performance by extracting data from the product model structure.
NOTE 2 It is the responsibility of the design organization to create and maintain the mapping between the usage view and the design view. As the design evolves to meet the requirements, the design view will reference different versions than the usage view.
NOTE 3 The usage view and design view of a product may have two instances of a connector with perhaps different levels of detail. In this case, the design organization may wish to keep track of the relationship between the connector in the usage view and the connector in the design view by populating a member of Component_to_physical_usage_view_assignmentfor each connector in the usage view.
NOTE 4 In a drawing based exchange, an interface control drawing would contain the same information found in a usage view. Industry standards describing the information represented by interface control drawings could migrate to computer interpetable standards exchange using this standard.
NOTE 5 Terminals are defined only in the usage view of an item in this part of ISO 10303.
NOTE 6 Functional block diagrams for Part_usage_view that are model-based, thus computer interpretable, may be provided by using the Functional assignment to part module, ISO 10303-1674.
EXAMPLE Examples of information provided in a Part_usage_view include outline shape, simplified connector models and location and orientation of those models, terminal identification, package orientation features, mounting features, interface models, pin mapping.
EXPRESS specification:
*)
ENTITY Part_usage_view
SUBTYPE OF (Part_view_definition);
END_ENTITY;
(*
EXPRESS specification:
*)
ENTITY Usage_view_connection_zone_terminal_shape_relationship;
associating_terminal_shape : Part_feature_template_shape_model;
associated_usage : Connection_zone_in_usage_view;
associated_connection_zone_shape_definition : Geometric_model;
associated_usage_placement : Axis_placement;
WHERE
WR1: associating_terminal_shape :<>: associated_connection_zone_shape_definition;
END_ENTITY;
(*
Attribute definitions:
associating_terminal_shape: specifies the Part_feature_template_shape_model that is the model shape for the Usage_view_connection_zone_terminal_shape_relationship.
associated_usage: specifies the Connection_zone_in_usage_view that is the target item for the Usage_view_connection_zone_terminal_shape_relationship.
associated_connection_zone_shape_definition: specifies the Geometric_model that is the source shape for the Usage_view_connection_zone_terminal_shape_relationship.
associated_usage_placement: specifies the Axis_placement that is the target in the coordinate system of the model for the Usage_view_connection_zone_terminal_shape_relationship, including any transformation required.
Formal propositions:
WR1: The associating_terminal_shape shall not be the associated_connection_zone_shape_definition.
This subclause specifies the ARM functions for this module. The ARM functions and definitions are specified below.
EXPRESS specification:
*)
FUNCTION acyclic_part_feature_precedence_relationship (relation : Part_feature; relatives : SET[1:?] OF Part_feature; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF Part_feature; END_LOCAL; IF relation.precedent_feature IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(pd <* bag_to_set(USEDIN(relation.precedent_feature, 'PHYSICAL_UNIT_USAGE_VIEW_ARM.PART_FEATURE.SUBSEQUENT_FEATURE')) | specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_part_feature_precedence_relationship(x[i], relatives + relation.precedent_feature, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: the specified Part_feature.
relatives: the specified set of Part_features.
specific_relation: the specified string.
EXPRESS specification:
*)
FUNCTION get_derived_shape_element (input : Part_view_definition) : SET OF Derived_shape_element;
LOCAL se : SET OF Shape_element := []; END_LOCAL; se := se + bag_to_set(USEDIN(input, 'SHAPE_PROPERTY_ASSIGNMENT_ARM.SHAPE_ELEMENT.ASSOCIATED_DEFINITION')); RETURN(QUERY(dse <* se | 'DERIVED_SHAPE_ELEMENT_ARM.DERIVED_SHAPE_ELEMENT' IN TYPEOF(se)));
END_FUNCTION;
(*
Argument definitions:
input: the specified Part_view_definition.
This subclause specifies the ARM rule for this module. The ARM rule and definition is specified below.
EXPRESS specification:
*)
RULE unique_assembly_component_relationship FOR
(assembly_component_relationship);
LOCAL gee : SET OF Product_view_definition := []; gei : SET OF Product_view_definition := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(assembly_component_relationship) BY 1; gee := gee + assembly_component_relationship[i]\Product_occurrence_definition_relationship.related_view; gei := gei + assembly_component_relationship[i]\Product_occurrence_definition_relationship.relating_view; END_REPEAT;
WHERE
WR1: SIZEOF(gee) = SIZEOF(gei);
END_RULE;
(*
Argument definitions:
assembly_component_relationship : the set of all instances of assembly_component_relationship.
Formal propositions:
WR1: There shall be no more than one Assembly_component_relationship with a given combination of relating_view, relating_view attributes.
*)
END_SCHEMA; -- Physical_unit_usage_view_arm
(*
© ISO 2019 — All rights reserved