Application module: Functional usage view ISO/TS 10303-1705:2018-11(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
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 Functional 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 Functional_usage_view_arm schema and identifies the necessary external references.

EXPRESS specification:

*)
SCHEMA Functional_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 Analytical_model_arm;    --  ISO/TS 10303-1603

USE FROM Shape_property_assignment_arm;    --  ISO/TS 10303-1032

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:

Analytical_model_arm ISO/TS 10303-1603
Shape_property_assignment_arm ISO/TS 10303-1032
Support_resource_arm ISO/TS 10303-1800

NOTE 2   See Annex C, Figures C.1and C.2 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 fuuv_am_port_assignment_select   EXPRESS-G

The fuuv_am_port_assignment_select type is an extension of the analytical_model_port_assignment_select type. It adds the data type Functional_unit_usage_view_terminal_definition to the list of alternate data types.

NOTE  The list of entity data types may be extended in application modules that use the constructs of this module.

EXPRESS specification:

*)
TYPE fuuv_am_port_assignment_select = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON analytical_model_port_assignment_select WITH
   (Functional_unit_usage_view_terminal_definition);
END_TYPE;
(*

4.2.2 fuuv_classification_item   EXPRESS-G

The fuuv_classification_item type is an extension of the classification_item type. It adds the data type Functional_unit_usage_view_terminal_definition to the list of alternate data types.

NOTE  The list of entity data types may be extended in application modules that use the constructs of this module.

EXPRESS specification:

*)
TYPE fuuv_classification_item = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON classification_item WITH
   (Functional_unit_usage_view_terminal_definition);
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 Equivalent_functional_terminals_assignment   EXPRESS-GMapping table

An Equivalent_functional_terminals_assignment is the assignment that a set of terminals are equivalent in a Functional_unit_usage_view.

EXPRESS specification:

*)
ENTITY Equivalent_functional_terminals_assignment;
  name : STRING;
  equivalent_terminals : SET[2:?] OF Functional_unit_usage_view_terminal_definition;
END_ENTITY;
(*

Attribute definitions:

name: the words by which the Equivalent_functional_terminals_assignment is known.

equivalent_terminals: specifies the Functional_unit_usage_view_terminal_definition for the Equivalent_functional_terminals_assignment. There shall be two or more Functional_unit_usage_view_terminal_definitions for the Equivalent_functional_terminals_assignment.

4.3.2 Equivalent_functional_unit_definition_assignment   EXPRESS-GMapping table

An Equivalent_functional_unit_definition_assignment is the association between at least two Functional_unit_definition that are equivalent.

EXPRESS specification:

*)
ENTITY Equivalent_functional_unit_definition_assignment;
  name : STRING;
  equivalent_functional_unit_definitions : SET[2:?] OF Functional_unit_definition;
END_ENTITY;
(*

Attribute definitions:

name: the words by which the Equivalent_functional_unit_definition_assignment is known.

equivalent_functional_unit_definitions: specifies the Functional_unit_definition for the Equivalent_functional_unit_definition_assignment. There shall be at least two but may be more than two Functional_unit_definition for the Equivalent_functional_unit_definition_assignment.

4.3.3 Functional_product   EXPRESS-GMapping table

A Functional_product is a type of Information_product.

EXPRESS specification:

*)
ENTITY Functional_product
  SUBTYPE OF (Information_product);
UNIQUE
  UR1: SELF\Product.id;
END_ENTITY;
(*

Formal propositions:

UR1: The id shall be unique within a population of Functional_product.

4.3.4 Functional_terminal_group   EXPRESS-GMapping table

A Functional_terminal_group is a group of terminals that have common characteristics and can be acted upon as a group.

EXPRESS specification:

*)
ENTITY Functional_terminal_group;
  name : STRING;
  group_description : STRING;
  group_type : STRING;
UNIQUE
  UR1: name;
END_ENTITY;
(*

Attribute definitions:

name: the words by which the Functional_terminal_group is known.

group_description: specifies the string that provides the meaning for the Functional_terminal_group.

group_type: specifies the string that is the class for the Functional_terminal_group.

Formal propositions:

UR1: The name shall be unique within a population of Functional_terminal_group.

4.3.5 Functional_terminal_group_assignment   EXPRESS-GMapping table

A Functional_terminal_group_assignment is a means to allocate a Scalar_terminal_definition to the Functional_terminal_group. This is the mechanism that provides members of the Functional_terminal_group.

EXPRESS specification:

*)
ENTITY Functional_terminal_group_assignment;
  composed_group : Functional_terminal_group;
  functional_usage_view_terminal : Scalar_terminal_definition;
END_ENTITY;
(*

Attribute definitions:

composed_group: specifies the Functional_terminal_group for the Functional_terminal_group_assignment. The composed_group specifies the group that the terminal is a member.

functional_usage_view_terminal: specifies the Scalar_terminal_definition for the Functional_terminal_group_assignment. The functional_usage_view_terminal specifies the terminal that is a member of the group.

4.3.6 Functional_unit_definition   EXPRESS-GMapping table

A Functional_unit_definition is a type of Information_definition. A Functional_unit_definition is the characterization of behaviour realized by one or more versions of a part or a product, or a subset of a product. This characterization is applicable to every occurrence of the element modelled.

EXPRESS specification:

*)
ENTITY Functional_unit_definition
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Information_definition);
  SELF\Product_view_definition.defined_version : Functional_version;
END_ENTITY;
(*

Attribute definitions:

defined_version: specifies a Functional_version for the Functional_unit_definition.

4.3.7 Functional_unit_make_from_relationship   EXPRESS-GMapping table

A Functional_unit_make_from_relationship is a type of View_definition_relationship.

EXPRESS specification:

*)
ENTITY Functional_unit_make_from_relationship
  SUBTYPE OF (View_definition_relationship);
  SELF\View_definition_relationship.relating_view : Functional_unit_usage_view;
  SELF\View_definition_relationship.related_view : Functional_unit_usage_view;
WHERE
  WR1: acyclic_functional_unit_make_from_relationship (SELF, [related_view], 'FUNCTIONAL_USAGE_VIEW_ARM.FUNCTIONAL_UNIT_MAKE_FROM_RELATIONSHIP');
END_ENTITY;
(*

Attribute definitions:

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

related_view: the other instance of Functional_unit_usage_view 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.

Formal propositions:

WR1: The graph of instances of the Application Object Functional_unit_make_from_relationship shall not contain a cycle.

4.3.8 Functional_unit_usage_view   EXPRESS-GMapping table

A Functional_unit_usage_view is a type of Functional_unit_definition that describes the usage of the Functional_unit in a Functional_unit_definition.

NOTE    In the case where the Functional_unit_usage_view is a Product_view_definition for a 'functionality' product, the name of the function being represented by this Functional_unit_usage_view is represented by the Product.nomenclature. In the case where the Functional_unit_usage_view is a Product_view_definition for a physical product, there is no need for a separate name for the physical product since it is identified by the id inherited from Product_view_definition. In fact, id always identifies the Functional_unit_usage_view.

EXAMPLE    In the case where the Functional_unit_usage_view is a Product_view_definition for a physical product, e.g., a netlist, there is no need for a separate name for the netlist since it is identified by the id inherited from Product_view_definition.

EXPRESS specification:

*)
ENTITY Functional_unit_usage_view
  SUBTYPE OF (Functional_unit_definition);
DERIVE
  analytical_model_application_reference : SET[0:?] OF Analytical_model_application := get_ama(access_mechanism[1]);
INVERSE
  access_mechanism : SET[0:?] OF Functional_unit_usage_view_terminal_definition FOR associated_functional_unit_definition;
WHERE
  WR1: SIZEOF(analytical_model_application_reference) <= 1;
  WR2: NOT(SIZEOF(analytical_model_application_reference) = 1) OR (SIZEOF(QUERY( am <* access_mechanism | NOT((SIZEOF(USEDIN(am,'ANALYTICAL_MODEL_ARM.ANALYTICAL_MODEL_PORT_ASSIGNMENT.ASSIGNED_ITEM')) = 0) OR (SIZEOF(QUERY( ampa <* USEDIN(am, 'ANALYTICAL_MODEL_ARM.ANALYTICAL_MODEL_PORT_ASSIGNMENT.ASSIGNED_ITEM') | NOT(analytical_model_application_reference[1] :=: ampa.associated_analytical_model_application) )) = 0)) )) = 0);
END_ENTITY;
(*

Attribute definitions:

analytical_model_application_reference: the set of Analytical_model_application that applies values to the Analytical_model that is assigned to this Functional_unit_usage_view. There may be zero or one of these applications.

access_mechanism: an inverse relationship that specifies that the existence of the Functional_unit_usage_view is dependent on the existence of the Functional_unit_usage_view_terminal_definition that specifies the Functional_unit_usage_view as its associated_functional_unit_definition. There shall be zero or more Functional_unit_usage_view_terminal_definition for a Functional_unit_usage_view.

Formal propositions:

WR1: The size of analytical_model_application_reference shall be less than or equal to one.

WR2: If the size of analytical_model_application_reference is one, then the analytical_model_application_reference shall be the Analytical_model_application referenced by the associated_analytical_model_application attribute of each member of Analytical_model_port_assignment that references a Functional_unit_usage_view_terminal_definition that references this Functional_unit_usage_view.

4.3.9 Functional_unit_usage_view_terminal_definition   EXPRESS-GMapping table

A Functional_unit_usage_view_terminal_definition is the defined access mechanism for dynamic properties or signals of a Functional_unit_usage_view. A Functional_unit_usage_view_terminal_definition may be a Scalar_terminal_definition.

NOTE 1   Where applicable the terminal definition can be classified as 'mechanical', 'thermal', 'optical' or 'magnetic'.

NOTE 2   The default classification electrical is applicable when no classification is provided.

NOTE 3   When simulation models are used the default simulation model port classification should be consistent with the functional terminal classification.

NOTE 4   A principal application of classification of the Functional_unit_usage_view_terminal_definition is for relays and actuators where it is necessary to have non-electrical terminals of the Functional_unit_usage_view, particularly in support of schematic diagrams. In that case, the classification data is stored and exchanged in the Functional_unit_usage_view and referenced by the schematic diagram presentation data set.

EXPRESS specification:

*)
ENTITY Functional_unit_usage_view_terminal_definition
  SUPERTYPE OF (Scalar_terminal_definition);
  associated_functional_unit_definition : Functional_unit_usage_view;
  signal_name : STRING;
UNIQUE
  UR1: signal_name, associated_functional_unit_definition;
END_ENTITY;
(*

Attribute definitions:

associated_functional_unit_definition: specifies a role of the Functional_unit_usage_view for the Functional_unit_usage_view_terminal_definition.

signal_name: an attribute identifies the Functional_unit_usage_view_terminal_definition in the context of the Functional_unit_usage_view.

Formal propositions:

UR1: The combination of signal_name and associated_functional_unit_definition shall be unique within a population of Functional_unit_usage_view_terminal_definitions.

4.3.10 Functional_unit_usage_view_terminal_definition_make_from_relationship   EXPRESS-GMapping table

A Functional_unit_usage_view_terminal_definition_make_from_relationship is the description of the directed relationship between a terminal that is one result of creating a new Functional_unit_definition by copying and modifying an existing Functional_unit_definition and the source terminal.

EXPRESS specification:

*)
ENTITY Functional_unit_usage_view_terminal_definition_make_from_relationship;
  associated_make_from : Functional_unit_make_from_relationship;
  reusable_feature : Functional_unit_usage_view_terminal_definition;
  resultant_feature : Functional_unit_usage_view_terminal_definition;
UNIQUE
  UR1: reusable_feature, resultant_feature;
WHERE
  WR1: reusable_feature :<>: resultant_feature;
  WR2: reusable_feature.associated_functional_unit_definition :<>: resultant_feature.associated_functional_unit_definition;
  WR3: reusable_feature.associated_functional_unit_definition :=: associated_make_from\Functional_unit_make_from_relationship.relating_view;
  WR4: resultant_feature.associated_functional_unit_definition :=: associated_make_from\Functional_unit_make_from_relationship.related_view;
  WR5: acyclic_functional_unit_usage_view_terminal_definition_make_from_relationship (SELF, [resultant_feature], 'FUNCTIONAL_USAGE_VIEW_ARM.FUNCTIONAL_UNIT_USAGE_VIEW_TERMINAL_DEFINITION_MAKE_FROM_RELATIONSHIP');
END_ENTITY;
(*

Attribute definitions:

associated_make_from: specifies the Functional_unit_make_from_relationship for the Functional_unit_usage_view_terminal_definition_make_from_relationship.

reusable_feature: specifies the Functional_unit_usage_view_terminal_definition for the Functional_unit_usage_view_terminal_definition_make_from_relationship.

resultant_feature: specifies the Functional_unit_usage_view_terminal_definition for the Functional_unit_usage_view_terminal_definition_make_from_relationship.

Formal propositions:

UR1: The combination of reusable_feature and resultant_feature shall be unique within a population of Functional_unit_usage_view_terminal_definition_make_from_relationships.

WR1: The reusable_feature shall not be resultant_feature.

WR2: The associated_functional_unit_definition of reusable_feature shall not be associated_functional_unit_definition of resultant_feature.

WR3: The associated_functional_unit_definition of reusable_feature shall be relating_view of associated_make_from.

WR4: The associated_functional_unit_definition of reusable_feature shall be related_view of associated_make_from.

WR5: The graph of instances of the Application Object Functional_unit_usage_view_terminal_definition_make_from_relationship shall not contain a cycle.

4.3.11 Functional_version   EXPRESS-GMapping table

A Functional_version is a type of Information_version.

EXPRESS specification:

*)
ENTITY Functional_version
  SUBTYPE OF (Information_version);
  SELF\Product_version.of_product : Functional_product;
END_ENTITY;
(*

Attribute definitions:

of_product: specifies a role of the Functional_product for the Functional_version.

4.3.12 Scalar_terminal_definition   EXPRESS-GMapping table

A Scalar_terminal_definition is a type of Functional_unit_usage_view_terminal_definition for which the size shall be unity.

EXPRESS specification:

*)
ENTITY Scalar_terminal_definition
  SUBTYPE OF (Functional_unit_usage_view_terminal_definition);
END_ENTITY;
(*

4.3.13 Scalar_terminal_definition_link   EXPRESS-GMapping table

A Scalar_terminal_definition_link is a directed relationship established between two Scalar_terminal_definition for a design purpose.

EXPRESS specification:

*)
ENTITY Scalar_terminal_definition_link;
  precedent_terminal_definition : Scalar_terminal_definition;
  subsequent_terminal_definition : Scalar_terminal_definition;
UNIQUE
  UR1: precedent_terminal_definition, subsequent_terminal_definition;
WHERE
  WR1: precedent_terminal_definition :<>: subsequent_terminal_definition;
  WR2: acyclic_scalar_terminal_definition_link (SELF, [subsequent_terminal_definition], 'FUNCTIONAL_USAGE_VIEW_ARM.SCALAR_TERMINAL_DEFINITION_LINK');
END_ENTITY;
(*

Attribute definitions:

precedent_terminal_definition: specifies the Scalar_terminal_definition for the Scalar_terminal_definition_link.

subsequent_terminal_definition: specifies the Scalar_terminal_definition for the Scalar_terminal_definition_link.

Formal propositions:

UR1: The combination of precedent_terminal_definition and subsequent_terminal_definition shall be unique within a population of Scalar_terminal_definition_link.

WR1: The precedent_terminal_definition shall not be the subsequent_terminal_definition.

WR2: The graph of instances of the Application Object Scalar_terminal_definition_link shall not contain a cycle.

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_functional_unit_make_from_relationship

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

EXPRESS specification:

*)
FUNCTION acyclic_functional_unit_make_from_relationship (relation : Functional_unit_make_from_relationship; relatives : SET[1:?] OF Functional_unit_usage_view; specific_relation : STRING) : BOOLEAN;
LOCAL
     x : SET OF Functional_unit_make_from_relationship;
  END_LOCAL;

    IF relation.relating_view IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(pd <* bag_to_set(USEDIN(relation.relating_view,
      'FUNCTIONAL_USAGE_VIEW_ARM.' + 'FUNCTIONAL_UNIT_MAKE_FROM_RELATIONSHIP.' +
      'RELATED_VIEW')) | specific_relation IN TYPEOF(pd));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_functional_unit_make_from_relationship(x[i], relatives +
        relation.relating_view, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Functional_unit_make_from_relationship.

relatives: the specified set of Functional_unit_usage_view.

specific_relation: the specified STRING.

4.4.2 acyclic_functional_unit_usage_view_terminal_definition_make_from_relationship

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

EXPRESS specification:

*)
FUNCTION acyclic_functional_unit_usage_view_terminal_definition_make_from_relationship (relation : Functional_unit_usage_view_terminal_definition_make_from_relationship; relatives : SET[1:?] OF Functional_unit_usage_view_terminal_definition; specific_relation : STRING) : BOOLEAN;
LOCAL
       x : SET OF Functional_unit_usage_view_terminal_definition_make_from_relationship;
     END_LOCAL;
    
     IF relation.reusable_feature IN relatives THEN
       RETURN (FALSE);
     END_IF;
     x := QUERY(pd <* bag_to_set(USEDIN(relation.reusable_feature,
      'FUNCTIONAL_USAGE_VIEW_ARM.' +
      'FUNCTIONAL_UNIT_USAGE_VIEW_TERMINAL_DEFINITION_MAKE_FROM_RELATIONSHIP.' +
      'RESULTANT_FEATURE')) | specific_relation IN TYPEOF(pd));
     REPEAT i := 1 TO HIINDEX(x);
       IF NOT
         acyclic_functional_unit_usage_view_terminal_definition_make_from_relationship(x[i],
         relatives + relation.reusable_feature, specific_relation) THEN
           RETURN (FALSE);
       END_IF;
     END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Functional_unit_usage_view_terminal_definition_make_from_relationship.

relatives: the specified set of Functional_unit_usage_view_terminal_definition.

specific_relation: the specified STRING.

4.4.3 acyclic_scalar_terminal_definition_link

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

EXPRESS specification:

*)
FUNCTION acyclic_scalar_terminal_definition_link (relation : Scalar_terminal_definition_link; relatives : SET[1:?] OF Scalar_terminal_definition; specific_relation : STRING) : BOOLEAN;
LOCAL
      x : SET OF Scalar_terminal_definition_link;
    END_LOCAL;

    IF relation.precedent_terminal_definition IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(pd <* bag_to_set(USEDIN(relation.precedent_terminal_definition,
      'FUNCTIONAL_USAGE_VIEW_ARM.' + 'SCALAR_TERMINAL_DEFINITION_LINK.' +
      'SUBSEQUENT_TERMINAL_DEFINITION')) | specific_relation IN TYPEOF(pd));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_scalar_terminal_definition_link(x[i], relatives +
        relation.precedent_terminal_definition, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
   RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: the specified Scalar_terminal_definition_link.

relatives: the specified set of Scalar_terminal_definition.

specific_relation: the specified STRING.

4.4.4 get_ama

The get_ama function determines the set of members of Analytical_model_application that are associated with the item in the select type analytical_model_port_assignment_select as input. The association is via the associated_analytical_model_application attribute of the Analytical_model_port_assignment Application Object.

EXPRESS specification:

*)
FUNCTION get_ama (input : analytical_model_port_assignment_select) : SET[0:?] OF Analytical_model_application;
LOCAL
	ama : SET[0:?] OF Analytical_model_application := [];  --this gives us access to the information base
	ampa : SET[0:?] OF Analytical_model_port_assignment :=[];
   END_LOCAL;
	ampa := bag_to_set(USEDIN (input, 'ANALYTICAL_MODEL_ARM.'+'ANALYTICAL_MODEL_PORT_ASSIGNMENT.ASSIGNED_ITEM'));
	-- iterate over ampa
	REPEAT i := 1 to SIZEOF(ampa) by 1;
		ama := ama + ampa[i].associated_analytical_model_application;
	END_REPEAT;

	RETURN(ama);
END_FUNCTION;
(*

Argument definitions:

input: the specified analytical_model_port_assignment_select.



*)
END_SCHEMA;  -- Functional_usage_view_arm
(*


© ISO 2018 — All rights reserved