Application module: Physical unit usage view ISO/TS 10303-1732:2019(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Information requirements
   4.1 Required AM ARMs
   4.2 ARM type definitions
   4.3 ARM entity definitions
   4.4 ARM function definitions
   4.5 ARM rule definition
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM type definitions
     5.2.2 MIM entity definitions

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
F Change history
Bibliography
Index

4 Information requirements

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;
(*

4.1 Required AM ARMs

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.

4.2 ARM type definitions

This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.

4.2.1 material_state_change_enumeration   EXPRESS-G

A material_state_change_enumeration lists the material state change.

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;

4.2.2 physical_unit   EXPRESS-G

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;
(*

4.2.3 puuv_groupable_item   EXPRESS-G

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;
(*

4.2.4 puuv_requirement_assignment_item   EXPRESS-G

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;
(*

4.2.5 puuv_documented_element_select   EXPRESS-G

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;
(*

4.3 ARM entity definitions

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.

4.3.1 Derived_part_view_definition_relationship   EXPRESS-GMapping table

A Derived_part_view_definition_relationship is a type of View_definition_relationship. A Derived_part_view_definition_relationship is a relationship that relates two Part_view_definitions where one is the master, and the other is a derivation of the Master. The Part_view_definition in the role of relating_view is the Master.

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.

4.3.2 Connection_zone_in_usage_view   EXPRESS-GMapping table

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.

4.3.3 Connection_zone_map_identification   EXPRESS-GMapping table

A Connection_zone_map_identification is a means to specify the causal geometric relationship between a reference Connection_zone associated with a Package_terminal and a mapped Connection_zone associated with a template interface terminal.

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.

4.3.4 Part_feature   EXPRESS-GMapping table

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.

4.3.5 Part_feature_make_from_relationship   EXPRESS-GMapping table

A Part_feature_make_from_relationship is a type of Shape_element_relationship. A Part_feature_make_from_relationship associates two Part_feature, one of which has been reused from an existing made from part.

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.

4.3.6 Part_feature_template_definition   EXPRESS-GMapping table

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.

4.3.7 Part_feature_template_shape_model   EXPRESS-GMapping table

A Part_feature_template_shape_model is a type of Geometric_model. A Part_feature_template_shape_model is the shape of a Template_definition or of a Part_feature_template_definition.

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.

4.3.8 Part_usage_view   EXPRESS-GMapping table

A Part_usage_view is a type of Part_view_definition. A Part_usage_view specifies sufficient detail to allow the application of a part in an assembly but without sufficient detail to permit reproduction of the part. The version attribute inherited from Product_view_definition need not reference the same product version referenced by the design view that references this view in the role of usage view. Support is provided for explicitly modeling connectors to be represented in the usage view so as to take advantage of common geometric modeling patterns. Only a member of Packaged_connector_component may be associated as a component in a Part_usage_view, and then only in the Assembly_module_usage_view and Cable_usage_view.

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;
(*

4.3.9 Usage_view_connection_zone_terminal_shape_relationship   EXPRESS-GMapping table

A Usage_view_connection_zone_terminal_shape_relationship is a means to position and orient the geometric model of a Connection_zone into the model of a feature using a transformation. The interpretation of the associated_connection_zone_shape_definition shall be that it shall be a shape representation for the Connection_zone in the role of associated_usage.

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.

4.4 ARM function definitions

This subclause specifies the ARM functions for this module. The ARM functions and definitions are specified below.

4.4.1 acyclic_part_feature_precedence_relationship

The acyclic_part_feature_precedence_relationship function determines whether the graph of instances of the Application Object type Part_feature that contains relation as one of its links contains a cycle. This function may be used to evaluate Part_feature or any of its subtypes.

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.

4.4.2 get_derived_shape_element

A get_derived_shape_element function returns the set of Derived_shape_element that reference the Part_view_definition passed to the function as input.

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.

4.5 ARM rule definition

This subclause specifies the ARM rule for this module. The ARM rule and definition is specified below.

4.5.1 unique_assembly_component_relationship

A unique_assembly_component_relationship rule constrains the population of Assembly_component_relationship so that there is no more than one member of Assembly_component_relationship with a given combination of relating_view, relating_view attributes.

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