Application module: Geometric model relationship | ISO/TS 10303-1403:2014-02(E) © ISO |
This clause specifies the information requirements for the Geometric model relationship 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 Geometric_model_relationship_arm schema and identifies the necessary external references.
EXPRESS specification:
*)
SCHEMA Geometric_model_relationship_arm;
(*
The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.
EXPRESS specification:
*)
USE FROM
Elemental_geometric_shape_arm;
--
ISO/TS 10303-1004
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:
Elemental_geometric_shape_arm ISO/TS 10303-1004 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 type for this application module. The ARM type and definition is specified below.
The geometric_representation_select type is an extensible list of alternate data types that allows for the designation of the data type Geometric_model.
NOTE The list of entity data types may be extended in application modules that use the constructs of this module.
EXPRESS specification:
*)
TYPE
geometric_representation_select =
EXTENSIBLE
GENERIC_ENTITY
SELECT
(Geometric_model);
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 Definitional_representation_relationship
SUBTYPE OF (Representation_relationship);
WHERE
WR1: acyclic_representation_relationship(SELF,
[SELF\representation_relationship.rep_2],
'FOUNDATION_REPRESENTATION_ARM.'+
'REPRESENTATION');
END_ENTITY;
(*
Formal propositions:
WR1: The Definitional_representation_relationship shall not participate in cycles.
EXPRESS specification:
*)
ENTITY Geometric_model_relationship
SUBTYPE OF (Representation_relationship);
SELF\Representation_relationship.rep_1 : geometric_representation_select;
SELF\Representation_relationship.rep_2 : geometric_representation_select;
WHERE
WR1: rep_1 <> rep_2;
END_ENTITY;
(*
Attribute definitions:
rep_1: an inherited attribute shall be of type geometric_representation_select for the Geometric_model_relationship.
rep_2: an inherited attribute shall be of type geometric_representation_select for the Geometric_model_relationship.
Formal propositions:
WR1: The rep_1 shall not be rep_2.
This subclause specifies the ARM function for this module. The ARM function and definition is specified below.
EXPRESS specification:
*)
FUNCTION acyclic_representation_relationship (relation : Representation_relationship; relatives : SET[1:?] OF Representation; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF representation_relationship; END_LOCAL; IF relation.rep_1 IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(r <* bag_to_set(USEDIN(relation.rep_1, 'FOUNDATION_REPRESENTATION_ARM.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2')) | specific_relation IN TYPEOF(r)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_representation_relationship(x[i], relatives + relation.rep_1, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: the specified Representation_relationship.
relatives: the specified Representations.
specific_relation: the specified type of Representation_relationships to be considered.
*)
END_SCHEMA; -- Geometric_model_relationship_arm
(*
© ISO 2014 — All rights reserved