Application module: Functional assignment to part | ISO/TS 10303-1674:2018-11(E) © ISO |
This clause specifies the information requirements for the Functional assignment to part 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_assignment_to_part_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Functional_assignment_to_part_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Functional_usage_view_arm;
--
ISO/TS 10303-1705
USE FROM
Physical_connectivity_layout_topology_requirement_arm;
--
ISO/TS 10303-1826
USE FROM
Physical_unit_usage_view_arm;
--
ISO/TS 10303-1732
(*
NOTE 1 The schemas referenced above are specified in the following part of ISO 10303:
Functional_usage_view_arm ISO/TS 10303-1705 Physical_connectivity_layout_topology_requirement_arm ISO/TS 10303-1826 Physical_unit_usage_view_arm ISO/TS 10303-1732
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 fatp_groupable_item type is an extension of the groupable_item type. It adds the data type Part_connected_terminals_definition to the list of alternate data types.
EXPRESS specification:
*)
TYPE
fatp_groupable_item =
SELECT
BASED_ON
groupable_item
WITH
(Part_connected_terminals_definition);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
fatp_part_connected_terminals_definition_domain_enumeration =
EXTENSIBLE
ENUMERATION
OF
(electrical,
thermal,
optical,
magnetic);
END_TYPE;
(*
Enumerated item definitions:
electrical: specifies the domain type is electrical;
thermal: specifies the domain type is thermal;
optical: specifies the domain type is optical;
magnetic: specifies the domain type is magnetic.
The fatp_requirement_assignment_item type is an extension of the requirement_assignment_item type. It adds the data types Part_connected_terminals_element, and Part_connected_terminals_definition to the list of alternate data types.
EXPRESS specification:
*)
TYPE
fatp_requirement_assignment_item =
SELECT
BASED_ON
requirement_assignment_item
WITH
(Part_connected_terminals_element,
Part_connected_terminals_definition);
END_TYPE;
(*
The fatp_termination_or_junction type allows for the designation of the data types Part_terminal, and Part_connected_terminals_topological_junction.
EXPRESS specification:
*)
TYPE
fatp_termination_or_junction =
SELECT
(Part_terminal,
Part_connected_terminals_topological_junction);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
interface_or_join_terminal_enumeration =
ENUMERATION
OF
(join_terminal,
interface_terminal);
END_TYPE;
(*
Enumerated item definitions:
join_terminal: specifies the connection type is to join at the same immediate assembly level.
interface_terminal: specifies the connection type is to interface to the next-higher-assembly level.
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 Functional_usage_view_to_part_terminal_assignment;
physical_usage_view_terminal : Part_terminal;
functional_usage_view_terminal : Scalar_terminal_definition;
UNIQUE
UR1: functional_usage_view_terminal, physical_usage_view_terminal;
END_ENTITY;
(*
Attribute definitions:
physical_usage_view_terminal: specifies a role of the Part_terminal for the Functional_usage_view_to_part_terminal_assignment.
functional_usage_view_terminal: specifies a role of the Scalar_terminal_definition for the Functional_usage_view_to_part_terminal_assignment.
Formal propositions:
UR1: The combination of functional_usage_view_terminal and physical_usage_view_terminal shall be unique within a population of Functional_usage_view_to_part_terminal_assignment.
A Part_connected_terminals_definition is the association between two or more Part_terminal that are connected internally to the part. This object serves as a formal requirement statement for connections implemented by a product. It is a topological abstraction in that it does not provide any information stating the variation of properties with respect to product or environmental variability.
NOTE This object is included to support the case where multiple terminals of a part are connected internally. It provides a more compact model structure by permitting an application to populate one instance of Part_connected_terminals_definition instead of multiple instances of Functional_usage_view_to_part_terminal_assignment.
EXAMPLE 1 A Part_connected_terminals_definition for a signal name of 'GND' specifies that J1-11, J2-1, J3-12, and J4 terminals 8 through 20 are all internally connected and that the interface control document specifies a common name of 'GND' for the specified Part_terminals.
EXAMPLE 2 A Part_connected_terminals_definition for a signal name of '28VDC' specifies that J11-11, J21-1, J31-12, and J14 terminals 8 through 20 are all internally connected and that the interface control document specifies a common name of '28VDC'' for the specified Part_terminals.
EXPRESS specification:
*)
ENTITY Part_connected_terminals_definition;
name : STRING;
associated_definition : Part_view_definition;
connected_terminals : SET[2:?] OF Part_terminal;
INVERSE
domain : SET[0:1] OF Part_connected_terminals_definition_domain FOR associated_definition;
UNIQUE
UR1: name, associated_definition;
WHERE
WR1: SIZEOF(QUERY(ct <* connected_terminals | NOT (associated_definition = ct\Shape_element.associated_definition))) = 0;
END_ENTITY;
(*
Attribute definitions:
name: the words by which the Part_connected_terminals_definition is known.
associated_definition: specifies the Part_usage_view that is the product definition for the Part_connected_terminals_definition.
connected_terminals: specifies a role of the Part_terminal for the Part_connected_terminals_definition. There shall be two or more Part_terminal for a Part_connected_terminals_definition.
domain: specifies an inverse relationship that specifies that the existence of the Part_connected_terminals_definition is dependent on the existence of the Part_connected_terminals_definition_domain that specifies the Part_connected_terminals_definition as its associated_definition. There shall be no more than one Part_connected_terminals_definition_domain for a particular Part_connected_terminals_definition.
Formal propositions:
UR1: The combination of name and associated_definition shall be unique within a population of Part_connected_terminals_definitions.
WR1: All terminals specified by the connected_terminals shall be on the associated_definition.
EXPRESS specification:
*)
ENTITY Part_connected_terminals_definition_domain;
domain_type : fatp_part_connected_terminals_definition_domain_enumeration;
associated_definition : Part_connected_terminals_definition;
END_ENTITY;
(*
Attribute definitions:
domain_type: specifies the role of the fatp_part_connected_terminals_definition_domain_enumeration for the Part_connected_terminals_definition_domain.
associated_definition: specifies the role of the Part_connected_terminals_definition for the Part_connected_terminals_definition_domain.
EXPRESS specification:
*)
ENTITY Part_connected_terminals_element;
name : STRING;
start_terminus : fatp_termination_or_junction;
end_terminus : fatp_termination_or_junction;
connectivity_context : Part_connected_terminals_structure_definition;
UNIQUE
UR1: name, connectivity_context;
WHERE
WR1: start_terminus <> end_terminus;
END_ENTITY;
(*
Attribute definitions:
name: the words by which the Part_connected_terminals_element is known.
start_terminus: specifies a role of the fatp_termination_or_junction for the Part_connected_terminals_element.
end_terminus: specifies a role of the fatp_termination_or_junction for the Part_connected_terminals_element.
connectivity_context: specifies a role of the Part_connected_terminals_definition for the Part_connected_terminals_element.
Formal propositions:
UR1: The combination of name and connectivity_context shall be unique within a population of Part_connected_terminals_element.
WR1: The start_terminus shall not be equal to the end_terminus.
EXPRESS specification:
*)
ENTITY Part_connected_terminals_layout_topology_requirement_assignment
SUBTYPE OF (Requirement_assignment);
SELF\Requirement_assignment.assigned_requirement : Physical_connectivity_layout_topology_requirement;
SELF\Requirement_assignment.assigned_to : Part_connected_terminals_definition;
END_ENTITY;
(*
Attribute definitions:
assigned_requirement: an attribute inherited from the Requirement_assignment shall be redeclared as the Physical_connectivity_layout_topology_requirement for the Part_connected_terminals_layout_topology_requirement_assignment.
assigned_to: an attribute inherited from the Requirement_assignment shall be redeclared as the Part_connected_terminals_definition for the Part_connected_terminals_layout_topology_requirement_assignment.
EXPRESS specification:
*)
ENTITY Part_connected_terminals_structure_definition
SUBTYPE OF (Part_connected_terminals_definition);
DERIVE
structural_terminal_nodes : SET[0:?] OF Part_terminal := fatp_get_pt(structural_element);
structural_junction_nodes : SET[0:?] OF Part_connected_terminals_topological_junction := fatp_get_tj(structural_element);
tree_structure : LOGICAL := ((SIZEOF(structural_terminal_nodes) + SIZEOF(structural_junction_nodes)) = (SIZEOF(structural_element) + 1));
INVERSE
structural_element : SET[1:?] OF Part_connected_terminals_element FOR connectivity_context;
WHERE
WR1: SIZEOF(QUERY(stn <* structural_terminal_nodes |
NOT(stn IN SELF\Part_connected_terminals_definition.connected_terminals)
)) = 0;
WR2: SIZEOF(structural_terminal_nodes) = SIZEOF(SELF\Part_connected_terminals_definition.connected_terminals);
END_ENTITY;
(*
Attribute definitions:
structural_terminal_nodes: specifies a role of the Part_terminal for the Part_connected_terminals_structure_definition. There shall exist zero or more Part_terminals for the Part_connected_terminals_structure_definition.
structural_junction_nodes: specifies a role of the Part_connected_terminals_topological_junction for the Part_connected_terminals_structure_definition. There shall exist zero or more Part_connected_terminals_topological_junctions for the Part_connected_terminals_structure_definition.
tree_structure: specifies a LOGICAL value.
structural_element: specifies an inverse relationship that specifies that the existence of the Part_connected_terminals_structure_definition is dependent on the existence of the Part_connected_terminals_element that specifies the Part_connected_terminals_structure_definition as its connectivity_context. There shall be no more than one Part_connected_terminals_element for a particular Part_connected_terminals_structure_definition.
Formal propositions:
WR1: Each member of structural_terminal_nodes shall be in the set of associated_terminals inherited from P Physical_connectivity_definition.
WR2: The size of the set of structural_terminal_nodes shall be the size of the set of connected_terminals inherited from Part_connected_terminals_definition.
EXPRESS specification:
*)
ENTITY Part_connected_terminals_topological_junction;
name : STRING;
scope : Part_connected_terminals_structure_definition;
UNIQUE
UR1: name, scope;
END_ENTITY;
(*
Attribute definitions:
name: the words by which the Part_connected_terminals_topological_junction is known.
scope: specifies a role of the Part_connected_terminals_structure_definition for the Part_connected_terminals_topological_junction.
Formal propositions:
UR1: The combination of name and scope shall be unique within a population of Part_connected_terminals_topological_junction.
NOTE A Part_teminal is often specified in an interface control document or other contractual binding agreement.
EXPRESS specification:
*)
ENTITY Part_terminal
SUBTYPE OF (Part_feature);
interface_or_join_terminal : interface_or_join_terminal_enumeration;
INVERSE
connection_requirement : SET[0:1] OF Part_connected_terminals_definition FOR connected_terminals;
functional_usage_view_terminal : SET[0:1] OF Functional_usage_view_to_part_terminal_assignment FOR physical_usage_view_terminal;
END_ENTITY;
(*
Attribute definitions:
interface_or_join_terminal: specifies that the Part_terminal is intended to join at the immediate-assembly level, or it is intended to interface to the next-higher-assembly level.
connection_requirement: specifies an inverse relationship that specifies that the existence of the Part_terminal is dependent on the existence of the Part_connected_terminals_definition that specifies the Part_terminal as its connected_terminals. There shall be no more than one Part_connected_terminals_definition for a particular Part_terminal.
functional_usage_view_terminal: specifies an inverse relationship that specifies that the existence of the Part_terminal is dependent on the existence of the Functional_usage_view_to_part_terminal_assignment that specifies the Part_terminal as its physical_usage_view_terminal. There shall be no more than one Functional_usage_view_to_part_terminal_assignment for a particular Part_terminal.
This subclause specifies the ARM functions for this module. The ARM functions and definitions are specified below.
EXPRESS specification:
*)
FUNCTION fatp_get_pt (input : SET[0:?] OF Part_connected_terminals_element) : SET[0:?] OF Part_terminal;
LOCAL pct : SET OF Part_terminal := []; i : INTEGER := 0; END_LOCAL; REPEAT i := 1 TO SIZEOF(input) BY 1; IF ('FUNCTIONAL_ASSIGNMENT_TO_PART_ARM.PART_TERMINAL' IN TYPEOF(input[i].start_terminus)) THEN pct := pct + input[i].start_terminus; END_IF; IF ('FUNCTIONAL_ASSIGNMENT_TO_PART_ARM.PART_TERMINAL' IN TYPEOF(input[i].end_terminus)) THEN pct := pct + input[i].end_terminus; END_IF; END_REPEAT; RETURN(pct);
END_FUNCTION;
(*
Argument definitions:
input: the specified set of Part_connected_terminals_elements.
EXPRESS specification:
*)
FUNCTION fatp_get_tj (input : SET[0:?] OF Part_connected_terminals_element) : SET[0:?] OF Part_connected_terminals_topological_junction;
LOCAL tj : SET OF Part_connected_terminals_topological_junction := []; i : INTEGER := 0; END_LOCAL; REPEAT i := 1 TO SIZEOF(input) BY 1; IF ('FUNCTIONAL_ASSIGNMENT_TO_PART_ARM.PART_CONNECTED_TERMINALS_TOPOLOGICAL_JUNCTION' IN TYPEOF(input[i].start_terminus)) THEN tj := tj + input[i].start_terminus; END_IF; IF ('FUNCTIONAL_ASSIGNMENT_TO_PART_ARM.PART_CONNECTED_TERMINALS_TOPOLOGICAL_JUNCTION' IN TYPEOF(input[i].end_terminus)) THEN tj := tj + input[i].end_terminus; END_IF; END_REPEAT; RETURN(tj);
END_FUNCTION;
(*
Argument definitions:
input: the specified set of Part_connected_terminals_elements.
*)
END_SCHEMA; -- Functional_assignment_to_part_arm
(*
© ISO 2018 — All rights reserved