(* *********************************************************************** WG3 N1481 - EXPRESS AIM long form for ISO/IS 10303-227 ed2, STEP Part 227 ed2, Application protocol: Plant spatial configuration 2005-02-21; Palmer, Mark 2005-11-01 DTL -- Removed a number of bad line breaks from the original document that gave rise to syntax errors because they split symbols and strings. The file must have been inadvertantly line wrapped during the publication. *) SCHEMA plant_spatial_configuration; (* *********************************** Constants in the schema plant_spatial_configuration *********************************** *) CONSTANT dummy_tri : topological_representation_item := representation_item('') || topological_representation_item(); dummy_gri : geometric_representation_item := representation_item('') || geometric_representation_item(); END_CONSTANT; (* *********************************** Types in the schema plant_spatial_configuration *********************************** *) TYPE action_request_item = SELECT (product); 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 (change_action, electrical_system, ducting_system, instrumentation_and_control_system, piping_system, structural_system, cableway_system, hvac_system, versioned_action_request); END_TYPE; TYPE area_measure = REAL; END_TYPE; TYPE area_or_view = SELECT (presentation_area, presentation_view); END_TYPE; TYPE associated_item = SELECT (document, ducting_system, hvac_section_termination, organizational_project, piping_system, plant_item_connection, plant_item_connector, plant_line_definition, plant_line_segment_definition, plant_line_segment_termination, product, product_definition, representation, shape_dimension_representation, plant_arrangement_definition, plant_arrangement_segment_definition, mechanical_system, plant_arrangement_segment_termination); 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, half_space_2d); 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 change_item = SELECT (assembly_component_usage, axis2_placement_2d, axis2_placement_3d, document, ducting_system, electrical_system, externally_defined_plant_item_definition, hvac_connector, instrumentation_and_control_system, line_branch_connection, line_plant_item_branch_connection, line_plant_item_connection, line_termination_connection, mechanical_system, piping_system, plant, plant_item_connection, plant_item_connector, plant_line_definition, plant_line_segment_definition, plant_line_segment_termination, process_capability, product, product_definition, product_definition_relationship, product_definition_shape, property_definition, reference_geometry, representation, shape_aspect, shape_aspect_relationship, site, site_feature, sited_plant, structural_system); END_TYPE; TYPE change_life_cycle_item = SELECT (directed_action); END_TYPE; TYPE character_spacing_select = SELECT (length_measure, ratio_measure, measure_with_unit); END_TYPE; TYPE character_style_select = SELECT (text_style_for_defined_font); END_TYPE; TYPE characterized_action_definition = SELECT (action, action_method, action_method_relationship, action_relationship); END_TYPE; TYPE characterized_definition = SELECT (characterized_object, characterized_product_definition, shape_definition); END_TYPE; TYPE characterized_material_property = SELECT (material_property_representation, product_material_composition_relationship); END_TYPE; TYPE characterized_product_definition = SELECT (product_definition, product_definition_relationship); END_TYPE; TYPE classification_item = SELECT (cableway_system, drawing_revision, ducting_system, electrical_system, hvac_component_definition, hvac_connector, instrumentation_and_control_system, material_property, piping_component_definition, piping_system, plant_item_connection, plant_item_connector, applied_document_reference, product, product_definition, structural_system, mechanical_system, mechanical_component_definition); END_TYPE; TYPE configuration_design_item = SELECT (product_definition, product_definition_formation); END_TYPE; TYPE context_dependent_measure = REAL; END_TYPE; TYPE count_measure = NUMBER; END_TYPE; TYPE csg_primitive = SELECT (sphere, ellipsoid, block, right_angular_wedge, 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 (change_action, change_item, change_life_cycle_stage_assignment, product); END_TYPE; TYPE date_time_or_event_occurrence = SELECT (date_time_select); END_TYPE; TYPE date_time_select = SELECT (date, local_time, date_and_time); END_TYPE; TYPE dated_item = SELECT (action_directive, change_action, change_item, product); END_TYPE; TYPE day_in_month_number = INTEGER; WHERE WR1: (1 <= SELF) AND (SELF <= 31); END_TYPE; TYPE defined_symbol_select = SELECT (externally_defined_symbol); END_TYPE; TYPE derived_property_select = SELECT (property_definition); END_TYPE; TYPE description_attribute_select = SELECT (action_request_solution, application_context, approval_role, date_role, date_time_role, effectivity, external_source, organization_role, person_and_organization_role, person_and_organization, person_role, property_definition_representation, representation); END_TYPE; TYPE design_project_item = SELECT (product_definition); END_TYPE; TYPE dimension_count = INTEGER; WHERE WR1: SELF > 0; END_TYPE; TYPE dimensional_characteristic = SELECT (dimensional_location, dimensional_size); END_TYPE; TYPE document_item = SELECT (externally_defined_plant_item_definition, heat_tracing_representation, material_property, piping_component_class, piping_system, plant_item_connector, plant_line_segment_definition, product, product_definition, product_definition_relationship, property_definition, representation, representation_item, site, mechanical_system, analysis_tracing_representation, plant_arrangement_segment_definition, mechanical_component_class); END_TYPE; TYPE draughting_callout_element = SELECT (annotation_text_occurrence, annotation_symbol_occurrence, annotation_curve_occurrence); END_TYPE; TYPE draughting_titled_item = SELECT (drawing_revision, drawing_sheet_revision); END_TYPE; TYPE effectivity_context_item = SELECT (product_definition); END_TYPE; TYPE effectivity_item = SELECT (product, product_definition); END_TYPE; TYPE electric_current_measure = REAL; END_TYPE; TYPE fill_area_style_tile_shape_select = SELECT (fill_area_style_tile_symbol_with_style); END_TYPE; TYPE fill_style_select = SELECT (fill_area_style_colour, externally_defined_tile_style, fill_area_style_tiles, externally_defined_hatch_style, fill_area_style_hatching); END_TYPE; TYPE font_select = SELECT (pre_defined_text_font, externally_defined_text_font); END_TYPE; TYPE founded_item_select = SELECT (founded_item, representation_item); END_TYPE; TYPE geometric_set_select = SELECT (point, curve, surface); END_TYPE; TYPE hiding_or_blanking_select = SELECT (presentation_area, presentation_view, product_data_representation_view, annotation_fill_area, area_dependent_annotation_representation, view_dependent_annotation_representation); END_TYPE; TYPE hour_in_day = INTEGER; WHERE WR1: (0 <= SELF) AND (SELF < 24); END_TYPE; TYPE id_attribute_select = SELECT (action, property_definition, shape_aspect, shape_aspect_relationship, application_context, group, organizational_project, representation); END_TYPE; TYPE identified_item = SELECT (document, product_definition, property_definition, shape_aspect); END_TYPE; TYPE identifier = STRING; END_TYPE; TYPE invisibility_context = SELECT (presentation_layer_usage, 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 list_of_reversible_topology_item = LIST [0:?] OF reversible_topology_item; END_TYPE; TYPE luminous_intensity_measure = REAL; END_TYPE; TYPE marker_select = SELECT (marker_type); 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 (length_measure, mass_measure, time_measure, electric_current_measure, thermodynamic_temperature_measure, celsius_temperature_measure, amount_of_substance_measure, luminous_intensity_measure, plane_angle_measure, solid_angle_measure, area_measure, volume_measure, ratio_measure, parameter_value, numeric_measure, context_dependent_measure, positive_length_measure, positive_plane_angle_measure, positive_ratio_measure, count_measure); END_TYPE; TYPE minute_in_hour = INTEGER; WHERE WR1: (0 <= SELF) AND (SELF <= 59); END_TYPE; TYPE month_in_year_number = INTEGER; WHERE WR1: (1 <= SELF) AND (SELF <= 12); END_TYPE; TYPE name_attribute_select = SELECT (action_request_solution, derived_unit, effectivity, person_and_organization, product_definition, product_definition_substitute, property_definition_representation); END_TYPE; TYPE numeric_measure = NUMBER; END_TYPE; TYPE parameter_value = REAL; END_TYPE; TYPE pcurve_or_surface = SELECT (pcurve, surface); END_TYPE; TYPE person_organization_select = SELECT (person, organization, person_and_organization); END_TYPE; TYPE plane_angle_measure = REAL; END_TYPE; TYPE plant_spatial_configuration_organization_item = SELECT (catalogue, change_action, design_project, document, plant, product_definition_formation, product_definition_relationship, representation, site); END_TYPE; TYPE plant_spatial_configuration_person_and_organization_item = SELECT (change_item, plant, site); END_TYPE; TYPE plant_spatial_configuration_person_item = SELECT (document, plant, product_definition_relationship, representation, site); END_TYPE; TYPE positive_length_measure = length_measure; WHERE WR1: SELF > 0.00000; END_TYPE; TYPE positive_plane_angle_measure = plane_angle_measure; WHERE WR1: SELF > 0.00000; END_TYPE; TYPE positive_ratio_measure = ratio_measure; WHERE WR1: SELF > 0.00000; 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_representation_select = SELECT (presentation_representation, presentation_set); END_TYPE; TYPE presentation_size_assignment_select = SELECT (presentation_view, presentation_area, area_in_set); END_TYPE; TYPE presentation_style_select = SELECT (point_style, curve_style, symbol_style, fill_area_style, text_style); END_TYPE; TYPE presented_item_select = SELECT (product_definition); END_TYPE; TYPE product_or_formation_or_definition = SELECT (product, product_definition_formation, product_definition); END_TYPE; TYPE property_or_shape_select = SELECT (property_definition, shape_definition); END_TYPE; TYPE purchase_item = SELECT (product); END_TYPE; TYPE ratio_measure = REAL; END_TYPE; TYPE represented_definition = SELECT (property_definition, property_definition_relationship, 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, document_reference, effectivity_assignment, group_assignment, name_assignment); END_TYPE; TYPE second_in_minute = REAL; WHERE WR1: (0 <= SELF) AND (SELF <= 60.0000); END_TYPE; TYPE set_of_reversible_topology_item = SET [0:?] OF reversible_topology_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); END_TYPE; TYPE solid_angle_measure = REAL; END_TYPE; TYPE source = ENUMERATION OF (made, bought, not_known); 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 supported_item = SELECT (action_directive, action, action_method); END_TYPE; TYPE surface_boundary = SELECT (boundary_curve, degenerate_pcurve); 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, text_literal); END_TYPE; TYPE text_path = ENUMERATION OF (left, right, up, down); END_TYPE; TYPE thermodynamic_temperature_measure = REAL; END_TYPE; TYPE time_measure = REAL; END_TYPE; TYPE 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 unit = SELECT (named_unit, derived_unit); END_TYPE; TYPE value_qualifier = SELECT (precision_qualifier, type_qualifier); END_TYPE; TYPE vector_or_direction = SELECT (vector, direction); END_TYPE; TYPE volume_measure = REAL; END_TYPE; TYPE wireframe_model = SELECT (shell_based_wireframe_model); END_TYPE; TYPE year_number = INTEGER; END_TYPE; (* *********************************** Entities in the schema plant_spatial_configuration *********************************** *) ENTITY action; name : label; description : OPTIONAL text; chosen_method : action_method; DERIVE id : identifier := get_id_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + '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, 'PLANT_SPATIAL_CONFIGURATION.' + '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_method_relationship; name : label; description : OPTIONAL text; relating_method : action_method; related_method : action_method; 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, 'PLANT_SPATIAL_CONFIGURATION.' + '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, 'PLANT_SPATIAL_CONFIGURATION.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + '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 advanced_face SUBTYPE OF (face_surface); WHERE WR1: SIZEOF([ 'PLANT_SPATIAL_CONFIGURATION.ELEMENTARY_SURFACE', 'PLANT_SPATIAL_CONFIGURATION.B_SPLINE_SURFACE', 'PLANT_SPATIAL_CONFIGURATION.SWEPT_SURFACE' ] * TYPEOF(face_geometry)) = 1; WR2: SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ('PLANT_SPATIAL_CONFIGURATION.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT ('PLANT_SPATIAL_CONFIGURATION.EDGE_CURVE' IN TYPEOF(oe\oriented_edge.edge_element)))) = 0))) = 0; WR3: SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ('PLANT_SPATIAL_CONFIGURATION.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT (SIZEOF([ 'PLANT_SPATIAL_CONFIGURATION.LINE', 'PLANT_SPATIAL_CONFIGURATION.CONIC', 'PLANT_SPATIAL_CONFIGURATION.POLYLINE', 'PLANT_SPATIAL_CONFIGURATION.SURFACE_CURVE', 'PLANT_SPATIAL_CONFIGURATION.B_SPLINE_CURVE' ] * TYPEOF(oe.edge_element\edge_curve.edge_geometry)) = 1))) = 0))) = 0; WR4: SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ('PLANT_SPATIAL_CONFIGURATION.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| NOT ((('PLANT_SPATIAL_CONFIGURATION.VERTEX_POINT' IN TYPEOF(oe\edge.edge_start)) AND ('PLANT_SPATIAL_CONFIGURATION.CARTESIAN_POINT' IN TYPEOF(oe\edge.edge_start\vertex_point.vertex_geometry))) AND (('PLANT_SPATIAL_CONFIGURATION.VERTEX_POINT' IN TYPEOF(oe\edge.edge_end)) AND ('PLANT_SPATIAL_CONFIGURATION.CARTESIAN_POINT' IN TYPEOF(oe\edge.edge_end\vertex_point.vertex_geometry)))))) = 0))) = 0; WR5: SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ('PLANT_SPATIAL_CONFIGURATION.EDGE_LOOP' IN TYPEOF(bnds.bound)))| ('PLANT_SPATIAL_CONFIGURATION.ORIENTED_PATH' IN TYPEOF(elp_fbnds.bound)))) = 0; WR6: NOT ('PLANT_SPATIAL_CONFIGURATION.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR (SIZEOF([ 'PLANT_SPATIAL_CONFIGURATION.LINE', 'PLANT_SPATIAL_CONFIGURATION.CONIC', 'PLANT_SPATIAL_CONFIGURATION.POLYLINE', 'PLANT_SPATIAL_CONFIGURATION.B_SPLINE_CURVE' ] * TYPEOF(face_geometry\swept_surface.swept_curve)) = 1); WR7: SIZEOF(QUERY (vlp_fbnds <* QUERY (bnds <* bounds| ('PLANT_SPATIAL_CONFIGURATION.VERTEX_LOOP' IN TYPEOF(bnds.bound)))| NOT (('PLANT_SPATIAL_CONFIGURATION.VERTEX_POINT' IN TYPEOF(vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND ('PLANT_SPATIAL_CONFIGURATION.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([ 'PLANT_SPATIAL_CONFIGURATION.EDGE_LOOP', 'PLANT_SPATIAL_CONFIGURATION.VERTEX_LOOP' ] * TYPEOF(bnd.bound)) = 1))) = 0; WR9: SIZEOF(QUERY (elp_fbnds <* QUERY (bnds <* bounds| ('PLANT_SPATIAL_CONFIGURATION.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| ('PLANT_SPATIAL_CONFIGURATION.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 ('PLANT_SPATIAL_CONFIGURATION.PCURVE' IN TYPEOF(sc_ag)))) = 0))) = 0))) = 0; WR10: (NOT ('PLANT_SPATIAL_CONFIGURATION.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR (NOT ('PLANT_SPATIAL_CONFIGURATION.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| ('PLANT_SPATIAL_CONFIGURATION.EDGE_LOOP' IN TYPEOF(bnds.bound)))| NOT (SIZEOF(QUERY (oe <* elp_fbnds.bound\path.edge_list| ('PLANT_SPATIAL_CONFIGURATION.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 amount_of_substance_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.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.00000) AND (SELF\named_unit.dimensions.mass_exponent = 0.00000)) AND (SELF\named_unit.dimensions.time_exponent = 0.00000)) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.00000)) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.00000)) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 1.00000)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.00000); END_ENTITY; ENTITY analysis_tracing_representation SUBTYPE OF (representation); END_ENTITY; ENTITY angular_location SUBTYPE OF (dimensional_location); angle_selection : angle_relator; END_ENTITY; ENTITY annotation_curve_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.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: 'PLANT_SPATIAL_CONFIGURATION.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: 'PLANT_SPATIAL_CONFIGURATION.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); 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: 'PLANT_SPATIAL_CONFIGURATION.POINT' IN TYPEOF(SELF\styled_item.item); END_ENTITY; ENTITY annotation_symbol SUBTYPE OF (mapped_item); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(SELF\mapped_item.mapping_source); WR2: 'PLANT_SPATIAL_CONFIGURATION.SYMBOL_TARGET' IN TYPEOF(SELF\mapped_item.mapping_target); WR3: 'PLANT_SPATIAL_CONFIGURATION.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY annotation_symbol_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: SIZEOF([ 'PLANT_SPATIAL_CONFIGURATION.ANNOTATION_SYMBOL', 'PLANT_SPATIAL_CONFIGURATION.DEFINED_SYMBOL' ] * TYPEOF(SELF\styled_item.item)) > 0; END_ENTITY; ENTITY annotation_text SUBTYPE OF (mapped_item); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.AXIS2_PLACEMENT' IN TYPEOF(SELF\mapped_item.mapping_target); WR2: 'PLANT_SPATIAL_CONFIGURATION.TEXT_STRING_REPRESENTATION' IN TYPEOF(SELF\mapped_item.mapping_source.mapped_representation); WR3: 'PLANT_SPATIAL_CONFIGURATION.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY annotation_text_occurrence SUBTYPE OF (annotation_occurrence); WHERE WR1: SIZEOF([ 'PLANT_SPATIAL_CONFIGURATION.TEXT_LITERAL', 'PLANT_SPATIAL_CONFIGURATION.ANNOTATION_TEXT', 'PLANT_SPATIAL_CONFIGURATION.ANNOTATION_TEXT_CHARACTER', 'PLANT_SPATIAL_CONFIGURATION.DEFINED_CHARACTER_GLYPH', 'PLANT_SPATIAL_CONFIGURATION.COMPOSITE_TEXT' ] * TYPEOF(SELF\styled_item.item)) > 0; END_ENTITY; ENTITY annotation_text_with_extent SUBTYPE OF (annotation_text); extent : planar_extent; 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, 'PLANT_SPATIAL_CONFIGURATION.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; ENTITY application_context_element SUPERTYPE OF (ONEOF(product_context, product_definition_context)); name : label; frame_of_reference : application_context; END_ENTITY; ENTITY application_protocol_definition; status : label; application_interpreted_model_schema_name : label; application_protocol_year : year_number; application : application_context; 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_classification_assignment SUBTYPE OF (classification_assignment); items : SET [1:?] OF classification_item; WHERE WR1: NOT (SIZEOF(QUERY (item <* SELF.items| NOT ('PLANT_SPATIAL_CONFIGURATION.PLANT_ITEM_CONNECTION' IN TYPEOF(item)))) = 0) OR (SIZEOF(TYPEOF(SELF.assigned_class) * [ 'PLANT_SPATIAL_CONFIGURATION.CONNECTION_FUNCTIONAL_CLASS', 'PLANT_SPATIAL_CONFIGURATION.CONNECTION_MOTION_CLASS' ]) >= 1); WR2: NOT (SIZEOF(QUERY (item <* SELF.items| NOT ('PLANT_SPATIAL_CONFIGURATION.PLANT_ITEM_CONNECTOR' IN TYPEOF(item)))) = 0) OR (SIZEOF(TYPEOF(SELF.assigned_class) * [ 'PLANT_SPATIAL_CONFIGURATION.CONNECTOR_END_TYPE_CLASS', 'PLANT_SPATIAL_CONFIGURATION.ELECTRICAL_CONNECTOR_CLASS', 'PLANT_SPATIAL_CONFIGURATION.MECHANICAL_CONNECTOR_CLASS', 'PLANT_SPATIAL_CONFIGURATION.PIPING_CONNECTOR_CLASS', 'PLANT_SPATIAL_CONFIGURATION.EXTERNALLY_DEFINED_CLASS', ('PLANT_SPATIAL_CONFIGURATION.' + 'STRUCTURAL_LOAD_CONNECTOR_CLASS') ]) >= 1); 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 dated_item; END_ENTITY; ENTITY applied_document_reference SUBTYPE OF (document_reference); items : SET [1:?] OF document_item; END_ENTITY; ENTITY applied_document_usage_constraint_assignment SUBTYPE OF (document_usage_constraint_assignment); items : SET [1:?] OF document_item; END_ENTITY; ENTITY applied_effectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET [1:?] OF effectivity_item; END_ENTITY; ENTITY applied_effectivity_context_assignment SUBTYPE OF (effectivity_context_assignment); items : SET [1:?] OF effectivity_context_item; END_ENTITY; ENTITY applied_identification_assignment SUBTYPE OF (identification_assignment); items : SET [1:?] OF identified_item; WHERE WR1: applied_identification_correlation(SELF); 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, 'PLANT_SPATIAL_CONFIGURATION.' + '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, 'PLANT_SPATIAL_CONFIGURATION.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY approval_person_organization; person_organization : person_organization_select; authorized_approval : approval; role : approval_role; END_ENTITY; ENTITY approval_role; role : label; DERIVE description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; ENTITY approval_status; name : label; END_ENTITY; ENTITY area_dependent_annotation_representation SUBTYPE OF (presentation_representation); WHERE WR1: SIZEOF(QUERY (item <* SELF\representation.items| NOT (SIZEOF([ ('PLANT_SPATIAL_CONFIGURATION.' + 'ANNOTATION_OCCURRENCE'), 'PLANT_SPATIAL_CONFIGURATION.AXIS2_PLACEMENT' ] * TYPEOF(item)) = 1))) = 0; WR2: SIZEOF(QUERY (item <* SELF\representation.items| ('PLANT_SPATIAL_CONFIGURATION.ANNOTATION_OCCURRENCE' IN TYPEOF(item)))) >= 1; END_ENTITY; ENTITY area_in_set; area : presentation_area; in_set : presentation_set; END_ENTITY; ENTITY arrangement_branch_connection SUBTYPE OF (shape_aspect_relationship); WHERE WR1: SELF.description = 'branch location'; WR2: 'PLANT_SPATIAL_CONFIGURATION.PLANT_ARRANGEMENT_SEGMENT_DEFINITION' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition); WR3: 'PLANT_SPATIAL_CONFIGURATION.PLANT_ARRANGEMENT_SEGMENT_TERMINATION' IN TYPEOF(SELF.related_shape_aspect); END_ENTITY; ENTITY arrangement_less_mechanical_system SUBTYPE OF (product_definition); END_ENTITY; ENTITY arrangement_load SUBTYPE OF (property_definition); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.DESIGN_ARRANGEMENT_PERFORMANCE' IN TYPEOF(SELF.definition); WR2: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'arrangement load characteristics'))) = 1; WR3: SIZEOF(QUERY (spc <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'arrangement load characteristics'))| NOT (SIZEOF(spc.used_representation.items) >= 1))) = 0; WR4: SIZEOF(QUERY (spc <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'arrangement load characteristics'))| NOT (SIZEOF(QUERY (it <* spc.used_representation.items| ('PLANT_SPATIAL_CONFIGURATION.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'constituent loads'))) = 1))) = 0; END_ENTITY; ENTITY arrangement_plant_item_branch_connection SUBTYPE OF (shape_aspect_relationship); END_ENTITY; ENTITY arrangement_plant_item_connection SUBTYPE OF (shape_aspect_relationship); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.' + 'PLANT_ARRANGEMENT_SEGMENT_TERMINATION' IN TYPEOF(SELF.relating_shape_aspect); WR2: 'PLANT_SPATIAL_CONFIGURATION.PLANT_ITEM_CONNECTOR' IN TYPEOF(SELF.related_shape_aspect); WR3: SELF\shape_aspect_relationship.related_shape_aspect.of_shape\property_definition.definition\product_definition.frame_of_reference\application_context_element.name = 'physical occurrence'; END_ENTITY; ENTITY arrangement_termination_connection SUBTYPE OF (shape_aspect_relationship); WHERE WR1: SIZEOF(TYPEOF(SELF.relating_shape_aspect) * [ 'PLANT_SPATIAL_CONFIGURATION.CONNECTION_NODE', 'PLANT_SPATIAL_CONFIGURATION.PLANT_ARRANGEMENT_SEGMENT_TERMINATION' ]) >= 1; WR2: 'PLANT_SPATIAL_CONFIGURATION.PLANT_ARRANGEMENT_SEGMENT_TERMINATION' IN TYPEOF(SELF.related_shape_aspect); END_ENTITY; ENTITY assembly_component_usage SUBTYPE OF (product_definition_usage); reference_designator : OPTIONAL identifier; END_ENTITY; ENTITY axis1_placement SUBTYPE OF (placement); axis : OPTIONAL direction; DERIVE z : direction := NVL(normalise(axis), dummy_gri || direction([ 0.00000, 0.00000, 1.00000 ])); 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.00000); 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: ((('PLANT_SPATIAL_CONFIGURATION.UNIFORM_CURVE' IN TYPEOF(SELF)) OR ('PLANT_SPATIAL_CONFIGURATION.QUASI_UNIFORM_CURVE' IN TYPEOF(SELF))) OR ('PLANT_SPATIAL_CONFIGURATION.BEZIER_CURVE' IN TYPEOF(SELF))) OR ('PLANT_SPATIAL_CONFIGURATION.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: ((('PLANT_SPATIAL_CONFIGURATION.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ('PLANT_SPATIAL_CONFIGURATION.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF))) OR ('PLANT_SPATIAL_CONFIGURATION.BEZIER_SURFACE' IN TYPEOF(SELF))) OR ('PLANT_SPATIAL_CONFIGURATION.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 bezier_curve SUBTYPE OF (b_spline_curve); END_ENTITY; ENTITY bezier_surface SUBTYPE OF (b_spline_surface); END_ENTITY; ENTITY blank_fitting_class SUBTYPE OF (group); WHERE WR1: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (it <* aca.items| NOT ('PLANT_SPATIAL_CONFIGURATION.PIPING_COMPONENT_DEFINITION' IN TYPEOF(it)))) = 0))) = 0; WR2: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (pcd <* QUERY (it <* aca.items| ('PLANT_SPATIAL_CONFIGURATION.PIPING_COMPONENT_DEFINITION' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (aca1 <* USEDIN(pcd.formation.of_product, 'PLANT_SPATIAL_CONFIGURATION.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| class_in_tree(aca1.assigned_class, 'blank'))) = 1))) = 0))) = 0; 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 bolt_and_nut_component_class SUBTYPE OF (group); WHERE WR1: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (it <* aca.items| NOT ('PLANT_SPATIAL_CONFIGURATION.BOLT_AND_NUT_COMPONENT_DEFINITION' IN TYPEOF(it)))) = 0))) = 0; WR2: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (pcd <* QUERY (it <* aca.items| ('PLANT_SPATIAL_CONFIGURATION.BOLT_AND_NUT_COMPONENT_DEFINITION' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (aca1 <* USEDIN(pcd.formation.of_product, 'PLANT_SPATIAL_CONFIGURATION.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| class_in_tree(aca1.assigned_class, 'bolt and nut component'))) = 1))) = 0))) = 0; END_ENTITY; ENTITY bolt_and_nut_component_definition SUBTYPE OF (product_definition); END_ENTITY; ENTITY bolt_and_nut_set_definition SUBTYPE OF (product_definition); 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: 'PLANT_SPATIAL_CONFIGURATION.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: 'PLANT_SPATIAL_CONFIGURATION.BOUNDED_CURVE' IN TYPEOF(SELF\surface_curve.curve_3d); END_ENTITY; ENTITY brep_with_voids SUBTYPE OF (manifold_solid_brep); voids : SET [1:?] OF oriented_closed_shell; END_ENTITY; ENTITY cableway_component_class SUBTYPE OF (group); WHERE WR1: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'CLASSIFICATION_ASSIGNMENT.ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (it <* aca.items| NOT ('PLANT_SPATIAL_CONFIGURATION.CABLEWAY_COMPONENT_DEFINITION' IN TYPEOF(it)))) = 0))) = 0; WR2: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (pcd <* QUERY (it <* aca.items| ('PLANT_SPATIAL_CONFIGURATION.PIPING_COMPONENT_DEFINITION' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (aca1 <* USEDIN(pcd.formation.of_product, 'PLANT_SPATIAL_CONFIGURATION.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| class_in_tree(aca1.assigned_class, 'cableway component'))) = 1))) = 0))) = 0; END_ENTITY; ENTITY cableway_component_definition SUBTYPE OF (product_definition); END_ENTITY; ENTITY cableway_connector_class SUBTYPE OF (group); END_ENTITY; ENTITY cableway_system SUBTYPE OF (product_definition); WHERE WR1: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PLANT' IN TYPEOF(pdr.relating_product_definition.formation.of_product)) AND (pdr.relating_product_definition.frame_of_reference.name = 'functional occurrence'))) = 1; 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: 'PLANT_SPATIAL_CONFIGURATION.CAMERA_USAGE' IN TYPEOF(SELF\mapped_item.mapping_source); WR2: 'PLANT_SPATIAL_CONFIGURATION.PLANAR_BOX' IN TYPEOF(SELF\mapped_item.mapping_target); WR3: 'PLANT_SPATIAL_CONFIGURATION.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY; ENTITY camera_model SUPERTYPE OF (camera_model_d2) SUBTYPE OF (geometric_representation_item); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'ITEM_DEFINED_TRANSFORMATION.' + 'TRANSFORM_ITEM_1')) + SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'REPRESENTATION_MAP.MAPPING_ORIGIN')) > 0; WR2: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'STYLED_ITEM.ITEM')) = 0; END_ENTITY; ENTITY camera_model_d2 SUBTYPE OF (camera_model); view_window : planar_box; view_window_clipping : BOOLEAN; WHERE WR1: SELF\geometric_representation_item.dim = 2; END_ENTITY; ENTITY camera_model_d2_shape_clipping SUBTYPE OF (camera_model_d2); shape_clipping : curve; END_ENTITY; ENTITY camera_usage SUBTYPE OF (representation_map); WHERE WR1: NOT ('PLANT_SPATIAL_CONFIGURATION.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF\representation_map.mapped_representation)); WR2: 'PLANT_SPATIAL_CONFIGURATION.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 (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.00000); WHERE WR1: scl > 0.00000; 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 catalogue SUBTYPE OF (document, external_source); END_ENTITY; ENTITY catalogue_connector SUBTYPE OF (shape_aspect, externally_defined_item); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.CHARACTERIZED_OBJECT' IN TYPEOF(SELF.of_shape); WR2: 'PLANT_SPATIAL_CONFIGURATION.CATALOGUE' IN TYPEOF(SELF.source); END_ENTITY; ENTITY catalogue_item SUBTYPE OF (externally_defined_plant_item_definition); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.CATALOGUE' IN TYPEOF(SELF.source); WR2: SELF.frame_of_reference.name = 'physical definition'; END_ENTITY; ENTITY celsius_temperature_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.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 ('PLANT_SPATIAL_CONFIGURATION.SYMMETRIC_SHAPE_ASPECT' IN TYPEOF(sadr\shape_aspect_relationship.related_shape_aspect)))) = 0; END_ENTITY; ENTITY change_action SUBTYPE OF (directed_action); WHERE WR1: SIZEOF(QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'ACTION_ASSIGNMENT.ASSIGNED_ACTION')| ('PLANT_SPATIAL_CONFIGURATION.' + 'PLANT_SPATIAL_CONFIGURATION_CHANGE_ASSIGNMENT' IN TYPEOF(ca)))) >= 1; WR2: SIZEOF(QUERY (ar <* SELF\directed_action.directive.requests| NOT (SIZEOF(USEDIN(ar, 'PLANT_SPATIAL_CONFIGURATION.' + 'ACTION_REQUEST_SOLUTION.REQUEST')) = 1))) = 0; WR3: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.ACTION_STATUS.' + 'ASSIGNED_ACTION')) = 1; END_ENTITY; ENTITY change_item_id_assignment SUBTYPE OF (name_assignment); items : SET [1:?] OF change_item; END_ENTITY; ENTITY change_life_cycle_stage_assignment SUBTYPE OF (group_assignment); items : SET [1:?] OF change_life_cycle_item; END_ENTITY; ENTITY characterized_object; name : label; description : OPTIONAL text; END_ENTITY; ENTITY circle SUBTYPE OF (conic); radius : positive_length_measure; END_ENTITY; ENTITY clamp_component_definition SUBTYPE OF (product_definition); END_ENTITY; ENTITY clamp_set_definition SUBTYPE OF (product_definition); 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 colour; END_ENTITY; ENTITY colour_rgb SUBTYPE OF (colour_specification); red : REAL; green : REAL; blue : REAL; WHERE WR1: (0.00000 <= red) AND (red <= 1.00000); WR2: (0.00000 <= green) AND (green <= 1.00000); WR3: (0.00000 <= blue) AND (blue <= 1.00000); END_ENTITY; ENTITY colour_specification SUBTYPE OF (colour); name : label; 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: 'PLANT_SPATIAL_CONFIGURATION.BOUNDED_CURVE' IN TYPEOF(parent_curve); 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.00000; 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 connection_functional_class SUBTYPE OF (group); END_ENTITY; ENTITY connection_material_definition SUBTYPE OF (product_definition); END_ENTITY; ENTITY connection_motion_class SUBTYPE OF (group); WHERE WR1: SELF.name IN [ 'flexible', 'locked orientation' ]; END_ENTITY; ENTITY connection_node SUBTYPE OF (shape_aspect); WHERE WR1: ('PLANT_SPATIAL_CONFIGURATION.PIPING_SYSTEM' IN TYPEOF(SELF.of_shape.definition)) AND (SIZEOF(QUERY (sar <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ('PLANT_SPATIAL_CONFIGURATION.LINE_TERMINATION_CONNECTION' IN TYPEOF(sar)))) >= 2) XOR ('PLANT_SPATIAL_CONFIGURATION.MECHANICAL_SYSTEM' IN TYPEOF(SELF.of_shape.definition)) AND (SIZEOF(QUERY (sar <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')| ('PLANT_SPATIAL_CONFIGURATION.ARRANGEMENT_TERMINATION_CONNECTION' IN TYPEOF(sar)))) >= 2); END_ENTITY; ENTITY connector_end_type_class SUBTYPE OF (group); END_ENTITY; ENTITY context_dependent_invisibility SUBTYPE OF (invisibility); presentation_context : invisibility_context; END_ENTITY; ENTITY context_dependent_unit SUBTYPE OF (named_unit); name : label; END_ENTITY; ENTITY conversion_based_unit SUBTYPE OF (named_unit); name : label; conversion_factor : measure_with_unit; 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) AND (hour_offset < 24); WR2: (0 <= actual_minute_offset) AND (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| ('PLANT_SPATIAL_CONFIGURATION.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp)))) = 0); WR2: NOT implicit_outer OR ('PLANT_SPATIAL_CONFIGURATION.BOUNDED_SURFACE' IN TYPEOF(basis_surface)); WR3: SIZEOF(QUERY (temp <* boundaries| ('PLANT_SPATIAL_CONFIGURATION.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_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 curve_style_wide SUBTYPE OF (curve_style_font); interior_style : fill_area_style; 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 data_environment; name : label; description : text; elements : SET [1:?] OF property_definition_representation; 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, 'PLANT_SPATIAL_CONFIGURATION.' + '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, 'PLANT_SPATIAL_CONFIGURATION.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; ENTITY defined_symbol SUBTYPE OF (geometric_representation_item); definition : defined_symbol_select; target : symbol_target; END_ENTITY; ENTITY definitional_representation SUBTYPE OF (representation); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.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: 'PLANT_SPATIAL_CONFIGURATION.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 (centre_of_symmetry) 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 ('PLANT_SPATIAL_CONFIGURATION.' + '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.00000); WR2: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + '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_colour SUBTYPE OF (colour, descriptive_representation_item); END_ENTITY; ENTITY descriptive_representation_item SUBTYPE OF (representation_item); description : text; END_ENTITY; ENTITY design_arrangement_performance SUBTYPE OF (property_definition, characterized_object); WHERE WR1: SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.ARRANGEMENT_LOAD' IN TYPEOF(pd)))) >= 1; WR2: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design arrangement characteristics'))) = 1; WR3: SIZEOF(QUERY (sfc <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design arrangement characteristics'))| NOT (SIZEOF(sfc.used_representation.items) >= 1))) = 0; WR4: SIZEOF(QUERY (sfc <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design arrangement characteristics'))| NOT (SIZEOF(QUERY (it <* sfc.used_representation.items| ('PLANT_SPATIAL_CONFIGURATION.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'arrangement data reference'))) <= 1))) = 0; END_ENTITY; ENTITY design_project SUBTYPE OF (organization); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'ORGANIZATION_ASSIGNMENT.ASSIGNED_ORGANIZATION')) >= 1; END_ENTITY; ENTITY design_project_assignment SUBTYPE OF (organization_assignment); items : SET [1:?] OF design_project_item; WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.DESIGN_PROJECT' IN TYPEOF(SELF.assigned_organization); 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 (angular_location) SUBTYPE OF (shape_aspect_relationship); END_ENTITY; ENTITY dimensional_size; applies_to : shape_aspect; name : label; WHERE WR1: applies_to.product_definitional = TRUE; END_ENTITY; ENTITY directed_action SUBTYPE OF (executed_action); directive : action_directive; 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.00000))) > 0; END_ENTITY; ENTITY document; id : identifier; name : label; description : OPTIONAL text; kind : document_type; INVERSE representation_types : SET [0:?] OF document_representation_type FOR represented_document; END_ENTITY; ENTITY document_reference ABSTRACT SUPERTYPE; assigned_document : document; source : label; DERIVE role : object_role := get_role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + '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 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 drawing_definition; drawing_number : identifier; drawing_type : OPTIONAL label; END_ENTITY; ENTITY drawing_revision SUBTYPE OF (presentation_set); revision_identifier : identifier; drawing_identifier : drawing_definition; intended_scale : OPTIONAL text; UNIQUE UR1 : revision_identifier, drawing_identifier; END_ENTITY; ENTITY drawing_revision_sequence; predecessor : drawing_revision; successor : drawing_revision; WHERE WR1: predecessor :<>: successor; END_ENTITY; ENTITY drawing_sheet_revision SUBTYPE OF (presentation_area); revision_identifier : identifier; WHERE WR1: SIZEOF(QUERY (item <* SELF\representation.items| ('PLANT_SPATIAL_CONFIGURATION.MAPPED_ITEM' IN TYPEOF(item)) AND ('PLANT_SPATIAL_CONFIGURATION.DRAWING_SHEET_REVISION' IN TYPEOF(item\mapped_item.mapping_source.mapped_representation)))) = 0; END_ENTITY; ENTITY drawing_sheet_revision_usage SUBTYPE OF (area_in_set); sheet_number : identifier; UNIQUE UR1 : sheet_number, in_set; WHERE WR1: ('PLANT_SPATIAL_CONFIGURATION.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\area_in_set.area)) AND ('PLANT_SPATIAL_CONFIGURATION.DRAWING_REVISION' IN TYPEOF(SELF\area_in_set.in_set)); END_ENTITY; ENTITY ducting_system SUBTYPE OF (product_definition); WHERE WR1: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PLANT' IN TYPEOF(pdr.relating_product_definition.formation.of_product)) AND (pdr.relating_product_definition.frame_of_reference.name = 'functional occurrence'))) = 1; 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.00000; END_ENTITY; ENTITY edge SUPERTYPE OF (ONEOF(edge_curve, oriented_edge)) SUBTYPE OF (topological_representation_item); edge_start : vertex; edge_end : vertex; 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 (serial_numbered_effectivity); id : identifier; DERIVE name : label := get_name_value(SELF); description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + '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, 'PLANT_SPATIAL_CONFIGURATION.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY effectivity_context_assignment ABSTRACT SUPERTYPE; assigned_effectivity_assignment : effectivity_assignment; role : effectivity_context_role; END_ENTITY; ENTITY effectivity_context_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY elbow_fitting_class SUBTYPE OF (group); WHERE WR1: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'CLASSIFICATION_ASSIGNMENT.ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (it <* aca.items| NOT ('PLANT_SPATIAL_CONFIGURATION.PIPING_COMPONENT_DEFINITION' IN TYPEOF(it)))) = 0))) = 0; WR2: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (pcd <* QUERY (it <* aca.items| ('PLANT_SPATIAL_CONFIGURATION.PIPING_COMPONENT_DEFINITION' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (aca1 <* USEDIN(pcd.formation.of_product, 'PLANT_SPATIAL_CONFIGURATION.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| class_in_tree(aca1.assigned_class, 'elbow'))) = 1))) = 0))) = 0; END_ENTITY; ENTITY electric_current_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.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.00000) AND (SELF\named_unit.dimensions.mass_exponent = 0.00000)) AND (SELF\named_unit.dimensions.time_exponent = 0.00000)) AND (SELF\named_unit.dimensions.electric_current_exponent = 1.00000)) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.00000)) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.00000)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.00000); END_ENTITY; ENTITY electrical_connector_class SUBTYPE OF (group); END_ENTITY; ENTITY electrical_system SUBTYPE OF (product_definition); WHERE WR1: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PLANT' IN TYPEOF(pdr.relating_product_definition.formation.of_product)) AND (pdr.relating_product_definition.frame_of_reference.name = 'functional occurrence'))) = 1; 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 executed_action SUBTYPE OF (action); END_ENTITY; ENTITY external_source; source_id : source_item; DERIVE description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; ENTITY external_source_relationship; name : label; description : OPTIONAL text; relating_source : external_source; related_source : external_source; END_ENTITY; ENTITY externally_defined_class SUBTYPE OF (group, externally_defined_item); WHERE WR1: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (it <* aca.items| NOT ((SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.ELECTRICAL_SYSTEM', 'PLANT_SPATIAL_CONFIGURATION.DUCTING_SYSTEM', 'PLANT_SPATIAL_CONFIGURATION.INSTRUMENTATION_AND_CONTROL_SYSTEM', 'PLANT_SPATIAL_CONFIGURATION.MECHANICAL_SYSTEM', 'PLANT_SPATIAL_CONFIGURATION.MECHANICAL_COMPONENT_DEFINITION', 'PLANT_SPATIAL_CONFIGURATION.PIPING_SYSTEM', 'PLANT_SPATIAL_CONFIGURATION.PLANT', 'PLANT_SPATIAL_CONFIGURATION.PLANT_ITEM_CONNECTOR', 'PLANT_SPATIAL_CONFIGURATION.PIPING_COMPONENT_DEFINITION', 'PLANT_SPATIAL_CONFIGURATION.STRUCTURAL_SYSTEM' ]) = 1) OR ('PLANT_SPATIAL_CONFIGURATION.PRODUCT_DEFINITION' IN TYPEOF(it)) AND (SIZEOF(QUERY (pc <* it.formation.of_product.frame_of_reference| (pc.discipline_type = 'process plant'))) = 1)))) = 0))) = 0; END_ENTITY; ENTITY externally_defined_curve_font SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_document SUBTYPE OF (document, 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_item_relationship; name : label; description : OPTIONAL text; relating_item : externally_defined_item; related_item : externally_defined_item; END_ENTITY; ENTITY externally_defined_plant_item_definition SUBTYPE OF (product_definition, externally_defined_item); END_ENTITY; ENTITY externally_defined_representation_item SUBTYPE OF (representation_item, externally_defined_item); END_ENTITY; ENTITY externally_defined_symbol SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_text_font SUBTYPE OF (externally_defined_item); END_ENTITY; ENTITY externally_defined_tile_style SUBTYPE OF (externally_defined_item, geometric_representation_item); END_ENTITY; ENTITY 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.00000; 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.00000; END_ENTITY; ENTITY face SUPERTYPE OF (ONEOF(face_surface, 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| ('PLANT_SPATIAL_CONFIGURATION.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 ('PLANT_SPATIAL_CONFIGURATION.ORIENTED_SURFACE' IN TYPEOF(face_geometry)); END_ENTITY; ENTITY faceted_brep SUBTYPE OF (manifold_solid_brep); 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| ('PLANT_SPATIAL_CONFIGURATION.' + 'FILL_AREA_STYLE_COLOUR' IN TYPEOF(fill_style)))) <= 1; END_ENTITY; ENTITY fill_area_style_colour; name : label; fill_colour : colour; END_ENTITY; ENTITY fill_area_style_hatching SUBTYPE OF (geometric_representation_item); hatch_line_appearance : curve_style; start_of_next_hatch_line : one_direction_repeat_factor; point_of_reference_hatch_line : cartesian_point; pattern_start : cartesian_point; hatch_line_angle : plane_angle_measure; END_ENTITY; ENTITY fill_area_style_tile_symbol_with_style SUBTYPE OF (geometric_representation_item); symbol : annotation_symbol_occurrence; END_ENTITY; ENTITY fill_area_style_tiles SUBTYPE OF (geometric_representation_item); tiling_pattern : two_direction_repeat_factor; tiles : SET [1:?] OF fill_area_style_tile_shape_select; tiling_scale : positive_ratio_measure; END_ENTITY; ENTITY flange_fitting_class SUBTYPE OF (group); WHERE WR1: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'CLASSIFICATION_ASSIGNMENT.ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (it <* aca.items| NOT ('PLANT_SPATIAL_CONFIGURATION.PIPING_COMPONENT_DEFINITION' IN TYPEOF(it)))) = 0))) = 0; WR2: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'CLASSIFICATION_ASSIGNMENT.ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (pcd <* QUERY (it <* aca.items| ('PLANT_SPATIAL_CONFIGURATION.PIPING_COMPONENT_DEFINITION' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (aca1 <* USEDIN(pcd.formation.of_product, 'PLANT_SPATIAL_CONFIGURATION.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| class_in_tree(aca1.assigned_class, 'flange'))) = 1))) = 0))) = 0; END_ENTITY; ENTITY flange_fitting_neck_type_class SUBTYPE OF (group); WHERE WR1: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (it <* aca.items| NOT ('PLANT_SPATIAL_CONFIGURATION.PIPING_COMPONENT_DEFINITION' IN TYPEOF(it)))) = 0))) = 0; WR2: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (pcd <* QUERY (it <* aca.items| ('PLANT_SPATIAL_CONFIGURATION.PIPING_COMPONENT_DEFINITION' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (aca1 <* USEDIN(pcd.formation.of_product, 'PLANT_SPATIAL_CONFIGURATION.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| class_in_tree(aca1.assigned_class, 'flange'))) = 1))) = 0))) = 0; END_ENTITY; ENTITY founded_item; END_ENTITY; ENTITY functionally_defined_transformation; name : label; description : OPTIONAL text; END_ENTITY; ENTITY geometric_curve_set SUBTYPE OF (geometric_set); WHERE WR1: SIZEOF(QUERY (temp <* SELF\geometric_set.elements| ('PLANT_SPATIAL_CONFIGURATION.SURFACE' IN TYPEOF(temp)))) = 0; END_ENTITY; ENTITY geometric_representation_context SUBTYPE OF (representation_context); coordinate_space_dimension : dimension_count; END_ENTITY; ENTITY geometric_representation_item SUPERTYPE OF (ONEOF(point, direction, vector, placement, cartesian_transformation_operator, curve, surface, 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, rectangular_pyramid, cyclide_segment_solid, half_space_solid, half_space_2d, shell_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 ('PLANT_SPATIAL_CONFIGURATION.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(using_rep.context_of_items)))) = 0; END_ENTITY; ENTITY geometric_set SUPERTYPE OF (ONEOF(geometric_curve_set, geometric_set_replica)) SUBTYPE OF (geometric_representation_item); elements : SET [1:?] OF geometric_set_select; END_ENTITY; ENTITY geometric_set_replica SUBTYPE OF (geometric_set); parent_set : geometric_set; transformation : cartesian_transformation_operator; DERIVE SELF\geometric_set.elements : SET [1:?] OF geometric_set_select := build_transformed_set(transformation, parent_set); WHERE WR1: acyclic_set_replica(SELF, parent_set); END_ENTITY; ENTITY global_uncertainty_assigned_context SUBTYPE OF (representation_context); uncertainty : SET [1:?] OF uncertainty_measure_with_unit; END_ENTITY; ENTITY global_unit_assigned_context SUBTYPE OF (representation_context); units : SET [1:?] OF unit; END_ENTITY; ENTITY graphical_transformation SUBTYPE OF (item_defined_transformation); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\item_defined_transformation.transform_item_1); WR2: 'PLANT_SPATIAL_CONFIGURATION.PRESENTATION_SCALED_PLACEMENT' IN TYPEOF(SELF\item_defined_transformation.transform_item_2); END_ENTITY; ENTITY group; name : label; description : OPTIONAL text; DERIVE id : identifier := get_id_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; ENTITY group_assignment ABSTRACT SUPERTYPE; assigned_group : group; DERIVE role : object_role := get_role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY group_relationship; name : label; description : OPTIONAL text; relating_group : group; related_group : group; END_ENTITY; ENTITY half_space_2d SUBTYPE OF (geometric_representation_item); base_curve : curve; agreement_flag : BOOLEAN; END_ENTITY; ENTITY half_space_solid SUBTYPE OF (geometric_representation_item); base_surface : surface; agreement_flag : BOOLEAN; END_ENTITY; ENTITY heat_tracing_representation SUBTYPE OF (representation); END_ENTITY; ENTITY hvac_branch_connection SUBTYPE OF (shape_aspect_relationship); WHERE WR1: SELF.description = 'branch location'; WR2: 'PLANT_SPATIAL_CONFIGURATION.HVAC_SECTION_DEFINITION' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition); WR3: 'PLANT_SPATIAL_CONFIGURATION.HVAC_SECTION_TERMINATION' IN TYPEOF(SELF.related_shape_aspect); END_ENTITY; ENTITY hvac_component_definition SUBTYPE OF (product_definition); END_ENTITY; ENTITY hvac_connector SUBTYPE OF (shape_aspect); WHERE WR1: SELF\shape_aspect.of_shape\property_definition.definition\product_definition.frame_of_reference\application_context_element.name IN [ 'functional definition', 'physical definition', 'functional occurrence', 'physical occurrence' ]; WR2: NOT (SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))) >= 1) OR (SIZEOF(QUERY (sc <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))| NOT (SIZEOF(QUERY (pdr <* USEDIN(sc, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design service characteristics'))) = 1))) = 0); WR3: NOT (SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))) >= 1) OR (SIZEOF(QUERY (sc <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))| NOT (SIZEOF(QUERY (dsc <* QUERY (pdr <* USEDIN(sc, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design service characteristics'))| (SIZEOF(dsc.used_representation.items) >= 2))) = 1))) = 0); WR4: NOT (SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))) >= 1) OR (SIZEOF(QUERY (sc <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))| NOT (SIZEOF(QUERY (dsc <* QUERY (pdr <* USEDIN(sc, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design service characteristics'))| (1 <= SIZEOF(QUERY (it <* dsc.used_representation.items| ('PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name IN [ 'pressure', 'minimum pressure', 'maximum pressure' ])))) AND (SIZEOF(QUERY (it <* dsc.used_representation.items| ('PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name IN [ 'pressure', 'minimum pressure', 'maximum pressure' ]))) <= 2))) = 1))) = 0); WR5: NOT (SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))) >= 1) OR (SIZEOF(QUERY (sc <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))| NOT (SIZEOF(QUERY (dsc <* QUERY (pdr <* USEDIN(sc, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design service characteristics'))| (SIZEOF(QUERY (it <* dsc.used_representation.items| ('PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'pressure'))) <= 1))) = 1))) = 0); WR6: NOT (SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))) >= 1) OR (SIZEOF(QUERY (sc <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))| NOT (SIZEOF(QUERY (dsc <* QUERY (pdr <* USEDIN(sc, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design service characteristics'))| (SIZEOF(QUERY (it <* dsc.used_representation.items| ('PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'minimum pressure'))) <= 1))) = 1))) = 0); WR7: NOT (SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))) >= 1) OR (SIZEOF(QUERY (sc <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))| NOT (SIZEOF(QUERY (dsc <* QUERY (pdr <* USEDIN(sc, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design service characteristics'))| (SIZEOF(QUERY (it <* dsc.used_representation.items| ('PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'maximum pressure'))) <= 1))) = 1))) = 0); WR8: NOT (SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))) >= 1) OR (SIZEOF(QUERY (sc <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))| NOT (SIZEOF(QUERY (dsc <* QUERY (pdr <* USEDIN(sc, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design service characteristics'))| (1 <= SIZEOF(QUERY (it <* dsc.used_representation.items| (SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', ('PLANT_SPATIAL_CONFIGURATION.' + 'THERMODYNAMIC_TEMPERATURE_MEASURE_WITH_UNIT') ]) = 2) AND (it.name IN [ 'temperature', 'minimum temperature', 'maximum temperature' ])))) AND (SIZEOF(QUERY (it <* dsc.used_representation.items| (SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', ('PLANT_SPATIAL_CONFIGURATION.' + 'THERMODYNAMIC_TEMPERATURE_MEASURE_WITH_UNIT') ]) = 2) AND (it.name IN [ 'temperature', 'minimum temperature', 'maximum temperature' ]))) <= 2))) = 1))) = 0); WR9: NOT (SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))) >= 1) OR (SIZEOF(QUERY (sc <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))| NOT (SIZEOF(QUERY (dsc <* QUERY (pdr <* USEDIN(sc, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design service characteristics'))| (SIZEOF(QUERY (it <* dsc.used_representation.items| (SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', ('PLANT_SPATIAL_CONFIGURATION.' + 'THERMODYNAMIC_TEMPERATURE_MEASURE_WITH_UNIT') ]) = 2) AND (it.name = 'temperature'))) <= 1))) = 1))) = 0); WR10: NOT (SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))) >= 1) OR (SIZEOF(QUERY (sc <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))| NOT (SIZEOF(QUERY (dsc <* QUERY (pdr <* USEDIN(sc, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design service characteristics'))| (SIZEOF(QUERY (it <* dsc.used_representation.items| (SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', ('PLANT_SPATIAL_CONFIGURATION.' + 'THERMODYNAMIC_TEMPERATURE_MEASURE_WITH_UNIT') ]) = 2) AND (it.name = 'minimum temperature'))) <= 1))) = 1))) = 0); WR11: NOT (SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))) >= 1) OR (SIZEOF(QUERY (sc <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| (pd.name = 'hvac service characteristics'))| NOT (SIZEOF(QUERY (dsc <* QUERY (pdr <* USEDIN(sc, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'design service characteristics'))| (SIZEOF(QUERY (it <* dsc.used_representation.items| (SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', ('PLANT_SPATIAL_CONFIGURATION.' + 'THERMODYNAMIC_TEMPERATURE_MEASURE_WITH_UNIT') ]) = 2) AND (it.name = 'maximum temperature'))) <= 1))) = 1))) = 0); WR12: NOT (SELF\shape_aspect.of_shape\property_definition.definition\product_definition.frame_of_reference\application_context_element.name IN [ 'functional definition', 'functional occurrence' ]) OR (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 0); END_ENTITY; ENTITY hvac_cross_section SUBTYPE OF (shape_aspect); END_ENTITY; ENTITY hvac_fitting_class SUBTYPE OF (group); WHERE WR1: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (it <* aca.items| NOT ('PLANT_SPATIAL_CONFIGURATION.HVAC_COMPONENT_DEFINITION' IN TYPEOF(it)))) = 0))) = 0; WR2: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (pcd <* QUERY (it <* aca.items| ('PLANT_SPATIAL_CONFIGURATION.HVAC_COMPONENT_DEFINITION' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (aca1 <* USEDIN(pcd.formation.of_product, 'PLANT_SPATIAL_CONFIGURATION.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| class_in_tree(aca1.assigned_class, 'hvac fitting'))) = 1))) = 0))) = 0; END_ENTITY; ENTITY hvac_plant_item_branch_connection SUBTYPE OF (shape_aspect_relationship); WHERE WR1: SELF.description = 'branch location'; WR2: 'PLANT_SPATIAL_CONFIGURATION.HVAC_SECTION_DEFINITION' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition); WR3: 'PLANT_SPATIAL_CONFIGURATION.HVAC_CONNECTOR' IN TYPEOF(SELF.related_shape_aspect); END_ENTITY; ENTITY hvac_plant_item_connection SUBTYPE OF (shape_aspect_relationship); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.HVAC_SECTION_TERMINATION' IN TYPEOF(SELF.relating_shape_aspect); WR2: 'PLANT_SPATIAL_CONFIGURATION.HVAC_CONNECTOR' IN TYPEOF(SELF.related_shape_aspect); WR3: SELF\shape_aspect_relationship.related_shape_aspect.of_shape\property_definition.definition\product_definition.frame_of_reference\application_context_element.name = 'physical occurrence'; END_ENTITY; ENTITY hvac_run_definition SUBTYPE OF (product_definition); WHERE WR1: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.HVAC_SYSTEM' IN TYPEOF(pdr.relating_product_definition)))) = 1; WR2: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.HVAC_SECTION_DEFINITION' IN TYPEOF(pdr.related_product_definition)))) >= 1; WR3: SELF.frame_of_reference.name = 'functional definition'; WR4: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa <* USEDIN(pds, 'PLANT_SPATIAL_CONFIGURATION.SHAPE_ASPECT.OF_SHAPE')| ('PLANT_SPATIAL_CONFIGURATION.HVAC_SECTION_TERMINATION' IN TYPEOF(sa)) AND (sa.description = 'hvac run termination'))) <= 2))) = 0; END_ENTITY; ENTITY hvac_section_definition SUBTYPE OF (product_definition); WHERE WR1: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.HVAC_RUN_DEFINITION' IN TYPEOF(pdr.relating_product_definition)))) >= 1; WR2: SIZEOF(QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.SHAPE_DEFINITION' IN TYPEOF(pd)))) >= 1; WR3: SELF.frame_of_reference\application_context_element.name = 'functional definition'; WR4: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'hvac section characteristics'))) = 1; WR5: SIZEOF(QUERY (hssc <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'hvac section characteristics'))| NOT ((1 <= SIZEOF(QUERY (it <* hssc.used_representation.items| (it.name IN [ 'pressure drop', 'maximum pressure drop', 'minimum pressure drop ' ])))) AND (SIZEOF(QUERY (it <* hssc.used_representation.items| (it.name IN [ 'pressure drop', 'maximum pressure drop', 'minimum pressure drop ' ]))) <= 2)))) = 0; WR6: SIZEOF(QUERY (hssc <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'hvac section characteristics'))| NOT (SIZEOF(QUERY (it <* hssc.used_representation.items| ('PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'pressure drop'))) <= 1))) = 0; WR7: SIZEOF(QUERY (hssc <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'hvac section characteristics'))| NOT (SIZEOF(QUERY (it <* hssc.used_representation.items| ('PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'minimum pressure drop'))) <= 1))) = 0; WR8: SIZEOF(QUERY (hssc <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (pdr.used_representation.name = 'hvac section characteristics'))| NOT (SIZEOF(QUERY (it <* hssc.used_representation.items| ('PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'maximum pressure drop'))) <= 1))) = 0; WR9: NOT (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))) >= 1) OR (SIZEOF(QUERY (si <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))| NOT (SIZEOF(QUERY (pd <* USEDIN(si, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (pds <* QUERY (pdr <* USEDIN(pd, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr)))| (pds.used_representation.name = 'hvac section insulation characteristics'))) = 1))) = 0))) = 0); WR10: NOT (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))) >= 1) OR (SIZEOF(QUERY (si <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))| NOT (SIZEOF(QUERY (pd <* USEDIN(si, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (sic <* QUERY (pds <* QUERY (pdr <* USEDIN(pd, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr)))| (pds.used_representation.name = 'hvac section insulation characteristics'))| (SIZEOF(sic.used_representation.items) >= 1))) = 1))) = 0))) = 0); WR11: NOT (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))) >= 1) OR (SIZEOF(QUERY (si <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))| NOT (SIZEOF(QUERY (pd <* USEDIN(si, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (sic <* QUERY (pds <* QUERY (pdr <* USEDIN(pd, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr)))| (pds.used_representation.name = 'hvac section insulation characteristics'))| (1 <= SIZEOF(QUERY (it <* sic.used_representation.items| (SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', 'PLANT_SPATIAL_CONFIGURATION.LENGTH_MEASURE_WITH_UNIT' ]) = 2) AND (it.name IN [ 'thickness', 'minimum thickness', 'maximum thickness' ])))) AND (SIZEOF(QUERY (it <* sic.used_representation.items| (SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', 'PLANT_SPATIAL_CONFIGURATION.LENGTH_MEASURE_WITH_UNIT' ]) = 2) AND (it.name IN [ 'thickness', 'minimum thickness', 'maximum thickness' ]))) <= 2))) = 1))) = 0))) = 0); WR12: NOT (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))) >= 1) OR (SIZEOF(QUERY (si <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))| NOT (SIZEOF(QUERY (pd <* USEDIN(si, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (sic <* QUERY (pds <* QUERY (pdr <* USEDIN(pd, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr)))| (pds.used_representation.name = 'segment insulation characteristics'))| (SIZEOF(QUERY (it <* sic.used_representation.items| (SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', 'PLANT_SPATIAL_CONFIGURATION.LENGTH_MEASURE_WITH_UNIT' ]) = 2) AND (it.name = 'thickness'))) <= 1))) = 1))) = 0))) = 0); WR13: NOT (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'segment insulation'))) >= 1) OR (SIZEOF(QUERY (si <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))| NOT (SIZEOF(QUERY (pd <* USEDIN(si, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (sic <* QUERY (pds <* QUERY (pdr <* USEDIN(pd, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr)))| (pds.used_representation.name = 'hvac section insulation characteristics'))| (SIZEOF(QUERY (it <* sic.used_representation.items| (SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', 'PLANT_SPATIAL_CONFIGURATION.LENGTH_MEASURE_WITH_UNIT' ]) = 2) AND (it.name = 'minimum thickness'))) <= 1))) = 1))) = 0))) = 0); WR14: NOT (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))) >= 1) OR (SIZEOF(QUERY (si <* QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| (pdr.name = 'hvac section insulation'))| NOT (SIZEOF(QUERY (pd <* USEDIN(si, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| NOT (SIZEOF(QUERY (sic <* QUERY (pds <* QUERY (pdr <* USEDIN(pd, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr)))| (pds.used_representation.name = 'hvac section insulation characteristics'))| (SIZEOF(QUERY (it <* sic.used_representation.items| (SIZEOF(TYPEOF(it) * [ 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', 'PLANT_SPATIAL_CONFIGURATION.LENGTH_MEASURE_WITH_UNIT' ]) = 2) AND (it.name = 'maximum thickness'))) <= 1))) = 1))) = 0))) = 0); WR15: SIZEOF(QUERY (pds <* QUERY (pd <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.PROPERTY_DEFINITION.DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)))| NOT (SIZEOF(QUERY (sa <* USEDIN(pds, 'PLANT_SPATIAL_CONFIGURATION.SHAPE_ASPECT.OF_SHAPE')| ('PLANT_SPATIAL_CONFIGURATION.HVAC_SECTION_TERMINATION' IN TYPEOF(sa)))) = 2))) = 0; END_ENTITY; ENTITY hvac_section_termination SUBTYPE OF (shape_aspect); WHERE WR1: SIZEOF(QUERY (sar <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') + USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| NOT (SIZEOF(TYPEOF(sar) * [ 'PLANT_SPATIAL_CONFIGURATION.HVAC_BRANCH_CONNECTION', 'PLANT_SPATIAL_CONFIGURATION.HVAC_PLANT_ITEM_CONNECTION', 'PLANT_SPATIAL_CONFIGURATION.HVAC_TERMINATION_CONNECTION' ]) = 1))) = 0; WR2: SIZEOF(QUERY (sar <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')| (SIZEOF(TYPEOF(sar) * [ 'PLANT_SPATIAL_CONFIGURATION.HVAC_BRANCH_CONNECTION', 'PLANT_SPATIAL_CONFIGURATION.HVAC_PLANT_ITEM_CONNECTION' ]) = 1))) = 1; END_ENTITY; ENTITY hvac_support_class SUBTYPE OF (group); WHERE WR1: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (it <* aca.items| NOT ('PLANT_SPATIAL_CONFIGURATION.HVAC_SUPPORT_DEFINITION' IN TYPEOF(it)))) = 0))) = 0; WR2: SIZEOF(QUERY (aca <* QUERY (ca <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_CLASS')| ('PLANT_SPATIAL_CONFIGURATION.APPLIED_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ca)))| NOT (SIZEOF(QUERY (pcd <* QUERY (it <* aca.items| ('PLANT_SPATIAL_CONFIGURATION.HVAC_COMPONENT_DEFINITION' IN TYPEOF(it)))| NOT (SIZEOF(QUERY (aca1 <* USEDIN(pcd.formation.of_product, 'PLANT_SPATIAL_CONFIGURATION.' + 'APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| class_in_tree(aca1.assigned_class, 'hvac support'))) = 1))) = 0))) = 0; END_ENTITY; ENTITY hvac_support_definition SUBTYPE OF (product_definition); END_ENTITY; ENTITY hvac_system SUBTYPE OF (product_definition); WHERE WR1: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PLANT' IN TYPEOF(pdr.relating_product_definition.formation.of_product)) AND (pdr.relating_product_definition.frame_of_reference.name = 'functional occurrence'))) = 1; END_ENTITY; ENTITY hvac_termination_connection SUBTYPE OF (shape_aspect_relationship); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.HVAC_SECTION_TERMINATION' IN TYPEOF(SELF.relating_shape_aspect); WR2: 'PLANT_SPATIAL_CONFIGURATION.HVAC_SECTION_TERMINATION' IN TYPEOF(SELF.related_shape_aspect); END_ENTITY; ENTITY hybrid_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SIZEOF(QUERY (i <* SELF\representation.items| NOT (SIZEOF([ 'PLANT_SPATIAL_CONFIGURATION.ADVANCED_FACE', 'PLANT_SPATIAL_CONFIGURATION.BOOLEAN_RESULT', 'PLANT_SPATIAL_CONFIGURATION.CSG_SOLID', 'PLANT_SPATIAL_CONFIGURATION.RECTANGULAR_PYRAMID', 'PLANT_SPATIAL_CONFIGURATION.BLOCK', 'PLANT_SPATIAL_CONFIGURATION.TORUS', 'PLANT_SPATIAL_CONFIGURATION.RIGHT_CIRCULAR_CYLINDER', 'PLANT_SPATIAL_CONFIGURATION.SPHERE', 'PLANT_SPATIAL_CONFIGURATION.RIGHT_CIRCULAR_CONE', 'PLANT_SPATIAL_CONFIGURATION.EXTRUDED_AREA_SOLID', 'PLANT_SPATIAL_CONFIGURATION.REVOLVED_AREA_SOLID', 'PLANT_SPATIAL_CONFIGURATION.AXIS2_PLACEMENT_3D', 'PLANT_SPATIAL_CONFIGURATION.MANIFOLD_SOLID_BREP', 'PLANT_SPATIAL_CONFIGURATION.SHELL_BASED_WIREFRAME_MODEL', 'PLANT_SPATIAL_CONFIGURATION.CURVE', 'PLANT_SPATIAL_CONFIGURATION.POINT', 'PLANT_SPATIAL_CONFIGURATION.SURFACE', 'PLANT_SPATIAL_CONFIGURATION.VECTOR', 'PLANT_SPATIAL_CONFIGURATION.MEASURE_REPRESENTATION_ITEM', 'PLANT_SPATIAL_CONFIGURATION.MAPPED_ITEM' ] * TYPEOF(i)) = 1))) = 0; WR2: SIZEOF(QUERY (mi <* QUERY (item <* SELF\representation.items| ('PLANT_SPATIAL_CONFIGURATION.MAPPED_ITEM' IN TYPEOF(item)))| NOT (SIZEOF([ ('PLANT_SPATIAL_CONFIGURATION.' + 'PLANT_CSG_SHAPE_REPRESENTATION'), 'PLANT_SPATIAL_CONFIGURATION.HYBRID_SHAPE_REPRESENTATION' ] * TYPEOF(mi\mapped_item.mapping_source.mapped_representation)) = 1))) = 0; END_ENTITY; ENTITY hyperbola SUBTYPE OF (conic); semi_axis : positive_length_measure; semi_imag_axis : positive_length_measure; END_ENTITY; ENTITY id_attribute; attribute_value : identifier; identified_item : id_attribute_select; END_ENTITY; ENTITY identification_assignment ABSTRACT SUPERTYPE; assigned_id : identifier; role : identification_role; END_ENTITY; ENTITY identification_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY inline_equipment SUBTYPE OF (piping_component_definition); END_ENTITY; ENTITY instrumentation_and_control_system SUBTYPE OF (product_definition); WHERE WR1: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PLANT' IN TYPEOF(pdr.relating_product_definition.formation.of_product)) AND (pdr.relating_product_definition.frame_of_reference.name = 'functional occurrence'))) = 1; END_ENTITY; ENTITY interfering_shape_element SUBTYPE OF (shape_aspect, shape_aspect_relationship); END_ENTITY; ENTITY intersection_curve SUBTYPE OF (surface_curve); WHERE WR1: SIZEOF(SELF\surface_curve.associated_geometry) = 2; WR2: associated_surface(SELF\surface_curve.associated_geometry[1]) <> associated_surface(SELF\surface_curve.associated_geometry[2]); END_ENTITY; ENTITY invisibility; invisible_items : SET [1:?] OF invisible_item; END_ENTITY; ENTITY item_defined_transformation; name : label; description : OPTIONAL text; transform_item_1 : representation_item; transform_item_2 : representation_item; END_ENTITY; ENTITY item_identified_representation_usage; name : label; description : OPTIONAL text; definition : represented_definition; used_representation : representation; identified_item : representation_item; WHERE WR1: SELF.used_representation IN using_representations(SELF.identified_item); END_ENTITY; ENTITY known_source SUBTYPE OF (external_source, pre_defined_item); WHERE WR1: SELF\pre_defined_item.name IN [ 'ISO 13584 Dictionary', 'ISO 13584 Parts Library' ]; END_ENTITY; ENTITY length_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.LENGTH_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY length_unit SUBTYPE OF (named_unit); WHERE WR1: ((((((SELF\named_unit.dimensions.length_exponent = 1.00000) AND (SELF\named_unit.dimensions.mass_exponent = 0.00000)) AND (SELF\named_unit.dimensions.time_exponent = 0.00000)) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.00000)) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.00000)) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.00000)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.00000); END_ENTITY; ENTITY line SUBTYPE OF (curve); pnt : cartesian_point; dir : vector; WHERE WR1: dir.dim = pnt.dim; END_ENTITY; ENTITY line_branch_connection SUBTYPE OF (shape_aspect_relationship); WHERE WR1: SELF.description = 'branch location'; WR2: 'PLANT_SPATIAL_CONFIGURATION.PLANT_LINE_SEGMENT_DEFINITION' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition); WR3: 'PLANT_SPATIAL_CONFIGURATION.PLANT_LINE_SEGMENT_TERMINATION' IN TYPEOF(SELF.related_shape_aspect); END_ENTITY; ENTITY line_less_piping_system SUBTYPE OF (product_definition); END_ENTITY; ENTITY line_plant_item_branch_connection SUBTYPE OF (shape_aspect_relationship); END_ENTITY; ENTITY line_plant_item_connection SUBTYPE OF (shape_aspect_relationship); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.PLANT_LINE_SEGMENT_TERMINATION' IN TYPEOF(SELF.relating_shape_aspect); WR2: 'PLANT_SPATIAL_CONFIGURATION.PLANT_ITEM_CONNECTOR' IN TYPEOF(SELF.related_shape_aspect); WR3: SELF\shape_aspect_relationship.related_shape_aspect.of_shape\property_definition.definition\product_definition.frame_of_reference\application_context_element.name = 'physical occurrence'; END_ENTITY; ENTITY line_termination_connection SUBTYPE OF (shape_aspect_relationship); WHERE WR1: SIZEOF(TYPEOF(SELF.relating_shape_aspect) * [ 'PLANT_SPATIAL_CONFIGURATION.CONNECTION_NODE', 'PLANT_SPATIAL_CONFIGURATION.PLANT_LINE_SEGMENT_TERMINATION' ]) >= 1; WR2: 'PLANT_SPATIAL_CONFIGURATION.PLANT_LINE_SEGMENT_TERMINATION' IN TYPEOF(SELF.related_shape_aspect); END_ENTITY; ENTITY local_time; hour_component : hour_in_day; minute_component : OPTIONAL minute_in_hour; second_component : OPTIONAL second_in_minute; zone : coordinated_universal_time_offset; WHERE WR1: valid_time(SELF); END_ENTITY; ENTITY loop SUPERTYPE OF (ONEOF(vertex_loop, edge_loop, poly_loop)) SUBTYPE OF (topological_representation_item); END_ENTITY; ENTITY luminous_intensity_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY luminous_intensity_unit SUBTYPE OF (named_unit); WHERE WR1: ((((((SELF\named_unit.dimensions.length_exponent = 0.00000) AND (SELF\named_unit.dimensions.mass_exponent = 0.00000)) AND (SELF\named_unit.dimensions.time_exponent = 0.00000)) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.00000)) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.00000)) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.00000)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 1.00000); END_ENTITY; ENTITY make_from_usage_option SUBTYPE OF (product_definition_usage); ranking : INTEGER; ranking_rationale : text; quantity : measure_with_unit; WHERE WR1: NOT ('NUMBER' IN TYPEOF(quantity.value_component)) OR (quantity.value_component > 0); END_ENTITY; ENTITY manifold_solid_brep SUBTYPE OF (solid_model); outer : closed_shell; END_ENTITY; ENTITY mapped_item SUBTYPE OF (representation_item); mapping_source : representation_map; mapping_target : representation_item; WHERE WR1: acyclic_mapped_representation(using_representations(SELF), [ SELF ]); END_ENTITY; ENTITY mass_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE WR1: 'PLANT_SPATIAL_CONFIGURATION.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit.unit_component); END_ENTITY; ENTITY mass_unit SUBTYPE OF (named_unit); WHERE WR1: ((((((SELF\named_unit.dimensions.length_exponent = 0.00000) AND (SELF\named_unit.dimensions.mass_exponent = 1.00000)) AND (SELF\named_unit.dimensions.time_exponent = 0.00000)) AND (SELF\named_unit.dimensions.electric_current_exponent = 0.00000)) AND (SELF\named_unit.dimensions.thermodynamic_temperature_exponent = 0.00000)) AND (SELF\named_unit.dimensions.amount_of_substance_exponent = 0.00000)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0.00000); END_ENTITY; ENTITY material_designation; name : label; definitions : SET [1:?] OF characterized_definition; END_ENTITY; ENTITY material_designation_characterization; name : label; description : text; designation : material_designation; property : characterized_material_property; END_ENTITY; ENTITY material_property SUBTYPE OF (property_definition); UNIQUE UR1 : SELF\property_definition.name, SELF\property_definition.definition; WHERE WR1: ('PLANT_SPATIAL_CONFIGURATION.CHARACTERIZED_OBJECT' IN TYPEOF(SELF\property_definition.definition)) OR (SIZEOF(bag_to_set(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - QUERY (temp <* bag_to_set(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION'))| ('PLANT_SPATIAL_CONFIGURATION.' + 'MATERIAL_PROPERTY_REPRESENTATION' IN TYPEOF(temp)))) = 0); END_ENTITY; ENTITY material_property_representation SUBTYPE OF (property_definition_representation); dependent_environment : data_environment; END_ENTITY; ENTITY measure_representation_item SUBTYPE OF (representation_item, measure_with_unit); END_ENTITY; ENTITY measure_with_unit SUPERTYPE OF (ONEOF(length_measure_with_unit, mass_measure_with_unit, time_measure_with_unit, electric_current_measure_with_unit, thermodynamic_temperature_measure_with_unit, celsius_temperature_measure_with_unit, amount_of_substance_measure_with_unit, luminous_intensity_measure_with_unit, plane_angle_measure_with_unit, solid_angle_measure_with_unit, ratio_measure_with_unit)); value_component : measure_value; unit_component : unit; WHERE WR1: valid_units(SELF); END_ENTITY; ENTITY mechanical_component_class SUBTYPE OF (group, characterized_object); END_ENTITY; ENTITY mechanical_component_definition SUBTYPE OF (product_definition); END_ENTITY; ENTITY mechanical_connector_class SUBTYPE OF (group); END_ENTITY; ENTITY mechanical_system SUBTYPE OF (product_definition); WHERE WR1: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')| ('PLANT_SPATIAL_CONFIGURATION.PLANT' IN TYPEOF(pdr.relating_product_definition.formation.of_product)) AND (pdr.relating_product_definition.frame_of_reference.name = 'functional occurrence'))) = 1; END_ENTITY; ENTITY name_assignment ABSTRACT SUPERTYPE; assigned_name : label; DERIVE role : object_role := get_role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; ENTITY name_attribute; attribute_value : label; named_item : name_attribute_select; END_ENTITY; ENTITY named_unit SUPERTYPE OF (ONEOF(si_unit, conversion_based_unit, context_dependent_unit) ANDOR ONEOF(length_unit, mass_unit, time_unit, electric_current_unit, thermodynamic_temperature_unit, amount_of_substance_unit, luminous_intensity_unit, plane_angle_unit, solid_angle_unit, ratio_unit)); dimensions : dimensional_exponents; END_ENTITY; ENTITY object_role; name : label; description : OPTIONAL text; END_ENTITY; ENTITY offset_curve_2d SUBTYPE OF (curve); basis_curve : curve; distance : length_measure; self_intersect : LOGICAL; WHERE WR1: basis_curve.dim = 2; END_ENTITY; ENTITY offset_curve_3d SUBTYPE OF (curve); basis_curve : curve; distance : length_measure; self_intersect : LOGICAL; ref_direction : direction; WHERE WR1: (basis_curve.dim = 3) AND (ref_direction.dim = 3); END_ENTITY; ENTITY offset_surface SUBTYPE OF (surface); basis_surface : surface; distance : length_measure; self_intersect : LOGICAL; END_ENTITY; ENTITY one_direction_repeat_factor SUBTYPE OF (geometric_representation_item); repeat_factor : vector; END_ENTITY; ENTITY open_shell SUBTYPE OF (connected_face_set); END_ENTITY; ENTITY organization; id : OPTIONAL identifier; name : label; description : OPTIONAL text; END_ENTITY; ENTITY organization_assignment ABSTRACT SUPERTYPE; assigned_organization : organization; role : organization_role; END_ENTITY; ENTITY organization_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; ENTITY organizational_project; name : label; description : OPTIONAL text; responsible_organizations : SET [1:?] OF organization; DERIVE id : identifier := get_id_value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'PLANT_SPATIAL_CONFIGURATION.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; ENTITY oriented_closed_shell SUBTYPE OF (closed_shell); closed_shell_element : closed_shell; orientation : BOOLEAN; DERIVE SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation, SELF.closed_shell_element.cfs_faces); WHERE WR1: NOT ('PLANT_SPATIAL_CONFIGURATION.ORIENTED_CLOSED_SHELL' IN TYPEOF(SELF.closed_shell_element)); END_ENTITY; ENTITY oriented_edge SUBTYPE OF (edge); edge_element : edge; orientation : BOOLEAN; DERIVE SELF\edge.edge_start : vertex := boolean_choose(SELF.orientation, SELF.edge_element.edge_start, SELF.edge_element.edge_end); SELF\edge.edge_end : vertex := boolean_choose(SELF.orientation, SELF.edge_element.edge_end, SELF.edge_element.edge_start); WHERE WR1: NOT ('PLANT_SPATIAL_CONFIGURATION.ORIENTED_EDGE' IN TYPEOF(SELF.edge_element)); END_ENTITY; ENTITY oriented_face SUBTYPE OF (face); face_element : face; orientation : BOOLEAN; DERIVE SELF\face.bounds : SET [1:?] OF face_bound := conditional_reverse(SELF.orientation, SELF.face_element.bounds); WHERE WR1: NOT ('PLANT_SPATIAL_CONFIGURATION.ORIENTED_FACE' IN TYPEOF(SELF.face_element)); END_ENTITY; ENTITY oriented_open_shell SUBTYPE OF (open_shell); open_shell_element : open_shell; orientation : BOOLEAN; DERIVE SELF\connected_face_set.cfs_faces : SET [1:?] OF face := conditional_reverse(SELF.orientation, SELF.open_shell_element.cfs_faces); WHERE WR1: NOT ('PLANT_SPATIAL_CONFIGURATION.ORIENTED_OPEN_SHELL' IN TYPEOF(SELF.open_shell_element)); END_ENTITY; ENTITY oriented_path SUBTYPE OF (path); path_element : path; orientation : BOOLEAN; DERIVE SELF\path.edge_list : LIST [1:?] OF UNIQUE oriented_edge := conditional_reverse(SELF.orientation, SELF.path_element.edge_list); WHERE WR1: NOT ('PLANT_SPATIAL_CONF