Application module: Analytical model | ISO/TS 10303-1603:2019(E) © ISO |
(*
ISO/TC 184/SC 4/WG 12 N10295 - ISO/TS 10303-1603 Analytical model - EXPRESS ARM
Supersedes
ISO/TC 184/SC 4/WG 12 N8418
*)
SCHEMA Analytical_model_arm;
USE FROM
Document_structure_arm;
-- ISO/TS 10303-1124
USE FROM
Model_parameter_arm;
-- ISO/TS 10303-1703
USE FROM
Part_template_arm;
-- ISO/TS 10303-1722
USE FROM
Product_view_definition_relationship_arm;
-- ISO/TS 10303-1041
USE FROM
Software_arm;
-- ISO/TS 10303-1746
REFERENCE FROM
Specification_document_arm -- ISO/TS 10303-1747
(get_document_definition);
TYPE am_documented_element_select =
EXTENSIBLE
GENERIC_ENTITY
SELECT
BASED_ON
documented_element_select
WITH
(Analytical_model_definition);
END_TYPE;
TYPE am_external_identification_item =
EXTENSIBLE
GENERIC_ENTITY
SELECT
BASED_ON
external_identification_item
WITH
(Digital_analytical_model_vector_port);
END_TYPE;
TYPE am_parameter_assignment_select =
SELECT
BASED_ON
parameter_assignment_select
WITH
(Analytical_model_parameter);
END_TYPE;
TYPE am_property_assignment_select =
SELECT
BASED_ON
property_assignment_select
WITH
(Analytical_model_definition);
END_TYPE;
TYPE analytical_model_port_assignment_select =
EXTENSIBLE
GENERIC_ENTITY
SELECT;
END_TYPE;
TYPE port_property_type =
ENUMERATION
OF
(string_property_type,
boolean_property_type,
logical_property_type,
numeric_property_type,
physical_property_type);
END_TYPE;
TYPE signal_flow_direction =
ENUMERATION
OF
(unknown_direction,
not_applicable,
output_direction,
input_direction,
bidirectional);
END_TYPE;
ENTITY Across_port_variable
SUBTYPE OF (Port_variable);
WHERE
WR1: EXISTS(SELF\Port_variable.unit_of_measure);
END_ENTITY;
ENTITY Analog_analytical_model_port
SUBTYPE OF (Analytical_model_port);
INVERSE
signal_variable : SET[1:?] OF port_variable FOR associated_port;
END_ENTITY;
ENTITY Analytical_model
SUBTYPE OF (Information_product);
UNIQUE
UR1:
SELF\product.id;
END_ENTITY;
ENTITY Analytical_model_application
SUBTYPE OF (Representation);
model_parameter_assignment :
OPTIONAL
SET[1:?] OF Parameter_assignment;
model_representation : Analytical_model_definition;
UNIQUE
UR1:
SELF\representation.name;
END_ENTITY;
ENTITY Analytical_model_definition
SUBTYPE OF (Information_definition);
SELF\product_view_definition.defined_version : Analytical_model_version;
source_code : SET[1:1] OF Digital_file;
DERIVE
representation_language : SET[1:1] OF Document_definition := get_document_definition(SELF, 'representation language', 'SPECIFICATION_DOCUMENT_ARM.LANGUAGE_REFERENCE_MANUAL');
INVERSE
access_mechanism : SET[1:?] OF analytical_model_port FOR accessed_analytical_model;
parameter : SET[1:?] OF analytical_model_parameter FOR accessed_analytical_model;
reference_document : document_assignment FOR is_assigned_to;
END_ENTITY;
ENTITY Analytical_model_make_from_relationship
SUBTYPE OF (View_definition_relationship);
SELF\view_definition_relationship.relating_view RENAMED reusable_model : Analytical_model_definition;
SELF\view_definition_relationship.related_view RENAMED resultant_model : Analytical_model_definition;
UNIQUE
UR1: reusable_model, resultant_model;
WHERE
WR1: reusable_model :<>: resultant_model;
END_ENTITY;
ENTITY Analytical_model_parameter
SUBTYPE OF (Applied_independent_property);
SELF\assigned_property.described_element RENAMED accessed_analytical_model : Analytical_model_definition;
UNIQUE
UR1:
SELF\assigned_property.id, accessed_analytical_model;
END_ENTITY;
ENTITY Analytical_model_port
SUPERTYPE OF
(Analytical_model_vector_port
ANDOR (ONEOF (Analog_analytical_model_port,
Digital_analytical_model_port)));
accessed_analytical_model : Analytical_model_definition;
port_name : STRING;
UNIQUE
UR1: port_name, accessed_analytical_model;
END_ENTITY;
ENTITY Analytical_model_port_assignment;
assigned_analytical_model_port : Analytical_model_port;
assigned_item : analytical_model_port_assignment_select;
associated_analytical_model_application : Analytical_model_application;
UNIQUE
UR1: assigned_analytical_model_port, assigned_item, associated_analytical_model_application;
WHERE
WR1: assigned_analytical_model_port.accessed_analytical_model = associated_analytical_model_application.model_representation;
END_ENTITY;
ENTITY Analytical_model_port_make_from_relationship;
associated_make_from : Analytical_model_make_from_relationship;
reusable_feature : Analytical_model_port;
resultant_feature : Analytical_model_port;
UNIQUE
UR1: reusable_feature, resultant_feature;
WHERE
WR1: reusable_feature :<>: resultant_feature;
WR2: reusable_feature.accessed_analytical_model :<>: resultant_feature.accessed_analytical_model;
END_ENTITY;
ENTITY Analytical_model_scalar_port
SUBTYPE OF (Analytical_model_vector_port);
WHERE
WR1: SIZEOF(SELF\Analytical_model_vector_port.element_port) = 1;
WR2: SELF = SELF\Analytical_model_vector_port.element_port[1];
END_ENTITY;
ENTITY Analytical_model_vector_port
SUPERTYPE OF
(Analytical_model_scalar_port)
SUBTYPE OF (Analytical_model_port);
element_port : LIST[1:?] OF Analytical_model_scalar_port;
DERIVE
size : INTEGER := SIZEOF(element_port);
END_ENTITY;
ENTITY Analytical_model_version
SUBTYPE OF (Information_version);
SELF\product_version.of_product : Analytical_model;
END_ENTITY;
ENTITY Digital_analytical_model_port
ABSTRACT
SUPERTYPE OF
(Digital_analytical_model_vector_port)
SUBTYPE OF (Analytical_model_port);
nominal_signal_flow_direction : signal_flow_direction;
port_type : port_property_type;
WHERE
WR1: not_applicable <> nominal_signal_flow_direction;
WR2: numeric_property_type <> port_type;
WR3: physical_property_type <> port_type;
WR4: unknown_direction <> nominal_signal_flow_direction;
END_ENTITY;
ENTITY Digital_analytical_model_scalar_port
SUBTYPE OF (Digital_analytical_model_vector_port, Analytical_model_scalar_port);
END_ENTITY;
ENTITY Digital_analytical_model_vector_port
SUBTYPE OF (Digital_analytical_model_port, Analytical_model_vector_port);
INVERSE
data_encoding_method : external_source_identification FOR item;
WHERE
WR1: SELF\Digital_analytical_model_port.port_type = port_property_type.string_property_type;
END_ENTITY;
ENTITY Port_variable
SUPERTYPE OF
(ONEOF (Through_port_variable,
Across_port_variable,
Transform_port_variable));
associated_port : Analog_analytical_model_port;
variable_name : STRING;
unit_of_measure :
OPTIONAL
Unit;
UNIQUE
UR1: variable_name, associated_port;
END_ENTITY;
ENTITY Reference_part_template_for_analytical_model;
template : Template_definition;
analytical_representation : Analytical_model_definition;
UNIQUE
UR1: template;
END_ENTITY;
ENTITY Terminal_pair_port_equivalence_relationship;
equivalent_port : Analytical_model_port;
scalar_ports : Analytical_model_vector_port;
WHERE
WR1: (SIZEOF(scalar_ports.element_port) = 2);
END_ENTITY;
ENTITY Through_port_variable
SUBTYPE OF (Port_variable);
WHERE
WR1: EXISTS(SELF\Port_variable.unit_of_measure);
END_ENTITY;
ENTITY Transform_port_variable
SUBTYPE OF (Port_variable);
nominal_signal_flow_direction : signal_flow_direction;
WHERE
WR1: signal_flow_direction.not_applicable <> nominal_signal_flow_direction;
WR2: signal_flow_direction.bidirectional <> nominal_signal_flow_direction;
END_ENTITY;
RULE analytical_model_definition_constraint FOR
(product_view_definition);
WHERE
WR1: SIZEOF(QUERY(pvd <* product_view_definition | (NOT ('ANALYTICAL_MODEL_ARM.ANALYTICAL_MODEL_DEFINITION'
IN TYPEOF(pvd))) AND ('ANALYTICAL_MODEL_ARM.ANALYTICAL_MODEL_VERSION' IN TYPEOF(pvd.defined_version)))) =
0;
END_RULE;
RULE analytical_model_version_constraint FOR
(product_version);
WHERE
WR1: SIZEOF(QUERY(pv <* product_version | (NOT ('ANALYTICAL_MODEL_ARM.ANALYTICAL_MODEL_VERSION'
IN TYPEOF(pv))) AND ('ANALYTICAL_MODEL_ARM.ANALYTICAL_MODEL' IN TYPEOF(pv.of_product)))) = 0;
END_RULE;
END_SCHEMA; -- Analytical_model_arm
© ISO 2019 — All rights reserved