SCHEMA CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF; (* Original schemas: schema = action_schema ; schema = activity_method_mim ; schema = activity_mim ; schema = advanced_boundary_representation_mim ; schema = aic_advanced_brep ; schema = aic_associative_draughting_elements ; schema = aic_draughting_annotation ; schema = aic_draughting_elements ; schema = aic_edge_based_wireframe ; schema = aic_faceted_brep ; schema = aic_geometric_tolerances ; schema = aic_geometrically_bounded_surface ; schema = aic_geometrically_bounded_wireframe ; schema = aic_manifold_surface ; schema = aic_mechanical_design_geometric_presentation ; schema = aic_shell_based_wireframe ; schema = aic_topologically_bounded_surface ; schema = alias_identification_mim ; schema = appearance_assignment_mim ; schema = application_context_schema ; schema = approval_mim ; schema = approval_schema ; schema = assembly_structure_mim ; schema = associative_text_mim ; schema = basic_attribute_schema ; schema = certification_mim ; schema = certification_schema ; schema = class_mim ; schema = classification_assignment_mim ; schema = classification_schema ; schema = colour_mim ; schema = configuration_control_3d_design_ed2_mim ; schema = configuration_effectivity_mim ; schema = configuration_item_mim ; schema = configuration_management_schema ; schema = construction_geometry_mim ; schema = constructive_solid_geometry_3d_mim ; schema = contextual_shape_positioning_mim ; schema = contract_mim ; schema = contract_schema ; schema = curve_appearance_mim ; schema = date_time_assignment_mim ; schema = date_time_mim ; schema = date_time_schema ; schema = default_tolerance_mim ; schema = derived_shape_element_mim ; schema = dimension_tolerance_mim ; schema = document_and_version_identification_mim ; schema = document_assignment_mim ; schema = document_definition_mim ; schema = document_management_mim ; schema = document_properties_mim ; schema = document_schema ; schema = document_structure_mim ; schema = draughting_element_schema ; schema = edge_based_wireframe_mim ; schema = effectivity_application_mim ; schema = effectivity_mim ; schema = effectivity_schema ; schema = elemental_geometric_shape_mim ; schema = event_assignment_mim ; schema = event_mim ; schema = experience_schema ; schema = extended_measure_representation_mim ; schema = external_item_identification_assignment_mim ; schema = external_model_mim ; schema = external_reference_schema ; schema = faceted_boundary_representation_mim ; schema = file_identification_mim ; schema = foundation_representation_mim ; schema = general_surface_appearance_mim ; schema = geometric_model_schema ; schema = geometric_tolerance_mim ; schema = geometric_validation_property_representation_mim ; schema = geometrically_bounded_surface_mim ; schema = geometrically_bounded_wireframe_mim ; schema = geometry_schema ; schema = group_schema ; schema = identification_assignment_mim ; schema = incomplete_data_reference_mechanism_mim ; schema = independent_property_mim ; schema = independent_property_representation_mim ; schema = layer_assignment_mim ; schema = location_schema ; schema = management_resource_information_mim ; schema = management_resources_schema ; schema = manifold_surface_mim ; schema = material_property_definition_schema ; schema = material_property_representation_schema ; schema = measure_representation_mim ; schema = measure_schema ; schema = multi_linguism_mim ; schema = part_and_version_identification_mim ; schema = part_definition_relationship_mim ; schema = part_view_definition_mim ; schema = person_organization_assignment_mim ; schema = person_organization_mim ; schema = person_organization_schema ; 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_categorization_mim ; schema = product_concept_identification_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_relationship_mim ; schema = product_replacement_mim ; schema = product_structure_mim ; schema = product_structure_schema ; schema = product_version_mim ; schema = product_version_relationship_mim ; schema = product_view_definition_mim ; schema = product_view_definition_properties_mim ; schema = product_view_definition_relationship_mim ; schema = project_mim ; schema = property_assignment_mim ; schema = qualifications_schema ; schema = qualified_measure_schema ; schema = representation_schema ; schema = representation_with_uncertainty_mim ; schema = security_classification_mim ; schema = security_classification_schema ; schema = shape_appearance_layers_mim ; schema = shape_aspect_definition_schema ; schema = shape_dimension_schema ; schema = shape_property_assignment_mim ; schema = shape_tolerance_schema ; schema = shell_based_wireframe_mim ; schema = single_part_representation_mim ; schema = support_resource_schema ; schema = text_appearance_mim ; schema = time_interval_assignment_mim ; schema = time_interval_mim ; schema = topologically_bounded_surface_mim ; schema = topology_schema ; schema = value_with_unit_mim ; schema = work_order_mim ; schema = work_request_mim ; *) CONSTANT dummy_gri : geometric_representation_item := representation_item('')|| geometric_representation_item(); dummy_tri : topological_representation_item := representation_item('')|| topological_representation_item(); END_CONSTANT; TYPE action_items = SELECT (configuration_effectivity, product_definition, product_definition_formation , product_definition_formation_relationship, product_definition_relationship) ; END_TYPE; TYPE action_request_item = SELECT (product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, property_definition); END_TYPE; TYPE ahead_or_behind = ENUMERATION OF (ahead, exact, behind); END_TYPE; TYPE amount_of_substance_measure = REAL; END_TYPE; TYPE angle_relator = ENUMERATION OF (equal, large, small); END_TYPE; TYPE approval_item = SELECT (action, alternate_product_relationship, applied_action_assignment, assembly_component_usage_substitute, certification, configuration_effectivity , contract, document_file, executed_action, product, product_definition, product_definition_formation, product_definition_relationship, versioned_action_request); END_TYPE; TYPE area_measure = REAL; END_TYPE; TYPE area_or_view = SELECT (presentation_area, presentation_view); END_TYPE; TYPE attribute_language_item = SELECT (alternate_product_relationship, application_context, applied_certification_assignment, applied_document_reference, applied_document_usage_constraint_assignment, applied_external_identification_assignment, applied_identification_assignment , applied_organizational_project_assignment, applied_security_classification_assignment, approval, approval_relationship, approval_status, assembly_component_usage_substitute, attribute_value_assignment, certification, certification_type, configuration_design, configuration_item, contract, date_role, date_time_role , descriptive_representation_item, document_relationship, document_usage_role , effectivity, effectivity_relationship, event_occurrence, external_source, general_property, general_property_relationship, geometric_representation_item, geometric_tolerance, identification_role, make_from_usage_option, mapped_item, multi_language_attribute_assignment, object_role, organization_relationship, organization_role, organizational_project, organizational_project_relationship, organizational_project_role, person_and_organization, person_and_organization_role, product, product_category, product_concept, product_concept_relationship, product_definition, product_definition_context , product_definition_formation, product_definition_formation_relationship, product_definition_relationship, product_definition_shape, product_related_product_category, property_definition, representation, security_classification, security_classification_assignment, shape_aspect, shape_aspect_relationship, shape_representation, time_interval_role, topological_representation_item, uncertainty_measure_with_unit, uncertainty_qualifier); END_TYPE; TYPE attribute_type = SELECT (label, text); END_TYPE; TYPE axis2_placement = SELECT (axis2_placement_2d, axis2_placement_3d); END_TYPE; TYPE b_spline_curve_form = ENUMERATION OF (polyline_form, circular_arc, elliptic_arc, parabolic_arc, hyperbolic_arc, unspecified); END_TYPE; TYPE b_spline_surface_form = ENUMERATION OF (plane_surf, cylindrical_surf, conical_surf, spherical_surf, toroidal_surf, surf_of_revolution, ruled_surf, generalised_cone, quadric_surf, surf_of_linear_extrusion, unspecified); END_TYPE; TYPE boolean_operand = SELECT (solid_model, half_space_solid, csg_primitive, boolean_result); END_TYPE; TYPE boolean_operator = ENUMERATION OF (union, intersection, difference); 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 central_or_parallel = ENUMERATION OF (central, parallel); END_TYPE; TYPE certification_item = SELECT (product_definition_formation_relationship); END_TYPE; TYPE character_spacing_select = SELECT (length_measure, ratio_measure, measure_with_unit, descriptive_measure); END_TYPE; TYPE character_style_select = SELECT (character_glyph_style_stroke, character_glyph_style_outline, text_style_for_defined_font); END_TYPE; TYPE characterized_action_definition = SELECT (action, action_method, action_relationship); END_TYPE; TYPE characterized_definition = SELECT (characterized_object, characterized_product_definition, shape_definition); END_TYPE; TYPE characterized_product_definition = SELECT (product_definition, product_definition_relationship); END_TYPE; TYPE classification_item = SELECT (dimensional_size, document_file, plus_minus_tolerance, product_definition); END_TYPE; TYPE compound_item_definition = SELECT (list_representation_item, set_representation_item); END_TYPE; TYPE configuration_design_item = SELECT (product_definition, product_definition_formation); END_TYPE; TYPE context_dependent_measure = REAL; END_TYPE; TYPE contract_item = SELECT (executed_action, product_definition_formation); END_TYPE; TYPE count_measure = NUMBER; END_TYPE; TYPE csg_primitive = SELECT (sphere, ellipsoid, block, right_angular_wedge, faceted_primitive, rectangular_pyramid, torus, right_circular_cone, eccentric_cone, right_circular_cylinder, cyclide_segment_solid); END_TYPE; TYPE csg_select = SELECT (boolean_result, csg_primitive); END_TYPE; TYPE curve_font_or_scaled_curve_font_select = SELECT (curve_style_font_select); END_TYPE; TYPE curve_on_surface = SELECT (pcurve, surface_curve, composite_curve_on_surface); END_TYPE; TYPE curve_or_annotation_curve_occurrence = SELECT (curve, annotation_curve_occurrence); END_TYPE; TYPE curve_or_render = SELECT (curve_style); END_TYPE; TYPE curve_style_font_select = SELECT (curve_style_font, pre_defined_curve_font, externally_defined_curve_font); END_TYPE; TYPE date_and_time_item = SELECT (action, applied_action_assignment, applied_organization_assignment, applied_person_and_organization_assignment, applied_security_classification_assignment, approval_person_organization, certification, contract, document_file, event_occurrence, organizational_project, product_definition, product_definition_formation, product_definition_relationship, security_classification, versioned_action_request); END_TYPE; TYPE date_item = SELECT (action, applied_action_assignment, applied_organization_assignment, applied_person_and_organization_assignment, applied_security_classification_assignment, approval_person_organization, certification, contract, document_file, event_occurrence, organizational_project, product_definition, product_definition_formation, product_definition_relationship, security_classification, versioned_action_request); END_TYPE; TYPE date_time_or_event_occurrence = SELECT (date_time_select, event_occurrence); END_TYPE; TYPE date_time_select = SELECT (date, date_and_time, local_time); END_TYPE; TYPE day_in_month_number = INTEGER; WHERE wr1 : {1 <= SELF <= 31}; END_TYPE; TYPE defined_glyph_select = SELECT (pre_defined_character_glyph, externally_defined_character_glyph); 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 (action_request_solution, application_context, approval_role, configuration_design, context_dependent_shape_representation, date_role, date_time_role, effectivity, external_source, organization_role, person_and_organization, person_and_organization_role, property_definition_representation, representation); END_TYPE; TYPE descriptive_measure = STRING; END_TYPE; TYPE dimension_count = INTEGER; WHERE wr1 : SELF > 0; END_TYPE; TYPE dimension_extent_usage = ENUMERATION OF (origin, target); END_TYPE; TYPE dimensional_characteristic = SELECT (dimensional_location, dimensional_size); END_TYPE; TYPE direction_count_select = SELECT (u_direction_count, v_direction_count); END_TYPE; TYPE document_reference_item = SELECT (action_method, product, product_definition, product_definition_formation, product_definition_relationship, shape_aspect, shape_aspect_relationship, versioned_action_request); END_TYPE; TYPE draughting_callout_element = SELECT (annotation_text_occurrence, annotation_symbol_occurrence, annotation_curve_occurrence); END_TYPE; TYPE effectivity_item = SELECT (assembly_component_usage_substitute, product, product_definition, product_definition_formation, product_definition_relationship); END_TYPE; TYPE electric_current_measure = REAL; END_TYPE; TYPE event_occurrence_item = SELECT (organizational_project); END_TYPE; TYPE external_identification_item = SELECT (document_file, product_definition); END_TYPE; TYPE fill_area_style_tile_shape_select = SELECT (fill_area_style_tile_curve_with_style, fill_area_style_tile_coloured_region , fill_area_style_tile_symbol_with_style, pre_defined_tile, externally_defined_tile); 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 hour_in_day = INTEGER; WHERE wr1 : {0 <= SELF <= 24}; END_TYPE; TYPE id_attribute_select = SELECT (action, address, application_context, group, organizational_project, product_category, property_definition, representation, shape_aspect, shape_aspect_relationship); END_TYPE; TYPE identification_item = SELECT (approval_status, contract, dimensional_size, document_file, draughting_model , general_property, mechanical_design_geometric_presentation_representation, organization, product, product_definition, product_definition_formation, security_classification, security_classification_level, shape_aspect_relationship, shape_representation); END_TYPE; TYPE identifier = STRING; END_TYPE; TYPE invisibility_context = SELECT (presentation_representation, presentation_set); END_TYPE; TYPE invisible_item = SELECT (styled_item, presentation_layer_assignment, representation); END_TYPE; TYPE knot_type = ENUMERATION OF (uniform_knots, quasi_uniform_knots, piecewise_bezier_knots, unspecified); END_TYPE; TYPE label = STRING; END_TYPE; TYPE layered_item = SELECT (presentation_representation, representation_item); END_TYPE; TYPE length_measure = REAL; END_TYPE; TYPE limit_condition = ENUMERATION OF (maximum_material_condition, least_material_condition, regardless_of_feature_size); END_TYPE; TYPE list_of_reversible_topology_item = LIST OF reversible_topology_item; END_TYPE; TYPE list_of_two_representation_items = list_representation_item; WHERE wr1 : HIINDEX(SELF) = 2; END_TYPE; TYPE list_representation_item = LIST [1:?] OF representation_item; END_TYPE; TYPE luminous_intensity_measure = REAL; END_TYPE; TYPE marker_select = SELECT (marker_type, pre_defined_marker); END_TYPE; TYPE marker_type = ENUMERATION OF (dot, x, plus, asterisk, ring, square, triangle); END_TYPE; TYPE mass_measure = REAL; 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 minute_in_hour = INTEGER; WHERE wr1 : {0 <= SELF <= 59}; END_TYPE; TYPE month_in_year_number = INTEGER; WHERE wr1 : {1 <= SELF <= 12}; END_TYPE; TYPE multi_language_attribute_item = SELECT (alternate_product_relationship, application_context, applied_certification_assignment, applied_document_reference, applied_document_usage_constraint_assignment, applied_external_identification_assignment, applied_identification_assignment , applied_organizational_project_assignment, approval, approval_relationship , approval_status, assembly_component_usage_substitute, attribute_value_assignment, certification, certification_type, colour, configuration_design, configuration_item, contract, date_role, date_time_role , descriptive_representation_item, document_relationship, document_usage_role , effectivity, effectivity_relationship, event_occurrence, external_source, general_property, general_property_relationship, geometric_representation_item, geometric_tolerance, identification_role, make_from_usage_option, mapped_item, object_role, organization_relationship, organization_role, organizational_project, organizational_project_relationship, organizational_project_role, person_and_organization, person_and_organization_role, product, product_category, product_concept, product_concept_relationship, product_definition, product_definition_context, product_definition_formation , product_definition_formation_relationship, product_definition_relationship , product_definition_shape, product_related_product_category, property_definition, representation, representation_relationship, security_classification, security_classification_assignment, shape_aspect, shape_aspect_relationship, shape_representation, time_interval_role, topological_representation_item, uncertainty_measure_with_unit); END_TYPE; TYPE name_attribute_select = SELECT (action_request_solution, address, configuration_design, context_dependent_shape_representation, derived_unit, effectivity, person_and_organization, product_definition, property_definition_representation); END_TYPE; TYPE null_style = ENUMERATION OF (null); END_TYPE; TYPE numeric_measure = NUMBER; END_TYPE; TYPE organization_item = SELECT (action, alternate_product_relationship, applied_action_assignment, applied_identification_assignment, applied_security_classification_assignment , approval, assembly_component_usage_substitute, certification, configuration_item, contract, document_file, executed_action, general_property, organizational_project, product, product_definition, product_definition_formation, product_definition_formation_relationship, property_definition, security_classification, shape_representation, versioned_action_request); END_TYPE; TYPE parameter_value = REAL; END_TYPE; TYPE pcurve_or_surface = SELECT (pcurve, surface); END_TYPE; TYPE person_and_organization_item = SELECT (action, alternate_product_relationship, applied_action_assignment, applied_identification_assignment, applied_security_classification_assignment , approval, assembly_component_usage_substitute, certification, configuration_item, contract, document_file, executed_action, general_property, organizational_project, product, product_definition, product_definition_formation, product_definition_formation_relationship, property_definition, security_classification, shape_representation, versioned_action_request); END_TYPE; TYPE person_organization_select = SELECT (organization, person, person_and_organization); END_TYPE; TYPE plane_angle_measure = REAL; 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 preferred_surface_curve_representation = ENUMERATION OF (curve_3d, pcurve_s1, pcurve_s2); END_TYPE; TYPE presentable_text = STRING; END_TYPE; TYPE presentation_size_assignment_select = SELECT (presentation_view, presentation_area, area_in_set); END_TYPE; TYPE presentation_style_select = SELECT (point_style, curve_style, surface_style_usage, symbol_style, fill_area_style , text_style, null_style); END_TYPE; TYPE product_or_formation_or_definition = SELECT (product, product_definition_formation, product_definition); END_TYPE; TYPE project_item = SELECT (executed_action, product_concept); END_TYPE; TYPE ratio_measure = REAL; END_TYPE; TYPE represented_definition = SELECT (general_property, property_definition, shape_aspect, shape_aspect_relationship); END_TYPE; TYPE reversible_topology = SELECT (reversible_topology_item, list_of_reversible_topology_item, set_of_reversible_topology_item); END_TYPE; TYPE reversible_topology_item = SELECT (edge, path, face, face_bound, closed_shell, open_shell); END_TYPE; TYPE role_select = SELECT (action_assignment, action_request_assignment, approval_assignment, approval_date_time, certification_assignment, contract_assignment, document_reference, effectivity_assignment, security_classification_assignment); END_TYPE; TYPE second_in_minute = REAL; WHERE wr1 : {0 <= SELF <= 60.0}; END_TYPE; TYPE security_classification_item = SELECT (assembly_component_usage, document_file, product, product_definition, product_definition_formation, product_definition_usage); END_TYPE; TYPE set_of_reversible_topology_item = SET OF reversible_topology_item; END_TYPE; TYPE set_representation_item = SET [1:?] OF representation_item; END_TYPE; TYPE shape_definition = SELECT (product_definition_shape, shape_aspect, shape_aspect_relationship); END_TYPE; TYPE shell = SELECT (vertex_shell, wire_shell, open_shell, closed_shell); 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 style_context_select = SELECT (group, presentation_layer_assignment, representation, representation_item, presentation_set); END_TYPE; TYPE surface_side = ENUMERATION OF (positive, negative, both); END_TYPE; TYPE surface_side_style_select = SELECT (surface_side_style); END_TYPE; TYPE surface_style_element_select = SELECT (surface_style_fill_area, surface_style_boundary, surface_style_silhouette, surface_style_segmentation_curve, surface_style_control_grid, surface_style_parameter_line); END_TYPE; TYPE symbol_style_select = SELECT (symbol_colour); 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, annotation_text_character, defined_character_glyph, 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_interval_item = SELECT (time_interval_based_effectivity); END_TYPE; TYPE time_measure = REAL; END_TYPE; TYPE tolerance_method_definition = SELECT (tolerance_value, limits_and_fits); END_TYPE; TYPE transformation = SELECT (item_defined_transformation, functionally_defined_transformation); 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 u_direction_count = INTEGER; WHERE wr1 : SELF > 1; END_TYPE; TYPE unit = SELECT (derived_unit, named_unit); END_TYPE; TYPE v_direction_count = INTEGER; WHERE wr1 : SELF > 1; END_TYPE; TYPE value_qualifier = SELECT (precision_qualifier, type_qualifier, uncertainty_qualifier); END_TYPE; TYPE vector_or_direction = SELECT (vector, direction); END_TYPE; TYPE volume_measure = REAL; END_TYPE; TYPE year_number = INTEGER; END_TYPE; ENTITY action; name : label; description : OPTIONAL text; chosen_method : action_method; DERIVE id : identifier := get_id_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' )) <= 1; END_ENTITY; ENTITY action_directive; name : label; description : OPTIONAL text; analysis : text; comment : text; requests : SET [1:?] OF versioned_action_request; 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_request_assignment ABSTRACT SUPERTYPE; assigned_action_request : versioned_action_request; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' )) <= 1; END_ENTITY; ENTITY action_request_solution; method : action_method; request : versioned_action_request; DERIVE description : text := get_description_value(SELF); name : label := get_name_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; ENTITY action_request_status; status : label; assigned_request : versioned_action_request; 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 advanced_brep_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MANIFOLD_SOLID_BREP', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACETED_BREP', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF( it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MANIFOLD_SOLID_BREP', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1 )) > 0; wr3 : SIZEOF(QUERY(msb <* QUERY(it <* SELF.items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF( it)) | NOT (SIZEOF(QUERY(csh <* msb_shells(msb) | NOT (SIZEOF(QUERY(fcs <* csh\connected_face_set.cfs_faces | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ADVANCED_FACE' IN TYPEOF(fcs))) ) = 0))) = 0))) = 0; wr4 : SIZEOF(QUERY(msb <* QUERY(it <* items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF( it)) | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\manifold_solid_brep.outer))) = 0; wr5 : SIZEOF(QUERY(brv <* QUERY(it <* items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* brv\brep_with_voids.voids | csh\ oriented_closed_shell.orientation)) = 0))) = 0; wr6 : SIZEOF(QUERY(mi <* QUERY(it <* items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0; END_ENTITY; ENTITY advanced_face SUBTYPE OF (face_surface); WHERE wr1 : SIZEOF(['CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ELEMENTARY_SURFACE' , 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.B_SPLINE_SURFACE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SWEPT_SURFACE'] * TYPEOF( face_geometry)) = 1; wr2 : SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound )) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path.edge_list | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_CURVE' IN TYPEOF(oe\ oriented_edge.edge_element)))) = 0))) = 0; wr3 : SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound )) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path.edge_list | NOT (SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LINE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CONIC', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.POLYLINE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SURFACE_CURVE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.B_SPLINE_CURVE'] * TYPEOF(oe. edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0; wr4 : SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound )) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path.edge_list | NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.VERTEX_POINT' IN TYPEOF(oe\edge .edge_start)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CARTESIAN_POINT' IN TYPEOF(oe\ edge.edge_start\vertex_point.vertex_geometry)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.VERTEX_POINT' IN TYPEOF(oe\edge .edge_end)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CARTESIAN_POINT' IN TYPEOF(oe\ edge.edge_end\vertex_point.vertex_geometry))))) = 0))) = 0; wr5 : SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound )) | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ORIENTED_PATH' IN TYPEOF( elp_fbnds.bound))) = 0; wr6 : NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR (SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LINE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CONIC', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.POLYLINE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.B_SPLINE_CURVE'] * TYPEOF( face_geometry\swept_surface.swept_curve)) = 1); wr7 : SIZEOF(QUERY(vlp_fbnds <* QUERY(bnds <* bounds | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds. bound)) | NOT (('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.VERTEX_POINT' IN TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CARTESIAN_POINT' IN TYPEOF( vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\vertex_point. vertex_geometry))))) = 0; wr8 : SIZEOF(QUERY(bnd <* bounds | NOT (SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_LOOP', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.VERTEX_LOOP'] * TYPEOF(bnd. bound)) = 1))) = 0; wr9 : SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound )) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path.edge_list | ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SURFACE_CURVE' IN TYPEOF(oe\ oriented_edge.edge_element\edge_curve.edge_geometry)) AND NOT (SIZEOF( QUERY(sc_ag <* oe.edge_element\edge_curve.edge_geometry\surface_curve. associated_geometry | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PCURVE' IN TYPEOF(sc_ag)))) = 0 ))) = 0))) = 0; wr10 : (NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.POLYLINE' IN TYPEOF( face_geometry\swept_surface.swept_curve)) OR (SIZEOF(face_geometry\ swept_surface.swept_curve\polyline.points) >= 3)) AND (SIZEOF(QUERY( elp_fbnds <* QUERY(bnds <* bounds | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound )) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\path.edge_list | ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.POLYLINE' IN TYPEOF(oe\ oriented_edge.edge_element\edge_curve.edge_geometry)) AND NOT (SIZEOF(oe\ oriented_edge.edge_element\edge_curve.edge_geometry\polyline.points) >= 3)) ) = 0))) = 0); END_ENTITY; ENTITY alternate_product_relationship; name : label; definition : OPTIONAL text; alternate : product; base : product; basis : text; UNIQUE ur1 : alternate, base; WHERE wr1 : alternate :<>: base; END_ENTITY; ENTITY amount_of_substance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 angular_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; ENTITY angular_location SUBTYPE OF (dimensional_location); angle_selection : angle_relator; END_ENTITY; ENTITY angular_size SUBTYPE OF (dimensional_size); angle_selection : angle_relator; END_ENTITY; ENTITY angularity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) < 3; END_ENTITY; ENTITY annotation_curve_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_FILL_AREA' IN TYPEOF(SELF.item); END_ENTITY; ENTITY annotation_occurrence SUPERTYPE OF (ONEOF (annotation_point_occurrence, annotation_curve_occurrence, annotation_fill_area_occurrence, annotation_text_occurrence, annotation_symbol_occurrence)) SUBTYPE OF (styled_item); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY annotation_occurrence_associativity SUBTYPE OF (annotation_occurrence_relationship); WHERE wr1 : SIZEOF(TYPEOF(SELF.related_annotation_occurrence) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PROJECTION_CURVE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LEADER_CURVE']) = 1; END_ENTITY; ENTITY annotation_occurrence_relationship; name : label; description : text; relating_annotation_occurrence : annotation_occurrence; related_annotation_occurrence : annotation_occurrence; END_ENTITY; ENTITY annotation_point_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.POINT' IN TYPEOF(SELF\ styled_item.item); 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 ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.NULL_STYLE' IN TYPEOF(sty. styles[1])))) = 0; wr3 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item); wr4 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(SELF\mapped_item.mapping_source); wr2 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SYMBOL_TARGET' IN TYPEOF( SELF\mapped_item.mapping_target); wr3 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY annotation_symbol_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : SIZEOF(['CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_SYMBOL' , 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DEFINED_SYMBOL'] * TYPEOF( SELF\styled_item.item)) > 0; END_ENTITY; ENTITY annotation_table SUBTYPE OF (annotation_symbol); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TABLE_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); END_ENTITY; ENTITY annotation_table_occurrence SUBTYPE OF (annotation_symbol_occurrence); WHERE wr1 : SIZEOF(['CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TABLE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DEFINED_TABLE'] * TYPEOF(SELF\ styled_item.item)) > 0; END_ENTITY; ENTITY annotation_text SUBTYPE OF (mapped_item); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( SELF\mapped_item.mapping_target); wr2 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TEXT_STRING_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); wr3 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY annotation_text_character SUBTYPE OF (mapped_item); alignment : text_alignment; WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); wr2 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( SELF\mapped_item.mapping_target); wr3 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY annotation_text_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : SIZEOF(['CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TEXT_LITERAL', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_CHARACTER', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DEFINED_CHARACTER_GLYPH', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.COMPOSITE_TEXT'] * TYPEOF(SELF\ styled_item.item)) > 0; END_ENTITY; ENTITY annotation_text_with_associated_curves SUBTYPE OF (annotation_text); associated_curves : SET [1:?] OF curve; END_ENTITY; ENTITY annotation_text_with_blanking_box SUBTYPE OF (annotation_text); blanking : planar_box; END_ENTITY; ENTITY annotation_text_with_delineation SUBTYPE OF (annotation_text); delineation : text_delineation; END_ENTITY; ENTITY annotation_text_with_extent SUBTYPE OF (annotation_text); extent : planar_extent; END_ENTITY; ENTITY apex SUBTYPE OF (derived_shape_aspect); 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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; ENTITY application_context_element SUPERTYPE OF (ONEOF (product_concept_context, product_context, product_definition_context)); name : label; frame_of_reference : application_context; END_ENTITY; ENTITY applied_action_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF action_items; END_ENTITY; ENTITY applied_action_request_assignment SUBTYPE OF (action_request_assignment); items : SET [1:?] OF action_request_item; END_ENTITY; ENTITY applied_approval_assignment SUBTYPE OF (approval_assignment); items : SET [1:?] OF approval_item; END_ENTITY; ENTITY applied_certification_assignment SUBTYPE OF (certification_assignment); items : SET [1:?] OF certification_item; END_ENTITY; ENTITY applied_classification_assignment SUBTYPE OF (classification_assignment); items : SET [1:?] OF classification_item; END_ENTITY; ENTITY applied_contract_assignment SUBTYPE OF (contract_assignment); items : SET [1:?] OF contract_item; END_ENTITY; ENTITY applied_date_and_time_assignment SUBTYPE OF (date_and_time_assignment); items : SET [1:?] OF date_and_time_item; END_ENTITY; ENTITY applied_date_assignment SUBTYPE OF (date_assignment); items : SET [1:?] OF date_item; END_ENTITY; ENTITY applied_document_reference SUBTYPE OF (document_reference); items : SET [1:?] OF document_reference_item; END_ENTITY; ENTITY applied_document_usage_constraint_assignment SUBTYPE OF (document_usage_constraint_assignment); items : SET [1:?] OF document_reference_item; END_ENTITY; ENTITY applied_effectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET [1:?] OF effectivity_item; END_ENTITY; ENTITY applied_event_occurrence_assignment SUBTYPE OF (event_occurrence_assignment); items : SET [1:?] OF event_occurrence_item; 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_assignment SUBTYPE OF (organization_assignment); items : SET [1:?] OF organization_item; END_ENTITY; ENTITY applied_organizational_project_assignment SUBTYPE OF (organizational_project_assignment); items : SET [1:?] OF project_item; END_ENTITY; ENTITY applied_person_and_organization_assignment SUBTYPE OF (person_and_organization_assignment); items : SET [1:?] OF person_and_organization_item; END_ENTITY; ENTITY applied_security_classification_assignment SUBTYPE OF (security_classification_assignment); items : SET [1:?] OF security_classification_item; END_ENTITY; ENTITY applied_time_interval_assignment SUBTYPE OF (time_interval_assignment); items : SET OF time_interval_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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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_relationship; name : label; description : OPTIONAL text; relating_approval : approval; related_approval : approval; END_ENTITY; ENTITY approval_role; role : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 assembly_component_usage SUPERTYPE OF (ONEOF (next_assembly_usage_occurrence, specified_higher_usage_occurrence, promissory_usage_occurrence)) SUBTYPE OF (product_definition_usage); reference_designator : OPTIONAL identifier; END_ENTITY; ENTITY assembly_component_usage_substitute; name : label; definition : OPTIONAL text; base : assembly_component_usage; substitute : assembly_component_usage; UNIQUE ur1 : base, substitute; WHERE wr1 : base.relating_product_definition :=: substitute. relating_product_definition; wr2 : base :<>: substitute; END_ENTITY; ENTITY attribute_classification_assignment ABSTRACT SUPERTYPE; assigned_class : group; attribute_name : label; role : classification_role; END_ENTITY; ENTITY attribute_language_assignment SUBTYPE OF (attribute_classification_assignment); SELF\attribute_classification_assignment.assigned_class : language; items : SET [1:?] OF attribute_language_item; WHERE wr1 : SELF\attribute_classification_assignment.role.name IN ['primary', 'translated']; wr2 : SELF\attribute_classification_assignment.attribute_name <> ''; END_ENTITY; ENTITY attribute_value_assignment ABSTRACT SUPERTYPE; attribute_name : label; attribute_value : attribute_type; role : attribute_value_role; END_ENTITY; ENTITY attribute_value_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY axis1_placement SUBTYPE OF (placement); axis : OPTIONAL direction; DERIVE z : direction := NVL(normalise(axis), dummy_gri||direction([0.0, 0.0, 1.0])); WHERE wr1 : SELF\geometric_representation_item.dim = 3; 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 axis2_placement_3d SUBTYPE OF (placement); axis : OPTIONAL direction; ref_direction : OPTIONAL direction; DERIVE p : LIST [3:3] OF direction := build_axes(axis, ref_direction); WHERE wr1 : SELF\placement.location.dim = 3; wr2 : NOT EXISTS(axis) OR (axis.dim = 3); wr3 : NOT EXISTS(ref_direction) OR (ref_direction.dim = 3); wr4 : NOT EXISTS(axis) OR NOT EXISTS(ref_direction) OR (cross_product(axis, ref_direction).magnitude > 0.0); 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 : ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.UNIFORM_CURVE' IN TYPEOF( SELF)) OR ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF(SELF)) OR ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.BEZIER_CURVE' IN TYPEOF(SELF)) OR ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_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_surface SUPERTYPE OF (ONEOF (b_spline_surface_with_knots, uniform_surface, quasi_uniform_surface, bezier_surface) ANDOR rational_b_spline_surface) SUBTYPE OF (bounded_surface); u_degree : INTEGER; v_degree : INTEGER; control_points_list : LIST [2:?] OF LIST [2:?] OF cartesian_point; surface_form : b_spline_surface_form; u_closed : LOGICAL; v_closed : LOGICAL; self_intersect : LOGICAL; DERIVE u_upper : INTEGER := SIZEOF(control_points_list) - 1; v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1; control_points : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF cartesian_point := make_array_of_array(control_points_list, 0, u_upper, 0, v_upper); WHERE wr1 : ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.UNIFORM_SURFACE' IN TYPEOF (SELF)) OR ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.BEZIER_SURFACE' IN TYPEOF(SELF) ) OR ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY; ENTITY b_spline_surface_with_knots SUBTYPE OF (b_spline_surface); u_multiplicities : LIST [2:?] OF INTEGER; v_multiplicities : LIST [2:?] OF INTEGER; u_knots : LIST [2:?] OF parameter_value; v_knots : LIST [2:?] OF parameter_value; knot_spec : knot_type; DERIVE knot_u_upper : INTEGER := SIZEOF(u_knots); knot_v_upper : INTEGER := SIZEOF(v_knots); WHERE wr1 : constraints_param_b_spline(SELF\b_spline_surface.u_degree, knot_u_upper , SELF\b_spline_surface.u_upper, u_multiplicities, u_knots); wr2 : constraints_param_b_spline(SELF\b_spline_surface.v_degree, knot_v_upper , SELF\b_spline_surface.v_upper, v_multiplicities, v_knots); wr3 : SIZEOF(u_multiplicities) = knot_u_upper; wr4 : SIZEOF(v_multiplicities) = knot_v_upper; END_ENTITY; ENTITY background_colour SUBTYPE OF (colour); presentation : area_or_view; UNIQUE ur1 : presentation; END_ENTITY; ENTITY bezier_curve SUBTYPE OF (b_spline_curve); END_ENTITY; ENTITY bezier_surface SUBTYPE OF (b_spline_surface); END_ENTITY; ENTITY block SUBTYPE OF (geometric_representation_item); position : axis2_placement_3d; x : positive_length_measure; y : positive_length_measure; z : positive_length_measure; END_ENTITY; ENTITY boolean_result SUBTYPE OF (geometric_representation_item); operator : boolean_operator; first_operand : boolean_operand; second_operand : boolean_operand; END_ENTITY; ENTITY boundary_curve SUBTYPE OF (composite_curve_on_surface); WHERE wr1 : SELF\composite_curve.closed_curve; END_ENTITY; ENTITY bounded_curve SUPERTYPE OF (ONEOF (polyline, b_spline_curve, trimmed_curve, bounded_pcurve, bounded_surface_curve, composite_curve)) SUBTYPE OF (curve); END_ENTITY; ENTITY bounded_pcurve SUBTYPE OF (pcurve, bounded_curve); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.BOUNDED_CURVE' IN TYPEOF( SELF\pcurve.reference_to_curve.items[1]); END_ENTITY; ENTITY bounded_surface SUPERTYPE OF (ONEOF (b_spline_surface, rectangular_trimmed_surface, curve_bounded_surface, rectangular_composite_surface)) SUBTYPE OF (surface); END_ENTITY; ENTITY bounded_surface_curve SUBTYPE OF (surface_curve, bounded_curve); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.BOUNDED_CURVE' IN TYPEOF( SELF\surface_curve.curve_3d); END_ENTITY; ENTITY box_domain SUBTYPE OF (founded_item); corner : cartesian_point; xlength : positive_length_measure; ylength : positive_length_measure; zlength : positive_length_measure; WHERE wr1 : SIZEOF(QUERY(item <* USEDIN(SELF, '') | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.BOXED_HALF_SPACE' IN TYPEOF( item)))) = 0; END_ENTITY; ENTITY boxed_half_space SUBTYPE OF (half_space_solid); enclosure : box_domain; END_ENTITY; ENTITY brep_with_voids SUBTYPE OF (manifold_solid_brep); voids : SET [1:?] OF oriented_closed_shell; 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 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CAMERA_USAGE' IN TYPEOF( SELF\mapped_item.mapping_source); wr2 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PLANAR_BOX' IN TYPEOF(SELF\ mapped_item.mapping_target); wr3 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY camera_image_3d_with_scale SUBTYPE OF (camera_image); DERIVE scale : positive_ratio_measure := SELF\mapped_item.mapping_target\ planar_extent.size_in_x/SELF\mapped_item.mapping_source.mapping_origin\ camera_model_d3.perspective_of_volume.view_window.size_in_x; WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CAMERA_MODEL_D3' IN TYPEOF( SELF\mapped_item.mapping_source.mapping_origin); wr2 : aspect_ratio(SELF\mapped_item.mapping_target) = aspect_ratio(SELF\ mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.view_window); wr3 : SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.front_plane_clipping AND SELF\mapped_item. mapping_source.mapping_origin\camera_model_d3.perspective_of_volume. view_volume_sides_clipping; wr4 : (SELF\mapped_item.mapping_target\planar_extent.size_in_x > 0) AND (SELF \mapped_item.mapping_target\planar_extent.size_in_y > 0); wr5 : (SELF\mapped_item.mapping_source.mapping_origin\camera_model_d3. perspective_of_volume.view_window.size_in_x > 0) AND (SELF\mapped_item. mapping_source.mapping_origin\camera_model_d3.perspective_of_volume. view_window.size_in_y > 0); wr6 : ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\mapped_item.mapping_target\planar_box.placement)) AND NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\mapped_item.mapping_target\planar_box.placement)); END_ENTITY; ENTITY camera_model SUPERTYPE OF (camera_model_d3) SUBTYPE OF (geometric_representation_item); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ITEM_DEFINED_TRANSFORMATION.TRANSFORM_ITEM_1' )) + SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.REPRESENTATION_MAP.MAPPING_ORIGIN' )) > 0; wr2 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STYLED_ITEM.ITEM')) = 0; END_ENTITY; ENTITY camera_model_d3 SUBTYPE OF (camera_model); view_reference_system : axis2_placement_3d; perspective_of_volume : view_volume; WHERE wr1 : (dot_product(SELF.view_reference_system.p[3], SELF. perspective_of_volume.view_window.placement.p[3]) = 1.0) AND (SELF. view_reference_system.location.coordinates[3] = SELF.perspective_of_volume. view_window.placement.location.coordinates[3]); wr2 : SELF\geometric_representation_item.dim = 3; END_ENTITY; ENTITY camera_usage SUBTYPE OF (representation_map); WHERE wr1 : NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF\representation_map.mapped_representation)); wr2 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CAMERA_MODEL' IN TYPEOF( SELF\representation_map.mapping_origin); END_ENTITY; ENTITY cartesian_point SUBTYPE OF (point); coordinates : LIST [1:3] OF length_measure; END_ENTITY; ENTITY cartesian_transformation_operator SUPERTYPE OF (ONEOF (cartesian_transformation_operator_2d, cartesian_transformation_operator_3d)) 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 cartesian_transformation_operator_2d SUBTYPE OF (cartesian_transformation_operator); DERIVE u : LIST [2:2] OF direction := base_axis(2, SELF\ cartesian_transformation_operator.axis1, SELF\ cartesian_transformation_operator.axis2, ?); WHERE wr1 : SELF\geometric_representation_item.dim = 2; END_ENTITY; ENTITY cartesian_transformation_operator_3d SUBTYPE OF (cartesian_transformation_operator); axis3 : OPTIONAL direction; DERIVE u : LIST [3:3] OF direction := base_axis(3, SELF\ cartesian_transformation_operator.axis1, SELF\ cartesian_transformation_operator.axis2, axis3); WHERE wr1 : SELF\geometric_representation_item.dim = 3; END_ENTITY; ENTITY celsius_temperature_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY centre_of_symmetry SUBTYPE OF (derived_shape_aspect); WHERE wr1 : SIZEOF(QUERY(sadr <* SELF\derived_shape_aspect.deriving_relationships | NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SYMMETRIC_SHAPE_ASPECT' IN TYPEOF(sadr\shape_aspect_relationship.related_shape_aspect)))) = 0; END_ENTITY; ENTITY certification; name : label; purpose : text; kind : certification_type; END_ENTITY; ENTITY certification_assignment ABSTRACT SUPERTYPE; assigned_certification : certification; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' )) <= 1; END_ENTITY; ENTITY certification_type; description : label; END_ENTITY; ENTITY character_glyph_style_outline; outline_style : curve_style; END_ENTITY; ENTITY character_glyph_style_stroke; stroke_style : curve_style; END_ENTITY; ENTITY characterized_object; name : label; description : OPTIONAL text; END_ENTITY; ENTITY circle SUBTYPE OF (conic); radius : positive_length_measure; END_ENTITY; ENTITY circular_runout_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2 ; END_ENTITY; ENTITY class SUPERTYPE OF (ONEOF (class_by_extension, class_by_intension)) SUBTYPE OF (group); END_ENTITY; ENTITY class_by_extension SUBTYPE OF (class); END_ENTITY; ENTITY class_by_intension SUBTYPE OF (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 closed_shell SUBTYPE OF (connected_face_set); END_ENTITY; ENTITY coaxiality_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) <= 2 ; 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 common_datum SUBTYPE OF (composite_shape_aspect, datum); WHERE wr1 : SIZEOF(SELF.component_relationships) = 2; wr2 : SIZEOF(QUERY(sar <* SELF.component_relationships | NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DATUM' IN TYPEOF(sar. related_shape_aspect)) AND NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.COMMON_DATUM' IN TYPEOF(sar. related_shape_aspect))))) = 0; 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_on_surface SUPERTYPE OF (boundary_curve) SUBTYPE OF (composite_curve); DERIVE basis_surface : SET [0:2] OF surface := get_basis_surface(SELF); WHERE wr1 : SIZEOF(basis_surface) > 0; wr2 : constraints_composite_curve_on_surface(SELF); 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 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.BOUNDED_CURVE' IN TYPEOF( parent_curve); END_ENTITY; ENTITY composite_shape_aspect SUBTYPE OF (shape_aspect); INVERSE component_relationships : SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect; 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_delineation SUBTYPE OF (composite_text); delineation : text_delineation; END_ENTITY; ENTITY composite_text_with_extent SUBTYPE OF (composite_text); extent : planar_extent; END_ENTITY; ENTITY compound_representation_item SUBTYPE OF (representation_item); item_element : compound_item_definition; END_ENTITY; ENTITY concentricity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1 : SIZEOF(SELF\geometric_tolerance_with_datum_reference.datum_system) = 1; END_ENTITY; ENTITY configuration_design; configuration : configuration_item; design : configuration_design_item; DERIVE name : label := get_name_value(SELF); description : text := get_description_value(SELF); UNIQUE ur1 : configuration, design; WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY configuration_effectivity SUBTYPE OF (product_definition_effectivity); configuration : configuration_design; UNIQUE ur1 : configuration, usage, id; WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF\product_definition_effectivity.usage); END_ENTITY; ENTITY configuration_item; id : identifier; name : label; description : OPTIONAL text; item_concept : product_concept; purpose : OPTIONAL label; END_ENTITY; ENTITY conic SUPERTYPE OF (ONEOF (circle, ellipse, hyperbola, parabola)) SUBTYPE OF (curve); position : axis2_placement; END_ENTITY; ENTITY conical_surface SUBTYPE OF (elementary_surface); radius : length_measure; semi_angle : plane_angle_measure; WHERE wr1 : radius >= 0.0; END_ENTITY; ENTITY connected_edge_set SUBTYPE OF (topological_representation_item); ces_edges : SET [1:?] OF edge; END_ENTITY; ENTITY connected_face_set SUPERTYPE OF (ONEOF (closed_shell, open_shell)) SUBTYPE OF (topological_representation_item); cfs_faces : SET [1:?] OF face; END_ENTITY; ENTITY connected_face_sub_set SUBTYPE OF (connected_face_set); parent_face_set : connected_face_set; END_ENTITY; ENTITY constructive_geometry_representation SUBTYPE OF (representation); WHERE wr1 : ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.context_of_items)) AND {2 <= SELF.context_of_items\ geometric_representation_context.coordinate_space_dimension <= 3}; wr2 : SIZEOF(QUERY(cgr_i <* SELF.items | SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PLACEMENT', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CURVE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.POINT', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SURFACE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACE_SURFACE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.VERTEX_POINT'] * TYPEOF(cgr_i)) <> 1)) = 0; wr3 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2' )) > 0; wr4 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION' )) = 0; END_ENTITY; ENTITY constructive_geometry_representation_relationship SUBTYPE OF (representation_relationship); WHERE wr1 : (SELF.rep_1.context_of_items :=: SELF.rep_2.context_of_items) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.rep_1.context_of_items)); wr2 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CONSTRUCTIVE_GEOMETRY_REPRESENTATION' IN TYPEOF(SELF.rep_2); wr3 : SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SHAPE_REPRESENTATION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CONSTRUCTIVE_GEOMETRY_REPRESENTATION' ] * TYPEOF(SELF.rep_1)) = 1; wr4 : NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); END_ENTITY; ENTITY context_dependent_invisibility SUBTYPE OF (invisibility); presentation_context : invisibility_context; END_ENTITY; ENTITY context_dependent_shape_representation; representation_relation : shape_representation_relationship; represented_product_relation : product_definition_shape; DERIVE description : text := get_description_value(SELF); name : label := get_name_value(SELF); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF.represented_product_relation.definition); wr2 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; wr3 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; 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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 convex_hexahedron SUBTYPE OF (faceted_primitive); WHERE wr1 : SIZEOF(points) = 8; wr2 : above_plane(points[1], points[2], points[3], points[4]) = 0.0; wr3 : above_plane(points[5], points[8], points[7], points[6]) = 0.0; wr4 : above_plane(points[1], points[4], points[8], points[5]) = 0.0; wr5 : above_plane(points[4], points[3], points[7], points[8]) = 0.0; wr6 : above_plane(points[3], points[2], points[6], points[7]) = 0.0; wr7 : above_plane(points[1], points[5], points[6], points[2]) = 0.0; wr8 : same_side([points[1], points[2], points[3]], [points[5], points[6], points[7], points[8]]); wr9 : same_side([points[1], points[4], points[8]], [points[3], points[7], points[6], points[2]]); wr10 : same_side([points[1], points[2], points[5]], [points[3], points[7], points[8], points[4]]); wr11 : same_side([points[5], points[6], points[7]], [points[1], points[2], points[3], points[4]]); wr12 : same_side([points[3], points[7], points[6]], [points[1], points[4], points[8], points[5]]); wr13 : same_side([points[3], points[7], points[8]], [points[1], points[5], points[6], points[2]]); END_ENTITY; ENTITY coordinated_universal_time_offset; hour_offset : INTEGER; minute_offset : OPTIONAL INTEGER; sense : ahead_or_behind; DERIVE actual_minute_offset : INTEGER := NVL(minute_offset, 0); WHERE wr1 : {0 <= hour_offset <= 24}; wr2 : {0 <= actual_minute_offset <= 59}; wr3 : NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND (sense = exact)); END_ENTITY; ENTITY csg_solid SUBTYPE OF (solid_model); tree_root_expression : csg_select; END_ENTITY; ENTITY curve SUPERTYPE OF (ONEOF (line, conic, pcurve, surface_curve, offset_curve_2d, offset_curve_3d, curve_replica)) SUBTYPE OF (geometric_representation_item); END_ENTITY; ENTITY curve_bounded_surface SUBTYPE OF (bounded_surface); basis_surface : surface; boundaries : SET [1:?] OF boundary_curve; implicit_outer : BOOLEAN; WHERE wr1 : NOT implicit_outer OR (SIZEOF(QUERY(temp <* boundaries | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF (temp))) = 0); wr2 : NOT implicit_outer OR ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.BOUNDED_SURFACE' IN TYPEOF( basis_surface)); wr3 : SIZEOF(QUERY(temp <* boundaries | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF (temp))) <= 1; wr4 : SIZEOF(QUERY(temp <* boundaries | temp\composite_curve_on_surface. basis_surface[1] <> SELF.basis_surface)) = 0; END_ENTITY; ENTITY curve_dimension SUBTYPE OF (dimension_curve_directed_callout); 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 cyclide_segment_solid SUBTYPE OF (geometric_representation_item); position : axis2_placement_3d; radius1 : positive_length_measure; radius2 : positive_length_measure; cone_angle1 : plane_angle_measure; cone_angle2 : plane_angle_measure; turn_angle : plane_angle_measure; END_ENTITY; ENTITY cylindrical_surface SUBTYPE OF (elementary_surface); radius : positive_length_measure; END_ENTITY; ENTITY cylindricity_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1 : NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY; ENTITY date SUPERTYPE OF (calendar_date); year_component : year_number; END_ENTITY; ENTITY date_and_time; date_component : date; time_component : local_time; END_ENTITY; ENTITY date_and_time_assignment ABSTRACT SUPERTYPE; assigned_date_and_time : date_and_time; role : date_time_role; END_ENTITY; ENTITY date_assignment ABSTRACT SUPERTYPE; assigned_date : date; role : date_role; END_ENTITY; ENTITY date_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY date_time_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY dated_effectivity SUBTYPE OF (effectivity); effectivity_end_date : OPTIONAL date_time_or_event_occurrence; effectivity_start_date : date_time_or_event_occurrence; END_ENTITY; ENTITY datum SUBTYPE OF (shape_aspect); identification : identifier; INVERSE established_by_relationships : SET [1:?] OF shape_aspect_relationship FOR related_shape_aspect; WHERE wr1 : SIZEOF(QUERY(x <* SELF\datum.established_by_relationships | SIZEOF( TYPEOF(x\shape_aspect_relationship.relating_shape_aspect) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DATUM_FEATURE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DATUM_TARGET']) <> 1)) = 0; END_ENTITY; ENTITY datum_feature SUBTYPE OF (shape_aspect); INVERSE feature_basis_relationship : shape_aspect_relationship FOR relating_shape_aspect; WHERE wr1 : SIZEOF(QUERY(sar <* bag_to_set(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' )) | NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DATUM' IN TYPEOF(sar\ shape_aspect_relationship.related_shape_aspect)))) = 0; wr2 : SELF\shape_aspect.product_definitional = TRUE; END_ENTITY; ENTITY datum_feature_callout SUBTYPE OF (draughting_callout); END_ENTITY; ENTITY datum_reference; precedence : INTEGER; referenced_datum : datum; WHERE wr1 : precedence > 0; END_ENTITY; ENTITY datum_target SUBTYPE OF (shape_aspect); target_id : identifier; INVERSE target_basis_relationship : shape_aspect_relationship FOR relating_shape_aspect; WHERE wr1 : SIZEOF(QUERY(sar <* bag_to_set(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' )) | NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DATUM' IN TYPEOF(sar\ shape_aspect_relationship.related_shape_aspect)))) = 0; wr2 : SELF\shape_aspect.product_definitional = TRUE; END_ENTITY; ENTITY datum_target_callout SUBTYPE OF (draughting_callout); END_ENTITY; ENTITY default_tolerance_table SUBTYPE OF (representation); WHERE wr1 : SIZEOF(QUERY(i <* SELF.items | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)))) = 0; wr2 : (SIZEOF(QUERY(rr <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1' ) | rr.name < 'general tolerance definition')) = 0) AND (SIZEOF(QUERY(rr <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1' ) | (rr.name = 'general tolerance definition') AND (rr.rep_2.name < 'default tolerance'))) = 0) AND (SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2' )) = 0); END_ENTITY; ENTITY default_tolerance_table_cell SUBTYPE OF (compound_representation_item); WHERE wr1 : SIZEOF(QUERY(x <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.REPRESENTATION.ITEMS') | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DEFAULT_TOLERANCE_TABLE' IN TYPEOF(x))) = 1; wr2 : default_tolerance_table_cell_wr2(SELF\compound_representation_item. item_element); wr3 : default_tolerance_table_cell_wr3(SELF\compound_representation_item. item_element); wr4 : default_tolerance_table_cell_wr4(SELF\compound_representation_item. item_element); wr5 : default_tolerance_table_cell_wr5(SELF\compound_representation_item. item_element); END_ENTITY; ENTITY defined_character_glyph SUBTYPE OF (geometric_representation_item); definition : defined_glyph_select; placement : axis2_placement; END_ENTITY; ENTITY defined_symbol SUBTYPE OF (geometric_representation_item); definition : defined_symbol_select; target : symbol_target; END_ENTITY; ENTITY defined_table SUBTYPE OF (defined_symbol); END_ENTITY; ENTITY definitional_representation SUBTYPE OF (representation); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\representation.context_of_items); END_ENTITY; ENTITY degenerate_pcurve SUBTYPE OF (point); basis_surface : surface; reference_to_curve : definitional_representation; WHERE wr1 : SIZEOF(reference_to_curve\representation.items) = 1; wr2 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CURVE' IN TYPEOF( reference_to_curve\representation.items[1]); wr3 : reference_to_curve\representation.items[1]\ geometric_representation_item.dim = 2; END_ENTITY; ENTITY degenerate_toroidal_surface SUBTYPE OF (toroidal_surface); select_outer : BOOLEAN; WHERE wr1 : major_radius < minor_radius; END_ENTITY; ENTITY derived_shape_aspect SUPERTYPE OF (ONEOF (apex, centre_of_symmetry, geometric_alignment, geometric_intersection, parallel_offset, perpendicular_to, extension, tangent)) SUBTYPE OF (shape_aspect); INVERSE deriving_relationships : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; WHERE wr1 : SIZEOF(QUERY(dr <* SELF\derived_shape_aspect.deriving_relationships | NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'SHAPE_ASPECT_DERIVING_RELATIONSHIP' IN TYPEOF(dr)))) = 0; 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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 diameter_dimension SUBTYPE OF (dimension_curve_directed_callout); END_ENTITY; ENTITY dimension_callout_component_relationship SUBTYPE OF (draughting_callout_relationship); WHERE wr1 : SELF.name IN ['prefix', 'suffix']; wr2 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF(SELF.relating_draughting_callout); wr3 : SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LEADER_DIRECTED_CALLOUT', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PROJECTION_DIRECTED_CALLOUT', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' , 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' ]) = 0; wr4 : SELF.related_draughting_callout.contents * SELF. relating_draughting_callout.contents = SELF.related_draughting_callout. contents; wr5 : (SELF.name = 'prefix') AND (SIZEOF(QUERY(ato <* QUERY(con <* SELF. related_draughting_callout.contents | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)) | NOT (ato.name = 'prefix text'))) = 0); wr6 : (SELF.name = 'suffix') AND (SIZEOF(QUERY(ato <* QUERY(con <* SELF. related_draughting_callout.contents | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con)) | NOT (ato.name = 'suffix text'))) = 0); END_ENTITY; ENTITY dimension_callout_relationship SUBTYPE OF (draughting_callout_relationship); WHERE wr1 : SELF.name IN ['primary', 'secondary']; wr2 : SIZEOF(TYPEOF(SELF.relating_draughting_callout) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANGULAR_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CURVE_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DIAMETER_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LEADER_DIRECTED_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LINEAR_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ORDINATE_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.RADIUS_DIMENSION']) >= 1; wr3 : SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' , 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PROJECTION_DIRECTED_CALLOUT' , 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LEADER_DIRECTED_CALLOUT']) = 0; wr4 : SELF.related_draughting_callout.contents * SELF. relating_draughting_callout.contents = SELF.related_draughting_callout. contents; END_ENTITY; ENTITY dimension_curve SUBTYPE OF (annotation_curve_occurrence); WHERE wr1 : SIZEOF(QUERY(dct <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TERMINATOR_SYMBOL.ANNOTATED_CURVE' ) | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct))) <= 2; wr2 : SIZEOF(QUERY(dcdc <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc))) >= 1; wr3 : (SIZEOF(QUERY(dct1 <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TERMINATOR_SYMBOL.ANNOTATED_CURVE' ) | ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct1)) AND (dct1.role = origin))) <= 1) AND (SIZEOF(QUERY(dct2 <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TERMINATOR_SYMBOL.ANNOTATED_CURVE' ) | ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct2)) AND (dct2.role = target))) <= 1); END_ENTITY; ENTITY dimension_curve_directed_callout SUBTYPE OF (draughting_callout); WHERE wr1 : SIZEOF(QUERY(d_c <* SELF\draughting_callout.contents | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DIMENSION_CURVE' IN TYPEOF(d_c) )) = 1; wr2 : SIZEOF(SELF\draughting_callout.contents) >= 2; END_ENTITY; ENTITY dimension_curve_terminator SUBTYPE OF (terminator_symbol); role : dimension_extent_usage; WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DIMENSION_CURVE' IN TYPEOF( SELF\terminator_symbol.annotated_curve); END_ENTITY; ENTITY dimension_pair SUBTYPE OF (draughting_callout_relationship); WHERE wr1 : SELF.name IN ['chained', 'parallel']; wr2 : SIZEOF(TYPEOF(SELF.relating_draughting_callout) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANGULAR_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CURVE_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DIAMETER_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LINEAR_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ORDINATE_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.RADIUS_DIMENSION']) = 1; wr3 : SIZEOF(TYPEOF(SELF.related_draughting_callout) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANGULAR_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CURVE_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DIAMETER_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LINEAR_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ORDINATE_DIMENSION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.RADIUS_DIMENSION']) = 1; END_ENTITY; ENTITY dimension_related_tolerance_zone_element; related_dimension : dimensional_location; related_element : tolerance_zone_definition; END_ENTITY; ENTITY dimension_text_associativity SUBTYPE OF (text_literal, mapped_item); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); wr2 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF(SELF\mapped_item.mapping_target); wr3 : SIZEOF(QUERY(ato <* QUERY(si <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STYLED_ITEM.ITEM') | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(si)) | NOT (SIZEOF(QUERY(dc <* USEDIN(ato, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF(dc)) * [SELF\mapped_item.mapping_target]) = 1))) = 0; END_ENTITY; ENTITY dimensional_characteristic_representation; dimension : dimensional_characteristic; representation : shape_dimension_representation; 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 dimensional_location SUPERTYPE OF (ONEOF (angular_location, dimensional_location_with_path)) SUBTYPE OF (shape_aspect_relationship); END_ENTITY; ENTITY dimensional_location_with_path SUBTYPE OF (dimensional_location); path : shape_aspect; END_ENTITY; ENTITY dimensional_size SUPERTYPE OF (ONEOF (angular_size, dimensional_size_with_path)); applies_to : shape_aspect; name : label; WHERE wr1 : applies_to.product_definitional = TRUE; END_ENTITY; ENTITY dimensional_size_with_path SUBTYPE OF (dimensional_size); path : shape_aspect; END_ENTITY; ENTITY directed_action SUBTYPE OF (executed_action); directive : action_directive; END_ENTITY; ENTITY directed_dimensional_location SUBTYPE OF (dimensional_location); 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 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_file SUBTYPE OF (document, characterized_object); WHERE wr1 : SELF\characterized_object.name = ''; wr2 : NOT EXISTS(SELF\characterized_object.description); wr3 : SIZEOF(QUERY(drt <* SELF\document.representation_types | drt.name IN [ 'digital', 'physical'])) = 1; END_ENTITY; ENTITY document_product_association; name : label; description : OPTIONAL text; relating_document : document; related_product : product_or_formation_or_definition; END_ENTITY; ENTITY document_product_equivalence SUBTYPE OF (document_product_association); WHERE wr1 : SELF\document_product_association.name = 'equivalence'; wr2 : NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PRODUCT' IN TYPEOF( SELF\document_product_association.related_product)) OR (SELF\ document_product_association.relating_document.kind.product_data_type = 'configuration controlled document') AND (SIZEOF(QUERY(prpc <* USEDIN(SELF\ document_product_association.related_product, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | prpc.name = 'document')) = 1); wr3 : NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(SELF.related_product)) OR (SELF\document_product_association. relating_document.kind.product_data_type = 'configuration controlled document version') AND (SIZEOF(QUERY(prpc <* USEDIN(SELF.related_product\product_definition_formation.of_product, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | prpc.name = 'document')) = 1); wr4 : NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF.related_product)) OR (SELF\document_product_association. relating_document.kind.product_data_type = 'configuration controlled document definition') AND (SIZEOF(QUERY(prpc <* USEDIN(SELF\document_product_association.related_product\product_definition .formation.of_product, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | prpc.name = 'document')) = 1); END_ENTITY; ENTITY document_reference ABSTRACT SUPERTYPE; assigned_document : document; source : label; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' )) <= 1; END_ENTITY; ENTITY document_relationship; name : label; description : OPTIONAL text; relating_document : document; related_document : document; END_ENTITY; ENTITY document_representation_type; name : label; represented_document : document; END_ENTITY; ENTITY document_type; product_data_type : label; END_ENTITY; ENTITY document_usage_constraint; source : document; subject_element : label; subject_element_value : text; END_ENTITY; ENTITY document_usage_constraint_assignment ABSTRACT SUPERTYPE; assigned_document_usage : document_usage_constraint; role : document_usage_role; END_ENTITY; ENTITY document_usage_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY double_toleranced_measure_item SUBTYPE OF (compound_representation_item); SELF\compound_representation_item.item_element : list_of_two_representation_items; END_ENTITY; ENTITY draughting_annotation_occurrence SUBTYPE OF (annotation_occurrence); WHERE wr1 : NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty. styles) = 1) AND ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CURVE_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); wr2 : NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty. styles) = 1) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FILL_AREA_STYLE' IN TYPEOF(sty. styles[1]))))) = 0); wr3 : NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STYLED_ITEM.ITEM') | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si))) > 0))) = 0); wr4 : NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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]) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SYMBOL_STYLE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.NULL_STYLE']) = 1)))) = 0); wr5 : NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( SELF.item))) OR (SIZEOF(['CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DRAUGHTING_SYMBOL_REPRESENTATION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * TYPEOF(SELF.item\mapped_item. mapping_source.mapped_representation)) = 1); wr6 : NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty.styles ) = 1) AND ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TEXT_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); wr7 : ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) OR (SIZEOF(TYPEOF(SELF.item) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.COMPOSITE_TEXT', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TEXT_LITERAL']) = 1); wr8 : NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF. item))) OR (SIZEOF(QUERY(tl <* SELF.item\composite_text.collected_text | NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TEXT_LITERAL' IN TYPEOF(tl )))) = 0); wr9 : NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TEXT_LITERAL' IN TYPEOF(SELF. item))) OR (SELF.item\text_literal.alignment IN ['baseline left', 'baseline centre', 'baseline right']); wr10 : NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF. item))) OR (SIZEOF(QUERY(tl <* QUERY(text <* SELF.item\composite_text. collected_text | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TEXT_LITERAL' IN TYPEOF(text)) | NOT (tl\text_literal.alignment IN ['baseline left', 'baseline centre', 'baseline right']))) = 0); wr11 : NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF. item))) OR check_text_alignment(SELF.item); wr12 : NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF. item))) OR check_text_font(SELF.item); wr13 : NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF. item))) OR (SIZEOF(QUERY(tl <* QUERY(text <* SELF.item\composite_text. collected_text | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TEXT_LITERAL' IN TYPEOF(text)) | NOT (SIZEOF(TYPEOF(tl) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'TEXT_LITERAL_WITH_BLANKING_BOX', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0))) = 0); wr14 : NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STYLED_ITEM.ITEM') | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si))) > 0))) = 0); wr15 : NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STYLED_ITEM.ITEM') | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si))) > 0))) = 0); wr16 : SIZEOF(QUERY(cs <* QUERY(sty <* SELF.styles | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CURVE_STYLE' IN TYPEOF(sty. styles[1])) | NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(cs.styles[1]\curve_style.curve_width)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FILL_AREA_STYLE' IN TYPEOF(sty. styles[1])) | NOT ((SIZEOF(QUERY(fs <* fas.styles[1]\fill_area_style. fill_styles | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FILL_AREA_STYLE_TILES' IN TYPEOF(fs))) <= 1) AND (SIZEOF(QUERY(fst <* QUERY(fs <* fas.styles[1]\ fill_area_style.fill_styles | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FILL_AREA_STYLE' IN TYPEOF(sty. styles[1])) | NOT (SIZEOF(QUERY(fsh <* QUERY(fs <* fas.styles[1]\ fill_area_style.fill_styles | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.TEXT_STYLE' IN TYPEOF(sty. styles[1])) | NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF(ts.styles[1])))) = 0; wr20 : SIZEOF(QUERY(ts <* QUERY(sty <* SELF.styles | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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_callout SUBTYPE OF (geometric_representation_item); contents : SET [1:?] OF draughting_callout_element; END_ENTITY; ENTITY draughting_callout_relationship; name : label; description : text; relating_draughting_callout : draughting_callout; related_draughting_callout : draughting_callout; END_ENTITY; ENTITY draughting_elements SUBTYPE OF (draughting_callout); WHERE wr1 : SIZEOF(QUERY(l_c <* QUERY(con <* SELF.contents | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LEADER_CURVE' IN TYPEOF(con)) | NOT (SIZEOF(QUERY(ldc <* USEDIN(l_c, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) <= 1))) = 0; wr2 : NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(con <* SELF.contents | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PROJECTION_CURVE' IN TYPEOF(con ))) <= 2); wr3 : SIZEOF(QUERY(rc <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'primary'))) <= 1; wr4 : SIZEOF(QUERY(rc <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'secondary') )) <= 1; wr5 : SIZEOF(QUERY(sec <* QUERY(rc <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'secondary') ) | NOT (SIZEOF(QUERY(prim <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(prim)) AND (prim.name = 'primary'))) = 1))) = 0; END_ENTITY; ENTITY draughting_model SUBTYPE OF (representation); UNIQUE ur1 : SELF\representation.name; WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STYLED_ITEM', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.AXIS2_PLACEMENT', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CAMERA_MODEL'] * TYPEOF(it)) = 1))) = 0; wr2 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SHAPE_REPRESENTATION', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_MODEL'] * TYPEOF(mi\ mapped_item.mapping_source.mapped_representation)) = 1))) = 0; wr3 : SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM' IN TYPEOF(si\ styled_item.item)) | NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CURVE_STYLE' IN TYPEOF(psa)))) = 1))) = 1)))) = 0; END_ENTITY; ENTITY draughting_pre_defined_colour SUBTYPE OF (pre_defined_colour); WHERE wr1 : SELF.name IN ['red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'black', 'white']; END_ENTITY; ENTITY draughting_pre_defined_curve_font SUBTYPE OF (pre_defined_curve_font); WHERE wr1 : SELF.name IN ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted']; END_ENTITY; ENTITY draughting_subfigure_representation SUBTYPE OF (symbol_representation); WHERE wr1 : SIZEOF(QUERY(item <* SELF\representation.items | NOT (SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_OCCURRENCE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.AXIS2_PLACEMENT'] * TYPEOF(item )) = 1))) = 0; wr2 : SIZEOF(QUERY(item <* SELF\representation.items | SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_OCCURRENCE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DRAUGHTING_CALLOUT'] * TYPEOF( item)) = 1)) >= 1; wr3 : SIZEOF(QUERY(srm <* QUERY(rm <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)) | NOT (SIZEOF(QUERY(a_s <* QUERY(mi <* srm.map_usage | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi )) | NOT (SIZEOF(QUERY(aso <* USEDIN(a_s, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STYLED_ITEM.ITEM') | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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) * [ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_CURVE_OCCURRENCE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.AXIS2_PLACEMENT']) = 1))) = 0; wr2 : SIZEOF(QUERY(item <* SELF\representation.items | SIZEOF(TYPEOF(item) * ['CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_CURVE_OCCURRENCE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_TEXT_OCCURRENCE']) = 1)) >= 1; wr3 : SIZEOF(QUERY(item <* SELF\representation.items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(item))) = 0; wr4 : SIZEOF(QUERY(srm <* QUERY(rm <* USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)) | NOT (SIZEOF(QUERY(a_s <* QUERY(mi <* srm.map_usage | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi )) | NOT (SIZEOF(QUERY(aso <* USEDIN(a_s, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.STYLED_ITEM.ITEM') | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 eccentric_cone SUBTYPE OF (geometric_representation_item); position : axis2_placement_3d; semi_axis_1 : positive_length_measure; semi_axis_2 : positive_length_measure; height : positive_length_measure; x_offset : length_measure; y_offset : length_measure; ratio : REAL; WHERE wr1 : ratio >= 0.0; END_ENTITY; ENTITY edge SUPERTYPE OF (ONEOF (edge_curve, oriented_edge, subedge)) SUBTYPE OF (topological_representation_item); edge_start : vertex; edge_end : vertex; END_ENTITY; ENTITY edge_based_wireframe_model SUBTYPE OF (geometric_representation_item); ebwm_boundary : SET [1:?] OF connected_edge_set; END_ENTITY; ENTITY edge_based_wireframe_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF( it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* SELF.items | SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1 )) >= 1; wr3 : SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(eb <* ebwm\edge_based_wireframe_model. ebwm_boundary | NOT (SIZEOF(QUERY(edges <* eb.ces_edges | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_CURVE' IN TYPEOF(edges)))) = 0))) = 0))) = 0; wr4 : SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(eb <* ebwm\edge_based_wireframe_model. ebwm_boundary | NOT (SIZEOF(QUERY(pline_edges <* QUERY(edges <* eb. ces_edges | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.POLYLINE' IN TYPEOF (edges\edge_curve.edge_geometry)) | NOT (SIZEOF(pline_edges\edge_curve. edge_geometry\polyline.points) > 2))) = 0))) = 0))) = 0; wr5 : SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(eb <* ebwm\edge_based_wireframe_model. ebwm_boundary | NOT (SIZEOF(QUERY(edges <* eb.ces_edges | NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.VERTEX_POINT' IN TYPEOF(edges. edge_start)) AND ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.VERTEX_POINT' IN TYPEOF(edges.edge_end))))) = 0))) = 0))) = 0; wr6 : SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(eb <* ebwm\edge_based_wireframe_model. ebwm_boundary | NOT (SIZEOF(QUERY(edges <* eb.ces_edges | NOT aic_edge_based_wireframe_dot_valid_wireframe_edge_curve(edges\edge_curve. edge_geometry))) = 0))) = 0))) = 0; wr7 : SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(eb <* ebwm\edge_based_wireframe_model. ebwm_boundary | NOT (SIZEOF(QUERY(edges <* eb.ces_edges | NOT ( aic_edge_based_wireframe_dot_valid_wireframe_vertex_point(edges.edge_start\ vertex_point.vertex_geometry) AND aic_edge_based_wireframe_dot_valid_wireframe_vertex_point(edges.edge_end\ vertex_point.vertex_geometry)))) = 0))) = 0))) = 0; wr8 : SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item. mapping_source.mapped_representation)))) = 0; wr9 : SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 3; END_ENTITY; ENTITY edge_curve SUBTYPE OF (edge, geometric_representation_item); edge_geometry : curve; same_sense : BOOLEAN; END_ENTITY; ENTITY edge_loop SUBTYPE OF (loop, path); DERIVE ne : INTEGER := SIZEOF(SELF\path.edge_list); WHERE wr1 : SELF\path.edge_list[1].edge_start :=: SELF\path.edge_list[ne].edge_end; END_ENTITY; ENTITY effectivity SUPERTYPE OF (ONEOF (serial_numbered_effectivity, dated_effectivity, lot_effectivity, time_interval_based_effectivity)); id : identifier; DERIVE name : label := get_name_value(SELF); description : text := get_description_value(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; wr2 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY effectivity_assignment ABSTRACT SUPERTYPE; assigned_effectivity : effectivity; DERIVE role : object_role := get_role(SELF); WHERE wr1 : SIZEOF(USEDIN(SELF, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE' )) <= 1; END_ENTITY; ENTITY effectivity_relationship; name : label; description : OPTIONAL text; related_effectivity : effectivity; relating_effectivity : effectivity; END_ENTITY; ENTITY electric_current_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1 : 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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_surface SUPERTYPE OF (ONEOF (plane, cylindrical_surface, conical_surface, spherical_surface, toroidal_surface)) SUBTYPE OF (surface); position : axis2_placement_3d; END_ENTITY; ENTITY ellipse SUBTYPE OF (conic); semi_axis_1 : positive_length_measure; semi_axis_2 : positive_length_measure; END_ENTITY; ENTITY ellipsoid SUBTYPE OF (geometric_representation_item); position : axis2_placement_3d; semi_axis_1 : positive_length_measure; semi_axis_2 : positive_length_measure; semi_axis_3 : positive_length_measure; END_ENTITY; ENTITY evaluated_degenerate_pcurve SUBTYPE OF (degenerate_pcurve); equivalent_point : cartesian_point; END_ENTITY; ENTITY event_occurrence; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY event_occurrence_assignment ABSTRACT SUPERTYPE; assigned_event_occurrence : event_occurrence; role : event_occurrence_role; END_ENTITY; ENTITY event_occurrence_relationship; name : label; description : OPTIONAL text; relating_event : event_occurrence; related_event : event_occurrence; END_ENTITY; ENTITY event_occurrence_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY executed_action SUBTYPE OF (action); END_ENTITY; ENTITY extension SUBTYPE OF (derived_shape_aspect); WHERE wr1 : SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; 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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' )) <= 1; END_ENTITY; ENTITY externally_defined_character_glyph SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_colour SUBTYPE OF (colour_specification, externally_defined_item); 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_marker SUBTYPE OF (externally_defined_symbol, pre_defined_marker); END_ENTITY; ENTITY externally_defined_symbol SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_terminator_symbol SUBTYPE OF (externally_defined_symbol); END_ENTITY; ENTITY externally_defined_text_font SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_tile SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_tile_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; ENTITY extruded_area_solid SUBTYPE OF (swept_area_solid); extruded_direction : direction; depth : positive_length_measure; WHERE wr1 : dot_product(SELF\swept_area_solid.swept_area.basis_surface\ elementary_surface.position.p[3], extruded_direction) <> 0.0; END_ENTITY; ENTITY extruded_face_solid SUBTYPE OF (swept_face_solid); extruded_direction : direction; depth : positive_length_measure; WHERE wr1 : dot_product(SELF\swept_face_solid.swept_face.face_geometry\ elementary_surface.position.p[3], extruded_direction) <> 0.0; END_ENTITY; ENTITY face SUPERTYPE OF (ONEOF (face_surface, subface, oriented_face)) SUBTYPE OF (topological_representation_item); bounds : SET [1:?] OF face_bound; WHERE wr1 : NOT mixed_loop_type_set(list_to_set(list_face_loops(SELF))); wr2 : SIZEOF(QUERY(temp <* bounds | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF( temp))) <= 1; END_ENTITY; ENTITY face_bound SUBTYPE OF (topological_representation_item); bound : loop; orientation : BOOLEAN; END_ENTITY; ENTITY face_outer_bound SUBTYPE OF (face_bound); END_ENTITY; ENTITY face_surface SUBTYPE OF (face, geometric_representation_item); face_geometry : surface; same_sense : BOOLEAN; WHERE wr1 : NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ORIENTED_SURFACE' IN TYPEOF(face_geometry)); END_ENTITY; ENTITY faceted_brep SUBTYPE OF (manifold_solid_brep); END_ENTITY; ENTITY faceted_brep_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* items | NOT (SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACETED_BREP', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF( it)) = 1))) = 0; wr2 : SIZEOF(QUERY(it <* items | SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACETED_BREP', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1 )) > 0; wr3 : SIZEOF(QUERY(fbrep <* QUERY(it <* items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACETED_BREP' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* msb_shells(fbrep) | NOT (SIZEOF(QUERY(fcs <* csh\ connected_face_set.cfs_faces | NOT (( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACE_SURFACE' IN TYPEOF(fcs)) AND ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.PLANE' IN TYPEOF(fcs\ face_surface.face_geometry)) AND ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.CARTESIAN_POINT' IN TYPEOF(fcs\ face_surface.face_geometry\elementary_surface.position.location))))) = 0))) = 0))) = 0; wr4 : SIZEOF(QUERY(fbrep <* QUERY(it <* items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACETED_BREP' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* msb_shells(fbrep) | NOT (SIZEOF(QUERY(fcs <* csh\ connected_face_set.cfs_faces | NOT (SIZEOF(QUERY(bnds <* fcs.bounds | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF( bnds))) = 1))) = 0))) = 0))) = 0; wr5 : SIZEOF(QUERY(msb <* QUERY(it <* items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF( it)) | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\manifold_solid_brep.outer))) = 0; wr6 : SIZEOF(QUERY(brv <* QUERY(it <* items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* brv\brep_with_voids.voids | csh\ oriented_closed_shell.orientation)) = 0))) = 0; wr7 : SIZEOF(QUERY(mi <* QUERY(it <* items | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation)))) = 0; END_ENTITY; ENTITY faceted_primitive SUPERTYPE OF (ONEOF (tetrahedron, convex_hexahedron)) SUBTYPE OF (geometric_representation_item); points : LIST [4:?] OF UNIQUE cartesian_point; WHERE wr1 : points[1].dim = 3; 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 | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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_coloured_region SUBTYPE OF (geometric_representation_item); closed_curve : curve_or_annotation_curve_occurrence; region_colour : colour; END_ENTITY; ENTITY fill_area_style_tile_curve_with_style SUBTYPE OF (geometric_representation_item); styled_curve : annotation_curve_occurrence; 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 flatness_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1 : NOT ('CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY; ENTITY founded_item; END_ENTITY; ENTITY functionally_defined_transformation; name : label; description : OPTIONAL text; 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, 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 geometric_alignment SUBTYPE OF (derived_shape_aspect); WHERE wr1 : SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; END_ENTITY; ENTITY geometric_curve_set SUBTYPE OF (geometric_set); WHERE wr1 : SIZEOF(QUERY(temp <* SELF\geometric_set.elements | 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.SURFACE' IN TYPEOF(temp))) = 0; END_ENTITY; ENTITY geometric_intersection SUBTYPE OF (derived_shape_aspect); WHERE wr1 : SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; 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, edge_curve, face_surface, poly_loop, vertex_point, solid_model, boolean_result, sphere, right_circular_cone, right_circular_cylinder, torus, block, right_angular_wedge , ellipsoid, faceted_primitive, rectangular_pyramid, cyclide_segment_solid, half_space_solid, shell_based_surface_model, shell_based_wireframe_model, edge_based_wireframe_model, geometric_set)) SUBTYPE OF (representation_item); DERIVE dim : dimension_count := dimension_of(SELF); WHERE wr1 : SIZEOF(QUERY(using_rep <* using_representations(SELF) | NOT ( 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_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 geometric_tolerance; name : label; description : text; magnitude : measure_with_unit; toleranced_shape_aspect : shape_aspect; WHERE wr1 : ('NUMBER' IN TYPEOF(magnitude\measure_with_unit.value_component)) AND ( magnitude\measure_with_unit.value_component >= 0.0); END_ENTITY; ENTITY geometric_tolerance_relationship; name : label; description : text; relating_geometric_tolerance : geometric_tolerance; related_geometric_tolerance : geometric_tolerance; END_ENTITY; ENTITY geometric_tolerance_with_datum_reference SUBTYPE OF (geometric_tolerance); datum_system : SET [1:?] OF datum_reference; END_ENTITY; ENTITY geometric_tolerance_with_defined_unit SUBTYPE OF (geometric_tolerance); unit_size : measure_with_unit; WHERE wr1 : ('NUMBER' IN TYPEOF(unit_size\measure_with_unit.value_component)) AND ( unit_size\measure_with_unit.value_component > 0.0); END_ENTITY; ENTITY geometrical_tolerance_callout SUBTYPE OF (draughting_callout); END_ENTITY; ENTITY geometrically_bounded_surface_shape_representation SUBTYPE OF (shape_representation); WHERE wr1 : SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF([ 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.GEOMETRIC_SET', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.MAPPED_ITEM', 'CONFIGURATION_CONTROL_3D_DESIGN_ED2_MIM_LF.AXI