Application module: Functional usage view | ISO/TS 10303-1705:2018-11(E) © ISO |
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;
(*
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.
This subclause specifies the ARM types for this application module. The ARM types and definitions are specified below.
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;
(*
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;
(*
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
EXPRESS specification:
*)
ENTITY Scalar_terminal_definition
SUBTYPE OF (Functional_unit_usage_view_terminal_definition);
END_ENTITY;
(*
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.
This subclause specifies the ARM functions for this module. The ARM functions and definitions are specified below.
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.
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.
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.
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