(* $Id: wg3n1598_ap221.exp,v 1.1 2007/07/11 21:52:55 loffredo Exp $ ISO TC184/SC4/WG3 N1598 - ISO/TS 10303-421 Functional data and schematic representation - EXPRESS MIM Long form Supersedes ISO TC184/SC4/WG3 N1218 *) (* ===================================================================================== *) (* Long form schema generated by PDTec LongformGenerator V 3.1-15 *) (* generated at 2005-01-26 17:27:25 *) (* ===================================================================================== *) SCHEMA FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF; (* Original schemas: schema = action_schema ; schema = activity_method_mim ; schema = activity_mim ; schema = activity_structure_and_classification_mim ; schema = aic_draughting_annotation ; schema = aic_drawing_structure_and_administration ; schema = aic_geometrically_bounded_2d_wireframe ; schema = application_context_schema ; schema = approval_mim ; schema = approval_schema ; schema = basic_attribute_schema ; schema = cardinality_of_relationship_mim ; schema = certification_schema ; schema = class_mim ; schema = class_of_activity_library_mim ; schema = class_of_activity_mim ; schema = class_of_activity_structure_mim ; schema = class_of_composition_of_activity_mim ; schema = class_of_composition_of_product_mim ; schema = class_of_connection_of_activity_mim ; schema = class_of_connection_of_product_mim ; schema = class_of_containment_of_product_mim ; schema = class_of_involvement_in_activity_mim ; schema = class_of_involvement_of_product_in_connection_mim ; schema = class_of_person_mim ; schema = class_of_product_library_mim ; schema = class_of_product_mim ; schema = class_of_product_structure_mim ; schema = classification_mim ; schema = classification_schema ; schema = composition_of_individual_activity_mim ; schema = composition_of_individual_product_mim ; schema = configuration_management_schema ; schema = connection_of_individual_activity_mim ; schema = connection_of_individual_product_mim ; schema = containment_of_individual_product_mim ; schema = contract_schema ; schema = date_time_assignment_mim ; schema = date_time_mim ; schema = date_time_schema ; schema = document_and_version_identification_mim ; schema = document_schema ; schema = draughting_annotation_mim ; schema = draughting_element_schema ; schema = drawing_definition_schema ; schema = drawing_structure_and_administration_mim ; schema = effectivity_schema ; schema = experience_schema ; schema = external_item_identification_assignment_mim ; schema = external_reference_schema ; schema = foundation_representation_mim ; schema = functional_data_and_schematic_representation_mim ; schema = functional_data_mim ; schema = geometric_model_schema ; schema = geometry_schema ; schema = group_schema ; schema = identification_assignment_mim ; schema = independent_property_definition_mim ; schema = independent_property_mim ; schema = individual_activity_mim ; schema = individual_activity_structure_mim ; schema = individual_involvement_in_activity_mim ; schema = individual_product_structure_mim ; schema = involvement_of_individual_product_in_connection_mim ; schema = iso13584_expressions_schema ; schema = iso13584_generic_expressions_schema ; schema = location_schema ; schema = management_resources_schema ; schema = material_property_definition_schema ; schema = material_property_representation_schema ; schema = mathematical_context_schema ; schema = mathematical_functions_schema ; schema = maths_space_mim ; schema = maths_value_mim ; schema = measure_schema ; schema = method_definition_schema ; schema = organization_type_mim ; schema = person_organization_mim ; schema = person_organization_schema ; schema = possession_of_property_mim ; schema = presentation_appearance_schema ; schema = presentation_definition_schema ; schema = presentation_organization_schema ; schema = presentation_resource_schema ; schema = process_property_assignment_mim ; schema = process_property_representation_schema ; schema = process_property_schema ; schema = product_as_individual_mim ; schema = product_categorization_mim ; schema = product_concept_schema ; schema = product_definition_schema ; schema = product_identification_mim ; schema = product_property_definition_schema ; schema = product_property_representation_schema ; schema = product_structure_and_classification_mim ; schema = product_structure_schema ; schema = product_version_mim ; schema = product_version_relationship_mim ; schema = product_view_definition_mim ; schema = property_and_property_assignment_mim ; schema = property_assignment_mim ; schema = property_condition_mim ; schema = property_identification_mim ; schema = property_space_mim ; schema = qualifications_schema ; schema = qualified_measure_schema ; schema = reference_data_library_mim ; schema = representation_schema ; schema = schematic_and_symbolization_mim ; schema = schematic_drawing_mim ; schema = schematic_element_library_mim ; schema = schematic_element_mim ; schema = security_classification_schema ; schema = set_theory_mim ; schema = set_theory_schema ; schema = state_observed_schema ; schema = state_type_schema ; schema = support_resource_schema ; schema = symbolization_by_schematic_element_mim ; schema = topology_schema ; schema = value_with_unit_mim ; *) CONSTANT cnlit : STRING := schema_prefix + 'COMPLEX_NUMBER_LITERAL'; dummy_gri : geometric_representation_item := representation_item('')|| geometric_representation_item(); schema_prefix : STRING := 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.'; the_binarys : elementary_space := make_elementary_space(es_binarys); the_booleans : elementary_space := make_elementary_space(es_booleans); the_complex_numbers : elementary_space := make_elementary_space( es_complex_numbers); the_complex_tuples : extended_tuple_space := make_extended_tuple_space( the_zero_tuple_space, the_complex_numbers); the_empty_maths_tuple : maths_tuple := []; the_empty_space : finite_space := make_finite_space([]); the_generics : elementary_space := make_elementary_space(es_generics); the_integer_tuples : extended_tuple_space := make_extended_tuple_space( the_zero_tuple_space, the_integers); the_integers : elementary_space := make_elementary_space(es_integers); the_logicals : elementary_space := make_elementary_space(es_logicals); the_maths_spaces : elementary_space := make_elementary_space(es_maths_spaces) ; the_neg1_one_interval : finite_real_interval := make_finite_real_interval(- 1.0, closed, 1.0, closed); the_neghalfpi_halfpi_interval : finite_real_interval := make_finite_real_interval(-0.5 * PI, closed, 0.5 * PI, closed); the_negpi_pi_interval : finite_real_interval := make_finite_real_interval(-PI , open, PI, closed); the_nonnegative_reals : real_interval_from_min := make_real_interval_from_min (0.0, closed); the_numbers : elementary_space := make_elementary_space(es_numbers); the_real_tuples : extended_tuple_space := make_extended_tuple_space( the_zero_tuple_space, the_reals); the_reals : elementary_space := make_elementary_space(es_reals); the_strings : elementary_space := make_elementary_space(es_strings); the_tuples : extended_tuple_space := make_extended_tuple_space( the_zero_tuple_space, the_generics); the_zero_pi_interval : finite_real_interval := make_finite_real_interval(0.0 , closed, PI, closed); the_zero_tuple_space : listed_product_space := make_listed_product_space([]); END_CONSTANT; TYPE action_items = SELECT (class_of_activity, class_of_composition_of_activity, class_of_composition_of_product, class_of_connection_of_activity, class_of_connection_of_product, class_of_containment_of_product, class_of_involvement_in_activity, class_of_involvement_of_product_in_connection, class_of_person, class_of_product, composition_of_individual_activity, composition_of_individual_product, connection_of_individual_activity, connection_of_individual_product, containment_of_individual_product, drawing_revision_class_of_document, drawing_sheet_revision_class_of_document , individual_activity, individual_involvement_in_activity, involvement_of_individual_product_in_connection, organization, organization_type, person, person_and_organization, possession_of_property_by_activity, possession_of_property_by_product, product_as_individual_version, property_condition_for_activity, property_condition_for_product, schematic_element, symbolization_by_schematic_element); END_TYPE; TYPE amount_of_substance_measure = REAL; END_TYPE; TYPE approved_item = SELECT (drawing_revision, drawing_sheet_revision); END_TYPE; TYPE area_measure = REAL; END_TYPE; TYPE atom_based_value = SELECT (maths_atom); END_TYPE; TYPE axis2_placement = SELECT (axis2_placement_2d); END_TYPE; TYPE b_spline_curve_form = ENUMERATION OF (polyline_form, circular_arc, elliptic_arc, parabolic_arc, hyperbolic_arc, unspecified); END_TYPE; TYPE box_characteristic_select = SELECT (box_height, box_width, box_slant_angle, box_rotate_angle); END_TYPE; TYPE box_height = positive_ratio_measure; END_TYPE; TYPE box_rotate_angle = plane_angle_measure; END_TYPE; TYPE box_slant_angle = plane_angle_measure; END_TYPE; TYPE box_width = positive_ratio_measure; END_TYPE; TYPE celsius_temperature_measure = REAL; END_TYPE; TYPE character_spacing_select = SELECT (length_measure, ratio_measure, measure_with_unit, descriptive_measure); END_TYPE; TYPE character_style_select = SELECT (text_style_for_defined_font); END_TYPE; TYPE characterized_action_definition = SELECT (action, action_method, action_relationship); END_TYPE; TYPE characterized_definition = SELECT (characterized_product_definition); END_TYPE; TYPE characterized_product_definition = SELECT (product_definition); END_TYPE; TYPE classification_select = SELECT (composition_of_individual_activity, composition_of_individual_product, connection_of_individual_activity, connection_of_individual_product, containment_of_individual_product, individual_activity, individual_involvement_in_activity, involvement_of_individual_product_in_connection, product_as_individual_version); END_TYPE; TYPE classified_item = SELECT (drawing_revision, drawing_sheet_revision); END_TYPE; TYPE context_dependent_measure = REAL; END_TYPE; TYPE contracted_item = SELECT (drawing_revision); END_TYPE; TYPE count_measure = NUMBER; END_TYPE; TYPE curve_font_or_scaled_curve_font_select = SELECT (curve_style_font_select); END_TYPE; TYPE curve_style_font_select = SELECT (curve_style_font, pre_defined_curve_font, externally_defined_curve_font); END_TYPE; TYPE date_time_select = SELECT (date); END_TYPE; TYPE day_in_month_number = INTEGER; WHERE wr1 : {1 <= SELF <= 31}; END_TYPE; TYPE defined_symbol_select = SELECT (pre_defined_symbol, externally_defined_symbol); END_TYPE; TYPE derived_property_select = SELECT (action_property, property_definition); END_TYPE; TYPE description_attribute_select = SELECT (application_context, approval_role, external_source, organization_role, person_and_organization, person_and_organization_role, person_role, property_definition_representation, representation); END_TYPE; TYPE descriptive_measure = STRING; END_TYPE; TYPE dimension_count = INTEGER; WHERE wr1 : SELF > 0; END_TYPE; TYPE draughting_callout_element = SELECT (annotation_text_occurrence, annotation_symbol_occurrence, annotation_curve_occurrence); END_TYPE; TYPE draughting_organization_item = SELECT (product_definition_formation, drawing_revision, drawing_sheet_revision); END_TYPE; TYPE draughting_presented_item_select = SELECT (product_definition_formation); END_TYPE; TYPE draughting_titled_item = SELECT (drawing_revision, drawing_sheet_revision); END_TYPE; TYPE electric_current_measure = REAL; END_TYPE; TYPE elementary_function_enumerators = ENUMERATION OF (ef_and, ef_or, ef_not, ef_xor, ef_negate_i, ef_add_i, ef_subtract_i, ef_multiply_i, ef_divide_i, ef_mod_i, ef_exponentiate_i, ef_eq_i, ef_ne_i, ef_gt_i, ef_lt_i, ef_ge_i, ef_le_i, ef_abs_i, ef_max_i, ef_min_i, ef_if_i, ef_negate_r, ef_reciprocal_r, ef_add_r, ef_subtract_r, ef_multiply_r, ef_divide_r, ef_mod_r, ef_exponentiate_r, ef_exponentiate_ri, ef_eq_r, ef_ne_r, ef_gt_r, ef_lt_r, ef_ge_r, ef_le_r, ef_abs_r, ef_max_r, ef_min_r, ef_acos_r, ef_asin_r, ef_atan2_r, ef_cos_r, ef_exp_r, ef_ln_r, ef_log2_r, ef_log10_r, ef_sin_r, ef_sqrt_r, ef_tan_r, ef_if_r, ef_form_c, ef_rpart_c, ef_ipart_c, ef_negate_c, ef_reciprocal_c, ef_add_c, ef_subtract_c, ef_multiply_c, ef_divide_c, ef_exponentiate_c, ef_exponentiate_ci, ef_eq_c, ef_ne_c, ef_conjugate_c, ef_abs_c, ef_arg_c, ef_cos_c, ef_exp_c, ef_ln_c, ef_sin_c, ef_sqrt_c, ef_tan_c, ef_if_c, ef_subscript_s, ef_eq_s, ef_ne_s, ef_gt_s, ef_lt_s, ef_ge_s, ef_le_s, ef_subsequence_s, ef_concat_s, ef_size_s , ef_format, ef_value, ef_like, ef_if_s, ef_subscript_b, ef_eq_b, ef_ne_b, ef_gt_b, ef_lt_b, ef_ge_b, ef_le_b, ef_subsequence_b, ef_concat_b, ef_size_b , ef_if_b, ef_subscript_t, ef_eq_t, ef_ne_t, ef_concat_t, ef_size_t, ef_entuple, ef_detuple, ef_insert, ef_remove, ef_if_t, ef_sum_it, ef_product_it, ef_add_it, ef_subtract_it, ef_scalar_mult_it, ef_dot_prod_it, ef_sum_rt, ef_product_rt, ef_add_rt, ef_subtract_rt, ef_scalar_mult_rt, ef_dot_prod_rt, ef_norm_rt, ef_sum_ct, ef_product_ct, ef_add_ct, ef_subtract_ct, ef_scalar_mult_ct, ef_dot_prod_ct, ef_norm_ct, ef_if, ef_ensemble, ef_member_of); END_TYPE; TYPE elementary_space_enumerators = ENUMERATION OF (es_numbers, es_complex_numbers, es_reals, es_integers, es_logicals, es_booleans, es_strings, es_binarys, es_maths_spaces, es_maths_functions, es_generics); END_TYPE; TYPE extension_options = ENUMERATION OF (eo_none, eo_cont, eo_cont_right, eo_cont_left); END_TYPE; TYPE external_identification_item = SELECT (class_of_activity, class_of_composition_of_activity, class_of_composition_of_product, class_of_connection_of_activity, class_of_connection_of_product, class_of_containment_of_product, class_of_involvement_in_activity, class_of_involvement_of_product_in_connection, class_of_person, class_of_product, drawing_revision_class_of_document, drawing_sheet_revision_class_of_document, implicit_schematic_element_definition, organization_type, property_condition_for_activity, property_condition_for_product, schematic_element, symbolization_by_schematic_element); END_TYPE; TYPE fill_area_style_tile_shape_select = SELECT (fill_area_style_tile_symbol_with_style); END_TYPE; TYPE fill_style_select = SELECT (fill_area_style_colour, externally_defined_tile_style, fill_area_style_tiles , externally_defined_hatch_style, fill_area_style_hatching); END_TYPE; TYPE font_select = SELECT (pre_defined_text_font, externally_defined_text_font); END_TYPE; TYPE founded_item_select = SELECT (founded_item, representation_item); END_TYPE; TYPE geometric_set_select = SELECT (point, curve, surface); END_TYPE; TYPE id_attribute_select = SELECT (action, address, application_context, group, product_category, property_definition, representation); END_TYPE; TYPE identification_item = SELECT (product_as_individual, product_as_individual_version, product_as_individual_view); END_TYPE; TYPE identifier = STRING; END_TYPE; TYPE input_selector = positive_integer; END_TYPE; TYPE invisibility_context = SELECT (presentation_representation, presentation_set); END_TYPE; TYPE invisible_item = SELECT (styled_item, representation); END_TYPE; TYPE involved_class_select = action_items; WHERE wr1 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITION_OF_INDIVIDUAL_ACTIVITY' IN TYPEOF(SELF)); wr2 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITION_OF_INDIVIDUAL_PRODUCT' IN TYPEOF(SELF)); wr3 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CONNECTION_OF_INDIVIDUAL_ACTIVITY' IN TYPEOF(SELF)); wr4 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CONNECTION_OF_INDIVIDUAL_PRODUCT' IN TYPEOF(SELF)); wr5 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CONTAINMENT_OF_INDIVIDUAL_PRODUCT' IN TYPEOF(SELF)); wr6 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.INDIVIDUAL_ACTIVITY' IN TYPEOF(SELF)); wr7 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.INDIVIDUAL_INVOLVEMENT_IN_ACTIVITY' IN TYPEOF(SELF)); wr8 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.INVOLVEMENT_OF_INDIVIDUAL_PRODUCT_IN_CONNECTION' IN TYPEOF(SELF)); wr9 : NOT ('FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ORGANIZATION' IN TYPEOF(SELF)); wr10 : NOT ('FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PERSON' IN TYPEOF(SELF)); wr11 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PERSON_AND_ORGANIZATION' IN TYPEOF(SELF)); wr12 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.POSSESSION_OF_PROPERTY_BY_ACTIVITY' IN TYPEOF(SELF)); wr13 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.POSSESSION_OF_PROPERTY_BY_PRODUCT' IN TYPEOF(SELF)); wr14 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PRODUCT_AS_INDIVIDUAL_VERSION' IN TYPEOF(SELF)); END_TYPE; TYPE involved_select = action_items; END_TYPE; TYPE knot_type = ENUMERATION OF (uniform_knots, quasi_uniform_knots, piecewise_bezier_knots, unspecified); END_TYPE; TYPE label = STRING; END_TYPE; TYPE length_measure = REAL; END_TYPE; TYPE luminous_intensity_measure = REAL; END_TYPE; TYPE mass_measure = REAL; END_TYPE; TYPE maths_atom = SELECT (maths_simple_atom, maths_enum_atom); END_TYPE; TYPE maths_binary = BINARY; END_TYPE; TYPE maths_boolean = BOOLEAN; END_TYPE; TYPE maths_enum_atom = SELECT (elementary_space_enumerators, ordering_type, elementary_function_enumerators , open_closed, space_constraint_type, repackage_options, extension_options); END_TYPE; TYPE maths_expression = SELECT (atom_based_value, maths_tuple, generic_expression); END_TYPE; TYPE maths_function_select = SELECT (maths_function, elementary_function_enumerators); END_TYPE; TYPE maths_integer = INTEGER; END_TYPE; TYPE maths_logical = LOGICAL; END_TYPE; TYPE maths_number = NUMBER; END_TYPE; TYPE maths_real = REAL; END_TYPE; TYPE maths_simple_atom = SELECT (maths_number, maths_real, maths_integer, maths_logical, maths_boolean, maths_string, maths_binary); END_TYPE; TYPE maths_space_or_function = SELECT (maths_space, maths_function); END_TYPE; TYPE maths_string = STRING; END_TYPE; TYPE maths_tuple = LIST OF maths_value; END_TYPE; TYPE maths_value = SELECT (atom_based_value, maths_tuple, generic_expression); WHERE constancy : NOT ('GENERIC_EXPRESSION' IN stripped_typeof(SELF)) OR expression_is_constant(SELF); END_TYPE; TYPE measure_value = SELECT (amount_of_substance_measure, area_measure, celsius_temperature_measure, context_dependent_measure, count_measure, descriptive_measure, electric_current_measure, length_measure, luminous_intensity_measure, mass_measure, numeric_measure, parameter_value, plane_angle_measure, positive_length_measure, positive_plane_angle_measure, positive_ratio_measure , ratio_measure, solid_angle_measure, thermodynamic_temperature_measure, time_measure, volume_measure); END_TYPE; TYPE month_in_year_number = INTEGER; WHERE wr1 : {1 <= SELF <= 12}; END_TYPE; TYPE name_attribute_select = SELECT (address, derived_unit, person_and_organization, product_definition, property_definition_representation); END_TYPE; TYPE nonnegative_integer = INTEGER; WHERE nonnegativity : SELF >= 0; END_TYPE; TYPE null_style = ENUMERATION OF (null); END_TYPE; TYPE numeric_measure = NUMBER; END_TYPE; TYPE one_or_two = positive_integer; WHERE in_range : (SELF = 1) OR (SELF = 2); END_TYPE; TYPE open_closed = ENUMERATION OF (open, closed); END_TYPE; TYPE ordering_type = ENUMERATION OF (by_rows, by_columns); END_TYPE; TYPE organization_type_item = SELECT (organization); END_TYPE; TYPE parameter_value = REAL; END_TYPE; TYPE person_organization_select = SELECT (organization, person, person_and_organization); END_TYPE; TYPE plane_angle_measure = REAL; END_TYPE; TYPE positive_integer = nonnegative_integer; WHERE positivity : SELF > 0; END_TYPE; TYPE positive_length_measure = length_measure; WHERE wr1 : SELF > 0.0; END_TYPE; TYPE positive_plane_angle_measure = plane_angle_measure; WHERE wr1 : SELF > 0.0; END_TYPE; TYPE positive_ratio_measure = ratio_measure; WHERE wr1 : SELF > 0.0; END_TYPE; TYPE presentable_text = STRING; END_TYPE; TYPE presentation_representation_select = SELECT (presentation_representation, presentation_set); END_TYPE; TYPE presentation_size_assignment_select = SELECT (presentation_view, presentation_area, area_in_set); END_TYPE; TYPE presentation_style_select = SELECT (curve_style, symbol_style, fill_area_style, text_style, null_style); END_TYPE; TYPE product_space = SELECT (uniform_product_space, listed_product_space); END_TYPE; TYPE ratio_measure = REAL; END_TYPE; TYPE real_interval = SELECT (real_interval_from_min, real_interval_to_max, finite_real_interval, elementary_space); WHERE wr1 : NOT ('ELEMENTARY_SPACE' IN stripped_typeof(SELF)) OR (SELF\ elementary_space.space_id = es_reals); END_TYPE; TYPE relationship_select = space_context_select; END_TYPE; TYPE repackage_options = ENUMERATION OF (ro_nochange, ro_wrap_as_tuple, ro_unwrap_tuple); END_TYPE; TYPE represented_definition = SELECT (general_property, property_definition); END_TYPE; TYPE role_select = SELECT (action_assignment, approval_assignment, approval_date_time, contract_assignment, document_reference, security_classification_assignment); END_TYPE; TYPE si_prefix = ENUMERATION OF (exa, peta, tera, giga, mega, kilo, hecto, deca, deci, centi, milli, micro, nano, pico, femto, atto); END_TYPE; TYPE si_unit_name = ENUMERATION OF (metre, gram, second, ampere, kelvin, mole, candela, radian, steradian, hertz , newton, pascal, joule, watt, coulomb, volt, farad, ohm, siemens, weber, tesla, henry, degree_celsius, lumen, lux, becquerel, gray, sievert); END_TYPE; TYPE size_select = SELECT (positive_length_measure, measure_with_unit, descriptive_measure); END_TYPE; TYPE solid_angle_measure = REAL; END_TYPE; TYPE source_item = SELECT (identifier); END_TYPE; TYPE space_constraint_type = ENUMERATION OF (sc_equal, sc_subspace, sc_member); END_TYPE; TYPE space_context_select = SELECT (action, action_method, class_of_composition_of_activity, class_of_composition_of_product, class_of_connection_of_activity, class_of_connection_of_product, class_of_containment_of_product, class_of_involvement_in_activity, class_of_involvement_of_product_in_connection, general_property, product_definition, representation_item); END_TYPE; TYPE specified_item = SELECT (drawing_revision); END_TYPE; TYPE style_context_select = SELECT (group, representation, representation_item, presentation_set); END_TYPE; TYPE symbol_style_select = SELECT (symbol_colour); END_TYPE; TYPE symbolized_class_select = SELECT (class_of_activity, class_of_composition_of_activity, class_of_composition_of_product, class_of_connection_of_activity, class_of_connection_of_product, class_of_containment_of_product, class_of_involvement_in_activity, class_of_involvement_of_product_in_connection, class_of_person, class_of_product, drawing_revision_class_of_document, drawing_sheet_revision_class_of_document, organization_type, property_condition_for_activity, property_condition_for_product, schematic_element, symbolization_by_schematic_element); END_TYPE; TYPE symbolized_item_select = SELECT (class_of_activity, class_of_composition_of_activity, class_of_composition_of_product, class_of_connection_of_activity, class_of_connection_of_product, class_of_containment_of_product, class_of_involvement_in_activity, class_of_involvement_of_product_in_connection, class_of_person, class_of_product, composition_of_individual_activity, composition_of_individual_product, connection_of_individual_activity, connection_of_individual_product, containment_of_individual_product, drawing_revision_class_of_document, drawing_sheet_revision_class_of_document , individual_activity, individual_involvement_in_activity, involvement_of_individual_product_in_connection, organization, organization_type, person, person_and_organization, possession_of_property_by_activity, possession_of_property_by_product, product_as_individual_version, property_condition_for_activity, property_condition_for_product, schematic_element, symbolization_by_schematic_element); END_TYPE; TYPE text = STRING; END_TYPE; TYPE text_alignment = label; END_TYPE; TYPE text_delineation = label; END_TYPE; TYPE text_or_character = SELECT (annotation_text, composite_text, text_literal); END_TYPE; TYPE text_path = ENUMERATION OF (left, right, up, down); END_TYPE; TYPE thermodynamic_temperature_measure = REAL; END_TYPE; TYPE time_measure = REAL; END_TYPE; TYPE transition_code = ENUMERATION OF (discontinuous, continuous, cont_same_gradient, cont_same_gradient_same_curvature); END_TYPE; TYPE trimming_preference = ENUMERATION OF (cartesian, parameter, unspecified); END_TYPE; TYPE trimming_select = SELECT (cartesian_point, parameter_value); END_TYPE; TYPE tuple_space = SELECT (product_space, extended_tuple_space); END_TYPE; TYPE unit = SELECT (derived_unit, named_unit); END_TYPE; TYPE value_context_select = SELECT (action, action_method, general_property, product_definition, representation_item); END_TYPE; TYPE vector_or_direction = SELECT (vector, direction); END_TYPE; TYPE volume_measure = REAL; END_TYPE; TYPE year_number = INTEGER; END_TYPE; TYPE zero_or_one = nonnegative_integer; WHERE in_range : (SELF = 0) OR (SELF = 1); END_TYPE; ENTITY abs_function SUBTYPE OF (unary_function_call); END_ENTITY; ENTITY abstracted_expression_function SUBTYPE OF (maths_function, quantifier_expression); DERIVE SELF\quantifier_expression.variables : LIST [1:?] OF UNIQUE generic_variable := remove_first(SELF\multiple_arity_generic_expression.operands); expr : generic_expression := SELF\multiple_arity_generic_expression.operands[ 1]; WHERE wr1 : SIZEOF(QUERY(operand <* SELF\multiple_arity_generic_expression.operands | NOT has_values_space(operand))) = 0; END_ENTITY; ENTITY acos_function SUBTYPE OF (unary_function_call); END_ENTITY; ENTITY action; name : label; description : OPTIONAL text; chosen_method : action_method; DERIVE id : identifier := get_id_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; ENTITY action_assignment ABSTRACT SUPERTYPE; assigned_action : action; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' )) <= 1; END_ENTITY; ENTITY action_method; name : label; description : OPTIONAL text; consequence : text; purpose : text; END_ENTITY; ENTITY action_property; name : label; description : text; definition : characterized_action_definition; END_ENTITY; ENTITY action_property_representation; name : label; description : text; property : action_property; representation : representation; END_ENTITY; ENTITY action_relationship; name : label; description : OPTIONAL text; relating_action : action; related_action : action; END_ENTITY; ENTITY action_status; status : label; assigned_action : executed_action; END_ENTITY; ENTITY address; internal_location : OPTIONAL label; street_number : OPTIONAL label; street : OPTIONAL label; postal_box : OPTIONAL label; town : OPTIONAL label; region : OPTIONAL label; postal_code : OPTIONAL label; country : OPTIONAL label; facsimile_number : OPTIONAL label; telephone_number : OPTIONAL label; electronic_mail_address : OPTIONAL label; telex_number : OPTIONAL label; DERIVE name : label := get_name_value(SELF); url : identifier := get_id_value(SELF); WHERE wr1 : EXISTS(internal_location) OR EXISTS(street_number) OR EXISTS(street) OR EXISTS(postal_box) OR EXISTS(town) OR EXISTS(region) OR EXISTS(postal_code ) OR EXISTS(country) OR EXISTS(facsimile_number) OR EXISTS(telephone_number ) OR EXISTS(electronic_mail_address) OR EXISTS(telex_number); END_ENTITY; ENTITY amount_of_substance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AMOUNT_OF_SUBSTANCE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY amount_of_substance_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit .dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions. time_exponent = 0.0) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 1.0) AND (SELF\named_unit.dimensions. luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY and_expression SUBTYPE OF (multiple_arity_boolean_expression); END_ENTITY; ENTITY annotation_curve_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CURVE' IN TYPEOF( SELF\styled_item.item); END_ENTITY; ENTITY annotation_fill_area SUBTYPE OF (geometric_representation_item); boundaries : SET [1:?] OF curve; END_ENTITY; ENTITY annotation_fill_area_occurrence SUBTYPE OF (annotation_occurrence); fill_style_target : point; WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_FILL_AREA' IN TYPEOF(SELF.item); END_ENTITY; ENTITY annotation_occurrence SUPERTYPE OF (ONEOF (annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_text_occurrence, annotation_symbol_occurrence)) SUBTYPE OF (styled_item); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY annotation_subfigure_occurrence SUBTYPE OF (annotation_symbol_occurrence); WHERE wr1 : SIZEOF(QUERY(sty <* SELF.styles | NOT (SIZEOF(sty.styles) = 1))) = 0; wr2 : SIZEOF(QUERY(sty <* SELF.styles | NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.NULL_STYLE' IN TYPEOF( sty.styles[1])))) = 0; wr3 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item); wr4 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION' IN TYPEOF(SELF.item\mapped_item.mapping_source.mapped_representation); END_ENTITY; ENTITY annotation_symbol SUBTYPE OF (mapped_item); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(SELF\mapped_item.mapping_source); wr2 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SYMBOL_TARGET' IN TYPEOF(SELF\mapped_item.mapping_target); wr3 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY annotation_symbol_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : SIZEOF([ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SYMBOL', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DEFINED_SYMBOL'] * TYPEOF(SELF\styled_item.item)) > 0; END_ENTITY; ENTITY annotation_text SUBTYPE OF (mapped_item); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(SELF\mapped_item.mapping_target); wr2 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_STRING_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); wr3 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY annotation_text_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : SIZEOF([ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_LITERAL', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_CHARACTER' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DEFINED_CHARACTER_GLYPH' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITE_TEXT'] * TYPEOF(SELF\styled_item.item)) > 0; END_ENTITY; ENTITY application_context; application : label; DERIVE description : text := get_description_value(SELF); id : identifier := get_id_value(SELF); INVERSE context_elements : SET [1:?] OF application_context_element FOR frame_of_reference; WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; ENTITY application_context_element SUPERTYPE OF (ONEOF (product_context, product_definition_context)); name : label; frame_of_reference : application_context; END_ENTITY; ENTITY application_defined_function SUBTYPE OF (maths_function); explicit_domain : tuple_space; explicit_range : tuple_space; parameters : LIST OF maths_value; WHERE wr1 : expression_is_constant(explicit_domain); wr2 : expression_is_constant(explicit_range); END_ENTITY; ENTITY applied_action_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF action_items; END_ENTITY; ENTITY applied_external_identification_assignment SUBTYPE OF (external_identification_assignment); items : SET [1:?] OF external_identification_item; END_ENTITY; ENTITY applied_identification_assignment SUBTYPE OF (identification_assignment); items : SET [1:?] OF identification_item; END_ENTITY; ENTITY applied_organization_type_assignment SUBTYPE OF (organization_type_assignment); items : SET [1:?] OF organization_type_item; END_ENTITY; ENTITY approval; status : approval_status; level : label; END_ENTITY; ENTITY approval_assignment ABSTRACT SUPERTYPE; assigned_approval : approval; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' )) <= 1; END_ENTITY; ENTITY approval_date_time; date_time : date_time_select; dated_approval : approval; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' )) <= 1; END_ENTITY; ENTITY approval_person_organization; person_organization : person_organization_select; authorized_approval : approval; role : approval_role; END_ENTITY; ENTITY approval_role; role : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY approval_status; name : label; END_ENTITY; ENTITY area_in_set; area : presentation_area; in_set : presentation_set; END_ENTITY; ENTITY area_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY area_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 2.0) AND (SELF\named_unit .dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions. time_exponent = 0.0) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions. luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY asin_function SUBTYPE OF (unary_function_call); END_ENTITY; ENTITY atan_function SUBTYPE OF (binary_function_call); END_ENTITY; ENTITY atom_based_literal SUBTYPE OF (generic_literal); lit_value : atom_based_value; END_ENTITY; ENTITY axis2_placement_2d SUBTYPE OF (placement); ref_direction : OPTIONAL direction; DERIVE p : LIST [2:2] OF direction := build_2axes(ref_direction); WHERE wr1 : SELF\geometric_representation_item.dim = 2; END_ENTITY; ENTITY b_spline_basis SUBTYPE OF (maths_function, generic_literal); degree : nonnegative_integer; repeated_knots : LIST [2:?] OF REAL; DERIVE order : positive_integer := degree + 1; num_basis : positive_integer := SIZEOF(repeated_knots) - order; WHERE wr1 : num_basis >= order; wr2 : nondecreasing(repeated_knots); wr3 : repeated_knots[order] < repeated_knots[num_basis + 1]; END_ENTITY; ENTITY b_spline_curve SUPERTYPE OF (ONEOF (uniform_curve, b_spline_curve_with_knots, quasi_uniform_curve, bezier_curve) ANDOR rational_b_spline_curve) SUBTYPE OF (bounded_curve); degree : INTEGER; control_points_list : LIST [2:?] OF cartesian_point; curve_form : b_spline_curve_form; closed_curve : LOGICAL; self_intersect : LOGICAL; DERIVE upper_index_on_control_points : INTEGER := SIZEOF(control_points_list) - 1; control_points : ARRAY [0 : upper_index_on_control_points] OF cartesian_point := list_to_array(control_points_list, 0, upper_index_on_control_points); WHERE wr1 : ('FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.UNIFORM_CURVE' IN TYPEOF(SELF)) OR ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF(SELF)) OR ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.BEZIER_CURVE' IN TYPEOF(SELF)) OR ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY; ENTITY b_spline_curve_with_knots SUBTYPE OF (b_spline_curve); knot_multiplicities : LIST [2:?] OF INTEGER; knots : LIST [2:?] OF parameter_value; knot_spec : knot_type; DERIVE upper_index_on_knots : INTEGER := SIZEOF(knots); WHERE wr1 : constraints_param_b_spline(degree, upper_index_on_knots, upper_index_on_control_points, knot_multiplicities, knots); wr2 : SIZEOF(knot_multiplicities) = upper_index_on_knots; END_ENTITY; ENTITY b_spline_function SUBTYPE OF (maths_function, unary_generic_expression); SELF\unary_generic_expression.operand : maths_function; basis : LIST [1:?] OF b_spline_basis; DERIVE coef : maths_function := SELF\unary_generic_expression.operand; WHERE wr1 : function_is_table(coef); wr2 : (space_dimension(coef.range) = 1) AND (number_superspace_of(factor1( coef.range)) = the_reals); wr3 : SIZEOF(basis) <= SIZEOF(shape_of_array(coef)); wr4 : compare_basis_and_coef(basis, coef); END_ENTITY; ENTITY basic_sparse_matrix SUBTYPE OF (explicit_table_function, multiple_arity_generic_expression); SELF\multiple_arity_generic_expression.operands : LIST [3:3] OF maths_function; default_entry : maths_value; order : ordering_type; DERIVE index : maths_function := SELF\multiple_arity_generic_expression.operands[1]; loc : maths_function := SELF\multiple_arity_generic_expression.operands[2]; val : maths_function := SELF\multiple_arity_generic_expression.operands[3]; WHERE wr1 : function_is_1d_table(index); wr2 : function_is_1d_table(loc); wr3 : function_is_1d_table(val); wr4 : check_sparse_index_domain(index.domain, index_base, shape, order); wr5 : check_sparse_index_to_loc(index.range, loc.domain); wr6 : loc.domain = val.domain; wr7 : check_sparse_loc_range(loc.range, index_base, shape, order); wr8 : member_of(default_entry, val.range); END_ENTITY; ENTITY bezier_curve SUBTYPE OF (b_spline_curve); END_ENTITY; ENTITY binary_boolean_expression ABSTRACT SUPERTYPE OF (ONEOF (xor_expression, equals_expression)) SUBTYPE OF (boolean_expression, binary_generic_expression); END_ENTITY; ENTITY binary_function_call ABSTRACT SUPERTYPE OF (ONEOF (atan_function)) SUBTYPE OF (binary_numeric_expression); END_ENTITY; ENTITY binary_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operands : LIST [2:2] OF generic_expression; END_ENTITY; ENTITY binary_literal SUBTYPE OF (generic_literal); lit_value : BINARY; END_ENTITY; ENTITY binary_numeric_expression ABSTRACT SUPERTYPE OF (ONEOF (minus_expression, div_expression, mod_expression , slash_expression, power_expression, binary_function_call)) SUBTYPE OF (numeric_expression, binary_generic_expression); SELF\binary_generic_expression.operands : LIST [2:2] OF numeric_expression; END_ENTITY; ENTITY boolean_defined_function ABSTRACT SUPERTYPE SUBTYPE OF (defined_function, boolean_expression); END_ENTITY; ENTITY boolean_expression ABSTRACT SUPERTYPE OF (ONEOF (simple_boolean_expression, unary_boolean_expression, binary_boolean_expression, multiple_arity_boolean_expression, comparison_expression, interval_expression, boolean_defined_function)) SUBTYPE OF (expression); END_ENTITY; ENTITY boolean_literal SUBTYPE OF (simple_boolean_expression, generic_literal); the_value : BOOLEAN; END_ENTITY; ENTITY boolean_variable SUBTYPE OF (simple_boolean_expression, variable); END_ENTITY; ENTITY bounded_curve SUPERTYPE OF (ONEOF (polyline, b_spline_curve, trimmed_curve, composite_curve)) SUBTYPE OF (curve); END_ENTITY; ENTITY calendar_date SUBTYPE OF (date); day_component : day_in_month_number; month_component : month_in_year_number; WHERE wr1 : valid_calendar_date(SELF); END_ENTITY; ENTITY camera_image SUBTYPE OF (mapped_item); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CAMERA_USAGE' IN TYPEOF(SELF\mapped_item.mapping_source); wr2 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PLANAR_BOX' IN TYPEOF(SELF\mapped_item.mapping_target); wr3 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY cardinality_of_related_class SUBTYPE OF (maths_space_context); -- Not allowed by EXPRESS edition 1 -- SELF\maths_space_context.physical_space : relationship_select; END_ENTITY; ENTITY cardinality_of_relating_class SUBTYPE OF (maths_space_context); -- Not allowed by EXPRESS edition 1 -- SELF\maths_space_context.physical_space : relationship_select; END_ENTITY; ENTITY cartesian_complex_number_region SUBTYPE OF (maths_space, generic_literal); real_constraint : real_interval; imag_constraint : real_interval; WHERE wr1 : min_exists(real_constraint) OR max_exists(real_constraint) OR min_exists(imag_constraint) OR max_exists(imag_constraint); END_ENTITY; ENTITY cartesian_point SUBTYPE OF (point); coordinates : LIST [1:3] OF length_measure; END_ENTITY; ENTITY cartesian_transformation_operator SUBTYPE OF (geometric_representation_item, functionally_defined_transformation) ; axis1 : OPTIONAL direction; axis2 : OPTIONAL direction; local_origin : cartesian_point; scale : OPTIONAL REAL; DERIVE scl : REAL := NVL(scale, 1.0); WHERE wr1 : scl > 0.0; END_ENTITY; ENTITY celsius_temperature_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY circle SUBTYPE OF (conic); radius : positive_length_measure; END_ENTITY; ENTITY class SUBTYPE OF (group); END_ENTITY; ENTITY class_by_extension SUBTYPE OF (class); END_ENTITY; ENTITY class_by_intension SUBTYPE OF (class); END_ENTITY; ENTITY class_of_activity SUBTYPE OF (executed_action, class); END_ENTITY; ENTITY class_of_composition_of_activity SUBTYPE OF (action_relationship, class); SELF\action_relationship.relating_action : class_of_activity; SELF\action_relationship.related_action : class_of_activity; END_ENTITY; ENTITY class_of_composition_of_product SUBTYPE OF (product_definition_formation_relationship, class); SELF\product_definition_formation_relationship. relating_product_definition_formation : class_of_product; SELF\product_definition_formation_relationship. related_product_definition_formation : class_of_product; END_ENTITY; ENTITY class_of_connection_of_activity SUBTYPE OF (action_relationship, class); SELF\action_relationship.relating_action : class_of_activity; SELF\action_relationship.related_action : class_of_activity; END_ENTITY; ENTITY class_of_connection_of_product SUBTYPE OF (product_definition_formation_relationship, class); SELF\product_definition_formation_relationship. relating_product_definition_formation : class_of_product; SELF\product_definition_formation_relationship. related_product_definition_formation : class_of_product; END_ENTITY; ENTITY class_of_connection_of_product_with_involvements SUBTYPE OF (class_of_connection_of_product, class_of_product); END_ENTITY; ENTITY class_of_containment_of_product SUBTYPE OF (product_definition_formation_relationship, class); SELF\product_definition_formation_relationship. relating_product_definition_formation : class_of_product; SELF\product_definition_formation_relationship. related_product_definition_formation : class_of_product; END_ENTITY; ENTITY class_of_involvement_in_activity SUBTYPE OF (applied_action_assignment, class); SELF\action_assignment.assigned_action : class_of_activity; -- Not allowed by EXPRESS edition 1 -- SELF\applied_action_assignment.items : SET [1:1] OF involved_class_select; END_ENTITY; ENTITY class_of_involvement_of_product_in_connection SUBTYPE OF (product_definition_formation_relationship, class); SELF\product_definition_formation_relationship. relating_product_definition_formation : class_of_connection_of_product_with_involvements; SELF\product_definition_formation_relationship. related_product_definition_formation : class_of_product; END_ENTITY; ENTITY class_of_person SUBTYPE OF (person_type, class); END_ENTITY; ENTITY class_of_possession_of_property_by_activity SUBTYPE OF (action_property); SELF\action_property.definition : class_of_activity; END_ENTITY; ENTITY class_of_possession_of_property_by_product SUBTYPE OF (property_definition); WHERE link_to_class : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CLASS_OF_PRODUCT' IN TYPEOF(SELF\property_definition.definition.formation); END_ENTITY; ENTITY class_of_product SUBTYPE OF (product_definition_formation, class); END_ENTITY; ENTITY classification SUBTYPE OF (classification_assignment); classified : classification_select; DERIVE classifier : class := SELF\classification_assignment.assigned_class; END_ENTITY; ENTITY classification_assignment ABSTRACT SUPERTYPE; assigned_class : group; role : classification_role; END_ENTITY; ENTITY classification_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY colour; END_ENTITY; ENTITY colour_rgb SUBTYPE OF (colour_specification); red : REAL; green : REAL; blue : REAL; WHERE wr1 : {0.0 <= red <= 1.0}; wr2 : {0.0 <= green <= 1.0}; wr3 : {0.0 <= blue <= 1.0}; END_ENTITY; ENTITY colour_specification SUBTYPE OF (colour); name : label; END_ENTITY; ENTITY comparison_equal SUBTYPE OF (comparison_expression); END_ENTITY; ENTITY comparison_expression ABSTRACT SUPERTYPE OF (ONEOF (comparison_equal, comparison_greater, comparison_greater_equal, comparison_less, comparison_less_equal, comparison_not_equal, like_expression)) SUBTYPE OF (boolean_expression, binary_generic_expression); SELF\binary_generic_expression.operands : LIST [2:2] OF expression; WHERE wr1 : ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2])) OR ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2])) OR ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2])); END_ENTITY; ENTITY comparison_greater SUBTYPE OF (comparison_expression); END_ENTITY; ENTITY comparison_greater_equal SUBTYPE OF (comparison_expression); END_ENTITY; ENTITY comparison_less SUBTYPE OF (comparison_expression); END_ENTITY; ENTITY comparison_less_equal SUBTYPE OF (comparison_expression); END_ENTITY; ENTITY comparison_not_equal SUBTYPE OF (comparison_expression); END_ENTITY; ENTITY complement; id : identifier; name : label; description : OPTIONAL text; set_1 : class; set_2 : class; universe : class; WHERE complement_different : NOT identical_sets(set_1, set_2); END_ENTITY; ENTITY complete_membership SUBTYPE OF (classification_assignment); DERIVE containing_set : class := SELF\classification_assignment.assigned_class; END_ENTITY; ENTITY complex_number_literal SUBTYPE OF (generic_literal); real_part : REAL; imag_part : REAL; END_ENTITY; ENTITY composite_curve SUBTYPE OF (bounded_curve); segments : LIST [1:?] OF composite_curve_segment; self_intersect : LOGICAL; DERIVE n_segments : INTEGER := SIZEOF(segments); closed_curve : LOGICAL := segments[n_segments].transition <> discontinuous; WHERE wr1 : NOT closed_curve AND (SIZEOF(QUERY(temp <* segments | temp.transition = discontinuous)) = 1) OR closed_curve AND (SIZEOF(QUERY(temp <* segments | temp.transition = discontinuous)) = 0); END_ENTITY; ENTITY composite_curve_segment SUBTYPE OF (founded_item); transition : transition_code; same_sense : BOOLEAN; parent_curve : curve; INVERSE using_curves : BAG [1:?] OF composite_curve FOR segments; WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.BOUNDED_CURVE' IN TYPEOF(parent_curve); END_ENTITY; ENTITY composite_text SUBTYPE OF (geometric_representation_item); collected_text : SET [2:?] OF text_or_character; WHERE wr1 : acyclic_composite_text(SELF, SELF.collected_text); END_ENTITY; ENTITY composite_text_with_associated_curves SUBTYPE OF (composite_text); associated_curves : SET [1:?] OF curve; END_ENTITY; ENTITY composite_text_with_blanking_box SUBTYPE OF (composite_text); blanking : planar_box; END_ENTITY; ENTITY composite_text_with_extent SUBTYPE OF (composite_text); extent : planar_extent; END_ENTITY; ENTITY composition_of_individual_activity SUBTYPE OF (action_relationship); SELF\action_relationship.relating_action : individual_activity; SELF\action_relationship.related_action : individual_activity; END_ENTITY; ENTITY composition_of_individual_product SUBTYPE OF (product_definition_formation_relationship); SELF\product_definition_formation_relationship. relating_product_definition_formation : product_as_individual_version; SELF\product_definition_formation_relationship. related_product_definition_formation : product_as_individual_version; END_ENTITY; ENTITY composition_of_schematic_element_occurrence SUBTYPE OF (mapped_item); WHERE schematic_element_occurrence_as_part : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'SCHEMATIC_ELEMENT_OCCURRENCE' IN TYPEOF(SELF\mapped_item.mapping_source. mapped_representation); schematic_element_occurrence_as_whole : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'SCHEMATIC_ELEMENT_OCCURRENCE' IN TYPEOF(using_representations(SELF)); END_ENTITY; ENTITY compound_maths_space_context SUBTYPE OF (maths_space_context); components : LIST [2:?] OF maths_space_context; END_ENTITY; ENTITY concat_expression SUBTYPE OF (string_expression, multiple_arity_generic_expression); SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF string_expression; END_ENTITY; ENTITY condition_property SUBTYPE OF (general_property_association); SELF\general_property_association.base_definition : physical_quantity_range; WHERE link_to_condition : ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PROPERTY_CONDITION_FOR_ACTIVITY' IN TYPEOF(SELF\general_property_association.derived_definition)) OR ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PROPERTY_CONDITION_FOR_PRODUCT' IN TYPEOF(SELF\general_property_association.derived_definition)); END_ENTITY; ENTITY conic SUPERTYPE OF (ONEOF (circle, ellipse, hyperbola, parabola)) SUBTYPE OF (curve); position : axis2_placement; END_ENTITY; ENTITY connection_of_individual_activity SUBTYPE OF (action_relationship); SELF\action_relationship.relating_action : individual_activity; SELF\action_relationship.related_action : individual_activity; END_ENTITY; ENTITY connection_of_individual_product SUBTYPE OF (product_definition_formation_relationship); SELF\product_definition_formation_relationship. relating_product_definition_formation : product_as_individual_version; SELF\product_definition_formation_relationship. related_product_definition_formation : product_as_individual_version; END_ENTITY; ENTITY connection_of_individual_product_with_involvements SUBTYPE OF (connection_of_individual_product, product_as_individual_version); END_ENTITY; ENTITY connection_of_schematic_element_occurrence SUBTYPE OF (mapped_item); WHERE schematic_element_occurrence_as_side_1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'SCHEMATIC_ELEMENT_OCCURRENCE' IN TYPEOF(SELF\mapped_item.mapping_source. mapped_representation); schematic_element_occurrence_as_side_2 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'SCHEMATIC_ELEMENT_OCCURRENCE' IN TYPEOF(using_representations(SELF)); END_ENTITY; ENTITY constant_function SUBTYPE OF (maths_function, generic_literal); sole_output : maths_value; source_of_domain : maths_space_or_function; WHERE wr1 : no_cyclic_domain_reference(source_of_domain, [SELF]); wr2 : expression_is_constant(domain_from(source_of_domain)); END_ENTITY; ENTITY containment_of_individual_product SUBTYPE OF (product_definition_formation_relationship); SELF\product_definition_formation_relationship. relating_product_definition_formation : product_as_individual_version; SELF\product_definition_formation_relationship. related_product_definition_formation : product_as_individual_version; END_ENTITY; ENTITY context_dependent_invisibility SUBTYPE OF (invisibility); presentation_context : invisibility_context; END_ENTITY; ENTITY context_dependent_unit SUBTYPE OF (named_unit); name : label; END_ENTITY; ENTITY contract; name : label; purpose : text; kind : contract_type; END_ENTITY; ENTITY contract_assignment ABSTRACT SUPERTYPE; assigned_contract : contract; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' )) <= 1; END_ENTITY; ENTITY contract_type; description : label; END_ENTITY; ENTITY conversion_based_unit SUBTYPE OF (named_unit); name : label; conversion_factor : measure_with_unit; END_ENTITY; ENTITY cos_function SUBTYPE OF (unary_function_call); END_ENTITY; ENTITY curve SUPERTYPE OF (ONEOF (line, conic, offset_curve_2d, curve_replica)) SUBTYPE OF (geometric_representation_item); END_ENTITY; ENTITY curve_replica SUBTYPE OF (curve); parent_curve : curve; transformation : cartesian_transformation_operator; WHERE wr1 : transformation.dim = parent_curve.dim; wr2 : acyclic_curve_replica(SELF, parent_curve); END_ENTITY; ENTITY curve_style; name : label; curve_font : curve_font_or_scaled_curve_font_select; curve_width : size_select; curve_colour : colour; END_ENTITY; ENTITY curve_style_font; name : label; pattern_list : LIST [1:?] OF curve_style_font_pattern; END_ENTITY; ENTITY curve_style_font_pattern; visible_segment_length : positive_length_measure; invisible_segment_length : positive_length_measure; END_ENTITY; ENTITY date SUPERTYPE OF (calendar_date); year_component : year_number; END_ENTITY; ENTITY defined_function ABSTRACT SUPERTYPE OF (ONEOF (numeric_defined_function, string_defined_function , boolean_defined_function) ANDOR SQL_mappable_defined_function); END_ENTITY; ENTITY defined_maths_space_context SUBTYPE OF (maths_space_context); END_ENTITY; ENTITY defined_symbol SUBTYPE OF (geometric_representation_item); definition : defined_symbol_select; target : symbol_target; END_ENTITY; ENTITY definite_integral_expression SUBTYPE OF (quantifier_expression); lower_limit_neg_infinity : BOOLEAN; upper_limit_pos_infinity : BOOLEAN; DERIVE integrand : generic_expression := SELF\multiple_arity_generic_expression. operands[1]; variable_of_integration : maths_variable := SELF\ multiple_arity_generic_expression.operands[2]; SELF\quantifier_expression.variables : LIST [1:1] OF UNIQUE generic_variable := [variable_of_integration]; WHERE wr1 : has_values_space(integrand); wr2 : space_is_continuum(values_space_of(integrand)); wr3 : definite_integral_expr_check(SELF\multiple_arity_generic_expression. operands, lower_limit_neg_infinity, upper_limit_pos_infinity); END_ENTITY; ENTITY definite_integral_function SUBTYPE OF (maths_function, unary_generic_expression); SELF\unary_generic_expression.operand : maths_function; variable_of_integration : input_selector; lower_limit_neg_infinity : BOOLEAN; upper_limit_pos_infinity : BOOLEAN; DERIVE integrand : maths_function := SELF\unary_generic_expression.operand; WHERE wr1 : space_is_continuum(integrand.range); wr2 : definite_integral_check(integrand.domain, variable_of_integration, lower_limit_neg_infinity, upper_limit_pos_infinity); END_ENTITY; ENTITY definition_of_schematic_element_occurrence SUBTYPE OF (mapped_item); WHERE schematic_element_as_superset : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'SCHEMATIC_ELEMENT' IN TYPEOF(SELF\mapped_item.mapping_source. mapped_representation); schematic_element_occurrence_as_subset : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'SCHEMATIC_ELEMENT_OCCURRENCE' IN TYPEOF(using_representations(SELF)); END_ENTITY; ENTITY derivation_of_schematic_element_definition SUBTYPE OF (mapped_item); WHERE schematic_element_definition_as_base : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'SCHEMATIC_ELEMENT_DEFINITION' IN TYPEOF(SELF\mapped_item.mapping_source. mapped_representation); implicit_schematic_element_definition_as_derived : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'IMPLICIT_SCHEMATIC_ELEMENT_DEFINITION' IN TYPEOF(using_representations( SELF)); END_ENTITY; ENTITY derived_unit; elements : SET [1:?] OF derived_unit_element; DERIVE name : label := get_name_value(SELF); WHERE wr1 : (SIZEOF(elements) > 1) OR (SIZEOF(elements) = 1) AND (elements[1]. exponent <> 1.0); wr2 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM' )) <= 1; END_ENTITY; ENTITY derived_unit_element; unit : named_unit; exponent : REAL; END_ENTITY; ENTITY description_attribute; attribute_value : text; described_item : description_attribute_select; END_ENTITY; ENTITY descriptive_representation_item SUBTYPE OF (representation_item); description : text; END_ENTITY; ENTITY dimensional_exponents; length_exponent : REAL; mass_exponent : REAL; time_exponent : REAL; electric_current_exponent : REAL; thermodynamic_temperature_exponent : REAL; amount_of_substance_exponent : REAL; luminous_intensity_exponent : REAL; END_ENTITY; ENTITY direction SUBTYPE OF (geometric_representation_item); direction_ratios : LIST [2:3] OF REAL; WHERE wr1 : SIZEOF(QUERY(tmp <* direction_ratios | tmp <> 0.0)) > 0; END_ENTITY; ENTITY div_expression SUBTYPE OF (binary_numeric_expression); END_ENTITY; ENTITY document; id : identifier; name : label; description : OPTIONAL text; kind : document_type; INVERSE representation_types : SET OF document_representation_type FOR represented_document; END_ENTITY; ENTITY document_reference ABSTRACT SUPERTYPE; assigned_document : document; source : label; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' )) <= 1; END_ENTITY; ENTITY document_representation_type; name : label; represented_document : document; END_ENTITY; ENTITY document_type; product_data_type : label; END_ENTITY; ENTITY draughting_annotation_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty. styles) = 1) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CURVE_STYLE' IN TYPEOF (sty.styles[1]))))) = 0); wr2 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty. styles) = 1) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); wr3 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(bound <* SELF.item\annotation_fill_area. boundaries | NOT (SIZEOF(QUERY(si <* USEDIN(bound, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STYLED_ITEM.ITEM') | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si))) > 0))) = 0); wr4 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty. styles) = 1) AND (SIZEOF(TYPEOF(sty.styles[1]) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SYMBOL_STYLE', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.NULL_STYLE']) = 1)))) = 0); wr5 : NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item))) OR (SIZEOF([ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'DRAUGHTING_SYMBOL_REPRESENTATION', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * TYPEOF(SELF.item\mapped_item. mapping_source.mapped_representation)) = 1); wr6 : NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty. styles) = 1) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_STYLE' IN TYPEOF( sty.styles[1]))))) = 0); wr7 : ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(TYPEOF(SELF.item) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITE_TEXT', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_LITERAL']) = 1); wr8 : NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY(tl <* SELF.item\composite_text. collected_text | NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_LITERAL' IN TYPEOF(tl)))) = 0); wr9 : NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_LITERAL' IN TYPEOF(SELF.item))) OR (SELF.item\text_literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right']); wr10 : NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY(tl <* QUERY(text <* SELF.item\ composite_text.collected_text | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_LITERAL' IN TYPEOF(text)) | NOT (tl\text_literal.alignment IN ['baseline left', 'baseline centre', 'baseline right']))) = 0); wr11 : NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR check_text_alignment(SELF.item); wr12 : NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR check_text_font(SELF.item); wr13 : NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY(tl <* QUERY(text <* SELF.item\ composite_text.collected_text | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_LITERAL' IN TYPEOF(text)) | NOT (SIZEOF(TYPEOF(tl) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'TEXT_LITERAL_WITH_BLANKING_BOX', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0))) = 0); wr14 : NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_LITERAL_WITH_ASSOCIATED_CURVES' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY(crv <* SELF.item\ text_literal_with_associated_curves.associated_curves | NOT (SIZEOF(QUERY( si <* USEDIN(crv, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STYLED_ITEM.ITEM') | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si))) > 0))) = 0); wr15 : NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES' IN TYPEOF(SELF.item))) OR (SIZEOF(QUERY(crv <* SELF.item\ composite_text_with_associated_curves.associated_curves | NOT (SIZEOF( QUERY(si <* USEDIN(crv, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STYLED_ITEM.ITEM') | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si))) > 0))) = 0); wr16 : SIZEOF(QUERY(cs <* QUERY(sty <* SELF.styles | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CURVE_STYLE' IN TYPEOF (sty.styles[1])) | NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(cs.styles[1]\curve_style.curve_width)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs.styles[1]\curve_style.curve_width\measure_with_unit. value_component))))) = 0; wr17 : SIZEOF(QUERY(fas <* QUERY(sty <* SELF.styles | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1])) | NOT ((SIZEOF(QUERY(fs <* fas.styles[1]\ fill_area_style.fill_styles | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.FILL_AREA_STYLE_TILES' IN TYPEOF(fs))) <= 1) AND (SIZEOF(QUERY(fst <* QUERY(fs <* fas.styles[1]\ fill_area_style.fill_styles | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.FILL_AREA_STYLE_TILES' IN TYPEOF(fs)) | NOT (SIZEOF(fst\fill_area_style_tiles.tiles) = 1))) = 0)) )) = 0; wr18 : SIZEOF(QUERY(fas <* QUERY(sty <* SELF.styles | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1])) | NOT (SIZEOF(QUERY(fsh <* QUERY(fs <* fas.styles[1] \fill_area_style.fill_styles | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.FILL_AREA_STYLE_HATCHING' IN TYPEOF(fs)) | NOT (fsh\fill_area_style_hatching. point_of_reference_hatch_line :=: fsh\fill_area_style_hatching. pattern_start))) = 0))) = 0; wr19 : SIZEOF(QUERY(ts <* QUERY(sty <* SELF.styles | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_STYLE' IN TYPEOF( sty.styles[1])) | NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF(ts.styles[1])))) = 0; wr20 : SIZEOF(QUERY(ts <* QUERY(sty <* SELF.styles | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF(sty.styles[1])) | NOT (SIZEOF(ts.styles[1]\ text_style_with_box_characteristics.characteristics) = 4))) = 0; END_ENTITY; ENTITY draughting_approval_assignment SUBTYPE OF (approval_assignment); approved_items : SET [1:?] OF approved_item; WHERE wr1 : SIZEOF(QUERY(item <* approved_items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAWING_REVISION' IN TYPEOF(item))) <= 1; END_ENTITY; ENTITY draughting_callout SUBTYPE OF (geometric_representation_item); contents : SET [1:?] OF draughting_callout_element; END_ENTITY; ENTITY draughting_contract_assignment SUBTYPE OF (contract_assignment); items : SET [1:?] OF contracted_item; END_ENTITY; ENTITY draughting_drawing_revision SUBTYPE OF (drawing_revision); WHERE wr1 : (SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET')) >= 1) AND (SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF(ais.area)))) = 0); wr2 : SIZEOF(QUERY(app_ass <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAUGHTING_APPROVAL_ASSIGNMENT.APPROVED_ITEMS' ) | NOT (SIZEOF(USEDIN(app_ass.assigned_approval, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.APPROVAL_DATE_TIME.DATED_APPROVAL' )) = 1))) = 0; wr3 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(app_ass <* USEDIN(ais.area, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAUGHTING_APPROVAL_ASSIGNMENT.APPROVED_ITEMS' ) | NOT (SIZEOF(USEDIN(app_ass.assigned_approval, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.APPROVAL_DATE_TIME.DATED_APPROVAL' )) = 1))) = 0))) = 0; wr4 : SIZEOF(QUERY(app_ass <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAUGHTING_APPROVAL_ASSIGNMENT.APPROVED_ITEMS' ) | NOT (SIZEOF(USEDIN(app_ass.assigned_approval, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.APPROVAL_PERSON_ORGANIZATION.AUTHORIZED_APPROVAL' )) >= 1))) = 0; wr5 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(app_ass <* USEDIN(ais.area, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAUGHTING_APPROVAL_ASSIGNMENT.APPROVED_ITEMS' ) | NOT (SIZEOF(USEDIN(app_ass.assigned_approval, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.APPROVAL_PERSON_ORGANIZATION.AUTHORIZED_APPROVAL' )) >= 1))) = 0))) = 0; wr6 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAUGHTING_TITLE.ITEMS' )) <= 1; wr7 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(USEDIN(ais.area, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAUGHTING_TITLE.ITEMS' )) <= 1))) = 0; wr8 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(item <* ais.area.items | NOT (SIZEOF(TYPEOF(item) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STYLED_ITEM', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AXIS2_PLACEMENT', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PLANAR_BOX']) = 1))) = 0))) = 0; wr9 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(item <* ais.area.items | SIZEOF(TYPEOF(item) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STYLED_ITEM', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM']) = 1)) > 0))) = 0; wr10 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(p_b <* QUERY(item <* ais.area.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PLANAR_BOX' IN TYPEOF( item)) | NOT (SIZEOF(USEDIN(p_b, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PRESENTATION_SIZE.SIZE' )) = 1))) = 0))) = 0; wr11 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM' IN TYPEOF (item)) | NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PRESENTATION_VIEW' IN TYPEOF(mi.mapping_source.mapped_representation)))) = 0))) = 0; wr12 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(a2p <* QUERY(item <* ais.area.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(item)) | NOT (SIZEOF(USEDIN(a2p, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM.MAPPING_TARGET' )) > 0))) = 0))) = 0; wr13 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(ais.area.context_of_items.representations_in_context) = 1))) = 0; wr14 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM' IN TYPEOF (item)) | NOT (SIZEOF(USEDIN(mi.mapping_source.mapped_representation, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION' )) = 1))) = 0))) = 0; wr15 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM' IN TYPEOF (item)) | NOT (SIZEOF(QUERY(pv_item <* mi.mapping_source. mapped_representation.items | NOT (SIZEOF(TYPEOF(pv_item) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'STYLED_ITEM', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CAMERA_IMAGE', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'AXIS2_PLACEMENT'] ) = 1))) = 0))) = 0))) = 0; wr16 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM' IN TYPEOF (item)) | NOT (SIZEOF(QUERY(pv_item <* mi.mapping_source. mapped_representation.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CAMERA_IMAGE' IN TYPEOF(pv_item))) = 1))) = 0))) = 0; wr17 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM' IN TYPEOF (item)) | NOT (SIZEOF(QUERY(a2p <* QUERY(pv_item <* mi.mapping_source. mapped_representation.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(pv_item)) | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'REPRESENTATION_MAP.MAPPING_SOURCE' IN ROLESOF(a2p))) = 1))) = 0))) = 0; wr18 : SIZEOF(QUERY(ais <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AREA_IN_SET.IN_SET') | NOT (SIZEOF(QUERY(mi <* QUERY(item <* ais.area.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM' IN TYPEOF (item)) | NOT (SIZEOF(mi.mapping_source.mapped_representation. context_of_items.representations_in_context) = 1))) = 0))) = 0; END_ENTITY; ENTITY draughting_model SUBTYPE OF (representation); UNIQUE unique_id : SELF\representation.name; WHERE valid_draughting_model_items : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STYLED_ITEM', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AXIS2_PLACEMENT'] * TYPEOF(it)) = 1))) = 0; valid_mapped_items : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM' IN TYPEOF (it)) | NOT (SIZEOF([ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SHAPE_REPRESENTATION' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAUGHTING_MODEL'] * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = 1))) = 0; valid_use_of_style : SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM' IN TYPEOF (si\styled_item.item)) | NOT (( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(smi\styled_item.item\mapped_item.mapping_source. mapped_representation)) AND (SIZEOF(QUERY(sty <* smi\styled_item.styles | NOT (SIZEOF(QUERY(psa <* sty.styles | NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CURVE_STYLE' IN TYPEOF (psa)))) = 1))) = 1)))) = 0; END_ENTITY; ENTITY draughting_organization_assignment SUBTYPE OF (organization_assignment); assigned_items : SET [1:?] OF draughting_organization_item; END_ENTITY; ENTITY draughting_person_and_organization_assignment SUBTYPE OF (person_and_organization_assignment); assigned_items : SET [1:?] OF draughting_organization_item; END_ENTITY; ENTITY draughting_person_assignment SUBTYPE OF (person_assignment); assigned_items : SET [1:?] OF draughting_organization_item; END_ENTITY; ENTITY draughting_presented_item SUBTYPE OF (presented_item); items : SET [1:?] OF draughting_presented_item_select; WHERE wr1 : SIZEOF(QUERY(pir <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PRESENTED_ITEM_REPRESENTATION.ITEM' ) | NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAWING_REVISION' IN TYPEOF(pir.presentation)))) = 0; END_ENTITY; ENTITY draughting_security_classification_assignment SUBTYPE OF (security_classification_assignment); assigned_items : SET [1:?] OF classified_item; END_ENTITY; ENTITY draughting_specification_reference SUBTYPE OF (document_reference); specified_items : SET [1:?] OF specified_item; WHERE wr1 : SELF.assigned_document.kind.product_data_type = 'draughting specification'; END_ENTITY; ENTITY draughting_subfigure_representation SUBTYPE OF (symbol_representation); WHERE wr1 : SIZEOF(QUERY(item <* SELF\representation.items | NOT (SIZEOF([ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_OCCURRENCE' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAUGHTING_CALLOUT' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AXIS2_PLACEMENT'] * TYPEOF(item)) = 1))) = 0; wr2 : SIZEOF(QUERY(item <* SELF\representation.items | SIZEOF([ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_OCCURRENCE' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAUGHTING_CALLOUT'] * TYPEOF(item)) = 1)) >= 1; wr3 : SIZEOF(QUERY(srm <* QUERY(rm <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)) | NOT (SIZEOF(QUERY(a_s <* QUERY(mi <* srm.map_usage | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi)) | NOT (SIZEOF(QUERY(aso <* USEDIN(a_s, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STYLED_ITEM.ITEM') | NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(aso)))) = 0))) = 0))) > 0; wr4 : NOT acyclic_mapped_item_usage(SELF); wr5 : SIZEOF(SELF.context_of_items.representations_in_context) = 1; END_ENTITY; ENTITY draughting_symbol_representation SUBTYPE OF (symbol_representation); UNIQUE ur1 : SELF\representation.name; WHERE wr1 : SIZEOF(QUERY(item <* SELF\representation.items | NOT (SIZEOF(TYPEOF( item) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AXIS2_PLACEMENT']) = 1))) = 0; wr2 : SIZEOF(QUERY(item <* SELF\representation.items | SIZEOF(TYPEOF(item) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' ]) = 1)) >= 1; wr3 : SIZEOF(QUERY(item <* SELF\representation.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(item))) = 0; wr4 : SIZEOF(QUERY(srm <* QUERY(rm <* USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)) | NOT (SIZEOF(QUERY(a_s <* QUERY(mi <* srm.map_usage | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi)) | NOT (SIZEOF(QUERY(aso <* USEDIN(a_s, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STYLED_ITEM.ITEM') | NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(aso)))) = 0))) = 0))) > 0; wr5 : NOT acyclic_mapped_item_usage(SELF); wr6 : SIZEOF(SELF.context_of_items.representations_in_context) = 1; END_ENTITY; ENTITY draughting_text_literal_with_delineation SUBTYPE OF (text_literal_with_delineation); WHERE wr1 : SELF.delineation IN ['underline', 'overline']; END_ENTITY; ENTITY draughting_title; items : SET [1:?] OF draughting_titled_item; language : label; contents : text; END_ENTITY; ENTITY drawing_definition; drawing_number : identifier; drawing_type : OPTIONAL label; END_ENTITY; ENTITY drawing_revision SUBTYPE OF (presentation_set); revision_identifier : identifier; drawing_identifier : drawing_definition; intended_scale : OPTIONAL text; UNIQUE ur1 : revision_identifier, drawing_identifier; END_ENTITY; ENTITY drawing_revision_class_of_document SUBTYPE OF (class, product_definition_formation, drawing_revision); WHERE appropriate_category : SELF.of_product.name = 'document'; END_ENTITY; ENTITY drawing_sheet_revision SUBTYPE OF (presentation_area); revision_identifier : identifier; WHERE wr1 : SIZEOF(QUERY(item <* SELF\representation.items | ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM' IN TYPEOF (item)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF(item\mapped_item.mapping_source.mapped_representation)))) = 0; END_ENTITY; ENTITY drawing_sheet_revision_class_of_document SUBTYPE OF (class, product_definition_formation, drawing_sheet_revision); WHERE appropriate_category : SELF.of_product.name = 'document'; END_ENTITY; ENTITY drawing_sheet_revision_usage SUBTYPE OF (area_in_set); sheet_number : identifier; UNIQUE ur1 : sheet_number, in_set; WHERE wr1 : ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\area_in_set.area)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DRAWING_REVISION' IN TYPEOF(SELF\area_in_set.in_set)); END_ENTITY; ENTITY electric_current_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ELECTRIC_CURRENT_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY electric_current_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit .dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions. time_exponent = 0.0) AND (SELF\named_unit.dimensions. electric_current_exponent = 1.0) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions. luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY elementary_function SUBTYPE OF (maths_function, generic_literal); func_id : elementary_function_enumerators; END_ENTITY; ENTITY elementary_space SUBTYPE OF (maths_space, generic_literal); space_id : elementary_space_enumerators; END_ENTITY; ENTITY ellipse SUBTYPE OF (conic); semi_axis_1 : positive_length_measure; semi_axis_2 : positive_length_measure; END_ENTITY; ENTITY environment; syntactic_representation : generic_variable; semantics : variable_semantics; END_ENTITY; ENTITY equals_expression SUBTYPE OF (binary_boolean_expression); END_ENTITY; ENTITY executed_action SUBTYPE OF (action); END_ENTITY; ENTITY exp_function SUBTYPE OF (unary_function_call); END_ENTITY; ENTITY explicit_schematic_element_definition SUBTYPE OF (schematic_element_definition); WHERE not_derived_or_defined_by_assembly : (SIZEOF(QUERY(it <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'DERIVATION_OF_SCHEMATIC_ELEMENT_DEFINITION' IN TYPEOF(it))) = 0) AND ( SIZEOF(QUERY(it <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'USAGE_OF_SCHEMATIC_ELEMENT_OCCURRENCE' IN TYPEOF(it))) >= 0); END_ENTITY; ENTITY explicit_table_function ABSTRACT SUPERTYPE OF (ONEOF (listed_real_data, listed_integer_data, listed_logical_data, listed_string_data, listed_complex_number_data, listed_data, externally_listed_data, linearized_table_function, basic_sparse_matrix)) SUBTYPE OF (maths_function); index_base : zero_or_one; shape : LIST [1:?] OF positive_integer; END_ENTITY; ENTITY explicitly_enumerated_maths_space_context SUBTYPE OF (maths_space_context); members : SET [1:?] OF maths_value_context; END_ENTITY; ENTITY expression ABSTRACT SUPERTYPE OF (ONEOF (numeric_expression, boolean_expression, string_expression)) SUBTYPE OF (generic_expression); END_ENTITY; ENTITY expression_denoted_function SUBTYPE OF (maths_function, unary_generic_expression); DERIVE expr : generic_expression := SELF\unary_generic_expression.operand; WHERE wr1 : schema_prefix + 'FUNCTION_SPACE' IN TYPEOF(values_space_of(expr)); END_ENTITY; ENTITY extended_tuple_space SUBTYPE OF (maths_space, generic_literal); base : product_space; extender : maths_space; WHERE wr1 : expression_is_constant(base) AND expression_is_constant(extender); wr2 : no_cyclic_space_reference(SELF, []); wr3 : extender <> the_empty_space; END_ENTITY; ENTITY external_identification_assignment ABSTRACT SUPERTYPE SUBTYPE OF (identification_assignment); source : external_source; END_ENTITY; ENTITY external_source; source_id : source_item; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY externally_defined_curve_font SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_hatch_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; ENTITY externally_defined_item; item_id : source_item; source : external_source; END_ENTITY; ENTITY externally_defined_symbol SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_text_font SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_tile_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; ENTITY externally_listed_data SUBTYPE OF (explicit_table_function, generic_literal, externally_defined_item); value_range : maths_space; WHERE wr1 : expression_is_constant(value_range); END_ENTITY; ENTITY fill_area_style; name : label; fill_styles : SET [1:?] OF fill_style_select; WHERE wr1 : SIZEOF(QUERY(fill_style <* SELF.fill_styles | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'FILL_AREA_STYLE_COLOUR' IN TYPEOF(fill_style))) <= 1; END_ENTITY; ENTITY fill_area_style_colour; name : label; fill_colour : colour; END_ENTITY; ENTITY fill_area_style_hatching SUBTYPE OF (geometric_representation_item); hatch_line_appearance : curve_style; start_of_next_hatch_line : one_direction_repeat_factor; point_of_reference_hatch_line : cartesian_point; pattern_start : cartesian_point; hatch_line_angle : plane_angle_measure; END_ENTITY; ENTITY fill_area_style_tile_symbol_with_style SUBTYPE OF (geometric_representation_item); symbol : annotation_symbol_occurrence; END_ENTITY; ENTITY fill_area_style_tiles SUBTYPE OF (geometric_representation_item); tiling_pattern : two_direction_repeat_factor; tiles : SET [1:?] OF fill_area_style_tile_shape_select; tiling_scale : positive_ratio_measure; END_ENTITY; ENTITY finite_function SUBTYPE OF (maths_function, generic_literal); pairs : SET [1:?] OF LIST [2:2] OF maths_value; WHERE wr1 : VALUE_UNIQUE(list_selected_components(pairs, 1)); END_ENTITY; ENTITY finite_integer_interval SUBTYPE OF (maths_space, generic_literal); min : INTEGER; max : INTEGER; DERIVE size : positive_integer := max - min + 1; WHERE wr1 : min <= max; END_ENTITY; ENTITY finite_real_interval SUBTYPE OF (maths_space, generic_literal); min : REAL; min_closure : open_closed; max : REAL; max_closure : open_closed; WHERE wr1 : min < max; END_ENTITY; ENTITY finite_space SUBTYPE OF (maths_space, generic_literal); members : SET OF maths_value; WHERE wr1 : VALUE_UNIQUE(members); wr2 : SIZEOF(QUERY(expr <* QUERY(member <* members | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GENERIC_EXPRESSION' IN TYPEOF(member)) | NOT expression_is_constant(expr))) = 0; wr3 : no_cyclic_space_reference(SELF, []); END_ENTITY; ENTITY format_function SUBTYPE OF (string_expression, binary_generic_expression); DERIVE value_to_format : generic_expression := SELF\binary_generic_expression. operands[1]; format_string : generic_expression := SELF\binary_generic_expression.operands [2]; WHERE wr1 : ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(value_to_format)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STRING_EXPRESSION' IN TYPEOF(format_string)); END_ENTITY; ENTITY founded_item; END_ENTITY; ENTITY function_application SUBTYPE OF (multiple_arity_generic_expression); func : maths_function_select; arguments : LIST [1:?] OF maths_expression; DERIVE SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF generic_expression := [convert_to_maths_function(func)] + convert_to_operands (arguments); WHERE wr1 : function_applicability(func, arguments); END_ENTITY; ENTITY function_space SUBTYPE OF (maths_space, generic_literal); domain_constraint : space_constraint_type; domain_argument : maths_space; range_constraint : space_constraint_type; range_argument : maths_space; WHERE wr1 : expression_is_constant(domain_argument) AND expression_is_constant( range_argument); wr2 : (domain_argument <> the_empty_space) AND (range_argument <> the_empty_space); wr3 : (domain_constraint <> sc_member) OR NOT member_of(the_empty_space, domain_argument); wr4 : (range_constraint <> sc_member) OR NOT member_of(the_empty_space, range_argument); wr5 : NOT (any_space_satisfies(domain_constraint, domain_argument) AND any_space_satisfies(range_constraint, range_argument)); END_ENTITY; ENTITY functionally_defined_transformation; name : label; description : OPTIONAL text; END_ENTITY; ENTITY general_linear_function SUBTYPE OF (maths_function, unary_generic_expression); SELF\unary_generic_expression.operand : maths_function; sum_index : one_or_two; DERIVE mat : maths_function := SELF\unary_generic_expression.operand; WHERE wr1 : function_is_2d_table(mat); wr2 : (space_dimension(mat.range) = 1) AND subspace_of_es(factor1(mat.range) , es_numbers); END_ENTITY; ENTITY general_property; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY general_property_association; name : label; description : OPTIONAL text; base_definition : general_property; derived_definition : derived_property_select; WHERE wr1 : SIZEOF(USEDIN(derived_definition, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION' )) = 1; wr2 : derived_definition.name = base_definition.name; END_ENTITY; ENTITY general_property_relationship; name : label; description : OPTIONAL text; relating_property : general_property; related_property : general_property; END_ENTITY; ENTITY generic_expression ABSTRACT SUPERTYPE OF (ONEOF (simple_generic_expression, unary_generic_expression, binary_generic_expression, multiple_arity_generic_expression)); WHERE wr1 : is_acyclic(SELF); END_ENTITY; ENTITY generic_literal ABSTRACT SUPERTYPE SUBTYPE OF (simple_generic_expression); END_ENTITY; ENTITY generic_variable ABSTRACT SUPERTYPE SUBTYPE OF (simple_generic_expression); INVERSE interpretation : environment FOR syntactic_representation; END_ENTITY; ENTITY geometric_curve_set SUBTYPE OF (geometric_set); WHERE wr1 : SIZEOF(QUERY(temp <* SELF\geometric_set.elements | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.SURFACE' IN TYPEOF( temp))) = 0; END_ENTITY; ENTITY geometric_representation_context SUBTYPE OF (representation_context); coordinate_space_dimension : dimension_count; END_ENTITY; ENTITY geometric_representation_item SUPERTYPE OF (ONEOF (point, direction, vector, placement, cartesian_transformation_operator, curve, surface, volume, geometric_set)) SUBTYPE OF (representation_item); DERIVE dim : dimension_count := dimension_of(SELF); WHERE wr1 : SIZEOF(QUERY(using_rep <* using_representations(SELF) | NOT ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(using_rep.context_of_items)))) = 0; END_ENTITY; ENTITY geometric_set SUPERTYPE OF (geometric_curve_set) SUBTYPE OF (geometric_representation_item); elements : SET [1:?] OF geometric_set_select; END_ENTITY; ENTITY geometrically_bounded_2d_wireframe_representation SUBTYPE OF (shape_representation); WHERE wr1 : SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 2; wr2 : SIZEOF(QUERY(item <* SELF.items | NOT (SIZEOF(TYPEOF(item) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GEOMETRIC_CURVE_SET', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.AXIS2_PLACEMENT_2D', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM']) = 1))) = 0; wr3 : SIZEOF(QUERY(item <* SELF.items | SIZEOF(TYPEOF(item) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GEOMETRIC_CURVE_SET', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM']) = 1)) >= 1; wr4 : SIZEOF(QUERY(mi <* QUERY(item <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MAPPED_ITEM' IN TYPEOF (item)) | NOT ('FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' IN TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)))) = 0; wr5 : SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) | NOT (SIZEOF(QUERY(elem <* gcs\geometric_set.elements | NOT (SIZEOF(TYPEOF(elem) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.B_SPLINE_CURVE', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CIRCLE', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.COMPOSITE_CURVE', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ELLIPSE', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.OFFSET_CURVE_2D', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.POINT', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.POLYLINE', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.TRIMMED_CURVE']) = 1)) ) = 0))) = 0; wr6 : SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) | NOT (SIZEOF(QUERY(crv <* QUERY(elem <* gcs\geometric_set .elements | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CURVE' IN TYPEOF(elem)) | NOT valid_basis_curve_in_2d_wireframe(crv))) = 0))) = 0; wr7 : SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | 'AIC_- GEOMETRICALLY_BOUNDED_2D_WIREFRAME.GEOMETRIC_CURVE_SET' IN TYPEOF( item)) | NOT (SIZEOF(QUERY(pnt <* QUERY(elem <* gcs\geometric_set.elements | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.POINT' IN TYPEOF( elem)) | NOT (SIZEOF(TYPEOF(pnt) * [ 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.CARTESIAN_POINT', 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.POINT_ON_CURVE']) = 1) )) = 0))) = 0; wr8 : SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(item)) | NOT (SIZEOF(QUERY(pl <* QUERY(elem <* gcs\geometric_set. elements | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.POLYLINE' IN TYPEOF(elem)) | NOT (SIZEOF(pl\polyline.points) > 2))) = 0))) = 0; END_ENTITY; ENTITY global_uncertainty_assigned_context SUBTYPE OF (representation_context); uncertainty : SET [1:?] OF uncertainty_measure_with_unit; END_ENTITY; ENTITY global_unit_assigned_context SUBTYPE OF (representation_context); units : SET [1:?] OF unit; END_ENTITY; ENTITY group; name : label; description : OPTIONAL text; DERIVE id : identifier := get_id_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM' )) <= 1; END_ENTITY; ENTITY homogeneous_linear_function SUBTYPE OF (maths_function, unary_generic_expression); SELF\unary_generic_expression.operand : maths_function; sum_index : one_or_two; DERIVE mat : maths_function := SELF\unary_generic_expression.operand; WHERE wr1 : function_is_2d_table(mat); wr2 : (space_dimension(mat.range) = 1) AND subspace_of_es(factor1(mat.range) , es_numbers); END_ENTITY; ENTITY hyperbola SUBTYPE OF (conic); semi_axis : positive_length_measure; semi_imag_axis : positive_length_measure; END_ENTITY; ENTITY id_attribute; attribute_value : identifier; identified_item : id_attribute_select; END_ENTITY; ENTITY identification_assignment ABSTRACT SUPERTYPE; assigned_id : identifier; role : identification_role; END_ENTITY; ENTITY identification_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY implicit_schematic_element_definition SUBTYPE OF (schematic_element_definition); WHERE no_styled_item : SIZEOF(QUERY(it <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STYLED_ITEM' IN TYPEOF (it))) = 0; either_derived_once_or_defined_by_assembly : (SIZEOF(QUERY(it <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'DERIVATION_OF_SCHEMATIC_ELEMENT_DEFINITION' IN TYPEOF(it))) = 1) OR ( SIZEOF(QUERY(it <* SELF.items | 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.' + 'USAGE_OF_SCHEMATIC_ELEMENT_OCCURRENCE' IN TYPEOF(it))) >= 1); END_ENTITY; ENTITY imported_curve_function SUBTYPE OF (maths_function, generic_literal); geometry : curve; parametric_domain : tuple_space; WHERE wr1 : expression_is_constant(parametric_domain); END_ENTITY; ENTITY imported_point_function SUBTYPE OF (maths_function, generic_literal); geometry : point; END_ENTITY; ENTITY imported_surface_function SUBTYPE OF (maths_function, generic_literal); geometry : surface; parametric_domain : tuple_space; WHERE wr1 : expression_is_constant(parametric_domain); END_ENTITY; ENTITY imported_volume_function SUBTYPE OF (maths_function, generic_literal); geometry : volume; parametric_domain : tuple_space; WHERE wr1 : expression_is_constant(parametric_domain); END_ENTITY; ENTITY index_expression SUBTYPE OF (string_expression, binary_generic_expression); DERIVE operand : generic_expression := SELF\binary_generic_expression.operands[1]; index : generic_expression := SELF\binary_generic_expression.operands[2]; WHERE wr1 : ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STRING_EXPRESSION' IN TYPEOF(operand)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(index)); wr2 : is_int_expr(index); END_ENTITY; ENTITY individual_activity SUBTYPE OF (executed_action); END_ENTITY; ENTITY individual_involvement_in_activity SUBTYPE OF (applied_action_assignment); SELF\action_assignment.assigned_action : individual_activity; -- Not allowed by EXPRESS edition 1 -- SELF\applied_action_assignment.items : SET [1:1] OF involved_select; END_ENTITY; ENTITY int_literal SUBTYPE OF (literal_number); SELF\literal_number.the_value : INTEGER; END_ENTITY; ENTITY integer_defined_function ABSTRACT SUPERTYPE SUBTYPE OF (numeric_defined_function); END_ENTITY; ENTITY integer_interval_from_min SUBTYPE OF (maths_space, generic_literal); min : INTEGER; END_ENTITY; ENTITY integer_interval_to_max SUBTYPE OF (maths_space, generic_literal); max : INTEGER; END_ENTITY; ENTITY integer_tuple_literal SUBTYPE OF (generic_literal); lit_value : LIST [1:?] OF INTEGER; END_ENTITY; ENTITY intersection; id : identifier; name : label; description : OPTIONAL text; operand : SET [2:?] OF class; resultant : class; END_ENTITY; ENTITY interval_expression SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); DERIVE interval_low : generic_expression := SELF\multiple_arity_generic_expression. operands[1]; interval_item : generic_expression := SELF\multiple_arity_generic_expression. operands[2]; interval_high : generic_expression := SELF\multiple_arity_generic_expression. operands[3]; WHERE wr1 : ('FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.EXPRESSION' IN TYPEOF(interval_low)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.EXPRESSION' IN TYPEOF( interval_item)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.EXPRESSION' IN TYPEOF( interval_high)); wr2 : ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_high)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_item)) OR ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_item)) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_high)); END_ENTITY; ENTITY intra_page_connector SUBTYPE OF (page_connector); END_ENTITY; ENTITY invisibility; invisible_items : SET [1:?] OF invisible_item; END_ENTITY; ENTITY involvement_of_individual_product_in_connection SUBTYPE OF (product_definition_formation_relationship); SELF\product_definition_formation_relationship. relating_product_definition_formation : connection_of_individual_product_with_involvements; SELF\product_definition_formation_relationship. related_product_definition_formation : product_as_individual_version; END_ENTITY; ENTITY length_function SUBTYPE OF (numeric_expression, unary_generic_expression); SELF\unary_generic_expression.operand : string_expression; END_ENTITY; ENTITY length_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY length_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 1.0) AND (SELF\named_unit .dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions. time_exponent = 0.0) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions. luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY like_expression SUBTYPE OF (comparison_expression); WHERE wr1 : ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[1])) AND ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\binary_generic_expression.operands[2])); END_ENTITY; ENTITY line SUBTYPE OF (curve); pnt : cartesian_point; dir : vector; WHERE wr1 : dir.dim = pnt.dim; END_ENTITY; ENTITY linearized_table_function SUBTYPE OF (explicit_table_function, unary_generic_expression); SELF\unary_generic_expression.operand : maths_function; first : INTEGER; DERIVE source : maths_function := SELF\unary_generic_expression.operand; WHERE wr1 : function_is_1d_array(source); wr2 : member_of(first, source.domain); END_ENTITY; ENTITY listed_complex_number_data SUBTYPE OF (explicit_table_function, generic_literal); values : LIST [2:?] OF REAL; DERIVE SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := [ SIZEOF(values)/2]; WHERE wr1 : NOT ODD(SIZEOF(values)); END_ENTITY; ENTITY listed_data SUBTYPE OF (explicit_table_function, generic_literal); values : LIST [1:?] OF maths_value; value_range : maths_space; DERIVE SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := [ SIZEOF(values)]; WHERE wr1 : expression_is_constant(value_range); wr2 : SIZEOF(QUERY(val <* values | NOT member_of(val, value_range))) = 0; END_ENTITY; ENTITY listed_integer_data SUBTYPE OF (explicit_table_function, generic_literal); values : LIST [1:?] OF INTEGER; DERIVE SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := [ SIZEOF(values)]; END_ENTITY; ENTITY listed_logical_data SUBTYPE OF (explicit_table_function, generic_literal); values : LIST [1:?] OF LOGICAL; DERIVE SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := [ SIZEOF(values)]; END_ENTITY; ENTITY listed_product_space SUBTYPE OF (maths_space, generic_literal); factors : LIST OF maths_space; WHERE wr1 : SIZEOF(QUERY(space <* factors | NOT expression_is_constant(space))) = 0 ; wr2 : no_cyclic_space_reference(SELF, []); wr3 : NOT (the_empty_space IN factors); END_ENTITY; ENTITY listed_real_data SUBTYPE OF (explicit_table_function, generic_literal); values : LIST [1:?] OF REAL; DERIVE SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := [ SIZEOF(values)]; END_ENTITY; ENTITY listed_string_data SUBTYPE OF (explicit_table_function, generic_literal); values : LIST [1:?] OF STRING; DERIVE SELF\explicit_table_function.shape : LIST [1:?] OF positive_integer := [ SIZEOF(values)]; END_ENTITY; ENTITY literal_number ABSTRACT SUPERTYPE OF (ONEOF (int_literal, real_literal)) SUBTYPE OF (simple_numeric_expression, generic_literal); the_value : NUMBER; END_ENTITY; ENTITY log10_function SUBTYPE OF (unary_function_call); END_ENTITY; ENTITY log2_function SUBTYPE OF (unary_function_call); END_ENTITY; ENTITY log_function SUBTYPE OF (unary_function_call); END_ENTITY; ENTITY logical_literal SUBTYPE OF (generic_literal); lit_value : LOGICAL; END_ENTITY; ENTITY luminous_intensity_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY luminous_intensity_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit .dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions. time_exponent = 0.0) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions. luminous_intensity_exponent = 1.0); END_ENTITY; ENTITY mapped_item SUBTYPE OF (representation_item); mapping_source : representation_map; mapping_target : representation_item; WHERE wr1 : acyclic_mapped_representation(using_representations(SELF), [SELF]); END_ENTITY; ENTITY mass_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY mass_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit .dimensions.mass_exponent = 1.0) AND (SELF\named_unit.dimensions. time_exponent = 0.0) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions. luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY maths_enum_literal SUBTYPE OF (generic_literal); lit_value : maths_enum_atom; END_ENTITY; ENTITY maths_function ABSTRACT SUPERTYPE OF (ONEOF (finite_function, constant_function, selector_function, elementary_function, restriction_function, repackaging_function, reindexed_array_function, series_composed_function, parallel_composed_function, explicit_table_function, homogeneous_linear_function, general_linear_function, b_spline_basis, b_spline_function, rationalize_function, partial_derivative_function, definite_integral_function, abstracted_expression_function, expression_denoted_function, imported_point_function, imported_curve_function, imported_surface_function, imported_volume_function, application_defined_function)) SUBTYPE OF (generic_expression); DERIVE domain : tuple_space := derive_function_domain(SELF); range : tuple_space := derive_function_range(SELF); END_ENTITY; ENTITY maths_space ABSTRACT SUPERTYPE OF (ONEOF (elementary_space, finite_integer_interval, integer_interval_from_min, integer_interval_to_max, finite_real_interval, real_interval_from_min, real_interval_to_max, cartesian_complex_number_region, polar_complex_number_region, finite_space, uniform_product_space, listed_product_space, extended_tuple_space, function_space)) SUBTYPE OF (generic_expression); END_ENTITY; ENTITY maths_space_context SUPERTYPE OF (ONEOF (compound_maths_space_context, defined_maths_space_context , explicitly_enumerated_maths_space_context)); id : identifier; name : label; description : OPTIONAL text; abstract_space : maths_space; physical_space : space_context_select; END_ENTITY; ENTITY maths_tuple_literal SUBTYPE OF (generic_literal); lit_value : LIST OF maths_value; END_ENTITY; ENTITY maths_value_context; id : identifier; name : label; description : OPTIONAL text; abstract_value : maths_value; physical_value : value_context_select; END_ENTITY; ENTITY maths_variable SUBTYPE OF (generic_variable); values_space : maths_space; name : label; WHERE wr1 : expression_is_constant(values_space); END_ENTITY; ENTITY maximum_function SUBTYPE OF (multiple_arity_function_call); END_ENTITY; ENTITY measure_with_unit SUPERTYPE OF (ONEOF (length_measure_with_unit, mass_measure_with_unit, time_measure_with_unit, electric_current_measure_with_unit, thermodynamic_temperature_measure_with_unit, celsius_temperature_measure_with_unit, amount_of_substance_measure_with_unit, luminous_intensity_measure_with_unit, plane_angle_measure_with_unit, solid_angle_measure_with_unit, area_measure_with_unit, volume_measure_with_unit , ratio_measure_with_unit)); value_component : measure_value; unit_component : unit; WHERE wr1 : valid_units(SELF); END_ENTITY; ENTITY membership_of_maths_space_context; space_context : maths_space_context; value_context : maths_value_context; END_ENTITY; ENTITY minimum_function SUBTYPE OF (multiple_arity_function_call); END_ENTITY; ENTITY minus_expression SUBTYPE OF (binary_numeric_expression); END_ENTITY; ENTITY minus_function SUBTYPE OF (unary_function_call); END_ENTITY; ENTITY mod_expression SUBTYPE OF (binary_numeric_expression); END_ENTITY; ENTITY mult_expression SUBTYPE OF (multiple_arity_numeric_expression); END_ENTITY; ENTITY multiple_arity_boolean_expression ABSTRACT SUPERTYPE OF (ONEOF (and_expression, or_expression)) SUBTYPE OF (boolean_expression, multiple_arity_generic_expression); SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF boolean_expression; END_ENTITY; ENTITY multiple_arity_function_call ABSTRACT SUPERTYPE OF (ONEOF (maximum_function, minimum_function)) SUBTYPE OF (multiple_arity_numeric_expression); END_ENTITY; ENTITY multiple_arity_generic_expression ABSTRACT SUPERTYPE SUBTYPE OF (generic_expression); operands : LIST [2:?] OF generic_expression; END_ENTITY; ENTITY multiple_arity_numeric_expression ABSTRACT SUPERTYPE OF (ONEOF (plus_expression, mult_expression, multiple_arity_function_call)) SUBTYPE OF (numeric_expression, multiple_arity_generic_expression); SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF numeric_expression; END_ENTITY; ENTITY name_attribute; attribute_value : label; named_item : name_attribute_select; END_ENTITY; ENTITY named_unit SUPERTYPE OF (ONEOF (si_unit, conversion_based_unit, context_dependent_unit) ANDOR ONEOF (length_unit, mass_unit, time_unit, electric_current_unit, thermodynamic_temperature_unit, amount_of_substance_unit, luminous_intensity_unit, plane_angle_unit, solid_angle_unit, area_unit, volume_unit, ratio_unit)); dimensions : dimensional_exponents; END_ENTITY; ENTITY not_expression SUBTYPE OF (unary_boolean_expression); SELF\unary_generic_expression.operand : boolean_expression; END_ENTITY; ENTITY numeric_defined_function ABSTRACT SUPERTYPE OF (ONEOF (integer_defined_function, real_defined_function)) SUBTYPE OF (numeric_expression, defined_function); END_ENTITY; ENTITY numeric_expression ABSTRACT SUPERTYPE OF (ONEOF (simple_numeric_expression, unary_numeric_expression, binary_numeric_expression, multiple_arity_numeric_expression, length_function, value_function, numeric_defined_function)) SUBTYPE OF (expression); DERIVE is_int : BOOLEAN := is_int_expr(SELF); sql_mappable : BOOLEAN := is_SQL_mappable(SELF); END_ENTITY; ENTITY numeric_variable SUBTYPE OF (simple_numeric_expression, variable); WHERE wr1 : ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(SELF)) OR ( 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(SELF)); END_ENTITY; ENTITY object_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY odd_function SUBTYPE OF (unary_boolean_expression); SELF\unary_generic_expression.operand : numeric_expression; WHERE wr1 : is_int_expr(SELF\numeric_expression); END_ENTITY; ENTITY off_page_connector SUBTYPE OF (page_connector); END_ENTITY; ENTITY offset_curve_2d SUBTYPE OF (curve); basis_curve : curve; distance : length_measure; self_intersect : LOGICAL; WHERE wr1 : basis_curve.dim = 2; END_ENTITY; ENTITY on_page_connector SUBTYPE OF (page_connector); END_ENTITY; ENTITY one_direction_repeat_factor SUBTYPE OF (geometric_representation_item); repeat_factor : vector; END_ENTITY; ENTITY or_expression SUBTYPE OF (multiple_arity_boolean_expression); END_ENTITY; ENTITY organization; id : OPTIONAL identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY organization_assignment ABSTRACT SUPERTYPE; assigned_organization : organization; role : organization_role; END_ENTITY; ENTITY organization_relationship; name : label; description : OPTIONAL text; relating_organization : organization; related_organization : organization; END_ENTITY; ENTITY organization_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY organization_type; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY organization_type_assignment ABSTRACT SUPERTYPE; id : identifier; name : label; description : OPTIONAL text; assigned_organization_type : organization_type; role : organization_type_role; END_ENTITY; ENTITY organization_type_role; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY organizational_address SUBTYPE OF (address); organizations : SET [1:?] OF organization; description : OPTIONAL text; END_ENTITY; ENTITY page_connector SUBTYPE OF (schematic_element_definition); END_ENTITY; ENTITY parabola SUBTYPE OF (conic); focal_dist : length_measure; WHERE wr1 : focal_dist <> 0.0; END_ENTITY; ENTITY parallel_composed_function SUBTYPE OF (maths_function, multiple_arity_generic_expression); source_of_domain : maths_space_or_function; prep_functions : LIST [1:?] OF maths_function; final_function : maths_function_select; DERIVE SELF\multiple_arity_generic_expression.operands : LIST [2:?] OF generic_expression := convert_to_operands_prcmfn(source_of_domain, prep_functions, final_function); WHERE wr1 : no_cyclic_domain_reference(source_of_domain, [SELF]); wr2 : expression_is_constant(domain_from(source_of_domain)); wr3 : parallel_composed_function_domain_check(domain_from(source_of_domain), prep_functions); wr4 : parallel_composed_function_composability_check(prep_functions, final_function); END_ENTITY; ENTITY partial_derivative_expression SUBTYPE OF (unary_generic_expression); d_variables : LIST [1:?] OF maths_variable; extension : extension_options; DERIVE derivand : generic_expression := SELF\unary_generic_expression.operand; WHERE wr1 : has_values_space(derivand); wr2 : space_is_continuum(values_space_of(derivand)); wr3 : SIZEOF(QUERY(vbl <* d_variables | NOT subspace_of(values_space_of(vbl) , the_reals) AND NOT subspace_of(values_space_of(vbl), the_complex_numbers) )) = 0; END_ENTITY; ENTITY partial_derivative_function SUBTYPE OF (maths_function, unary_generic_expression); SELF\unary_generic_expression.operand : maths_function; d_variables : LIST [1:?] OF input_selector; extension : extension_options; DERIVE derivand : maths_function := SELF\unary_generic_expression.operand; WHERE wr1 : space_is_continuum(derivand.range); wr2 : partial_derivative_check(derivand.domain, d_variables); END_ENTITY; ENTITY person; id : identifier; last_name : OPTIONAL label; first_name : OPTIONAL label; middle_names : OPTIONAL LIST [1:?] OF label; prefix_titles : OPTIONAL LIST [1:?] OF label; suffix_titles : OPTIONAL LIST [1:?] OF label; WHERE wr1 : EXISTS(last_name) OR EXISTS(first_name); END_ENTITY; ENTITY person_and_organization; the_person : person; the_organization : organization; DERIVE name : label := get_name_value(SELF); description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM' )) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY person_and_organization_address SUBTYPE OF (organizational_address, personal_address); SELF\organizational_address.organizations : SET [1:1] OF organization; SELF\personal_address.people : SET [1:1] OF person; WHERE wr1 : SIZEOF(QUERY(pao <* USEDIN(SELF\personal_address.people[1], 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PERSON_AND_ORGANIZATION.THE_PERSON' ) | pao.the_organization :=: SELF\organizational_address.organizations[1])) = 1; END_ENTITY; ENTITY person_and_organization_assignment ABSTRACT SUPERTYPE; assigned_person_and_organization : person_and_organization; role : person_and_organization_role; END_ENTITY; ENTITY person_and_organization_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY person_assignment ABSTRACT SUPERTYPE; assigned_person : person; role : person_role; END_ENTITY; ENTITY person_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY person_type; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY personal_address SUBTYPE OF (address); people : SET [1:?] OF person; description : OPTIONAL text; END_ENTITY; ENTITY physical_quantity_instance SUBTYPE OF (general_property, class); END_ENTITY; ENTITY physical_quantity_range SUBTYPE OF (physical_quantity_space); END_ENTITY; ENTITY physical_quantity_space SUBTYPE OF (general_property, class); END_ENTITY; ENTITY physical_quantity_symmetry SUBTYPE OF (general_property, class); END_ENTITY; ENTITY physical_quantity_symmetry_by_library_reference SUBTYPE OF (physical_quantity_symmetry, externally_defined_item); END_ENTITY; ENTITY placement SUPERTYPE OF (axis2_placement_2d) SUBTYPE OF (geometric_representation_item); location : cartesian_point; END_ENTITY; ENTITY planar_box SUBTYPE OF (planar_extent); placement : axis2_placement; END_ENTITY; ENTITY planar_extent SUBTYPE OF (geometric_representation_item); size_in_x : length_measure; size_in_y : length_measure; END_ENTITY; ENTITY plane_angle_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'FUNCTIONAL_DATA_AND_SCHEMATIC_REPRESENTATION_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY plane_angle_unit SUBTYPE OF (named_unit); WHERE wr1 : (SELF\named_unit.dimensions.length_exponent = 0.0) AND (SELF\named_unit .dimensions.mass_exponent = 0.0) AND (SELF\named_unit.dimensions. time_exponent = 0.0) AND (SELF\named_unit.dimensions. electric_current_exponent = 0.0) AND (SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0.0) AND (SELF\named_unit.dimensions. amount_of_substance_exponent = 0.0) AND (SELF\named_unit.dimensions. luminous_intensity_exponent = 0.0); END_ENTITY; ENTITY plus_expression SUBTYPE OF (multiple_arity_numeric_expression); END_ENTITY; ENTITY point SUPERTYPE OF (ONEOF (cartesian_point, point_on_curve)) SUBTYPE OF (geometric_representation_item); END_ENTITY; ENTITY point_on_curve SUBTYPE OF (point); basis_curve : curve; point_parameter : parameter_value; END_ENTITY; ENTITY polar_complex_number_region SUBTYPE OF (maths_space, generic_literal); centre : complex_number_literal; distance_constraint : real_interval; direction_constraint : finite_real_interval; WHERE wr1 : min_exists(distance_constraint) AND (real_min(distance_constraint) >= 0.0); wr2 : {-PI <= direction_constraint.min < PI}; wr3 : direction_constraint.max - direction_constraint.min <= 2.0 * PI; wr4 : (direction_constraint.max - direction_constraint.min < 2.0 * PI) OR ( direction_const