(* AIM EXPRESS long form for ISO/IS 10303-223 ISO TC184/SC4/WG3 N2408 2007-12-03 Len Slovensky - Northrop Grumman/SCRA *) SCHEMA cast_parts_schema; CONSTANT dummy_gri : geometric_representation_item := representation_item('') || geometric_representation_item(); dummy_tri : topological_representation_item := representation_item('') || topological_representation_item(); END_CONSTANT; TYPE action_item = SELECT (action_resource, characterized_object, product_definition, product_definition_formation, property_definition); END_TYPE; -- action_item TYPE action_method_item = SELECT (shape_aspect, externally_defined_item, product_definition, property_definition); END_TYPE; -- action_method_item TYPE action_request_item = SELECT (document, product_definition, property_definition); END_TYPE; -- action_request_item TYPE ahead_or_behind = ENUMERATION OF (exact, ahead, behind); END_TYPE; -- ahead_or_behind TYPE amount_of_substance_measure = REAL; END_TYPE; -- amount_of_substance_measure TYPE angle_relator = ENUMERATION OF (equal, small, large); END_TYPE; -- angle_relator TYPE approved_item = SELECT (action_method, action_relationship, directed_action, product_definition_formation, versioned_action_request); END_TYPE; -- approved_item TYPE area_measure = REAL; END_TYPE; -- area_measure TYPE attribute_type = SELECT (label, text); END_TYPE; -- attribute_type TYPE axis2_placement = SELECT (axis2_placement_2d, axis2_placement_3d); END_TYPE; -- axis2_placement TYPE b_spline_curve_form = ENUMERATION OF (elliptic_arc, polyline_form, parabolic_arc, circular_arc, unspecified, hyperbolic_arc); END_TYPE; -- b_spline_curve_form TYPE b_spline_surface_form = ENUMERATION OF (surf_of_linear_extrusion, plane_surf, generalised_cone, toroidal_surf, conical_surf, spherical_surf, unspecified, ruled_surf, surf_of_revolution, cylindrical_surf, quadric_surf); END_TYPE; -- b_spline_surface_form TYPE boolean_operand = SELECT (solid_model); END_TYPE; -- boolean_operand TYPE celsius_temperature_measure = REAL; END_TYPE; -- celsius_temperature_measure TYPE characterized_action_definition = SELECT (action, action_method, action_method_relationship, action_relationship); END_TYPE; -- characterized_action_definition TYPE characterized_definition = SELECT (characterized_object, characterized_product_definition, shape_definition); END_TYPE; -- characterized_definition TYPE characterized_material_property = SELECT (material_property_representation); END_TYPE; -- characterized_material_property TYPE characterized_product_definition = SELECT (product_definition, product_definition_relationship); END_TYPE; -- characterized_product_definition TYPE characterized_resource_definition = SELECT (action_resource, action_resource_relationship, action_resource_requirement); END_TYPE; -- characterized_resource_definition TYPE classification_item = SELECT (externally_defined_representation_with_parameters); END_TYPE; -- classification_item TYPE compound_item_definition = SELECT (set_representation_item); END_TYPE; -- compound_item_definition TYPE count_measure = NUMBER; END_TYPE; -- count_measure TYPE curve_on_surface = SELECT (pcurve, surface_curve, composite_curve_on_surface); END_TYPE; -- curve_on_surface TYPE date_and_time_item = SELECT (representation); END_TYPE; -- date_and_time_item TYPE date_item = SELECT (action, action_resource, product_definition, property_definition, process_plan_security, document, versioned_action_request); END_TYPE; -- date_item TYPE date_time_or_event_occurrence = SELECT (date_time_select); END_TYPE; -- date_time_or_event_occurrence TYPE date_time_select = SELECT (date, local_time, date_and_time); END_TYPE; -- date_time_select TYPE day_in_month_number = INTEGER; WHERE wr1: (1 <= SELF) AND (SELF <= 31); END_TYPE; -- day_in_month_number TYPE derived_property_select = SELECT (property_definition, action_property, resource_property); END_TYPE; -- derived_property_select 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, property_definition_representation, representation, time_role); END_TYPE; -- description_attribute_select TYPE dimension_count = INTEGER; WHERE wr1: SELF > 0; END_TYPE; -- dimension_count TYPE dimensional_characteristic = SELECT (dimensional_location, dimensional_size); END_TYPE; -- dimensional_characteristic TYPE document_reference_item = SELECT (action, action_method, action_resource, action_request_solution, externally_defined_feature_definition, externally_defined_schema, property_definition, resource_property, requirement_for_action_resource, known_source); END_TYPE; -- document_reference_item TYPE effectivity_item = SELECT (product_definition, property_definition); END_TYPE; -- effectivity_item TYPE electric_current_measure = REAL; END_TYPE; -- electric_current_measure TYPE external_identification_item = SELECT (document, externally_defined_class, externally_defined_general_property, product_definition); END_TYPE; -- external_identification_item TYPE founded_item_select = SELECT (founded_item, representation_item); END_TYPE; -- founded_item_select TYPE geometric_set_select = SELECT (point, curve, surface); END_TYPE; -- geometric_set_select TYPE group_item = SELECT (instanced_feature, replicate_feature, transition_feature); END_TYPE; -- group_item TYPE hour_in_day = INTEGER; WHERE wr1: (0 <= SELF) AND (SELF < 24); END_TYPE; -- hour_in_day TYPE id_attribute_select = SELECT (action, address, product_category, property_definition, shape_aspect, shape_aspect_relationship, application_context, group, organizational_project, representation); END_TYPE; -- id_attribute_select TYPE identification_assignment_item = SELECT (document, document_file); END_TYPE; -- identification_assignment_item TYPE identifier = STRING; END_TYPE; -- identifier TYPE knot_type = ENUMERATION OF (uniform_knots, quasi_uniform_knots, piecewise_bezier_knots, unspecified); END_TYPE; -- knot_type TYPE label = STRING; END_TYPE; -- label TYPE length_measure = REAL; END_TYPE; -- length_measure TYPE limit_condition = ENUMERATION OF (regardless_of_feature_size, maximum_material_condition, least_material_condition); END_TYPE; -- limit_condition TYPE list_of_reversible_topology_item = LIST [0:?] OF reversible_topology_item; END_TYPE; -- list_of_reversible_topology_item TYPE luminous_intensity_measure = REAL; END_TYPE; -- luminous_intensity_measure TYPE mass_measure = REAL; END_TYPE; -- mass_measure 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, positive_length_measure, positive_plane_angle_measure, count_measure); END_TYPE; -- measure_value TYPE minute_in_hour = INTEGER; WHERE wr1: (0 <= SELF) AND (SELF <= 59); END_TYPE; -- minute_in_hour TYPE month_in_year_number = INTEGER; WHERE wr1: (1 <= SELF) AND (SELF <= 12); END_TYPE; -- month_in_year_number TYPE name_attribute_select = SELECT (action_request_solution, address, derived_unit, effectivity, person_and_organization, product_definition, property_definition_representation); END_TYPE; -- name_attribute_select TYPE ordered_item = SELECT (action,product_definition_formation); END_TYPE; -- ordered_item TYPE organization_item = SELECT (action_method, action_resource, known_source, property_definition); END_TYPE; -- organization_item TYPE parameter_value = REAL; END_TYPE; -- parameter_value TYPE pcurve_or_surface = SELECT (pcurve, surface); END_TYPE; -- pcurve_or_surface TYPE person_and_organization_item = SELECT (action, product_definition_formation, product_definition, property_definition, shape_aspect, versioned_action_request); END_TYPE; -- person_and_organization_item TYPE person_organization_select = SELECT (person, organization, person_and_organization); END_TYPE; -- person_organization_select TYPE plane_angle_measure = REAL; END_TYPE; -- plane_angle_measure TYPE positive_length_measure = length_measure; WHERE wr1: SELF > 0; END_TYPE; -- positive_length_measure TYPE positive_plane_angle_measure = plane_angle_measure; WHERE wr1: SELF > 0; END_TYPE; -- positive_plane_angle_measure TYPE preferred_surface_curve_representation = ENUMERATION OF (pcurve_s2, pcurve_s1, curve_3d); END_TYPE; -- preferred_surface_curve_representation TYPE process_or_process_relationship = SELECT (product_definition_process, property_process, relationship_with_condition); END_TYPE; -- process_or_process_relationship TYPE product_or_formation_or_definition = SELECT (product, product_definition_formation, product_definition); END_TYPE; -- product_or_formation_or_definition TYPE property_or_shape_select = SELECT (property_definition, shape_definition); END_TYPE; -- property_or_shape_select TYPE ratio_measure = REAL; END_TYPE; -- ratio_measure TYPE relationship_with_condition = SELECT (action_method_relationship, action_relationship); END_TYPE; -- relationship_with_condition TYPE represented_definition = SELECT (general_property, property_definition, property_definition_relationship, shape_aspect, shape_aspect_relationship); END_TYPE; -- represented_definition TYPE reversible_topology = SELECT (reversible_topology_item, list_of_reversible_topology_item, set_of_reversible_topology_item); END_TYPE; -- reversible_topology TYPE reversible_topology_item = SELECT (edge, path, face, face_bound, closed_shell, open_shell); END_TYPE; -- reversible_topology_item TYPE role_select = SELECT (action_assignment, action_request_assignment, approval_assignment, approval_date_time, document_reference, effectivity_assignment, group_assignment, security_classification_assignment); END_TYPE; -- role_select TYPE second_in_minute = REAL; WHERE wr1: (0 <= SELF) AND (SELF <= 60); END_TYPE; -- second_in_minute TYPE security_classification_item = SELECT (action, action_method, product_definition_formation); END_TYPE; -- security_classification_item TYPE set_of_reversible_topology_item = SET [0:?] OF reversible_topology_item; END_TYPE; -- set_of_reversible_topology_item TYPE set_representation_item = SET [1:?] OF representation_item; END_TYPE; -- set_representation_item TYPE shape_definition = SELECT (product_definition_shape, shape_aspect, shape_aspect_relationship); END_TYPE; -- shape_definition TYPE shell = SELECT (open_shell, closed_shell); END_TYPE; -- shell TYPE si_prefix = ENUMERATION OF (exa, pico, mega, femto, atto, centi, nano, hecto, micro, tera, giga, milli, peta, deci, kilo, deca); END_TYPE; -- si_prefix TYPE si_unit_name = ENUMERATION OF (hertz, degree_celsius, siemens, sievert, lux, watt, ohm, second, becquerel, pascal, henry, tesla, volt, joule, kelvin, ampere, gram, steradian, mole, lumen, gray, candela, farad, radian, newton, metre, weber, coulomb); END_TYPE; -- si_unit_name TYPE solid_angle_measure = REAL; END_TYPE; -- solid_angle_measure TYPE source_item = SELECT (identifier); END_TYPE; -- source_item TYPE supported_item = SELECT (action_directive, action, action_method); END_TYPE; -- supported_item TYPE text = STRING; END_TYPE; -- text TYPE thermodynamic_temperature_measure = REAL; END_TYPE; -- thermodynamic_temperature_measure TYPE time_item = SELECT (action_property, action_request_solution); END_TYPE; -- time_item TYPE time_measure = REAL; END_TYPE; -- time_measure TYPE tolerance_method_definition = SELECT (tolerance_value, limits_and_fits); END_TYPE; -- tolerance_method_definition TYPE tolerance_select = SELECT (geometric_tolerance, plus_minus_tolerance); END_TYPE; -- tolerance_select TYPE transformation = SELECT (functionally_defined_transformation); END_TYPE; -- transformation TYPE transition_code = ENUMERATION OF (discontinuous, cont_same_gradient_same_curvature, cont_same_gradient, continuous); END_TYPE; -- transition_code TYPE trimming_select = SELECT (cartesian_point, parameter_value); END_TYPE; -- trimming_select TYPE unit = SELECT (named_unit, derived_unit); END_TYPE; -- unit TYPE value_qualifier = SELECT (precision_qualifier, type_qualifier, uncertainty_qualifier); END_TYPE; -- value_qualifier TYPE vector_or_direction = SELECT (vector, direction); END_TYPE; -- vector_or_direction TYPE volume_measure = REAL; END_TYPE; -- volume_measure TYPE year_number = INTEGER; END_TYPE; -- year_number ENTITY action; name : label; description : OPTIONAL text; chosen_method : action_method; DERIVE id : identifier := get_id_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- action ENTITY action_assignment ABSTRACT SUPERTYPE; assigned_action : action; DERIVE role : object_role := get_role(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- action_assignment ENTITY action_directive; name : label; description : OPTIONAL text; analysis : text; comment : text; requests : SET [1:?] OF versioned_action_request; END_ENTITY; -- action_directive ENTITY action_method; name : label; description : OPTIONAL text; consequence : text; purpose : text; END_ENTITY; -- action_method ENTITY action_method_assignment ABSTRACT SUPERTYPE; assigned_action_method : action_method; role : action_method_role; END_ENTITY; -- action_method_assignment ENTITY action_method_relationship; name : label; description : OPTIONAL text; relating_method : action_method; related_method : action_method; END_ENTITY; -- action_method_relationship ENTITY action_method_role; name : label; description : OPTIONAL text; END_ENTITY; -- action_method_role ENTITY action_method_with_associated_documents SUBTYPE OF (action_method); documents : SET [1:?] OF document; END_ENTITY; -- action_method_with_associated_documents ENTITY action_property; name : label; description : text; definition : characterized_action_definition; END_ENTITY; -- action_property ENTITY action_property_relationship; name : label; description : text; relating_action_property : action_property; related_action_property : action_property; WHERE wr1: relating_action_property :<>: related_action_property; END_ENTITY; -- action_property_relationship ENTITY action_property_representation; name : label; description : text; property : action_property; representation : representation; END_ENTITY; -- action_property_representation ENTITY action_relationship; name : label; description : OPTIONAL text; relating_action : action; related_action : action; END_ENTITY; -- action_relationship ENTITY action_request_assignment ABSTRACT SUPERTYPE; assigned_action_request : versioned_action_request; DERIVE role : object_role := get_role(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- action_request_assignment 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,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; wr2: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- action_request_solution ENTITY action_resource; name : label; description : OPTIONAL text; usage : SET [1:?] OF supported_item; kind : action_resource_type; END_ENTITY; -- action_resource ENTITY action_resource_relationship; name : label; description : OPTIONAL text; relating_resource : action_resource; related_resource : action_resource; END_ENTITY; -- action_resource_relationship ENTITY action_resource_requirement; name : label; description : text; kind : resource_requirement_type; OPERATIONS : SET [1:?] OF characterized_action_definition; END_ENTITY; -- action_resource_requirement ENTITY action_resource_type; name : label; END_ENTITY; -- action_resource_type ENTITY action_status; status : label; assigned_action : executed_action; END_ENTITY; -- action_status ENTITY activity_execution_result SUBTYPE OF (executed_action); WHERE wr1: NOT (SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (SIZEOF( QUERY ( apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | ('CAST_PARTS_SCHEMA.ACTIVITY_RESULT_RECORD' IN TYPEOF(apr .representation)) )) = 1) )) = 0); wr2: SIZEOF(QUERY ( ppa <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROCESS_PROPERTY_ASSOCIATION.PROCESS') | ((ppa.description = 'validation part shape') AND ( 'CAST_PARTS_SCHEMA.SAMPLED_SET' IN TYPEOF(ppa. property_or_shape))) )) = 1; END_ENTITY; -- activity_execution_result ENTITY activity_result_record SUBTYPE OF (representation); WHERE wr1: SIZEOF(QUERY ( dt <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DATE_AND_TIME_ASSIGNMENT.ITEMS') | (dt\date_and_time_assignment.role.name = 'production date') )) = 1; END_ENTITY; -- activity_result_record ENTITY address; internal_location : OPTIONAL label; street_number : OPTIONAL label; street : OPTIONAL label; postal_box : OPTIONAL label; town : OPTIONAL label; region : OPTIONAL label; postal_code : OPTIONAL label; country : OPTIONAL label; facsimile_number : OPTIONAL label; telephone_number : OPTIONAL label; electronic_mail_address : OPTIONAL label; telex_number : OPTIONAL label; DERIVE name : label := get_name_value(SELF); url : identifier := get_id_value(SELF); WHERE wr1: ((((((((((EXISTS(internal_location) OR EXISTS(street_number)) OR EXISTS(street)) OR EXISTS(postal_box)) OR EXISTS(town)) OR EXISTS(region)) OR EXISTS(postal_code)) OR EXISTS(country)) OR EXISTS(facsimile_number)) OR EXISTS(telephone_number)) OR EXISTS(electronic_mail_address)) OR EXISTS(telex_number); END_ENTITY; -- address ENTITY advanced_brep_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([ 'CAST_PARTS_SCHEMA.MANIFOLD_SOLID_BREP', 'CAST_PARTS_SCHEMA.FACETED_BREP', 'CAST_PARTS_SCHEMA.MAPPED_ITEM', 'CAST_PARTS_SCHEMA.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1)) )) = 0; wr2: SIZEOF(QUERY ( it <* SELF.items | (SIZEOF([ 'CAST_PARTS_SCHEMA.MANIFOLD_SOLID_BREP', 'CAST_PARTS_SCHEMA.MAPPED_ITEM'] * TYPEOF(it)) = 1) )) > 0; wr3: SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | ( 'CAST_PARTS_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | ( NOT (SIZEOF(QUERY ( csh <* msb_shells(msb) | (NOT (SIZEOF( QUERY ( fcs <* csh\connected_face_set.cfs_faces | (NOT ( 'CAST_PARTS_SCHEMA.ADVANCED_FACE' IN TYPEOF(fcs))) )) = 0)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( msb <* QUERY ( it <* items | ( 'CAST_PARTS_SCHEMA.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) ) | ( 'CAST_PARTS_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\ manifold_solid_brep.outer)) )) = 0; wr5: SIZEOF(QUERY ( brv <* QUERY ( it <* items | ( 'CAST_PARTS_SCHEMA.BREP_WITH_VOIDS' IN TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* brv\brep_with_voids.voids | csh\ oriented_closed_shell.orientation )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( mi <* QUERY ( it <* items | ( 'CAST_PARTS_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)) ) | (NOT ( 'CAST_PARTS_SCHEMA.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\mapped_item.mapping_source.mapped_representation))) )) = 0; END_ENTITY; -- advanced_brep_shape_representation ENTITY advanced_face SUBTYPE OF (face_surface); WHERE wr1 : SIZEOF(['CAST_PARTS_SCHEMA.ELEMENTARY_SURFACE', 'CAST_PARTS_SCHEMA.B_SPLINE_SURFACE', 'CAST_PARTS_SCHEMA.SWEPT_SURFACE'] * TYPEOF(face_geometry)) = 1; wr2 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'CAST_PARTS_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | ( NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path.edge_list | (NOT ('CAST_PARTS_SCHEMA.EDGE_CURVE' IN TYPEOF(oe\ oriented_edge.edge_element))) )) = 0)) )) = 0; wr3 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'CAST_PARTS_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | ( NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path.edge_list | (NOT (SIZEOF(['CAST_PARTS_SCHEMA.LINE', 'CAST_PARTS_SCHEMA.CONIC','CAST_PARTS_SCHEMA.POLYLINE', 'CAST_PARTS_SCHEMA.SURFACE_CURVE', 'CAST_PARTS_SCHEMA.B_SPLINE_CURVE'] * TYPEOF(oe. edge_element\edge_curve.edge_geometry)) = 1)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'CAST_PARTS_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | ( NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path.edge_list | (NOT ((('CAST_PARTS_SCHEMA.VERTEX_POINT' IN TYPEOF(oe\edge. edge_start)) AND ('CAST_PARTS_SCHEMA.CARTESIAN_POINT' IN TYPEOF(oe\edge.edge_start\vertex_point.vertex_geometry))) AND (('CAST_PARTS_SCHEMA.VERTEX_POINT' IN TYPEOF(oe\edge. edge_end)) AND ('CAST_PARTS_SCHEMA.CARTESIAN_POINT' IN TYPEOF(oe\edge.edge_end\vertex_point.vertex_geometry))))) )) = 0)) )) = 0; wr5 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'CAST_PARTS_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | ( 'CAST_PARTS_SCHEMA.ORIENTED_PATH' IN TYPEOF(elp_fbnds.bound)) )) = 0; wr6 : (NOT ('CAST_PARTS_SCHEMA.SWEPT_SURFACE' IN TYPEOF( face_geometry))) OR (SIZEOF(['CAST_PARTS_SCHEMA.LINE', 'CAST_PARTS_SCHEMA.CONIC','CAST_PARTS_SCHEMA.POLYLINE', 'CAST_PARTS_SCHEMA.B_SPLINE_CURVE'] * TYPEOF(face_geometry\ swept_surface.swept_curve)) = 1); wr7 : SIZEOF(QUERY ( vlp_fbnds <* QUERY ( bnds <* bounds | ( 'CAST_PARTS_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (('CAST_PARTS_SCHEMA.VERTEX_POINT' IN TYPEOF(vlp_fbnds \face_bound.bound\vertex_loop.loop_vertex)) AND ( 'CAST_PARTS_SCHEMA.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([ 'CAST_PARTS_SCHEMA.EDGE_LOOP', 'CAST_PARTS_SCHEMA.VERTEX_LOOP'] * TYPEOF(bnd.bound)) = 1)) )) = 0; wr9 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'CAST_PARTS_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | ( NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path.edge_list | (('CAST_PARTS_SCHEMA.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 ( 'CAST_PARTS_SCHEMA.PCURVE' IN TYPEOF(sc_ag))) )) = 0))) )) = 0)) )) = 0; wr10: ((NOT ('CAST_PARTS_SCHEMA.SWEPT_SURFACE' IN TYPEOF( face_geometry))) OR ((NOT ('CAST_PARTS_SCHEMA.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 | ('CAST_PARTS_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path.edge_list | (( 'CAST_PARTS_SCHEMA.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; -- advanced_face ENTITY allowed_time SUBTYPE OF (action_property); WHERE wr1: NOT (SIZEOF(QUERY ( apr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY ( it <* apr.representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.TIME_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'allowance factor')) )) = 1) )) = 0); wr2: NOT (SIZEOF(QUERY ( apr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY ( it <* apr.representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.TIME_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'standard time')) )) = 1) )) = 0); wr3: NOT (SIZEOF(QUERY ( apr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY ( it <* apr.representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'allowed type')) )) <= 1) )) = 0); wr4: SIZEOF(QUERY ( apr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY ( it <* apr.representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'allowed time source')) )) = 1) )) = 1; END_ENTITY; -- allowed_time ENTITY alternate_action_method_relationship SUBTYPE OF (action_method_relationship); WHERE wr1: 'CAST_PARTS_SCHEMA.PROCESS_PLAN_ACTIVITY' IN TYPEOF(SELF. related_method); wr2: 'CAST_PARTS_SCHEMA.PROCESS_PLAN_ACTIVITY' IN TYPEOF(SELF. relating_method); END_ENTITY; -- alternate_action_method_relationship ENTITY alternate_plan_relationship SUBTYPE OF (action_relationship); WHERE wr1: 'CAST_PARTS_SCHEMA.PROCESS_PLAN_VERSION' IN TYPEOF(SELF. related_action); wr2: 'CAST_PARTS_SCHEMA.PROCESS_PLAN_VERSION' IN TYPEOF(SELF. relating_action); END_ENTITY; -- alternate_plan_relationship ENTITY ancillary_activity SUBTYPE OF (process_plan_activity); END_ENTITY; -- ancillary_activity ENTITY ancillary_setup SUBTYPE OF (process_plan_activity); END_ENTITY; -- ancillary_setup ENTITY angular_location SUBTYPE OF (dimensional_location); angle_selection : angle_relator; END_ENTITY; -- angular_location ENTITY angular_size SUBTYPE OF (dimensional_size); angle_selection : angle_relator; END_ENTITY; -- angular_size ENTITY angularity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) < 3; END_ENTITY; -- angularity_tolerance ENTITY apex SUBTYPE OF (derived_shape_aspect); END_ENTITY; -- apex 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,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; wr2: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- application_context ENTITY application_context_element SUPERTYPE OF (ONEOF (product_context,product_definition_context)); name : label; frame_of_reference : application_context; END_ENTITY; -- application_context_element ENTITY application_protocol_definition; status : label; application_interpreted_model_schema_name : label; application_protocol_year : year_number; application : application_context; END_ENTITY; -- application_protocol_definition ENTITY applied_action_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF action_item; END_ENTITY; -- applied_action_assignment ENTITY applied_action_method_assignment SUBTYPE OF (action_method_assignment); items : SET [1:?] OF action_method_item; END_ENTITY; -- applied_action_method_assignment ENTITY applied_action_request_assignment SUBTYPE OF (action_request_assignment); items : SET [1:?] OF action_request_item; END_ENTITY; -- applied_action_request_assignment ENTITY applied_approval_assignment SUBTYPE OF (approval_assignment); items : SET [1:?] OF approved_item; END_ENTITY; -- applied_approval_assignment ENTITY applied_area SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF. of_shape); wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT ((2 <= SIZEOF(impl_rep. used_representation.items)) AND (SIZEOF(impl_rep. used_representation.items) <= 3))) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr. used_representation.items | (NOT (srwp_i.name IN [ 'orientation','effective length','maximum length'])) )) > 0)) )) = 0) )) = 0; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'effective length')) )) = 1)) )) = 0)) )) <= 1; wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'maximum length')) )) <= 1)) )) = 0)) )) = 0; wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; END_ENTITY; -- applied_area ENTITY applied_classification_assignment SUBTYPE OF (classification_assignment); items : SET [1:?] OF classification_item; END_ENTITY; -- applied_classification_assignment ENTITY applied_date_and_time_assignment SUBTYPE OF (date_and_time_assignment); items : SET [1:?] OF date_and_time_item; END_ENTITY; -- applied_date_and_time_assignment ENTITY applied_date_assignment SUBTYPE OF (date_assignment); items : SET [1:?] OF date_item; END_ENTITY; -- applied_date_assignment ENTITY applied_document_reference SUBTYPE OF (document_reference); items : SET [1:?] OF document_reference_item; END_ENTITY; -- applied_document_reference ENTITY applied_document_usage_constraint_assignment SUBTYPE OF (document_usage_constraint_assignment); items : SET [1:?] OF document_reference_item; END_ENTITY; -- applied_document_usage_constraint_assignment ENTITY applied_effectivity_assignment SUBTYPE OF (effectivity_assignment); items : SET [1:?] OF effectivity_item; END_ENTITY; -- applied_effectivity_assignment ENTITY applied_external_identification_assignment SUPERTYPE OF (ONEOF (library_property_version_assignment, library_class_version_assignment)) SUBTYPE OF (external_identification_assignment); items : SET [1:?] OF external_identification_item; END_ENTITY; -- applied_external_identification_assignment ENTITY applied_group_assignment SUBTYPE OF (group_assignment); items : SET [1:?] OF group_item; END_ENTITY; -- applied_group_assignment ENTITY applied_identification_assignment SUBTYPE OF (identification_assignment); items : SET [1:?] OF identification_assignment_item; END_ENTITY; -- applied_identification_assignment ENTITY applied_library_assignment SUBTYPE OF (applied_classification_assignment); WHERE wr1: SELF\classification_assignment.role.name = 'definitional class membership'; wr2: (SELF\classification_assignment.assigned_class.name = 'library identifier') AND ( 'CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_CLASS' IN TYPEOF(SELF\ classification_assignment.assigned_class)); wr3: SIZEOF(QUERY ( edir <* USEDIN(SELF.assigned_class, 'CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATED_ITEM') | (((edir.name = 'name scope') AND ( 'CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_GENERAL_PROPERTY' IN TYPEOF(edir.relating_item))) AND (SIZEOF(QUERY ( gpa <* USEDIN(edir.relating_item,'CAST_PARTS_SCHEMA.GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION') | ((gpa.name = 'definitional') AND (SIZEOF(QUERY ( pdr <* USEDIN(gpa.derived_definition,'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((pdr.used_representation.name = 'property value') AND ( SIZEOF(QUERY ( ri <* pdr.used_representation.items | ( 'CAST_PARTS_SCHEMA.VALUE_REPRESENTATION_ITEM' IN TYPEOF(ri)) )) = 1)) )) = 1)) )) = 1)) )) = 1; END_ENTITY; -- applied_library_assignment ENTITY applied_organization_assignment SUBTYPE OF (organization_assignment); items : SET [1:?] OF organization_item; END_ENTITY; -- applied_organization_assignment ENTITY applied_person_and_organization_assignment SUBTYPE OF (person_and_organization_assignment); items : SET [1:?] OF person_and_organization_item; END_ENTITY; -- applied_person_and_organization_assignment ENTITY applied_security_classification_assignment SUBTYPE OF (security_classification_assignment); items : SET [1:?] OF security_classification_item; END_ENTITY; -- applied_security_classification_assignment ENTITY applied_time_assignment SUBTYPE OF (time_assignment); items : SET [1:?] OF time_item; END_ENTITY; -- applied_time_assignment ENTITY approval; status : approval_status; level : label; END_ENTITY; -- approval ENTITY approval_assignment ABSTRACT SUPERTYPE; assigned_approval : approval; DERIVE role : object_role := get_role(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- approval_assignment ENTITY approval_date_time; date_time : date_time_select; dated_approval : approval; DERIVE role : object_role := get_role(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- approval_date_time ENTITY approval_person_organization; person_organization : person_organization_select; authorized_approval : approval; role : approval_role; END_ENTITY; -- approval_person_organization ENTITY approval_role; role : label; DERIVE description : text := get_description_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- approval_role ENTITY approval_status; name : label; END_ENTITY; -- approval_status ENTITY assembly SUBTYPE OF (non_casting_activity); WHERE (* ------------ pattern section assembly sequence ---------- *) wr1: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'pattern section assembly sequence') )))) >=0 ))))>=1; (* ------------ foam pattern coating density ---------- *) wr2: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'foam pattern coating density') )))) <=1 ))))>=1; END_ENTITY; -- assembly ENTITY assembly_component_usage SUPERTYPE OF (next_assembly_usage_occurrence) SUBTYPE OF (product_definition_usage); reference_designator : OPTIONAL identifier; END_ENTITY; -- assembly_component_usage ENTITY axis1_placement SUBTYPE OF (placement); axis : OPTIONAL direction; DERIVE z : direction := NVL(normalise(axis),dummy_gri || direction([0,0,1])); WHERE wr1: SELF\geometric_representation_item.dim = 3; END_ENTITY; -- axis1_placement 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; -- axis2_placement_2d 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); END_ENTITY; -- axis2_placement_3d 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: ((('CAST_PARTS_SCHEMA.UNIFORM_CURVE' IN TYPEOF(SELF)) OR ( 'CAST_PARTS_SCHEMA.QUASI_UNIFORM_CURVE' IN TYPEOF(SELF))) OR ('CAST_PARTS_SCHEMA.BEZIER_CURVE' IN TYPEOF(SELF))) OR ( 'CAST_PARTS_SCHEMA.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY; -- b_spline_curve 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; -- b_spline_curve_with_knots 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: ((('CAST_PARTS_SCHEMA.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ( 'CAST_PARTS_SCHEMA.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF))) OR ('CAST_PARTS_SCHEMA.BEZIER_SURFACE' IN TYPEOF(SELF))) OR ('CAST_PARTS_SCHEMA.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF( SELF)); END_ENTITY; -- b_spline_surface 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; -- b_spline_surface_with_knots ENTITY bankout_frame SUBTYPE OF (core_equipment); WHERE wr1: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'material type') )))) =1 ))))>=1; END_ENTITY; -- bankout_frame ENTITY bench_inspection SUBTYPE OF (inspection_activity); END_ENTITY; -- bench_inspection ENTITY bezier_curve SUBTYPE OF (b_spline_curve); END_ENTITY; -- bezier_curve ENTITY bezier_surface SUBTYPE OF (b_spline_surface); END_ENTITY; -- bezier_surface ENTITY boss SUBTYPE OF (feature_definition); WHERE wr1 : SELF\characterized_object.description IN ['circular','complex', 'rectangular']; wr2 : SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'boss height occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND (('CAST_PARTS_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar))) ) | ((( 'CAST_PARTS_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr. relating_shape_aspect)) AND (sdr.relating_shape_aspect. description = 'linear')) AND (sdr.name = 'boss height')) )) = 1)) )) = 1)) )) = 0; wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND ((1 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 2))) )) = 1) )) = 1; wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr. used_representation.items | ((srwp_i.name = 'orientation') OR (srwp_i.name = 'fillet radius')) )) = SIZEOF(pdr. used_representation.items))) )) = 1) )) = 1; wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'fillet radius')) )) <= 1)) )) = 0)) )) = 0; wr6 : (NOT (SELF\characterized_object.description = 'circular')) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'circular profile occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); wr7 : SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'top condition occurrence') AND (SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'boss top usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | ('CAST_PARTS_SCHEMA.BOSS_TOP' IN TYPEOF( fcr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0; wr8 : (NOT (SELF\characterized_object.description = 'circular')) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'change in diameter occurrence') AND (SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'taper usage') AND ('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (('CAST_PARTS_SCHEMA.TAPER' IN TYPEOF(fcr .related_shape_aspect)) AND ('CAST_PARTS_SCHEMA.BOSS' IN TYPEOF(fcr.relating_shape_aspect))) )) = 1)) )) <= 1)) )) = 0); wr9 : (NOT (SELF\characterized_object.description = 'complex')) OR ( SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'enclosed boundary occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (SIZEOF(['CAST_PARTS_SCHEMA.NGON_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.CLOSED_PATH_PROFILE'] * TYPEOF(sdr. relating_shape_aspect)) = 1) )) = 1)) )) = 1)) )) = 0); wr10: (NOT (SELF\characterized_object.description IN ['complex', 'rectangular'])) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'change in boundary occurrence') AND (SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ((sar.description = 'taper usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | ((('CAST_PARTS_SCHEMA.TAPER' IN TYPEOF( fcr.related_shape_aspect)) AND ('CAST_PARTS_SCHEMA.BOSS' IN TYPEOF(fcr.relating_shape_aspect))) AND (fcr. related_shape_aspect.description IN ['angle taper', 'directed taper'])) )) = 1)) )) <= 1)) )) = 0); wr11: (NOT (SELF\characterized_object.description = 'rectangular')) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'rectangular profile occurrence') AND ( SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); wr12: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0; END_ENTITY; -- boss ENTITY boss_top SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SELF.description IN ['planar','complex']; wr3: (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); wr4: (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) )) = 1)) )) = 0); wr5: (NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0); wr6: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | (((sar.description = 'boss top usage') AND (sar.name IN ['boss height start', 'boss height end'])) AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (((fcr.related_shape_aspect.description = 'top condition occurrence') AND ('CAST_PARTS_SCHEMA.BOSS' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND ('CAST_PARTS_SCHEMA.BOSS_TOP' IN TYPEOF(fcr. relating_shape_aspect))) )) >= 1; wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) <= 1)) )) = 0; wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0; wr9: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'top radius')) )) <= 1)) )) = 0)) )) = 0; END_ENTITY; -- boss_top ENTITY boundary_condition SUBTYPE OF (action_method); WHERE wr1: SIZEOF(QUERY ( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY ( eds <* ama.items | (( 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (SIZEOF(QUERY ( pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( mri <* pd.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PROPERTY_RELATIONSHIP'] * TYPEOF(mri)) = 1) AND (mri.name = 'condition value')) )) = 1) )) = 1)) )) = 1))) )) = 0; wr2: NOT (SIZEOF(QUERY ( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY ( eds <* ama.items | ( 'CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(eds)) )) = 1)) )) = 0); END_ENTITY; -- boundary_condition ENTITY bounded_curve SUPERTYPE OF (ONEOF (polyline,b_spline_curve,composite_curve)) SUBTYPE OF (curve); END_ENTITY; -- bounded_curve ENTITY bounded_surface SUPERTYPE OF (b_spline_surface) SUBTYPE OF (surface); END_ENTITY; -- bounded_surface ENTITY brep_with_voids SUBTYPE OF (manifold_solid_brep); voids : SET [1:?] OF oriented_closed_shell; END_ENTITY; -- brep_with_voids 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; -- calendar_date ENTITY cartesian_point SUBTYPE OF (point); coordinates : LIST [1:3] OF length_measure; END_ENTITY; -- cartesian_point 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); WHERE wr1: scl > 0; END_ENTITY; -- cartesian_transformation_operator 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; -- cartesian_transformation_operator_3d ENTITY cast_part SUBTYPE OF (product_definition); WHERE wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ( 'CAST_PARTS_SCHEMA.CASTING_INSTANCED_FEATURE' IN TYPEOF (sa) )))>=1; END_ENTITY; -- cast_part ENTITY cast_part_with_rigging SUBTYPE OF (product_definition); WHERE wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ( 'CAST_PARTS_SCHEMA.CASTING_INSTANCED_FEATURE' IN TYPEOF (sa) )))>=1; wr2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | (SIZEOF([ 'CAST_PARTS_SCHEMA.CASTING_INSTANCED_FEATURE', 'CAST_PARTS_SCHEMA.GATING_SYSTEM'] * TYPEOF(sa)) = 2)))=1; END_ENTITY; -- cast_part_with_rigging ENTITY casting_activity SUBTYPE OF (process_plan_activity); WHERE wr1: SIZEOF(QUERY ( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY ( eds <* ama.items | ( 'CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_SCHEMA' IN TYPEOF(eds)) )) <= 1)) )) <= 1; END_ENTITY; -- casting_activity ENTITY casting_design_feature SUBTYPE OF (casting_feature_definition); WHERE wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | ('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; (* ***** casting_design_feature to orientation (as placement) ***** *) wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) =1 ))))=1; (* ---------- draft ------------- *) wr3: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'draft')) )) =1 ))))=1; (* ***** machine_stock ***** *) wr4: SIZEOF(QUERY ( co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ('CAST_PARTS_SCHEMA.MACHINE_ALLOWANCE' IN TYPEOF(co)) )) <= 1; END_ENTITY; -- casting_design_feature ENTITY casting_envelope_requirement SUBTYPE OF (property_definition); WHERE (* ----- to numeric_parameter(as part_height) ----*) wr1:(NOT (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'part height')) )) =0 )) )) )=0)); (* ----- to numeric_parameter(as part_length) ----*) wr2:(NOT (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'part length')) )) =0 )) )) )=0)); (* ----- to numeric_parameter(as part_width) ----*) wr3:(NOT (SIZEOF(QUERY (pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'part width')) )) =0 )) )) )=0)); END_ENTITY; -- casting_envelope_requirement ENTITY casting_equipment SUPERTYPE OF (ONEOF (core_equipment,ejector_equipment,shakeout, finishing_equipment,molding_equipment,melting_equipment)) SUBTYPE OF (machine); WHERE (* ---- equipment_name ---- *) wr1: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')| (('CAST_PARTS_SCHEMA.ORGANIZATION' IN TYPEOF(adr.assigned_organization)) AND (adr.assigned_organization.description = 'equipment company name') ) )) = 1; (* ---- equipment_type---- *) wr2: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'equipment type') )))) =1 ))))>=1; (* ---- equipment to controller (as controlled_by) ---- *) wr3: SIZEOF(QUERY ( arr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE_RELATIONSHIP.RELATED_RESOURCE')| (('CAST_PARTS_SCHEMA.MACHINE_ELEMENT_RELATIONSHIP' IN TYPEOF(arr)) AND ('CAST_PARTS_SCHEMA.CONTROLLER' IN TYPEOF(arr.relating_resource) )))) = 1; (* ---- equipment to in_facility_location (as location) ---- *) wr4: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.IN_FACILITY_LOCATION' IN TYPEOF(pdr.representation)) AND (pdr.representation.name='location'))))<=1; END_ENTITY; -- equipment ENTITY casting_feature_definition SUPERTYPE OF (ONEOF (sand_cast_design_feature,die_design_feature, ejector_design_feature,gating_design_feature,casting_design_feature, investment_design_feature)) SUBTYPE OF (characterized_object); WHERE wr1: SIZEOF(['CAST_PARTS_SCHEMA.EJECTOR_DESIGN_FEATURE', 'CAST_PARTS_SCHEMA.CASTING_DESIGN_FEATURE', 'CAST_PARTS_SCHEMA.GATING_DESIGN_FEATURE', 'CAST_PARTS_SCHEMA.DIE_DESIGN_FEATURE', 'CAST_PARTS_SCHEMA.INVESTMENT_DESIGN_FEATURE', 'CAST_PARTS_SCHEMA.SAND_CAST_DESIGN_FEATURE'] * TYPEOF(SELF)) <= 1; END_ENTITY; -- casting_feature_definition ENTITY casting_feature_size SUBTYPE OF (shape_aspect); WHERE (* -------- item_size to numeric_parameter (as item_height)------------- *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'item height')) )) <=1 ))))=1; (* ------- item_size to numeric_parameter (as item_length)------------- *) wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'item length')) )) <=1 ))))=1; (* --------- item_size to numeric_parameter (as item_width)----------- *) wr3: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'item width')) )) <=1 ))))=1; (* -------- item_size to numeric_parameter (as item_diameter)----------- *) wr4: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'item diameter')) )) <=1 ))))=1; (* --------- item_size to numeric_parameter (as item_draft)----------- *) wr5:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'item draft')) )) <=1 ))))=1; END_ENTITY; -- casting_feature_size ENTITY casting_insert SUBTYPE OF (sand_cast_design_feature); WHERE (* ***** insert_name ***** *) wr1 : SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'insert name')))) =1 ))))=1; (* ***** material_type ***** *) wr2: (SIZEOF(QUERY (co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF (co)))=1); (* ***** positioning_method ***** *) wr3 : SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'positioning method')))) =1 ))))=1; END_ENTITY; -- casting_insert ENTITY casting_instanced_feature SUBTYPE OF (casting_feature_definition, shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape. definition); wr2: SELF.product_definitional; END_ENTITY; -- casting_instanced_feature ENTITY casting_method SUBTYPE OF (action_method); END_ENTITY; -- casting_method ENTITY casting_per_order SUBTYPE OF (casting_verification); WHERE wr1: NOT (SIZEOF(QUERY ( ad <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_DIRECTIVE.REQUESTS') | (NOT ( SIZEOF(QUERY ( da <* USEDIN(ad, 'CAST_PARTS_SCHEMA.DIRECTED_ACTION.DIRECTIVE') | (( 'CAST_PARTS_SCHEMA.PROPERTY_PROCESS' IN TYPEOF(da)) AND ( SIZEOF(QUERY ( ppa <* USEDIN(da, 'CAST_PARTS_SCHEMA.PROCESS_PROPERTY_ASSOCIATION.PROCESS') | ('CAST_PARTS_SCHEMA.SAMPLED_SET' IN TYPEOF(ppa. property_or_shape)) )) = 1)) )) = 0)) )) = 0); END_ENTITY; -- casting_per_order ENTITY casting_process SUBTYPE OF (casting_activity); WHERE (* ---------- core_making_process ------------- *) wr1: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'core making process') AND (it.description IN ['shell','no bake','lost form','gas cureed', 'green sand'])))) =1 ))))>=1; wr2: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'core making process') AND (it.description IN ['core presentation', 'core setting', 'die assembly', 'die handling', 'die temperature control', 'furnace loading', 'gate system removal', 'grinding', 'inspection', 'laddle loading', 'loading injection system', 'melt raw material', 'mold closing', 'mold making process', 'package and shipping', 'part routing', 'pattern handling', 'tool handling', 'pouring process', 'refractor removal', 'removal from die', 'shakeout', 'slurry process', 'sand removal', 'wax removal', 'shell', 'green sand', 'no bake', 'lost form', 'vacuum', 'static', 'tilt', 'low pressure'])))) =1 ))))>=1; wr3: SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD') | (('CAST_PARTS_SCHEMA.DEFINING_ACTION_METHOD_RELATIONSHIP' IN TYPEOF(ap)) AND ('CAST_PARTS_SCHEMA.CASTING_EQUIPMENT_SETUP' IN TYPEOF(ap.related_method)))))=1; (* ----- casting_process to mismatch_tolerance (as tolerances)---- *) wr4: (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | ('CAST_PARTS_SCHEMA.MISMATCH_TOLERANCE' IN TYPEOF (eds)) )) <=1 )) ))<=1); (* --- casting_process to production_core_box (as core_to_be_made)---- *) wr5:(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND ('CAST_PARTS_SCHEMA.PRODUCTION_CORE_BOX' IN TYPEOF (eds.definition))) )) =1 )) )) =0); (* ---- casting_process to numeric_parameter (as process_parameter) ----- *) wr6: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PROPERTY_RELATIONSHIP'] * TYPEOF (it)) = 1) AND (it.name = 'special instruction')) )) =1 )))) >=1; (* ---- casting_process to shape_aspect (as described_by) ------------- *) wr7: (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF (eds)) )) <=1 )) ))>=0); END_ENTITY; -- casting_process ENTITY casting_product_definition SUBTYPE OF (product_definition); WHERE WR1: 'CAST_PARTS_SCHEMA.APPLICATION_CONTEXT_ELEMENT' IN TYPEOF(SELF.frame_of_reference); WR2: SELF.frame_of_reference.name = 'function definition'; (* --- tooliong to cast_part (as tooling designed_for)---- *) wr3: SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | ('CAST_PARTS_SCHEMA.CAST_PART' IN TYPEOF(pdr.relating_product_definition))))=1; (* --- tooliong to date ( as date_last_used)---- *) wr4: (SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | (ada.role.name='date last used')))=1); END_ENTITY; -- casting_product_definition ENTITY casting_service_data SUBTYPE OF (customer_casting_requirement); WHERE (* ------- to corrosion_service (as corrosion_service_requirement)------ *) wr1:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.CORROSION_SERVICE' IN TYPEOF(pdr.related_property_definition)) ))>=0); (* ------ to descriptive_parameter(as comments) ---------- *) wr2:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'comments') ) )) =1 )))=0)); (* ---------- wear_with_lubrication ---------- *) wr3:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'wear or abrasion lubrication') AND (it.description IN ['good','intermitten','none'] ) ) ))=1 )))) = 0); (* -- to elevated_temperature_service (as elevated_temperature_service) *) wr4: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.ELEVATED_TEMPERATURE_SERVICE' IN TYPEOF(pdr.related_property_definition)) ))=1); (* finishing_or_machining_operations(machining_and_finishing_requirements) *) wr5: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.FINISHING_AND_MACHINING_OPERATION' IN TYPEOF(pdr.related_property_definition)) ))=1); (* -------- to material (as subject_to_abrasive_wear_by)---------- *) wr6:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'subject to abrasize wear against') ) )) =1 )))=0)); (* -------- to material (as subject_to_wear_against)---------- *) wr7:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name ='subject to wear against') ) )) =1 )))=0)); (* --- to mechanical_stress (as mechanical_stress_requirements) -------- *) wr8:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.MECHANICAL_STRESS' IN TYPEOF(pdr.related_property_definition)) ))=1); END_ENTITY; -- casting_service_data ENTITY casting_verification SUBTYPE OF (versioned_action_request); WHERE (* ------------ cavity_impression_id ----------------*) wr1:(NOT(SIZEOF(QUERY(ars <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.REQUEST') | (NOT (SIZEOF(QUERY(ap <* USEDIN(ars.method, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT (SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY(it <* apr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'cavity impression id')) )) =1 ))) =0 )))) =0 )))) =0 )); (* --- casting_verification to tolerance_requirement(as verify_with) --- *) wr2: SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.ACTION_REQUEST_ASSIGNMENT.ASSIGNED_ACTION_REQUEST') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_REQUEST_ASSIGNMENT' IN TYPEOF(ada)) AND (NOT(SIZEOF(QUERY(ari <* ada.items | 'CAST_PARTS_SCHEMA.TOLERANCE_REQUIREMENT' IN TYPEOF(ari))) =1)))))=0; (* -------- to quality_acceptance_report (as destruction) ---------- *) wr3: SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.ACTION_REQUEST_ASSIGNMENT.ASSIGNED_ACTION_REQUEST') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_REQUEST_ASSIGNMENT' IN TYPEOF(ada)) AND (NOT(SIZEOF(QUERY(ari <* ada.items | (('CAST_PARTS_SCHEMA.DOCUMENT' IN TYPEOF(ari)) AND (ari.kind.product_data_type='quality accepetance report') AND (ari\document.description='destruction')) )) =1)))))=0; (* -------- to quality_acceptance_report (as nde) ---------- *) wr4: SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.ACTION_REQUEST_ASSIGNMENT.ASSIGNED_ACTION_REQUEST') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_REQUEST_ASSIGNMENT' IN TYPEOF(ada)) AND (NOT(SIZEOF(QUERY(ari <* ada.items | (('CAST_PARTS_SCHEMA.DOCUMENT' IN TYPEOF(ari)) AND (ari.kind.product_data_type='quality accepetance report') AND (ari\document.description='nde')) )) =1)))))=0; END_ENTITY; -- casting_verification ENTITY centre_of_symmetry SUBTYPE OF (derived_shape_aspect); WHERE wr1: SIZEOF(QUERY ( sadr <* deriving_relationships | (NOT ( 'CAST_PARTS_SCHEMA.SYMMETRIC_SHAPE_ASPECT' IN TYPEOF(sadr. related_shape_aspect))) )) = 0; END_ENTITY; -- centre_of_symmetry ENTITY chamfer SUBTYPE OF (transition_feature); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'chamfer face')) )) <= 1)) )) = 0; wr2: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) ) | ((('CAST_PARTS_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(fcr.related_shape_aspect)) AND ( 'CAST_PARTS_SCHEMA.CHAMFER' IN TYPEOF(fcr. relating_shape_aspect))) AND (fcr.related_shape_aspect. description = 'first offset')) )) = 1; wr3: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) ) | ((('CAST_PARTS_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(fcr.related_shape_aspect)) AND ( 'CAST_PARTS_SCHEMA.CHAMFER' IN TYPEOF(fcr. relating_shape_aspect))) AND (fcr.related_shape_aspect. description = 'second offset')) )) = 1; END_ENTITY; -- chamfer ENTITY chamfer_offset SUBTYPE OF (shape_aspect); WHERE wr1: SELF.description IN ['first offset','second offset']; wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0; wr4: (NOT (SELF.description = 'first offset')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'offset amount')) )) = 1)) )) = 0)) )) = 0); wr5: (NOT (SELF.description = 'first offset')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'first face shape')) )) <= 1)) )) = 0); wr6: (NOT (SELF.description = 'second offset')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'offset amount')) OR ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it)) = 2) AND (it.name = 'offset angle'))) )) = 1)) )) = 0)) )) = 0); wr7: (NOT (SELF.description = 'second offset')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'second face shape')) )) <= 1)) )) = 0); wr8: SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.' + 'FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) ) | (( 'CAST_PARTS_SCHEMA.CHAMFER' IN TYPEOF(sdr. relating_shape_aspect)) AND ( 'CAST_PARTS_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(sdr. related_shape_aspect))) )) = 1; END_ENTITY; -- chamfer_offset ENTITY chaplet SUBTYPE OF (sand_cast_design_feature); WHERE (* ***** chaplet_type ***** *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'chaplet type')))) =1 ))))=1; (* ---------- chaplet to item_size (as chaplet_size) ------------- *) wr2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='chaplet reference occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'chaplet dimension usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* ***** chaplet to chaplet_pad (as pad) ***** *) wr3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='chaplet reference occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'chaplet pad reference usage') AND ('CAST_PARTS_SCHEMA.CHAPLET_PAD' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; END_ENTITY; -- chaplet ENTITY chaplet_pad SUBTYPE OF (sand_cast_design_feature); WHERE wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='chaplet pad dimension occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'chaplet pad dimension usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) =1; END_ENTITY; -- chaplet_pad ENTITY characterized_object; name : label; description : OPTIONAL text; END_ENTITY; -- characterized_object ENTITY checking_aid_tool SUBTYPE OF (customer_casting_requirement); WHERE (* ---------- aid id ------------- *) wr1:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( NOT(SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'aid id') ) ))=1 )))) = 0); (* ---------- aid name------------- *) wr2: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'aid name') ) ))=1 )))) = 0); (* ---------- aid_tool ------------- *) wr3: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'aid tool') AND (it.description IN ['fixture','guage','paper document','template'] ) ) ))=1 )))) = 0); (* ---------- revision id ------------- *) wr4: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'revision id') ) ))=1 )))) = 0); (* --- checking_aid_tool to date ( as revision_date)----- *) wr5: (SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | (ada.role.name='revision date')))=1); END_ENTITY; -- checking_aid_tool ENTITY chill SUBTYPE OF (sand_cast_design_feature); WHERE (* ---------- internal_or_external_chill------------- *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'internal or external chill') AND ((it.description = 'true') OR (it.description = 'false')))))) =1 ))))>=1; (* ---------- material_type ------------- *) wr2: SIZEOF(QUERY ( co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | ('CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF(co)) )) =1; (* ---------- chill to shape_element (as chill_area_shape)------------- *) wr3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='chill area occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'chill area shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) =1; END_ENTITY; -- chill ENTITY choke SUBTYPE OF (gating_design_feature); WHERE (* ---------- choke to item_size (as core_vent_size) ------------- *) WR1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='choke occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'choke dimension usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* -------- choke to location_element (as vent_placement)------------- *) wr2 : SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name='location'))))=1; END_ENTITY; -- choke ENTITY circle SUBTYPE OF (conic); radius : positive_length_measure; END_ENTITY; -- circle ENTITY circular_closed_profile SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 2)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) = 1)) )) = 0)) )) = 0; END_ENTITY; -- circular_closed_profile ENTITY circular_pattern SUBTYPE OF (replicate_feature); WHERE wr1: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) ) | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.related_shape_aspect)) )) = 1) )) <= 3)) )) = 0; wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT ((SIZEOF(impl_rep. used_representation.items) >= 3) AND (SIZEOF(impl_rep. used_representation.items) <= 5))) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) <= 1)) )) = 0)) )) = 0; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it)) = 2) AND (it.name = 'base feature rotation')) )) <= 1)) )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'number of features')) )) = 1)) )) = 0)) )) = 0; wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it)) = 2) AND (it.name = 'angular spacing')) )) = 1)) )) = 0)) )) = 0; wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; END_ENTITY; -- circular_pattern ENTITY circular_runout_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) <= 2; END_ENTITY; -- circular_runout_tolerance ENTITY class SUBTYPE OF (group); END_ENTITY; -- class ENTITY classification_assignment ABSTRACT SUPERTYPE; assigned_class : group; role : classification_role; END_ENTITY; -- classification_assignment ENTITY classification_role; name : label; description : OPTIONAL text; END_ENTITY; -- classification_role ENTITY closed_path_profile SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION') | ( NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION') | ( NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; END_ENTITY; -- closed_path_profile ENTITY closed_shell SUBTYPE OF (connected_face_set); END_ENTITY; -- closed_shell ENTITY coaxiality_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) <= 2; END_ENTITY; -- coaxiality_tolerance ENTITY common_datum SUBTYPE OF (composite_shape_aspect, datum); WHERE wr1: SIZEOF(SELF.component_relationships) = 2; wr2: SIZEOF(QUERY ( sar <* SELF.component_relationships | (NOT (( 'CAST_PARTS_SCHEMA.DATUM' IN TYPEOF(sar.related_shape_aspect)) AND (NOT ('CAST_PARTS_SCHEMA.COMMON_DATUM' IN TYPEOF(sar. related_shape_aspect))))) )) = 0; END_ENTITY; -- common_datum 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; -- composite_curve ENTITY composite_curve_on_surface 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; -- composite_curve_on_surface 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: 'CAST_PARTS_SCHEMA.BOUNDED_CURVE' IN TYPEOF(parent_curve); END_ENTITY; -- composite_curve_segment ENTITY composite_hole SUBTYPE OF (compound_feature); WHERE wr1: SELF\characterized_object.description IN ['counterbore', 'countersunk']; wr2: SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY ( sar <* csa.component_relationships | (( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('CAST_PARTS_SCHEMA.ROUND_HOLE' IN TYPEOF( sar.related_shape_aspect))) )) = 2)) )) = 1)) )) = 1; wr3: (NOT (SELF\characterized_object.description = 'countersunk')) OR (SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY ( sar <* csa.component_relationships | (( 'CAST_PARTS_SCHEMA.ROUND_HOLE' IN TYPEOF(sar. related_shape_aspect)) AND (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(sar.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'change in diameter occurrence') AND (SIZEOF( QUERY ( fcr2 <* QUERY ( sar2 <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((sar2.description = 'taper usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar2))) ) | ('CAST_PARTS_SCHEMA.TAPER' IN TYPEOF(fcr2 .related_shape_aspect)) )) = 1)) )) = 0)) )) = 0))) )) = 1)) )) = 1)) )) = 1); END_ENTITY; -- composite_hole ENTITY composite_shape_aspect SUBTYPE OF (shape_aspect); INVERSE component_relationships : SET [2:?] OF shape_aspect_relationship FOR relating_shape_aspect; END_ENTITY; -- composite_shape_aspect ENTITY composition_element SUBTYPE OF (material_property); WHERE (* --- element------ *) WR1: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(dri <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(dri)) AND (dri.name = 'element')) ))=1)))=0)); (* --- compositon_element to numeric_range (as amount)------ *) WR2: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(dri <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT', 'CAST_PARTS_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] * TYPEOF(dri)) = 3) AND (dri.name = 'amount')) )) =1)))=0)); END_ENTITY; -- composition_element ENTITY composition_element_record SUBTYPE OF (activity_result_record); WHERE (* -- to numeric_parameter (as actual_composition_amount) -------------*) wr1: (SIZEOF(QUERY( it <* SELF.items | (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'actual_composition amount')))=1); (* -------to compositon_element (as recorded_usage) ----------------*) wr2: (SIZEOF(QUERY( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | ('CAST_PARTS_SCHEMA.COMPOSITION_ELEMENT' IN TYPEOF(pdr.definition))))=1); END_ENTITY; -- composition_element_record ENTITY composition_inspection SUBTYPE OF (inspection_or_test_result); WHERE (* ------- to material (as composition_result) ----------------*) wr1: ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF (SELF.definition)); (* ------to material_property (as requirements)------------- *) wr2: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.MATERIAL_PROPERTY' IN TYPEOF(pdr.related_property_definition) )))=1); END_ENTITY; -- composition_inspection ENTITY compound_feature SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((csa.name = 'compound feature in solid') AND ( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa))) )) = 1)) )) = 1; wr2: SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) )) = 1)) )) = 1; wr3: SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY ( fcr <* csa.component_relationships | ( NOT ('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(fcr))) )) = 0)) )) = 1)) )) = 1; wr4: SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) )) = 1)) )) = 1; wr5: SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY ( sar <* csa.component_relationships | ( 'CAST_PARTS_SCHEMA.THREAD' IN TYPEOF(sar. related_shape_aspect)) )) = 0)) )) = 1)) )) = 1; wr6: SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY ( sar <* csa.component_relationships | (( 'CAST_PARTS_SCHEMA.COMPOUND_FEATURE' IN TYPEOF(sar. related_shape_aspect)) AND (sar.related_shape_aspect\ characterized_object.name <> SELF\characterized_object.name)) )) = 0)) )) = 1)) )) = 1; END_ENTITY; -- compound_feature ENTITY compound_representation_item SUBTYPE OF (representation_item); item_element : compound_item_definition; END_ENTITY; -- compound_representation_item ENTITY concentricity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) = 1; END_ENTITY; -- concentricity_tolerance ENTITY condition_or_assumption SUBTYPE OF (action_method); WHERE (* condition_or_assumption to numeric_parameter(as associated_property) *) wr1:(NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | ('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(mri))))=1) ))=1)))))=0)))))=0)); (* to property_relationship(as associated_property) *) wr2:(NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | ('CAST_PARTS_SCHEMA.PROPERTY_RELATIONSHIP' IN TYPEOF(mri))))=1) ))=1)))))=0)))))=0)); (* condition_or_assumption to CAST_PARTS_SCHEMA (as further_information) *) wr3: SIZEOF(QUERY (adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| ('CAST_PARTS_SCHEMA.DOCUMENT' IN TYPEOF (adr.assigned_document))))=1; END_ENTITY; -- condition_or_assumption ENTITY conic SUPERTYPE OF (ONEOF (circle,ellipse,hyperbola,parabola)) SUBTYPE OF (curve); position : axis2_placement; END_ENTITY; -- conic ENTITY conical_surface SUBTYPE OF (elementary_surface); radius : length_measure; semi_angle : plane_angle_measure; WHERE wr1: radius >= 0; END_ENTITY; -- conical_surface ENTITY connected_face_set SUPERTYPE OF (ONEOF (closed_shell,open_shell)) SUBTYPE OF (topological_representation_item); cfs_faces : SET [1:?] OF face; END_ENTITY; -- connected_face_set ENTITY context_dependent_unit SUBTYPE OF (named_unit); name : label; END_ENTITY; -- context_dependent_unit ENTITY continuous_process_relationship SUBTYPE OF (sequential_method); WHERE wr1: 'CAST_PARTS_SCHEMA.MANUFACTURING_PROCESS' IN TYPEOF(SELF. related_method); wr2: 'CAST_PARTS_SCHEMA.MANUFACTURING_PROCESS' IN TYPEOF(SELF. relating_method); wr3: SELF.description IN ['serial','batch','serial and batch']; END_ENTITY; -- continuous_process_relationship ENTITY controller SUBTYPE OF (action_resource); WHERE (* -- controller to specification (as controller_specification) *) wr1: SIZEOF(QUERY (adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| ('CAST_PARTS_SCHEMA.PROCESS_PLAN_SPECIFICATION' IN TYPEOF (adr.assigned_document))))=1; END_ENTITY; -- controller ENTITY conversion_based_unit SUBTYPE OF (named_unit); name : label; conversion_factor : measure_with_unit; END_ENTITY; -- conversion_based_unit ENTITY cooling_port SUBTYPE OF (die_design_feature); WHERE (* ---------- male_or_female------------- *) wr1:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'male or female') AND ((it.description IN ['male','female'] )) )) )) =1 )) ))>=1; (* ---------- cooling_port to item_size (as cooling_size) ----------- *) WR2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='cooling port occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'cooling port size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* -------- cooling_port to planar_element (as port_location)-------- *) wr3 : SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name='port location'))))=1; END_ENTITY; -- cooling_port 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; -- coordinated_universal_time_offset ENTITY core SUBTYPE OF (sand_cast_design_feature); WHERE (* ---------- core_type------------- *) WR1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'core type') AND ((it.description IN ['baked core','cover core','isocure','ram up core', 'ring core','setup core','slab core','so2 core'] ) ))))) =1 ))))>=1; (* ---------- material_definition ------------- *) WR2: (SIZEOF(QUERY (co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | (('CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF (co)) AND (co.name IN ['ceramic','oil bonded sand','plaster','resin coated sand'] )) ) ) =1); (* -------- core to location_element (as vent_placement)------------- *) wr3 : SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name='vent location'))))=1; (* ---------- core to sand_mold (as core_placement) ------------- *) WR4: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='core occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'core placement reference usage') AND ('CAST_PARTS_SCHEMA.SAND_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---------- core to vent ( as gas vent) ------------- *) WR5: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='core occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'gas vent reference usage') AND ('CAST_PARTS_SCHEMA.VENT' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; END_ENTITY; -- core ENTITY core_assembly SUBTYPE OF (casting_method); WHERE (* ------ core_assembly to descriptive_parameter (as hard_form) -----*) wr1: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'hard form') )))) =1 ))))>=1; (* ------------ core_assembly to proof_report (as soft_copy) --------*) wr2: ('CAST_PARTS_SCHEMA.ACTION_METHOD_WITH_ASSOCIATED_DOCUMENTS' IN TYPEOF(SELF)) AND (NOT (SIZEOF(QUERY ( doc <* SELF. documents | (doc.kind.product_data_type = 'proof report') )) = 0)); END_ENTITY; -- core_assembly ENTITY core_bench SUBTYPE OF (core_equipment); WHERE (* ---- core_required---- *) wr1: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'core required')) )) =1 ))))=1; (* ---- wax_vent---- *) wr2: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'wax vent') )))) =1 ))))>=1; END_ENTITY; -- core_bench ENTITY core_box_tooling SUBTYPE OF (casting_product_definition); WHERE (* core_box_tooling to production_core_box(as cores_for_pattern) *) wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='core box tooling occurence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production core box reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_CORE_BOX' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- core_box_tooling ENTITY core_box_vent SUBTYPE OF (representation); WHERE (* ---- material_type ---- *) wr1: SIZEOF(QUERY ( it <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'material type') AND (it.description IN ['brass','nylon', 'polyurethane','stainless steel'] ) ))) =1; (* ---- vent_type ---- *) wr2: SIZEOF(QUERY ( it <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'vent type') ))) =1; (* ---- core_box_vent to equipment_size (as dimensions) ---- *) wr3: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'diameter')) ))=1; wr4: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'draft')) ))=1; wr5: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'length')) ))=1; wr6: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'width')) ))=1; wr7: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'height')) ))=1; (* ---- core_box_vent to shape_element (as core_shape) ---- *) wr8: SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.REPRESENTATION_RELATIONSHIP.REP_1') | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(ap.rep_2)) )))=1; END_ENTITY; -- core_box_vent ENTITY core_conveyer_system SUBTYPE OF (core_equipment); WHERE (* ---- cores_required---- *) wr1: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'core required')) )) =1 ))))=1; (* ---- cycle_time---- *) wr2: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'cycle time') )))) <=1 ))))>=1; (* ---- core_conveyer_system to equipment_size (as core_box_skid)---- *) wr3: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core box skid height')) )) <=1 ))))>=1; wr4: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core box skid length')) )) <=1 ))))>=1; wr5: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core box skid width')) )) <=1 ))))>=1; wr6: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core box skid diameter')) )) <=1 ))))>=1; wr7: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core box skid draft')) )) <=1 ))))>=1; (* ---- core_conveyer_system to equipment_size (as core_plug)---- *) wr8: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core plug height')) )) <=1 ))))>=1; wr9: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core plug length')) )) <=1 ))))>=1; wr10: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core plug width')) )) <=1 ))))>=1; wr11: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core plug diameter')) )) <=1 ))))>=1; wr12: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core plug draft')) )) <=1 ))))>=1; END_ENTITY; -- core_conveyer_system ENTITY core_equipment SUBTYPE OF (casting_equipment); END_ENTITY; -- core_equipment ENTITY core_machine SUBTYPE OF (core_equipment); WHERE (* ---- core_machine to core_box_vent (as vent definition)---- *) wr1: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.CORE_BOX_VENT' IN TYPEOF(pdr.representation)))))=1; (* ---- core_machine ejector_equipment(as ejector_definition)--- *) wr2: SIZEOF(QUERY ( arr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE_RELATIONSHIP.RELATED_RESOURCE')| (('CAST_PARTS_SCHEMA.MACHINE_ELEMENT_RELATIONSHIP' IN TYPEOF(arr)) AND ('CAST_PARTS_SCHEMA.EJECTOR_EQUIPMENT' IN TYPEOF(arr.relating_resource) )))) = 1; (* --- core_machine to machine_mounting (as tool_mounting_definition)---- *) wr3: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.MACHINE_MOUNTING' IN TYPEOF(pdr.representation)) )))=1; END_ENTITY; -- core_machine ENTITY core_master SUBTYPE OF (core_box_tooling); WHERE wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; (* ---------core box master_shrink_factor----- *) wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'core box master shrink factor')) )) =1 ))))=1; END_ENTITY; -- core_master ENTITY core_print SUBTYPE OF (sand_cast_design_feature); WHERE (* core_print to numeric_parameter(as clearance) *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'clearance')) )) =1 ))))>=1; (* core_print to drafted_surface (as draft) *) wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.DRAFTED_SURFACE' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name='draft'))))=1; (* ---------- core_print to item_size (as core_print_dimensions)------ *) WR3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='core print occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'core print size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ---------- core_print to shape_element (as feature)------------- *) WR4: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='core print occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'core print shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- core_print ENTITY core_setter SUBTYPE OF (core_equipment); WHERE wr1: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'molding machine') )))) =1 ))))>=1; END_ENTITY; -- core_setter ENTITY corrosion_service SUBTYPE OF (customer_casting_requirement); WHERE (* ---- to descriptive_parameter(as corrosive_environment) ---------- *) wr1:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'corrosive environment') ) )) =1 )))=0)); (* ------- to material (as corrosive_material)---------- *) wr2:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name ='corrosive material') ) )) =1 )))=0)); (* ------- to numeric_parameter(as ph value) ---------- *) wr3:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'ph value')) )) = 1 )))=0)); (* ---- to numeric_parameter(as temperature) ---------- *) wr4:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'temperature')) )) = 1 )))=0)); END_ENTITY; -- corrosion_service ENTITY curve SUPERTYPE OF (ONEOF (line,conic,pcurve,surface_curve)) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- curve ENTITY customer_casting_requirement SUBTYPE OF (property_definition); WHERE (* ---------- new_tooling_required ---------- *) wr1:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( NOT(SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'new tooling required') AND (it.description IN ['customers tool shop','foundry tool shop'] ) ))) <=1 )) )) = 0); (* ---------- specific_comments ---------- *) wr2:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( NOT(SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'specific comments') ))) >=0 )) )) = 0); (* --- to illustration (as illustration)----- *) wr3: SIZEOF(QUERY (adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| ('CAST_PARTS_SCHEMA.ILLUSTRATION' IN TYPEOF (adr.assigned_document))))>=0; (* --- t to specification (as referenced_from)----- *) wr4: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS') | (adr.assigned_document.kind.product_data_type= 'customer casting requirements') )) >=0; (* --- to shape_aspect (as applies_to)----- *) wr5: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(pdr.related_property_definition.definition)) ))>=0); END_ENTITY; -- customer_casting_requirement ENTITY customer_simulation SUBTYPE OF (simulation_process); WHERE wr1: ('CAST_PARTS_SCHEMA.ACTION_METHOD_WITH_ASSOCIATED_DOCUMENTS' IN TYPEOF(SELF)) AND (SIZEOF(QUERY ( doc <* SELF\ action_method_with_associated_documents.documents | (doc. kind.product_data_type = 'customer tool design report') )) = 1); wr3: ('CAST_PARTS_SCHEMA.ACTION_METHOD_WITH_ASSOCIATED_DOCUMENTS' IN TYPEOF(SELF)) AND (SIZEOF(QUERY ( doc <* SELF\ action_method_with_associated_documents.documents | (doc. kind.product_data_type = 'customer design deficiency report') )) = 1); END_ENTITY; -- customer_simulation ENTITY cylindrical_surface SUBTYPE OF (elementary_surface); radius : positive_length_measure; END_ENTITY; -- cylindrical_surface ENTITY cylindricity_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1: NOT (('CAST_PARTS_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE') IN TYPEOF(SELF)); END_ENTITY; -- cylindricity_tolerance ENTITY data_curve SUBTYPE OF (representation); WHERE (* --- interpolation method------ *) wr1: SIZEOF(QUERY( sri <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (sri)) AND (sri.name='interpolation method'))))=1; (* --- x unit------ *) wr2: SIZEOF(QUERY( sri <* SELF.items| (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (sri)) AND (sri.name='x unit'))))=1; (* --- y unit------ *) wr3: SIZEOF(QUERY( sri <* SELF.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (sri)) AND (sri.name='y unit'))))=1; (* --- data_curve to curve_point (as data_points)----- *) wr4: SIZEOF(QUERY( sri <* SELF.items | (('CAST_PARTS_SCHEMA.CARTESIAN_POINT' IN TYPEOF (sri)) )))>=1; END_ENTITY; -- data_curve ENTITY data_environment; name : label; description : text; elements : SET [1:?] OF property_definition_representation; END_ENTITY; -- data_environment ENTITY date SUPERTYPE OF (calendar_date); year_component : year_number; END_ENTITY; -- date ENTITY date_and_time; date_component : date; time_component : local_time; END_ENTITY; -- date_and_time ENTITY date_and_time_assignment ABSTRACT SUPERTYPE; assigned_date_and_time : date_and_time; role : date_time_role; END_ENTITY; -- date_and_time_assignment ENTITY date_assignment ABSTRACT SUPERTYPE; assigned_date : date; role : date_role; END_ENTITY; -- date_assignment ENTITY date_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- date_role ENTITY date_time_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- date_time_role ENTITY dated_effectivity SUBTYPE OF (effectivity); effectivity_end_date : OPTIONAL date_time_or_event_occurrence; effectivity_start_date : date_time_or_event_occurrence; END_ENTITY; -- dated_effectivity ENTITY datum SUBTYPE OF (shape_aspect); identification : identifier; INVERSE established_by_relationships : SET [1:?] OF shape_aspect_relationship FOR related_shape_aspect; WHERE wr1: SIZEOF(QUERY ( x <* SELF.established_by_relationships | ( SIZEOF(TYPEOF(x.relating_shape_aspect) * [ 'CAST_PARTS_SCHEMA.DATUM_FEATURE', 'CAST_PARTS_SCHEMA.DATUM_TARGET']) <> 1) )) = 0; END_ENTITY; -- datum ENTITY datum_feature SUBTYPE OF (shape_aspect); INVERSE feature_basis_relationship : shape_aspect_relationship FOR relating_shape_aspect; WHERE wr1: SIZEOF(QUERY ( sar <* bag_to_set(USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')) | (NOT ('CAST_PARTS_SCHEMA.DATUM' IN TYPEOF(sar.related_shape_aspect))) )) = 0; wr2: SELF.product_definitional = TRUE; END_ENTITY; -- datum_feature ENTITY datum_reference; precedence : INTEGER; referenced_datum : datum; WHERE wr1: precedence > 0; END_ENTITY; -- datum_reference ENTITY datum_target SUBTYPE OF (shape_aspect); target_id : identifier; INVERSE target_basis_relationship : shape_aspect_relationship FOR relating_shape_aspect; WHERE wr1: SIZEOF(QUERY ( sar <* bag_to_set(USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT')) | (NOT ('CAST_PARTS_SCHEMA.DATUM' IN TYPEOF(sar.related_shape_aspect))) )) = 0; wr2: SELF.product_definitional = TRUE; END_ENTITY; -- datum_target ENTITY defect_prediction SUBTYPE OF (action_method); WHERE (* defect_prediction to location_element(as location) *) wr1: (NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | ('CAST_PARTS_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(mri))))=1) ))=1)))))=0)))))=0)); (* defect_prediction to shape_aspect(as defect_shape) *) wr2: (NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF (eds)) )) =1 )) ))=0)); END_ENTITY; -- defect_prediction ENTITY defining_action_method_relationship SUBTYPE OF (action_method_relationship); WHERE wr1: 'CAST_PARTS_SCHEMA.PROCESS_PLAN_ACTIVITY' IN TYPEOF(SELF. related_method); END_ENTITY; -- defining_action_method_relationship ENTITY definitional_representation SUBTYPE OF (representation); WHERE wr1: 'CAST_PARTS_SCHEMA.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\representation.context_of_items); END_ENTITY; -- definitional_representation ENTITY degenerate_toroidal_surface SUBTYPE OF (toroidal_surface); select_outer : BOOLEAN; WHERE wr1: major_radius < minor_radius; END_ENTITY; -- degenerate_toroidal_surface ENTITY derived_shape_aspect SUPERTYPE OF (ONEOF (apex,centre_of_symmetry,geometric_alignment, geometric_intersection,parallel_offset,perpendicular_to,extension, tangent)) SUBTYPE OF (shape_aspect); INVERSE deriving_relationships : SET [1:?] OF shape_aspect_deriving_relationship FOR relating_shape_aspect; END_ENTITY; -- derived_shape_aspect 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)); wr2: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- derived_unit ENTITY derived_unit_element; unit : named_unit; exponent : REAL; END_ENTITY; -- derived_unit_element ENTITY description_attribute; attribute_value : text; described_item : description_attribute_select; END_ENTITY; -- description_attribute ENTITY descriptive_representation_item SUBTYPE OF (representation_item); description : text; END_ENTITY; -- descriptive_representation_item ENTITY design_part SUBTYPE OF (product_definition); WHERE wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ( 'CAST_PARTS_SCHEMA.INSTANCED_FEATURE' IN TYPEOF (sa) )))>=1; END_ENTITY; -- design_part ENTITY design_reference SUBTYPE OF (document); WHERE wr1: SIZEOF(QUERY ( duc <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.DOCUMENT_USAGE_CONSTRAINT.SOURCE')| (duc.subject_element = 'drawing revision level'))) = 1; wr2: SIZEOF(QUERY ( adr <* QUERY ( dr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.DOCUMENT_REFERENCE.ASSIGNED_DOCUMENT')| ('CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE' IN TYPEOF(dr))) | (NOT(SIZEOF(QUERY ( d <* adr.items | ('CAST_PARTS_SCHEMA.PROCESS_PLAN_ACTIVITY' IN TYPEOF(d)) )) >= 1)))) =0; wr3: SIZEOF(QUERY(dpa <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT') | (SIZEOF(['CAST_PARTS_SCHEMA.DESIGN_PART', 'CAST_PARTS_SCHEMA.CAST_PART', 'CAST_PARTS_SCHEMA.CAST_PART_WITH_RIGGING', 'CAST_PARTS_SCHEMA.CASTING_PRODUCT_DEFINITION'] * TYPEOF(dpa.related_product))=1) ))=1; END_ENTITY; -- design_reference ENTITY die_cast_master SUBTYPE OF (die_cast_tooling); WHERE (* ---------master_shrink_factor----- *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'master shrink factor')) )) =1 ))))=1; (* ***** to production_die_cast_mold (as female_component) ***** *) wr3:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='die cast tooling occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production die cast mold female reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_DIE_CAST_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ** die_cast_master to production_die_cast_mold (as male_component) *) wr4:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='die cast tooling occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production die cast mold male reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_DIE_CAST_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ** to machining_allowance (as master_allowance_on_master_tooling) * *) wr5: (SIZEOF(QUERY (co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | 'CAST_PARTS_SCHEMA.MACHINE_ALLOWANCE' IN TYPEOF (co)))=1); END_ENTITY; -- die_cast_master ENTITY die_cast_tooling SUBTYPE OF (casting_product_definition); WHERE (* ------ die_cast_tooling to material (as material_definition) *) WR1: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| (('CAST_PARTS_SCHEMA.MAKE_FROM_USAGE_OPTION' IN TYPEOF(pdr)) AND (pdr.name='material definition') AND (SIZEOF(QUERY(mfuo <* USEDIN(pdr.related_product_definition, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF (mfuo) ))=1))))=1; (* ***** to production_die_cast_mold (as die_equipment) ***** *) wr2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='die cast tooling occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production die cast mold reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_DIE_CAST_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* ***** to in_facility_location (as tooling_location) ***** *) (* ***** to person_and_organization (as tooling_location) ***** *) wr3: (SIZEOF (QUERY(pdr <* get_property_definition_representations(SELF) | ( 'CAST_PARTS_SCHEMA.IN_FACILITY_LOCATION' IN TYPEOF ( pdr.used_representation ) ))) =1) OR (SIZEOF(QUERY(ada <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | (ada.role.name='tooling location')))=1); END_ENTITY; -- die_cast_tooling ENTITY die_clamping SUBTYPE OF (die_design_feature); WHERE (* *** die_clamping to orientation (as die_clamping_positions) ***** *) WR1:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'clamping position')))) =1 ))))=1; END_ENTITY; -- die_clamping ENTITY die_core SUBTYPE OF (die_design_feature); WHERE (* ---------- core_type------------- *) WR1:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'core type') AND ((it.description IN ['fixed core','hydralic slide', 'mechanical slide','sand core', 'salt core','ceramic'] )) )) )) =1 )) ))>=1; (* ***** metal_type ***** *) wr2: (SIZEOF(QUERY (co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF (co)))=1); (* die_core to drafted_surface (as draft) *) wr3: SIZEOF (QUERY(pdr <* get_property_definition_representations (SELF) | ( 'CAST_PARTS_SCHEMA.DRAFTED_SURFACE' IN TYPEOF ( pdr.used_representation ) ))) =1; (* ---------- die_core to item_size (as guide_pin) ------------- *) WR4: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='die core occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'guide pin size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---------- die_core to parting_surface (as parting) ------- *) wr5: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | ('CAST_PARTS_SCHEMA.PARTING_SURFACE' IN TYPEOF(pdr.used_representation)) )) = 1; (* ----- die_core to shape_aspect (as outside_shape_of_die_mold)------ *) wr6:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='die core occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'die core area shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; END_ENTITY; -- die_core ENTITY die_design_feature SUBTYPE OF (casting_feature_definition); WHERE WR1: SIZEOF(QUERY( pdr <* get_property_definition_representations (SELF) | 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF ( pdr.used_representation ) ) ) =1; (* ***** die_design_feature to orientation (as placement) ***** *) WR2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) =1 ))))=1; END_ENTITY; -- die_design_feature ENTITY die_master SUBTYPE OF (die_mold_tooling); WHERE (* ---------master_shrink_factor----- *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'master shrink factor')) )) =1 ))))=1; (* * die_master to production_die_cast_mold (as female_component) ** *) wr3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='die master occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production die mold female reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_DIE_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; (* * die_master to production_die_cast_mold (as male_component) ***** *) wr4: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='die master occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production die mold male reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_DIE_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; (* * to machining_allowance (as machining_allowance_on_master_tooling) *) wr5: (SIZEOF(QUERY (co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | 'CAST_PARTS_SCHEMA.MACHINE_ALLOWANCE' IN TYPEOF (co)))>=0); END_ENTITY; -- die_master ENTITY die_mold_tooling SUBTYPE OF (casting_product_definition); WHERE (* ------ die_mold_tooling to material (as material_definition) *) WR1: SIZEOF(QUERY (pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| (('CAST_PARTS_SCHEMA.MAKE_FROM_USAGE_OPTION' IN TYPEOF(pdr)) AND (pdr.name='material definition') AND (SIZEOF(QUERY(mfuo <* USEDIN(pdr.related_product_definition, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF (mfuo) ))=1))))=1; (* ** die_mold_tooling to production_die_mold (as die_equipment) *** *) Wr2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='die mold tooling occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production die mold reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_DIE_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) >=2 )))) >=1; (* ***** to in_facility_location (as tooling_location) ***** *) (* ***** to person_and_organization (as tooling_location) ***** *) Wr3: (SIZEOF (QUERY(pdr <* get_property_definition_representations(SELF) | ( 'CAST_PARTS_SCHEMA.IN_FACILITY_LOCATION' IN TYPEOF ( pdr.used_representation ) ))) >=1) OR (SIZEOF(QUERY(ada <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | (ada.role.name='tooling location')))>=1); END_ENTITY; -- die_mold_tooling ENTITY die_mold_vent SUBTYPE OF (die_design_feature); WHERE wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='die mold vent occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ejector pin reference usage') AND ('CAST_PARTS_SCHEMA.EJECTOR_PIN' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- die_mold_vent ENTITY dimension_related_tolerance_zone_element; related_dimension : dimensional_location; related_element : tolerance_zone_definition; END_ENTITY; -- dimension_related_tolerance_zone_element ENTITY dimensional_characteristic_representation; dimension : dimensional_characteristic; representation : shape_dimension_representation; END_ENTITY; -- dimensional_characteristic_representation 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; -- dimensional_exponents ENTITY dimensional_location SUPERTYPE OF (ONEOF (angular_location,dimensional_location_with_path)) SUBTYPE OF (shape_aspect_relationship); END_ENTITY; -- dimensional_location ENTITY dimensional_location_with_path SUBTYPE OF (dimensional_location); path : shape_aspect; END_ENTITY; -- dimensional_location_with_path ENTITY dimensional_measurement_inspection SUBTYPE OF (inspection_activity); WHERE (* -- to external_schema_definition (as iso10303_219_data) ------------- *) wr1: SIZEOF(QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD')| (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(sar)) AND (SIZEOF(QUERY ( edi <* sar.items | ('CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_SCHEMA' IN TYPEOF(edi)) )) <= 1))))>=0; END_ENTITY; -- dimensional_measurement_inspection ENTITY dimensional_size SUPERTYPE OF (ONEOF (angular_size,dimensional_size_with_path)); applies_to : shape_aspect; name : label; WHERE wr1: applies_to.product_definitional = TRUE; END_ENTITY; -- dimensional_size ENTITY dimensional_size_with_path SUBTYPE OF (dimensional_size); path : shape_aspect; END_ENTITY; -- dimensional_size_with_path ENTITY directed_action SUBTYPE OF (executed_action); directive : action_directive; END_ENTITY; -- directed_action ENTITY directed_dimensional_location SUBTYPE OF (dimensional_location); END_ENTITY; -- directed_dimensional_location ENTITY direction SUBTYPE OF (geometric_representation_item); direction_ratios : LIST [2:3] OF REAL; WHERE wr1: SIZEOF(QUERY ( tmp <* direction_ratios | (tmp <> 0) )) > 0; END_ENTITY; -- direction ENTITY direction_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(SELF.items) = 1; wr2: SIZEOF(QUERY ( it <* SELF.items | (NOT ( 'CAST_PARTS_SCHEMA.DIRECTION' IN TYPEOF(it))) )) = 0; END_ENTITY; -- direction_shape_representation 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; -- document ENTITY document_file SUBTYPE OF (document, characterized_object); WHERE wr1 : SIZEOF(QUERY ( drt <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.DOCUMENT_REPRESENTATION_TYPE.REPRESENTED_DOCUMENT')| (drt.name IN ['physical','digital']) )) = 1; wr2 : SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_IDENTIFICATION_ASSIGNMENT.ITEMS')| (('CAST_PARTS_SCHEMA.IDENTIFICATION_ASSIGNMENT' IN TYPEOF(adr)) AND (adr.role.name = 'version')) )) <= 1; wr3: SIZEOF(QUERY ( aeia <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS')| ('CAST_PARTS_SCHEMA.EXTERNAL_IDENTIFICATION_ASSIGNMENT' IN TYPEOF(aeia)) )) >= 0; wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ((pd.name='document property') AND (SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.DOCUMENT_FILE_PROPERTIES' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'document format')))) <=1)))) <=1; END_ENTITY; -- document_file ENTITY document_file_properties SUBTYPE OF (representation); WHERE wr1: SIZEOF(QUERY(r <* SELF.items | ((r.name='country code') AND ( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (r))) )) <=1; wr2: SIZEOF(QUERY(r <* SELF.items | ((r.name='detail level') AND ( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (r))) )) <=1; wr3: SIZEOF(QUERY(r <* SELF.items | ((r.name='geometry type') AND ( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (r))) )) <=1; wr4: SIZEOF(QUERY(r <* SELF.items | ((r.name='language code') AND ( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (r))) )) <=1; wr5: SIZEOF(QUERY(r <* SELF.items | ((r.name='creating interface') AND ( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (r))) )) <=1; wr6: SIZEOF(QUERY(r <* SELF.items | ((r.name='creating operating system') AND ( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (r))) )) <=1; wr7: SIZEOF(QUERY(r <* SELF.items | ((r.name='creating system') AND ( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (r))) )) <=1; wr8: SIZEOF(QUERY(r <* SELF.items | ((r.name='data format') AND ( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (r))) )) <=1; wr9: SIZEOF(QUERY(r <* SELF.items | ((r.name='format character code') AND ( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (r))) )) <=1; wr10: SIZEOF(QUERY(r <* SELF.items | ((r.name='file size') AND (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(r)) = 2)))) <=1; wr11: SIZEOF(QUERY(r <* SELF.items | ((r.name='page count') AND (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(r)) = 2)))) <=1; END_ENTITY; -- document_file_properties ENTITY document_product_association; name : label; description : OPTIONAL text; relating_document : document; related_product : product_or_formation_or_definition; END_ENTITY; -- document_product_association ENTITY document_reference ABSTRACT SUPERTYPE; assigned_document : document; source : label; DERIVE role : object_role := get_role(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- document_reference ENTITY document_relationship; name : label; description : OPTIONAL text; relating_document : document; related_document : document; END_ENTITY; -- document_relationship ENTITY document_representation_type; name : label; represented_document : document; END_ENTITY; -- document_representation_type ENTITY document_type; product_data_type : label; END_ENTITY; -- document_type ENTITY document_usage_constraint; source : document; subject_element : label; subject_element_value : text; END_ENTITY; -- document_usage_constraint ENTITY document_usage_constraint_assignment ABSTRACT SUPERTYPE; assigned_document_usage : document_usage_constraint; role : document_usage_role; END_ENTITY; -- document_usage_constraint_assignment ENTITY document_usage_role; name : label; description : OPTIONAL text; END_ENTITY; -- document_usage_role ENTITY drafted_surface SUBTYPE OF (shape_representation); WHERE wr1: (SIZEOF(QUERY( it <* SELF.items | (SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'draft')))=1); wr2:(SIZEOF(QUERY (rep <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.REPRESENTATION_RELATIONSHIP.REP_1') | (SIZEOF(['CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' , 'CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION'] * TYPEOF(rep.rep_2))=1)))=1); END_ENTITY; -- drafted_surface ENTITY dryer SUBTYPE OF (core_equipment); WHERE wr1: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'material type') )))) =1 ))))>=1; END_ENTITY; -- dryer ENTITY edge SUPERTYPE OF (ONEOF (edge_curve,oriented_edge)) SUBTYPE OF (topological_representation_item); edge_start : vertex; edge_end : vertex; END_ENTITY; -- edge ENTITY edge_curve SUBTYPE OF (edge, geometric_representation_item); edge_geometry : curve; same_sense : BOOLEAN; END_ENTITY; -- edge_curve 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; -- edge_loop ENTITY edge_round SUBTYPE OF (transition_feature); WHERE wr1: (NOT (SELF\shape_aspect.description = 'constant radius')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); wr2: (NOT (SELF\shape_aspect.description = 'constant radius')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | ((NOT (SIZEOF(impl_rep. used_representation.items) >= 1)) AND (SIZEOF(impl_rep. used_representation.items) <= 3)) )) = 0)) )) = 0); wr3: (NOT (SELF.description = 'constant radius')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF( ['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0); wr4: (NOT (SELF.description = 'constant radius')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF( ['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first offset')) )) <= 1)) )) = 0)) )) = 0); wr5: (NOT (SELF.description = 'constant radius')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF( ['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second offset')) )) <= 1)) )) = 0)) )) = 0); wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'edge round face')) )) <= 1)) )) = 0; wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'first face shape')) )) <= 1)) )) = 0; wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'second face shape')) )) <= 1)) )) = 0; END_ENTITY; -- edge_round ENTITY edge_shape_representation SUBTYPE OF (shape_representation); END_ENTITY; -- edge_shape_representation ENTITY effectivity SUPERTYPE OF (ONEOF (dated_effectivity,lot_effectivity)); id : identifier; DERIVE name : label := get_name_value(SELF); description : text := get_description_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; wr2: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- effectivity ENTITY effectivity_assignment ABSTRACT SUPERTYPE; assigned_effectivity : effectivity; DERIVE role : object_role := get_role(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- effectivity_assignment ENTITY ejector_box SUBTYPE OF (ejector_design_feature); WHERE (* ***** ejector_box to ejector_plate (as plate_definition) ***** *) wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ejector plate reference usage') AND ('CAST_PARTS_SCHEMA.EJECTOR_PLATE' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* ---------- ejector_box to item_size (as box_size)------------- *) WR2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ejector box size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ***** ejector_box to *) (* ** production_core_box (as oriented_to_movable_die) ***** *) (* ** production_die_mold (as oriented_to_movable_die) ***** *) (* ** production_die_cast_mold (as oriented_to_movable_die) ***** *) (* ** production_investment_cast_mold (as oriented_to_movable_die) * *) wr3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ejector box die reference usage') AND ( SIZEOF(['CAST_PARTS_SCHEMA.PRODUCTION_CORE_BOX', 'CAST_PARTS_SCHEMA.PRODUCTION_DIE_MOLD', 'CAST_PARTS_SCHEMA.PRODUCTION_DIE_CAST_MOLD', 'CAST_PARTS_SCHEMA.PRODUCTION_INVESTMENT_CAST_MOLD'] * TYPEOF(sar.relating_shape_aspect)) =1))) =1 ))))>=1; END_ENTITY; -- ejector_box ENTITY ejector_design_feature SUBTYPE OF (casting_feature_definition); WHERE wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; (* ***** ejector_design_feature to orientation (as placement) ***** *) WR2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) =1 ))))=1; END_ENTITY; -- ejector_design_feature ENTITY ejector_equipment SUBTYPE OF (casting_equipment); WHERE wr1:(NOT (SIZEOF(QUERY( am <* SELF.usage | (('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(am)) AND (NOT(SIZEOF(QUERY ( ama <* USEDIN(am, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD')| (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY ( eds <* ama.items | ('CAST_PARTS_SCHEMA.EJECTOR_SYSTEM' IN TYPEOF(eds)) ))=1))))=0)))))=0)); END_ENTITY; -- ejector_equipment ENTITY ejector_pin SUBTYPE OF (ejector_design_feature); WHERE (* -------- ejector_pins to item_size (as pin_dimensions) ------------- *) WR1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector pin occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ejector pin dimension usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ----- ejector_pins to machining_feature (as thread) ------------- *) wr2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector pin occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'thread reference usage') AND ('CAST_PARTS_SCHEMA.THREAD' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* -------- ejector_pins to pin_tips (as tip_definition) ------------- *) wr3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector pin occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'pin tip reference usage') AND ('CAST_PARTS_SCHEMA.PIN_TIP' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; END_ENTITY; -- ejector_pin ENTITY ejector_plate SUBTYPE OF (ejector_design_feature); WHERE (* ***** material_type ***** *) wr1: (SIZEOF(QUERY (co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF (co)))=1); (* ------- ejector_plate to item_size (as pin_dimensions) ------------- *) WR2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector plate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ejector plate dimension usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ejector_plate to numeric_parameter (as plate_height) *) wr3: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'plate height')) )) =1 ))))=1; (* --- ejector_plate to ejector_pin (as ejector_pin_definition) ----- *) wr4:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector plate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ejector pin reference usage') AND ('CAST_PARTS_SCHEMA.EJECTOR_PIN' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* -------- ejector_plate to stop_pin (as stop_pin_definition) -------- *) wr5:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector plate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'stop pin reference usage') AND ('CAST_PARTS_SCHEMA.STOP_PIN' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* to reset_or_return_pins (as reset_or_return_pin_definition) *) wr6:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector plate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'reset or push pin reference usage') AND ('CAST_PARTS_SCHEMA.RESET_OR_PUSH_PIN' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- ejector_plate ENTITY ejector_system SUBTYPE OF (ejector_design_feature); WHERE (* ---------- system_operated_by------------- *) WR1:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'system operated by') AND (it.description IN ['hydraulics','spring loaded', 'simple mechanical'] ) )))) =1 ))))>=1; (* ----- ejector_system to ejector_plates (as plate_definition) ------ *) wr2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ejector system occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ejector system reference usage') AND ('CAST_PARTS_SCHEMA.EJECTOR_PLATE' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- ejector_system ENTITY elementary_surface SUPERTYPE OF (ONEOF (plane,cylindrical_surface,conical_surface, spherical_surface,toroidal_surface)) SUBTYPE OF (surface); position : axis2_placement_3d; END_ENTITY; -- elementary_surface ENTITY elevated_temperature_service SUBTYPE OF (customer_casting_requirement); WHERE (* -------- to descriptive_parameter(as service_descriptions) ---------- *) wr1:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'service description') ) )) =1 )))=0)); (* --------- to numeric_parameter(as maximum__temperature) ---------- *) wr2:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'maximum temperature')) )) = 1 )))=0)); (* ------ to numeric_parameter(as minimum_cyclic_temperature) ---------- *) wr3:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'minimum cyclic temperature')) )) = 1 )))=0)); (* ----- to numeric_parameter(as maximum_cyclic_temperature) ---------- *) wr4:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'maximum cyclic temperature')) )) = 1 )))=0)); END_ENTITY; -- elevated_temperature_service ENTITY ellipse SUBTYPE OF (conic); semi_axis_1 : positive_length_measure; semi_axis_2 : positive_length_measure; END_ENTITY; -- ellipse ENTITY casting_equipment_process SUBTYPE OF (machining_process); WHERE wr1: SIZEOF(QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE.USAGE') | ( 'CAST_PARTS_SCHEMA.CASTING_EQUIPMENT' IN TYPEOF(sar)) )) = 1; END_ENTITY; -- casting_equipment_process ENTITY equipment_setting_record SUBTYPE OF (activity_result_record); WHERE (* --------- to property_parameter (as actual_machine_setting) -------*) wr1: (SIZEOF(QUERY( it <* SELF.items | (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(it)) = 1) AND (it.name = 'actual_parameter')))=1); (* ------- to equipment_usage (as recorded_usage) ----------------*) wr2: (SIZEOF(QUERY( rpr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.RESOURCE_PROPERTY_REPRESENTATION.REPRESENTATION') | ('CAST_PARTS_SCHEMA.EQUIPMENT_USAGE' IN TYPEOF (rpr.property.resource))))=1); END_ENTITY; -- equipment_setting_record ENTITY casting_equipment_setup SUBTYPE OF (machine_setup); WHERE wr1: (NOT(SIZEOF(QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE_REQUIREMENT.OPERATIONS') | (('CAST_PARTS_SCHEMA.REQUIREMENT_FOR_ACTION_RESOURCE' IN TYPEOF(sar)) AND (SIZEOF(QUERY( equ <* sar.resources | ('CAST_PARTS_SCHEMA.CASTING_EQUIPMENT' IN TYPEOF(equ)))) =1 ))))=0)); END_ENTITY; -- casting_equipment_setup ENTITY equipment_usage SUBTYPE OF (requirement_for_action_resource); WHERE (* --------- to equipment (as equipment_usage_context) ----------------*) wr1: (SIZEOF(QUERY( equ <* SELF.resources | ('CAST_PARTS_SCHEMA.CASTING_EQUIPMENT' IN TYPEOF(equ))))=1); (* ------ to property_parameter (as equipment_parameter) --------------*) wr2: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(it)) = 1)))) =1 )))) >=1; END_ENTITY; -- equipment_usage ENTITY executed_action SUBTYPE OF (action); END_ENTITY; -- executed_action ENTITY extension SUBTYPE OF (derived_shape_aspect); WHERE wr1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- extension ENTITY external_identification_assignment ABSTRACT SUPERTYPE SUBTYPE OF (identification_assignment); source : external_source; END_ENTITY; -- external_identification_assignment ENTITY external_source; source_id : source_item; DERIVE description : text := get_description_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- external_source ENTITY externally_defined_class SUBTYPE OF (externally_defined_item, class); WHERE wr1: 'CAST_PARTS_SCHEMA.KNOWN_SOURCE' IN TYPEOF(SELF.source); wr2: SELF.source.name = 'ISO 13584 library'; (* class_BSU to supplier_BSU *) wr3: SIZEOF(QUERY ( aoa <* USEDIN(SELF.source, 'CAST_PARTS_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')| (aoa.role.name = 'library supplier'))) = 1; (* class_BSU.version *) wr4: SIZEOF(QUERY ( aoa <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS')| (('CAST_PARTS_SCHEMA.LIBRARY_CLASS_VERSION_ASSIGNMENT' IN TYPEOF(aoa)) AND (aoa.role.name = 'class version')))) = 1; END_ENTITY; -- externally_defined_class ENTITY externally_defined_dimension_definition SUBTYPE OF (externally_defined_item, dimensional_size); WHERE wr1: SELF.source.description = 'externally defined dimension specification'; wr2: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| (adr.assigned_document.description = 'externally defined size dimension specification') ) ) <= 1; END_ENTITY; -- externally_defined_dimension_definition ENTITY externally_defined_feature_definition SUBTYPE OF (feature_definition, externally_defined_item); WHERE wr1 : (((((SELF\characterized_object.description = 'thread') AND ( SELF\externally_defined_item.item_id = 'external thread')) AND (SELF\externally_defined_item.source.source_id = 'external feature specification')) OR (((SELF\ characterized_object.description = 'gear') AND (SELF\ externally_defined_item.item_id = 'external gear')) AND ( SELF\externally_defined_item.source.source_id = 'external feature specification'))) OR (((SELF\ characterized_object.description = 'marking') AND (SELF\ externally_defined_item.item_id = 'external marking')) AND (SELF\externally_defined_item.source.source_id = 'external feature specification'))) OR (((SELF\ characterized_object.description = 'knurl') AND (SELF\ externally_defined_item.item_id = 'external knurl')) AND ( SELF\externally_defined_item.source.source_id = 'external feature specification')); wr2 : (NOT (SELF\characterized_object.description = 'thread')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND ((5 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 10))) )) = 1) )) = 1); wr3 : (NOT (SELF\characterized_object.description = 'marking')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(pdr.used_representation. items) = 2)) )) = 1) )) = 1); wr4 : (NOT (SELF\characterized_object.description = 'knurl')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(pdr.used_representation. items) = 1)) )) = 1) )) = 1); wr5 : (NOT (SELF\characterized_object.description IN ['knurl', 'thread'])) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN( SELF,'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'partial area occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'applied area usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.APPLIED_AREA' IN TYPEOF(sdr. relating_shape_aspect)) )) = 1)) )) <= 1)) )) = 0); wr6 : (NOT (SELF\characterized_object.description = 'marking')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'marking text')) )) = 1)) )) = 0)) )) = 0); wr7 : (NOT (SELF\characterized_object.description = 'thread')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'removal direction')) AND ((it. description = 'internal') OR (it.description = 'external'))) )) = 1)) )) = 0)) )) = 0); wr8 : (NOT (SELF\characterized_object.description = 'thread')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'qualifier')) )) <= 1)) )) = 0)) )) = 0); wr9 : (NOT (SELF\characterized_object.description = 'thread')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'hand')) )) = 1)) )) = 0)) )) = 0); wr10: (NOT (SELF\characterized_object.description = 'thread')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class')) )) = 1)) )) = 0)) )) = 0); wr11: (NOT (SELF\characterized_object.description = 'thread')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'form')) )) = 1)) )) = 0)) )) = 0); wr12: (NOT (SELF\characterized_object.description = 'thread')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'major diameter')) )) <= 1)) )) = 0)) )) = 0); wr13: (NOT (SELF\characterized_object.description = 'thread')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'number of threads')) )) = 1)) )) = 0)) )) = 0); wr14: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class 2')) )) <= 1)) )) = 0)) )) = 0; wr15: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'nominal size')) )) <= 1)) )) = 0)) )) = 0; wr16: (NOT (SELF\characterized_object.description IN ['knurl','gear', 'thread'])) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN( SELF,'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'applied shape') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr. relating_shape_aspect)) )) = 1) )) <= 1)) )) = 0); wr17: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (10 <= SIZEOF(pdr. used_representation.items))) AND (SIZEOF(pdr. used_representation.items) >= 11)) )) = 1) )) = 1); wr18: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'number of teeth')) )) = 1)) )) = 0)) )) = 0); wr19: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'reference presure angle')) )) = 1)) )) = 0)) )) = 0); wr20: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'rake shift factor')) )) = 1)) )) = 0)) )) = 0); wr21: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'nominal tool depth')) )) = 1)) )) = 0)) )) = 0); wr22: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'face width')) )) = 1)) )) = 0)) )) = 0); wr23: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tip diameter')) )) = 1)) )) = 0)) )) = 0); wr24: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'module or diametral pitch')) AND ((it.description = 'module') OR (it.description = 'diameter pitch'))) )) = 1)) )) = 0)) )) = 0); wr25: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'normal attribute')) )) = 1)) )) = 0)) )) = 0); wr26: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'internal or external gear')) AND ((it.description = 'internal') OR (it.description = 'external'))) )) = 1)) )) = 0)) )) = 0); wr27: (NOT (SELF\characterized_object.description IN ['gear'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'root fillet radius')) )) <= 1)) )) = 0)) )) = 0); END_ENTITY; -- externally_defined_feature_definition ENTITY externally_defined_general_property SUBTYPE OF (general_property, externally_defined_item); WHERE wr1: 'CAST_PARTS_SCHEMA.KNOWN_SOURCE' IN TYPEOF(SELF.source); wr2: SELF.source.name = 'ISO 13584 library'; (* property_BSU.version *) wr3: SIZEOF(QUERY ( aoa <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS')| (('CAST_PARTS_SCHEMA.LIBRARY_CLASS_VERSION_ASSIGNMENT' IN TYPEOF(aoa)) AND (aoa.role.name = 'property version')))) = 1; wr4: SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM')| ((ap.name = 'name scope') AND ('CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_CLASS' IN TYPEOF(ap.related_item))))) >= 1; END_ENTITY; -- externally_defined_general_property ENTITY externally_defined_item; item_id : source_item; source : external_source; END_ENTITY; -- externally_defined_item ENTITY externally_defined_item_relationship; name : label; description : OPTIONAL text; relating_item : externally_defined_item; related_item : externally_defined_item; END_ENTITY; -- externally_defined_item_relationship ENTITY externally_defined_representation_with_parameters SUBTYPE OF (representation); WHERE wr1: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_CLASSIFICATION_ASSIGNMENT.ITEMS')| (('CAST_PARTS_SCHEMA.APPLIED_LIBRARY_ASSIGNMENT' IN TYPEOF(adr)) AND (adr.role.name='definitional class membership'))))= 1; wr2: SIZEOF(QUERY ( adr <* SELF.items | ('CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(adr)) )) = 1; wr3: SIZEOF(QUERY ( adr <* SELF.items | (('CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(adr)) AND ('CAST_PARTS_SCHEMA.CARTESIAN_POINT' IN TYPEOF(adr.location))) )) = 1; END_ENTITY; -- externally_defined_representation_with_parameters ENTITY externally_defined_schema SUBTYPE OF (externally_defined_item); WHERE wr1: 'CAST_PARTS_SCHEMA.KNOWN_SOURCE' IN TYPEOF(SELF.source); wr2: SELF.source.name = 'ISO 10303 part'; wr3: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS') | (adr.assigned_document.description = 'externally defined schema') )) <= 1; wr4: SELF.item_id IN ['externally defined schema','workingstep', 'nc function']; END_ENTITY; -- externally_defined_schema ENTITY fabrication SUBTYPE OF (non_casting_activity); END_ENTITY; -- fabrication 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 | ( 'CAST_PARTS_SCHEMA.FACE_OUTER_BOUND' IN TYPEOF(temp)) )) <= 1; END_ENTITY; -- face ENTITY face_bound SUBTYPE OF (topological_representation_item); bound : loop; orientation : BOOLEAN; END_ENTITY; -- face_bound ENTITY face_outer_bound SUBTYPE OF (face_bound); END_ENTITY; -- face_outer_bound ENTITY face_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(SELF.items) >= 1; wr2: SIZEOF(QUERY ( it <* SELF.items | (NOT (( 'CAST_PARTS_SCHEMA.FACE_SURFACE' IN TYPEOF(it)) OR ( 'CAST_PARTS_SCHEMA.ORIENTED_FACE' IN TYPEOF(it)))) )) = 0; END_ENTITY; -- face_shape_representation ENTITY face_shape_representation_relationship SUBTYPE OF (representation_relationship); WHERE wr1: 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF. rep_1); wr2: 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF. rep_2); END_ENTITY; -- face_shape_representation_relationship ENTITY face_surface SUBTYPE OF (face, geometric_representation_item); face_geometry : surface; same_sense : BOOLEAN; WHERE wr1: NOT ('CAST_PARTS_SCHEMA.ORIENTED_SURFACE' IN TYPEOF( face_geometry)); END_ENTITY; -- face_surface ENTITY faceted_brep SUBTYPE OF (manifold_solid_brep); END_ENTITY; -- faceted_brep ENTITY feature_component_definition SUBTYPE OF (characterized_object); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(USEDIN(pd,'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE')) = 1)) )) = 0; END_ENTITY; -- feature_component_definition ENTITY feature_component_relationship SUPERTYPE OF (ONEOF (pattern_omit_membership,pattern_offset_membership)) SUBTYPE OF (shape_aspect_relationship); WHERE wr1: ((SIZEOF(['CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT', 'CAST_PARTS_SCHEMA.REPLICATE_FEATURE', 'CAST_PARTS_SCHEMA.TRANSITION_FEATURE', 'CAST_PARTS_SCHEMA.MODIFIED_PATTERN'] * TYPEOF(SELF. relating_shape_aspect)) = 1) OR ( 'CAST_PARTS_SCHEMA.FEATURE_DEFINITION' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.relating_shape_aspect.of_shape.definition)); END_ENTITY; -- feature_component_relationship ENTITY feature_definition SUBTYPE OF (characterized_object); WHERE wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) <= 1; wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr3: SIZEOF(['CAST_PARTS_SCHEMA.BOSS', 'CAST_PARTS_SCHEMA.TURNED_KNURL','CAST_PARTS_SCHEMA.THREAD', 'CAST_PARTS_SCHEMA.GEAR','CAST_PARTS_SCHEMA.MARKING', 'CAST_PARTS_SCHEMA.RIB_TOP','CAST_PARTS_SCHEMA.ROUND_HOLE', 'CAST_PARTS_SCHEMA.OUTSIDE_PROFILE', 'CAST_PARTS_SCHEMA.POCKET', 'CAST_PARTS_SCHEMA.REMOVAL_VOLUME', 'CAST_PARTS_SCHEMA.REVOLVED_PROFILE', 'CAST_PARTS_SCHEMA.OUTER_ROUND', 'CAST_PARTS_SCHEMA.FLAT_FACE','CAST_PARTS_SCHEMA.PROTRUSION', 'CAST_PARTS_SCHEMA.ROUNDED_END','CAST_PARTS_SCHEMA.SLOT', 'CAST_PARTS_SCHEMA.SPHERICAL_CAP','CAST_PARTS_SCHEMA.STEP', 'CAST_PARTS_SCHEMA.COMPOUND_FEATURE', 'CAST_PARTS_SCHEMA.REPLICATE_FEATURE', 'CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_FEATURE_DEFINITION'] * TYPEOF(SELF)) = 1; wr4: (NOT (SIZEOF(['CAST_PARTS_SCHEMA.ROUND_HOLE', 'CAST_PARTS_SCHEMA.BOSS','CAST_PARTS_SCHEMA.OUTSIDE_PROFILE', 'CAST_PARTS_SCHEMA.REMOVAL_VOLUME', 'CAST_PARTS_SCHEMA.FLAT_FACE','CAST_PARTS_SCHEMA.POCKET', 'CAST_PARTS_SCHEMA.PROTRUSION','CAST_PARTS_SCHEMA.RIB_TOP', 'CAST_PARTS_SCHEMA.ROUNDED_END','CAST_PARTS_SCHEMA.SLOT', 'CAST_PARTS_SCHEMA.STEP'] * TYPEOF(SELF)) = 1)) OR (SIZEOF( QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0); END_ENTITY; -- feature_definition ENTITY feature_pattern SUBTYPE OF (replicate_feature); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr. used_representation.items | (NOT ( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(srwp_i))) )) > 0)) )) > 0) )) = 0; wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'base feature placement')) )) > 1)) )) = 0)) )) = 0; END_ENTITY; -- feature_pattern ENTITY feeder SUBTYPE OF (gating_design_feature); WHERE (* feeders to connection_transition (as transition) *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name IN['edge round'])) )) =1 ))))=1; wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name IN [ 'fillet'])) )) =1 ))))=1; (* ---------- feeder to item_size (as shape) ------------- *) WR3:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='feeder occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'feeder size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ---------- feeders to risers (as runner_connection) ------------- *) wr4:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='feeder occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'riser reference usage') AND ('CAST_PARTS_SCHEMA.RISER' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- feeder ENTITY fillet SUBTYPE OF (transition_feature); WHERE wr1: (NOT (SELF\shape_aspect.description = 'constant radius')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0); wr2: (NOT (SELF\shape_aspect.description = 'constant radius')) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | ((NOT (SIZEOF(impl_rep. used_representation.items) >= 1)) AND (SIZEOF(impl_rep. used_representation.items) <= 3)) )) = 0)) )) = 0); wr3: (NOT (SELF.description = 'constant radius')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0); wr4: (NOT (SELF.description = 'constant radius')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first offset')) )) <= 1)) )) = 0)) )) = 0); wr5: (NOT (SELF.description = 'constant radius')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second offset')) )) <= 1)) )) = 0)) )) = 0); wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION') | ( NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'fillet face')) )) = 1)) )) = 0; wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION') | ( NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'first face shape')) )) = 1)) )) = 0; wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION') | ( NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'second face shape')) )) = 1)) )) = 0; END_ENTITY; -- fillet ENTITY filter SUBTYPE OF (gating_design_feature); WHERE (* ---------- type_of_filter------------- *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'filter type')))) =1 ))))=1; (* ---------- filter to item_size (as filter_shape) ------------- *) wr2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='filer occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'filter size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; END_ENTITY; -- filter ENTITY finishing_and_machining_operation SUBTYPE OF (customer_casting_requirement); WHERE (* -------- to descriptive_parameter(as comments) ---------- *) wr1:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'comments') ) )) =1 )))=0)); (* ------- to machining_activity (as finishing_operations) ---------- *) wr2:(SIZEOF(QUERY ( aam <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT.ITEMS') | ((aam\action_method_assignment.role.name='finishing operation') AND ('CAST_PARTS_SCHEMA.MACHINING_ACTIVITY' IN TYPEOF(aam\action_method_assignment.assigned_action_method)))))=1); (* --------- to machining_activity (as machining_operations) ---------- *) wr3:(SIZEOF(QUERY ( aam <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT.ITEMS') | ((aam\action_method_assignment.role.name='machining operation') AND ('CAST_PARTS_SCHEMA.MACHINING_ACTIVITY' IN TYPEOF(aam\action_method_assignment.assigned_action_method)))))=1); END_ENTITY; -- finishing_and_machining_operation ENTITY finishing_equipment SUBTYPE OF (casting_equipment); END_ENTITY; -- finishing_equipment ENTITY first_article SUBTYPE OF (casting_verification); WHERE (* ------------ number of pieces ----------------*) wr1:(NOT(SIZEOF(QUERY(ars <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.REQUEST') | (NOT (SIZEOF(QUERY(ap <* USEDIN(ars.method, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT (SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY(it <* apr.representation.items | ((('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'number of pieces')) )) =1 ))) =0 ))))=0 )))) =0)); (* --- first_article to approval (as customer_approval) ---------- *) wr2: SIZEOF(QUERY(aaa <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_APPROVAL_ASSIGNMENT.ITEMS') | (NOT(SIZEOF(QUERY(ra <* USEDIN(aaa, 'CAST_PARTS_SCHEMA.ROLE_ASSOCIATION.ITEM_WITH_ROLE') | (ra.role.name='customer approval')))=1 ))))=0; (* ------ first_article to date (as delivery_date) ---------- *) wr3: (SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | (ada.role.name='delivery date')))=1); (* --first_article to master_sample (as customer_approved) ---------- *) wr4: SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.ACTION_REQUEST_ASSIGNMENT.ASSIGNED_ACTION_REQUEST') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_REQUEST_ASSIGNMENT' IN TYPEOF(ada)) AND (NOT(SIZEOF(QUERY(ari <* ada.items | 'CAST_PARTS_SCHEMA.MASTER_SAMPLE' IN TYPEOF(ari))) =1)))))=0; END_ENTITY; -- first_article ENTITY fixture_tab SUBTYPE OF (casting_design_feature); END_ENTITY; -- fixture_tab ENTITY flask SUBTYPE OF (sand_cast_design_feature); WHERE (* ----- flask to descriptive_parameter (as type_of_flask) ---------- *) WR1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'flask type')))) =1 ))))=1; (* --------- flask to numeric_parameter (as cope_height) ----------- *) wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'cope height')) )) =1 ))))=1; (* --------- flask to numeric_parameter (as cope_height) ----------- *) wr3: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'drag height')) )) =1 ))))=1; (* --------- flask to numeric_parameter (as flask_length) ----------- *) wr4: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'flask length')) )) =1 ))))=1; (* --------- flask to numeric_parameter (as flask width) ----------- *) wr5: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'flask width')) )) =1 ))))=1; (* ------ flask to pin_center (as pin_center_definition) ------------- *) wr6: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='flask reference occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'pin center reference usage') AND ('CAST_PARTS_SCHEMA.PIN_CENTER' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; (* ------ flask to sand_mold (as generates) ------------- *) wr7: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='flask reference occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'sand mold reference usage') AND ('CAST_PARTS_SCHEMA.SAND_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; END_ENTITY; -- flask ENTITY flaskless SUBTYPE OF (sand_cast_design_feature); WHERE wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'description')))) =1 ))))=1; (* ------ flaskless to mold_box (as mold_made_by) ------------- *) Wr2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='flaskless reference occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'mold box reference usage') AND ('CAST_PARTS_SCHEMA.MOLD_BOX' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; END_ENTITY; -- flaskless ENTITY flat_face SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'removal direction')) )) = 1)) )) = 0; wr2: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'course of travel occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ((('CAST_PARTS_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'linear')) AND (sdr.name = 'course of travel')) )) = 1)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'removal boundary occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (('CAST_PARTS_SCHEMA.LINEAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect)) AND (sdr.name = 'removal boundary')) )) = 1)) )) = 1)) )) = 0; wr4: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'enclosed boundary occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ((SIZEOF([ 'CAST_PARTS_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.NGON_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.CLOSED_PATH_PROFILE'] * TYPEOF(sdr. relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect. description = 'boundary')) )) = 1)) )) <= 1)) )) = 0; wr5: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0; wr6: SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (csa.name = 'uncut area')) AND (SIZEOF(QUERY ( sar <* csa.component_relationships | (( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF(['CAST_PARTS_SCHEMA.BOSS', 'CAST_PARTS_SCHEMA.PROTRUSION'] * TYPEOF(sar. related_shape_aspect)) = 1)) )) = 1)) )) <= 1)) )) = 1; wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'removal depth')) )) <= 1)) )) = 0)) )) = 0; END_ENTITY; -- flat_face ENTITY flatness_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1: NOT (('CAST_PARTS_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE') IN TYPEOF(SELF)); END_ENTITY; -- flatness_tolerance ENTITY founded_item; END_ENTITY; -- founded_item ENTITY functionally_defined_transformation; name : label; description : OPTIONAL text; END_ENTITY; -- functionally_defined_transformation ENTITY gating_design_feature SUBTYPE OF (casting_feature_definition); WHERE wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; (* ----- to Orientation (as placement) ------------- *) wr2:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) =1 ))))=1; END_ENTITY; -- gating_design_feature ENTITY gating_system SUBTYPE OF (gating_design_feature); WHERE (* ------- gating_system to ingates (as gating_components) ----------- *) wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='gating system occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'gating system components usage') AND ( SIZEOF(['CAST_PARTS_SCHEMA.INGATE', 'CAST_PARTS_SCHEMA.RISER', 'CAST_PARTS_SCHEMA.RUNNER', 'CAST_PARTS_SCHEMA.SPRUE'] * TYPEOF(sar.relating_shape_aspect)) =1))) >=1 ))))>=1; END_ENTITY; -- gating_system ENTITY gear SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (10 <= SIZEOF(pdr. used_representation.items))) AND (SIZEOF(pdr. used_representation.items) >= 13)) )) = 1) )) = 1; wr2 : (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear','spur gear', 'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'number of teeth')) )) = 1)) )) = 0)) )) = 0); wr3 : (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear','spur gear', 'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'reference pressure angle')) )) = 1)) )) = 0)) )) = 0); wr4 : (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear','spur gear', 'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'rake shift factor')) )) = 1)) )) = 0)) )) = 0); wr5 : (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear','spur gear', 'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'nominal tooth depth')) )) = 1)) )) = 0)) )) = 0); wr6 : (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear','spur gear', 'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'face width')) )) = 1)) )) = 0)) )) = 0); wr7 : (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear','spur gear', 'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tip diameter')) )) = 1)) )) = 0)) )) = 0); wr8 : (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear','spur gear', 'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'module or diametral pitch')) AND ((it.description = 'module') OR (it.description = 'diametral pitch'))) )) = 1)) )) = 0)) )) = 0); wr9 : (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear','spur gear', 'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'internal or external gear')) AND ((it.description = 'internal') OR (it.description = 'external'))) )) = 1)) )) = 0)) )) = 0); wr10: (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear','spur gear', 'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'normal attribute')) )) = 1)) )) = 0)) )) = 0); wr11: (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear','spur gear', 'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'root fillet radius')) )) <= 1)) )) = 0)) )) = 0); wr12: (NOT (SELF\characterized_object.description IN ['helix gear', 'helical bevel gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN( SELF,'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'reference helix angle')) )) = 1)) )) = 0)) )) = 0); wr13: (NOT (SELF\characterized_object.description IN ['helix gear', 'helical bevel gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN( SELF,'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'gear tooth')) AND ((it. description = 'left hand tooth') OR (it.description = 'right hand tooth'))) )) = 1)) )) = 0)) )) = 0); wr14: (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tip angle')) )) = 1)) )) = 0)) )) = 0); wr15: (NOT (SELF\characterized_object.description IN [ 'straight bevel gear','helical bevel gear'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'root angle')) )) = 1)) )) = 0)) )) = 0); wr16: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'applied shape') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr. relating_shape_aspect)) )) = 1) )) = 1)) )) = 0; END_ENTITY; -- gear ENTITY general_property; id : identifier; name : label; description : OPTIONAL text; END_ENTITY; -- general_property ENTITY general_property_association; name : label; description : OPTIONAL text; base_definition : general_property; derived_definition : derived_property_select; WHERE wr1: SIZEOF(USEDIN(derived_definition,('CAST_PARTS_SCHEMA.' + 'GENERAL_PROPERTY_ASSOCIATION.') + 'DERIVED_DEFINITION')) = 1; wr2: derived_definition.name = base_definition.name; END_ENTITY; -- general_property_association ENTITY generic_manufacturing_resource SUBTYPE OF (action_resource); WHERE (* --------quantity -------------*) wr1: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'resource quantity')) )) =1 ))))>=1; (* --------unit -------------*) wr2: SIZEOF(QUERY ( pdr <* get_resource_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'resource quantity')AND ('CAST_PARTS_SCHEMA.CONTEXT_DEPENDENT_UNIT' IN TYPEOF(it\measure_with_unit.unit_component)) AND (it\measure_with_unit.unit_component\conversion_based_unit.name='each') ) )) =1 )) )) >=1; END_ENTITY; -- generic_manufacturing_resource ENTITY geometric_alignment SUBTYPE OF (derived_shape_aspect); WHERE wr1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; END_ENTITY; -- geometric_alignment ENTITY geometric_intersection SUBTYPE OF (derived_shape_aspect); WHERE wr1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) > 1; END_ENTITY; -- geometric_intersection ENTITY geometric_representation_context SUBTYPE OF (representation_context); coordinate_space_dimension : dimension_count; END_ENTITY; -- geometric_representation_context 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)) SUBTYPE OF (representation_item); DERIVE dim : dimension_count := dimension_of(SELF); WHERE wr1: SIZEOF(QUERY ( using_rep <* using_representations(SELF) | (NOT ('CAST_PARTS_SCHEMA.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(using_rep.context_of_items))) )) = 0; END_ENTITY; -- geometric_representation_item ENTITY geometric_tolerance; name : label; description : text; magnitude : measure_with_unit; toleranced_shape_aspect : shape_aspect; WHERE wr1: magnitude.value_component >= 0; END_ENTITY; -- geometric_tolerance ENTITY geometric_tolerance_relationship; name : label; description : text; relating_geometric_tolerance : geometric_tolerance; related_geometric_tolerance : geometric_tolerance; END_ENTITY; -- geometric_tolerance_relationship ENTITY geometric_tolerance_with_datum_reference SUBTYPE OF (geometric_tolerance); datum_system : SET [1:?] OF datum_reference; END_ENTITY; -- geometric_tolerance_with_datum_reference ENTITY geometric_tolerance_with_defined_unit SUBTYPE OF (geometric_tolerance); unit_size : measure_with_unit; WHERE wr1: unit_size.value_component > 0; END_ENTITY; -- geometric_tolerance_with_defined_unit ENTITY global_uncertainty_assigned_context SUBTYPE OF (representation_context); uncertainty : SET [1:?] OF uncertainty_measure_with_unit; END_ENTITY; -- global_uncertainty_assigned_context ENTITY global_unit_assigned_context SUBTYPE OF (representation_context); units : SET [1:?] OF unit; END_ENTITY; -- global_unit_assigned_context ENTITY group; name : label; description : OPTIONAL text; DERIVE id : identifier := get_id_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- group ENTITY group_assignment ABSTRACT SUPERTYPE; assigned_group : group; DERIVE role : object_role := get_role(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- group_assignment ENTITY group_relationship; name : label; description : OPTIONAL text; relating_group : group; related_group : group; END_ENTITY; -- group_relationship ENTITY heat_treat SUBTYPE OF (non_casting_activity); WHERE wr1: (NOT(SIZEOF(QUERY(am <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(am)) AND (SIZEOF(QUERY( cp <* am.items | ('CAST_PARTS_SCHEMA.HEAT_TREAT_REQUIREMENT' IN TYPEOF(cp)))) =1 ))))=0)); END_ENTITY; -- heat_treat ENTITY heat_treat_requirement SUBTYPE OF (process_requirement); WHERE (* --------- additional_requirements ---------- *) wr1:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'additional requirement') ) )) =1 )))=0)); (* --------- softening_anneal_required ---------- *) wr2:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'softening anneal required') AND (it.description IN (['TRUE','FALSE'])) ) )) =1 )))=0)); (* --------- stress_relief_required ---------- *) wr3:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'stress relief required') AND (it.description IN (['TRUE','FALSE'])) ) )) =1 )))=0)); (* --- to organization (as where_heat_treat_is_to_be_performed---------- *) wr4:(SIZEOF(QUERY ( aam <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | ((aam\organization_assignment.role.name='activity organization id') AND ('CAST_PARTS_SCHEMA.ORGANIZATION' IN TYPEOF(aam\organization_assignment.assigned_organization)))))=1); (* ----- to process_property (as heat_treatment_per_design_data) ----- *) wr5:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(pdr.related_property_definition)) AND (pdr.related_property_definition.name='process property')) ))=1); (* ------to specification (as heat_treat_specification) ---------- *) wr6:SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS') | (adr.assigned_document.kind.product_data_type= 'heat_treat_specification') )) =1; (* ---- to mechanical_property_requirements (as mechanical_property) ---- *) wr7:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.MECHANICAL_PROPERTY_REQUIREMENTS' IN TYPEOF(pdr.related_property_definition)) ))=1); END_ENTITY; -- heat_treat_requirement ENTITY hole_bottom SUBTYPE OF (shape_aspect); WHERE wr1 : 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); wr2 : SELF.description IN ['through','flat','flat with radius', 'flat with taper','spherical','conical']; wr3 : (NOT (SELF.description = 'through')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 0)) )) = 0); wr4 : (NOT (SELF.description IN ['flat with radius', 'flat with taper','spherical','conical'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0); wr5 : (NOT (SELF.description = 'flat')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 0)) )) = 0)) )) = 0); wr6 : (NOT (SELF.description IN ['flat with radius','spherical'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0); wr7 : (NOT (SELF.description = 'flat with taper')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 2)) )) = 0)) )) = 0); wr8 : (NOT (SELF.description = 'conical')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | ((NOT (SIZEOF(impl_rep. used_representation.items) >= 1)) AND (SIZEOF(impl_rep. used_representation.items) <= 2)) )) = 0)) )) = 0); wr9 : (SELF.description = 'through') OR (SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ((sar.description = 'hole bottom usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (fcr.name IN ['hole depth start', 'hole depth end']) )) >= 1); wr10: (NOT (SELF.description = 'flat with radius')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'corner radius')) )) = 1)) )) = 0)) )) = 0); wr11: (NOT (SELF.description = 'spherical')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0); wr12: (NOT (SELF.description = 'conical')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tip radius')) )) <= 1)) )) = 0)) )) = 0); wr13: (NOT (SELF.description = 'conical')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tip angle')) )) = 1)) )) = 0)) )) = 0); wr14: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ((sar.description = 'hole bottom usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND ( 'CAST_PARTS_SCHEMA.ROUND_HOLE' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition))) AND ( 'CAST_PARTS_SCHEMA.HOLE_BOTTOM' IN TYPEOF(fcr. relating_shape_aspect))) )) >= 1; wr15: (NOT (SELF.description = 'flat with taper')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'final diameter')) )) = 1)) )) = 0)) )) = 0); wr16: (NOT (SELF.description = 'flat with taper')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'taper diameter')) )) = 1)) )) = 0)) )) = 0); END_ENTITY; -- hole_bottom ENTITY hyperbola SUBTYPE OF (conic); semi_axis : positive_length_measure; semi_imag_axis : positive_length_measure; END_ENTITY; -- hyperbola ENTITY id_attribute; attribute_value : identifier; identified_item : id_attribute_select; END_ENTITY; -- id_attribute ENTITY identification_assignment ABSTRACT SUPERTYPE; assigned_id : identifier; role : identification_role; END_ENTITY; -- identification_assignment ENTITY identification_role; name : label; description : OPTIONAL text; END_ENTITY; -- identification_role ENTITY illustration SUBTYPE OF (document); WHERE wr1: SIZEOF(QUERY ( aduc <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'APPLIED_DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT.ITEMS')| ('CAST_PARTS_SCHEMA.VIEW_REFERENCE' IN TYPEOF (aduc\document_usage_constraint_assignment.assigned_document_usage)) )) >= 0; END_ENTITY; -- illustration ENTITY impregnation_activity SUBTYPE OF (non_casting_activity); END_ENTITY; -- impregnation_activity ENTITY in_facility_location SUBTYPE OF (representation); WHERE wr1: (NOT(SIZEOF(QUERY ( it <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'building or area')) )) =0)); wr2: (NOT(SIZEOF(QUERY ( it <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'location code')) )) =0)); wr3: (NOT(SIZEOF(QUERY ( it <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'sublocation')) )) =0)); END_ENTITY; -- in_facility_location ENTITY ingate SUBTYPE OF (gating_design_feature); WHERE (* ---------- cope_or_drag ------------- *) WR1:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'cope or drag') AND ((it.description IN ['cope', 'drag','cope and drag'] )) )) )) =1 )) ))>=1; (* ---------- ingates to ingate_contacts (as contacts) ------------- *) wr2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ingate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ingate contact reference usage') AND ('CAST_PARTS_SCHEMA.INGATE_CONTACT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* ---------- ingates to item_size (as ingate_shape) ------------- *) WR3:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ingate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ingate size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; END_ENTITY; -- ingate ENTITY ingate_contact SUBTYPE OF (gating_design_feature); WHERE (* ---------- cope_or_drag ------------- *) WR1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'cope or drag') AND ((it.description IN ['cope', 'drag','cope and drag'] )) )) )) =1 )) ))>=1; (* - ingate_contacts to connection_transition (as runner_transition) -- *) wr2 :SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'runner transition edge round')) )) <=1 ))))=1; wr3 :SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'runner transition fillet')) )) <=1 ))))=1; (* - ingate_contacts to connection_transition (as pattern_transition) - *) wr4 :SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'pattern transition edge round')) )) <=1 ))))=1; wr5 :SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'pattern transition edge fillet')) )) <=1 ))))=1; (* -ingate_contacts to production_pattern_definition (as applied_to) - *) wr6:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ingate contact occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production pattern definition reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_PATTERN_DEFINITION' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* ---- ingates_contacts to runner (as runner_connection) ------------- *) wr7:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ingate contact occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'runner reference usage') AND ('CAST_PARTS_SCHEMA.RUNNER' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* -- ingate_contacts to shape_element (as break_off_connection)------ *) WR8:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='ingate contact occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ingate contact shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- ingate_contact ENTITY inspection_activity SUBTYPE OF (casting_activity); WHERE (* -------- inspectrion_level ---------- *) wr1: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'inspection level')) )) =1 ))))=1; (* -------------- reason_for_inspection ---------- *) wr2: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'reason for inspection') AND (it.description IN [ 'initial inspectrion', 'engineering change', 'tooling replacement', 'tooling transfer', 'tooling refurbishment', 'discrepancy correction', 'material or supplier source change', 'production sample set'])))) =1 ))))>=1; (* -------------- type_of_inspection ---------- *) wr3: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'type of inspection') AND (it.description IN [ 'destructive', 'dimensional', 'functional testing', 'gauging', 'hardness property', 'internal property', 'leak testing', 'material composition', 'surface','visual'])))) =1 ))))>=1; (* ------nspection_activity to approval (as foundry approval) ---------- *) wr4: (NOT(SIZEOF(QUERY(aaa <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_APPROVAL_ASSIGNMENT.ITEMS') | (SIZEOF(QUERY(ra <* USEDIN(aaa, 'CAST_PARTS_SCHEMA.ROLE_ASSOCIATION.ITEM_WITH_ROLE') | (ra.role.name='foundry approval'))) =1 )) )=0)); (* -- to casting_verification (as quality_assurance) ---------- *) wr5: SIZEOF(QUERY(aaa <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.METHOD') | ('CAST_PARTS_SCHEMA.CASTING_VERIFICATION' IN TYPEOF(aaa.request))))=1; (* --- to part_version (as inspected_part) ---------- *) wr6: (NOT(SIZEOF(QUERY(am <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(am)) AND (SIZEOF(QUERY( cp <* am.items | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(cp)))) =1 ))))=0)); (* -- to product_quality_report (as inspection_report) ---------- *) wr7: (('CAST_PARTS_SCHEMA.ACTION_METHOD_WITH_ASSOCIATED_DOCUMENTS' IN TYPEOF(SELF)) AND (NOT (SIZEOF(QUERY( doc <* SELF.documents | (doc.kind.product_data_type='product quality report')))=0))); (* -------- to inspection_plan (as customer_requirements) ---------- *) wr8: (NOT(SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD') | (SIZEOF(QUERY( ip <* USEDIN(ap.related_method, 'CAST_PARTS_SCHEMA.ACTION.CHOSEN_METHOD') | 'CAST_PARTS_SCHEMA.INSPECTION_PLAN' IN TYPEOF(ip)))=1)))=0)); END_ENTITY; -- inspection_activity ENTITY inspection_or_test_requirement SUBTYPE OF (customer_casting_requirement); WHERE (* ---------- validation_id ------------- *) wr1:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'validation id') ) )) =1 )))=0)); (* ---------- test name ------------- *) wr2:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( NOT(SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'test name') ) ))=1 )))) = 0); (* ---------- to numeric_parameter(as frequency)------------- *) wr3:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( NOT(SIZEOF(QUERY ( it <* pdr.used_representation.items | (( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'frequency')))=1))))=0); (* ---------- to numeric_parameter(as sampling_run_size)------------- *) wr4:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( NOT(SIZEOF(QUERY ( it <* pdr.used_representation.items | (( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'sampling run size')))=1))))=0); (* ------ to customer_casting_requirement (as inspection_against)------ *) wr5: SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION')| ('CAST_PARTS_SCHEMA.CUSTOMER_CASTING_REQUIREMENT' IN TYPEOF(pdr.related_property_definition)) )) = 1; (* ---- to specification (as production_quality_requirement_standard)--- *) wr6: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS') | (adr.assigned_document.description = 'production quality requirement standard') )) = 1; END_ENTITY; -- inspection_or_test_requirement ENTITY inspection_or_test_result SUBTYPE OF (property_definition); WHERE (* ---------- result ------------- *) wr1: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'result') ) ))=1 )))) = 0); (* -- inspection_or_test_result to checking_aid_tool (as aid_used) --- *) wr2: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.CHECKING_AID_TOOL' IN TYPEOF(pdr.related_property_definition)) ))=1); (* --inspection_or_test_result to shape_aspect(as applies_to)--------- *) wr3: (NOT (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ( ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr.related_property_definition)) AND (SIZEOF(QUERY( sa <* USEDIN(pdr.related_property_definition, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sa)) )) =1 )) )) =0)); (* -- inspection_or_test_result to sampled_set(as belongs_to)---------- *) wr4: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.SAMPLED_SET' IN TYPEOF(pdr.related_property_definition)) )) =1); END_ENTITY; -- inspection_or_test_result ENTITY inspection_plan SUBTYPE OF (product_definition_process); WHERE (* --------- to descriptive_parameter(as corrective_action) ---------- *) wr1: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'test name') AND (it.description IN ['weld', 'impregnation'])))) =1 ))))>=1; (* -------to descriptive_parameter(as correction_procedures) ---------- *) wr2: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'correction procedures') AND (it.description IN ['dimensional','visual','internal'])))) =1 ))))>=1; (* ----- to inspection_or_test_requirement(as customer_requirements) ---- *) wr3:(SIZEOF(QUERY(ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROCESS_PROPERTY_ASSOCIATION.PROCESS') | ('CAST_PARTS_SCHEMA.INSPECTION_OR_TEST_REQUIREMENT' IN TYPEOF(ap.property_or_shape) )))=1); (* ----- to special_inspection_requirement(as customer_requirements) ---- *) wr4:(SIZEOF(QUERY(ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROCESS_PROPERTY_ASSOCIATION.PROCESS') | ('CAST_PARTS_SCHEMA.SPECIAL_INSPECTION_REQUIREMENT' IN TYPEOF(ap.property_or_shape) )))=1); END_ENTITY; -- inspection_plan ENTITY instanced_feature SUBTYPE OF (feature_definition, shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape. definition); wr2: SELF.product_definitional; END_ENTITY; -- instanced_feature ENTITY integration_interval SUBTYPE OF (action_method); WHERE wr1:(NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(mri)) = 2)AND (mri.name = 'delta time')) )) =1 ))) =0 )))))=0 )))))=0)); wr2:(NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(mri)) = 2)AND (mri.name = 'length of elapsed time interval')) )) =1 ))) =0 )))))=0 )))))=0)); END_ENTITY; -- integration_interval ENTITY investment_casting_master SUBTYPE OF (investment_casting_tooling); WHERE (* ---------- shrink factor for master tooling ------------- *) WR1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'shrink factor for master tooling')) )) =1 ))))=1; END_ENTITY; -- investment_casting_master ENTITY investment_casting_tooling SUBTYPE OF (casting_product_definition); WHERE (* to investment_casting_tooling_definition (as investment_tooling) *** *) (* --- to cast_part_with_rigging (as prototype) -- *) wr1: ((SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='investment casting tooling occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'investment casting tooling definition reference usage')AND ('CAST_PARTS_SCHEMA.INVESTMENT_CASTING_TOOLING_DEFINITION' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1) OR (SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | (('CAST_PARTS_SCHEMA.CAST_PART_WITH_RIGGING' IN TYPEOF(pdr.related_product_definition)) AND (pdr.name='prototype')) ))>=1)); (* ***** material_definitions ***** *) wr2: (NOT(SIZEOF(QUERY (pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| (('CAST_PARTS_SCHEMA.MAKE_FROM_USAGE_OPTION' IN TYPEOF(pdr)) AND (pdr.name='tooling material') AND (SIZEOF(QUERY(mfuo <* USEDIN(pdr.related_product_definition, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | (mfuo.name IN [ 'plaster', 'expandable polystytrene', 'iron', 'soft wood', 'shell', 'aluminum', 'epoxy', 'wood metal reinforced', 'brass', 'hard wood', 'urethane', 'other', 'steel', 'ceramic', 'polymethylmethacrylate', 'plywood'] ) )) >=1 )) )) =0 )); (* ***** tooling_identifier ***** *) wr3: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'tooling identifier')))) =1 ))))=1; END_ENTITY; -- investment_casting_tooling ENTITY investment_casting_tooling_definition SUBTYPE OF (investment_design_feature); WHERE (* -- to investment_mold (as tree_structure)) ------------- *) WR1:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='investment casting tooling definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'investment mold reference usage') AND ('CAST_PARTS_SCHEMA.INVESTMENT_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; (* ------ to sprue_and_runner_mold (as metal_flow_system) ------------- *) WR2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='investment casting tooling definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'sprue and runner mold reference usage') AND ('CAST_PARTS_SCHEMA.SPRUE_AND_RUNNER_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* --------- to production_core_box (as core tooling) ------------- *) WR3:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='investment casting tooling definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production core box reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_CORE_BOX' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ----- to production_investment_cast_mold (as die_mold) ------------- *) WR4: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='investment casting tooling definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production investment cast mold reference usage') AND ( SIZEOF(['CAST_PARTS_SCHEMA.PRODUCTION_INVESTMENT_CAST_MOLD', 'CAST_PARTS_SCHEMA.LOST_FOAM_CASTING_DIE'] * TYPEOF(sar.relating_shape_aspect)) =1))) >=0 ))))>=1; (* --------- to assembly (as pattern_section_assembly) ------------- *) wr5: (SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT.ITEMS')| (('CAST_PARTS_SCHEMA.ASSEMBLY' IN TYPEOF(adr.assigned_action_method)) ))) =1); (* ---------- to shape_element (as pattern_section_definition)--------- *) WR6: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='investment casting tooling definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'pattern section shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- investment_casting_tooling_definition ENTITY investment_design_feature SUBTYPE OF (casting_feature_definition); WHERE WR1: SIZEOF(QUERY( pdr <* get_property_definition_representations (SELF) | 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF ( pdr.used_representation ) ) ) =1; (* ***** investment_design_feature to orientation (as placement) ***** *) WR2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) =1 ))))=1; END_ENTITY; -- investment_design_feature ENTITY investment_mold SUBTYPE OF (investment_design_feature); WHERE (* ---------- number_of_impressions ------------- *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'number of patterns')) )) =1 ))))=1; (* ---------- mold material ------------- *) wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'mold material')))) =1 ))))=1; END_ENTITY; -- investment_mold ENTITY known_source SUBTYPE OF (external_source, pre_defined_item); END_ENTITY; -- known_source ENTITY length_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1: 'CAST_PARTS_SCHEMA.LENGTH_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- length_measure_with_unit ENTITY length_unit SUBTYPE OF (named_unit); WHERE wr1: ((((((SELF\named_unit.dimensions.length_exponent = 1) AND (SELF \named_unit.dimensions.mass_exponent = 0)) AND (SELF\ named_unit.dimensions.time_exponent = 0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0)) AND ( SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0)) AND (SELF\ named_unit.dimensions.amount_of_substance_exponent = 0)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0); END_ENTITY; -- length_unit ENTITY library_class_version_assignment SUBTYPE OF (applied_external_identification_assignment); END_ENTITY; -- library_class_version_assignment ENTITY library_property_version_assignment SUBTYPE OF (applied_external_identification_assignment); END_ENTITY; -- library_property_version_assignment ENTITY limits_and_fits; form_variance : label; zone_variance : label; grade : label; source : text; END_ENTITY; -- limits_and_fits ENTITY line SUBTYPE OF (curve); pnt : cartesian_point; dir : vector; WHERE wr1: dir.dim = pnt.dim; END_ENTITY; -- line ENTITY line_profile_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1: (NOT (('CAST_PARTS_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE') IN TYPEOF(SELF))) OR (SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) <= 3); wr2: SIZEOF(QUERY ( sar <* USEDIN(SELF\geometric_tolerance. toleranced_shape_aspect,'CAST_PARTS_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (sar. name IN ['affected plane association', 'resulting intersection curve association']) )) = 1; END_ENTITY; -- line_profile_tolerance ENTITY linear_profile SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 2)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'profile length')) )) = 1)) )) = 0)) )) = 0; END_ENTITY; -- linear_profile 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; -- local_time ENTITY location_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(SELF.items) = 1; wr2: SIZEOF(QUERY ( it <* SELF.items | (NOT ( 'CAST_PARTS_SCHEMA.POINT' IN TYPEOF(it))) )) = 0; END_ENTITY; -- location_shape_representation ENTITY loop SUPERTYPE OF (ONEOF (vertex_loop,edge_loop,poly_loop)) SUBTYPE OF (topological_representation_item); END_ENTITY; -- loop ENTITY loose_piece SUBTYPE OF (sand_cast_design_feature); WHERE wr1: SIZEOF(QUERY ( co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | (('CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF(co)) AND (co.name IN ['aluminum','cast iron','urethane','wood'])) )) = 1; wr2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='loose piece shape occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'loose piece shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- loose_piece ENTITY lost_foam_casting_die SUBTYPE OF (production_tool); WHERE (* ***** raw bead size ***** *) wr1:(SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'raw bead size') )))=1))))=0))))=0); (* ***** steam_line_location ***** *) wr2:(SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'steam line location') )))>=1))))=0))))=0); (* ***** pattern_removal_instruction ***** *) wr3:(SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'pattern removal instruction') )))>=1))))=0))))=0); (* ---------die_wall_thickness----- *) wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'die wall thickness')) )) >= 1)) )) = 0)) )) = 0; (* -------- to planar_element (as steam_line_location)-------- *) wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'steam line location')) )) >= 1)) )) = 1; (* -------- to planar_element (as fill_gun_location)-------- *) wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'fill gun location')) )) >= 1)) )) = 1; (* ---------- item_size (as fill_gun_size)------------- *) wr7: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'lost foam casting die occurrence') AND ( (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'fill gun size usage') AND (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)))) | (('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sdr.relating_shape_aspect) ) )) ) >=1 )) )) )=1 )) ))=0); (* ---------- to cooling port (as mold cooling) ------------- *) WR8: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'lost foam casting die occurrence') AND ( (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'cooling port reference usage') AND (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('CAST_PARTS_SCHEMA.COOLING_PORT' IN TYPEOF(sdr.relating_shape_aspect)) )) ) =1 )) )) )=1 )) ))=0); (* ---------- to die_clamping (as stationary_die) ------------- *) WR9: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'lost foam casting die occurrence') AND ( (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'die clamping reference usage') AND (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('CAST_PARTS_SCHEMA.DIE_CLAMPING' IN TYPEOF(sdr.relating_shape_aspect)) )) ) =1 )) )) )=1 )) ))=0); (* ---------- to machine_mounting (as stationary die mounting) ------- *) WR10: SIZEOF (QUERY(pdr <* get_property_definition_representations(SELF) | ( 'CAST_PARTS_SCHEMA.MACHINE_MOUNTING' IN TYPEOF ( pdr.used_representation ) ))) =1; (* ---------- to flask (as defines flask type) ------------- *) WR11: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'lost foam casting die occurrence') AND ( (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'flask reference usage') AND (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('CAST_PARTS_SCHEMA.FLASK' IN TYPEOF(sdr.relating_shape_aspect)) )) ) =1 )) )) )=1 )) ))=0); (* ---------- to gating_design_feature (as gating requirements) ------ *) WR12: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'lost foam casting die occurrence') AND ( (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'gating design feature reference usage') AND (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('CAST_PARTS_SCHEMA.GATING_DESIGN_FEATURE' IN TYPEOF(sdr.relating_shape_aspect)) )) ) >=1 )) )) )=1 )) ))=0); (* ----- to slide or die_clamping (as movable die item) ------------- *) WR13:(SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'lost foam casting die occurrence') AND ( (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'slide or die clamping reference usage') AND (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar))) ) | ( SIZEOF(['CAST_PARTS_SCHEMA.SLIDE', 'CAST_PARTS_SCHEMA.DIE_CLAMPING'] * TYPEOF(sdr.relating_shape_aspect)) = 1) )) >=1 )) )) )>=1 )) ))=0); (* ***** to in_facility_location (as tooling_location) ***** *) (* ***** to person_and_organization (as tooling_location) ***** *) wr14: (SIZEOF (QUERY(pdr <* get_property_definition_representations(SELF) | ( 'CAST_PARTS_SCHEMA.IN_FACILITY_LOCATION' IN TYPEOF ( pdr.used_representation ) ))) =1) OR (SIZEOF(QUERY(ada <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | (ada.role.name='tool stored')))=1); END_ENTITY; -- lost_foam_casting_die ENTITY lot_effectivity SUBTYPE OF (effectivity); effectivity_lot_id : identifier; effectivity_lot_size : measure_with_unit; END_ENTITY; -- lot_effectivity ENTITY machine SUBTYPE OF (action_resource); END_ENTITY; ENTITY machining_process SUBTYPE OF (manufacturing_process); END_ENTITY; ENTITY machine_setup SUBTYPE OF (process_plan_activity); END_ENTITY; ENTITY machine_allowance SUBTYPE OF (property_definition); WHERE wr1: SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'allowance value')) )) = 1) )) = 1; wr2: SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.INSTANCED_FEATURE' IN TYPEOF(pdr.related_property_definition.definition)) )) = 1; END_ENTITY; -- machine_allowance ENTITY machine_element_relationship SUBTYPE OF (action_resource_relationship); WHERE wr1: 'CAST_PARTS_SCHEMA.MACHINE' IN TYPEOF(SELF.related_resource); wr2: SIZEOF(['CAST_PARTS_SCHEMA.EJECTOR_EQUIPMENT', 'CAST_PARTS_SCHEMA.CONTROLLER'] * TYPEOF(SELF. relating_resource)) = 1; END_ENTITY; -- machine_element_relationship ENTITY machine_mounting SUBTYPE OF (representation); WHERE (* ---- machine_mounting_type ---- *) wr1: SIZEOF(QUERY ( it <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'machine mounting type') ))) =1; (* ---- material_type ---- *) wr2: SIZEOF(QUERY ( it <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'material type') ))) =1; (* ---- machine_mounting to equipment_size (as dimensions) ---- *) wr3: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'diameter')) ))=1; wr4: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'draft')) ))=1; wr5: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'length')) ))=1; wr6: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'width')) ))=1; wr7: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'height')) ))=1; (* ---- machine_mounting to location_element (as location) ---- *) wr8: SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.REPRESENTATION_RELATIONSHIP.REP_1') | (('CAST_PARTS_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(ap.rep_2)) )))=1; (* ---- mount_with ---- *) wr9: SIZEOF(QUERY ( it <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'mount with') AND (it.description IN ['clamps','holes','slots']) ))) >=1; END_ENTITY; -- machine_mounting ENTITY machining_activity SUBTYPE OF (non_casting_activity); WHERE (* ---- to external_schema_definition (as iso_10303_240_data) --------- *) wr1: SIZEOF(QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD')| (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(sar)) AND (SIZEOF(QUERY ( edi <* sar.items | ('CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_SCHEMA' IN TYPEOF(edi)) )) <= 1))))>=0; END_ENTITY; -- machining_activity 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; -- make_from_usage_option ENTITY manifold_solid_brep SUBTYPE OF (solid_model); outer : closed_shell; END_ENTITY; -- manifold_solid_brep ENTITY manufacturing_activity SUBTYPE OF (process_plan_activity); END_ENTITY; ENTITY manufacturing_activity_relationship SUBTYPE OF (sequential_method); WHERE wr1: ('CAST_PARTS_SCHEMA.MANUFACTURING_PROCESS' IN TYPEOF(SELF.relating_method)); wr2: ('CAST_PARTS_SCHEMA.MANUFACTURING_ACTIVITY' IN TYPEOF(SELF.related_method)); END_ENTITY; ENTITY manufacturing_process SUBTYPE OF (action_method); WHERE (* - manufacturing_process to casting_activity (as assigned_operation) *) wr1: SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD') | (('CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP' IN TYPEOF(ap)) AND ('CAST_PARTS_SCHEMA.CASTING_ACTIVITY' IN TYPEOF(ap.related_method)))))=1; (* ------ manufacturing_process to setup_activity (as setup) ---------- *) wr2:(NOT(SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD') | (('CAST_PARTS_SCHEMA.SINGLE_ACTIVITY_RELATIONSHIP' IN TYPEOF(ap)) AND (SIZEOF(['CAST_PARTS_SCHEMA.ANCILLARY_SETUP', 'CAST_PARTS_SCHEMA.MACHINE_SETUP'] * TYPEOF(ap.related_method)) = 1)) ))=0)); END_ENTITY; -- manufacturing_process ENTITY manufacturing_process_relationship SUBTYPE OF (sequential_method); WHERE wr1: 'CAST_PARTS_SCHEMA.MANUFACTURING_PROCESS' IN TYPEOF(SELF. related_method); wr2: 'CAST_PARTS_SCHEMA.MANUFACTURING_PROCESS' IN TYPEOF(SELF. relating_method); END_ENTITY; -- manufacturing_process_relationship 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; -- mapped_item ENTITY marking SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND ((2 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 6))) )) = 1) )) = 1; wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'marking text')) )) = 1)) )) = 0)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'special instructions')) )) <= 1)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'font name')) )) <= 1)) )) = 0)) )) = 0; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'character height')) )) <= 1)) )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'character spacing')) )) <= 1)) )) = 0)) )) = 0; wr7: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'applied shape') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr. relating_shape_aspect)) )) = 1) )) = 1)) )) = 0; END_ENTITY; -- marking ENTITY mass_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1: 'CAST_PARTS_SCHEMA.MASS_UNIT' IN TYPEOF(SELF\measure_with_unit. unit_component); END_ENTITY; -- mass_measure_with_unit ENTITY mass_unit SUBTYPE OF (named_unit); WHERE wr1: ((((((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF \named_unit.dimensions.mass_exponent = 1)) AND (SELF\ named_unit.dimensions.time_exponent = 0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0)) AND ( SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0)) AND (SELF\ named_unit.dimensions.amount_of_substance_exponent = 0)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0); END_ENTITY; -- mass_unit ENTITY master_pattern SUBTYPE OF (sand_casting_tooling); WHERE wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | ('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; (* ---------- shrink factor for master pattern ------------- *) WR2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'shrink factor for master pattern') ))) =1 ))))=1; (* ** to machining_allowance (as master_allowance_on_master_pattern) * *) wr3: (SIZEOF(QUERY (co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | 'CAST_PARTS_SCHEMA.MACHINE_ALLOWANCE' IN TYPEOF (co)))=1); END_ENTITY; -- master_pattern ENTITY master_sample SUBTYPE OF (cast_part); WHERE (* ----------- master_sample to date (as production_date) *) wr1: SIZEOF(QUERY(da <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS' ) | ((da.role.name='production date') AND ('CAST_PARTS_SCHEMA.CALENDAR_DATE' IN TYPEOF(da\date_assignment.assigned_date)))))=1; (* --- master_sample to design_part (as product_specification_used) -- *) wr2: SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | ('CAST_PARTS_SCHEMA.DESIGN_PART' IN TYPEOF(pdr.relating_product_definition)) ))=1; (* -------- master_sample to heat (as belongs_to_heat) -- *) wr3: SIZEOF(QUERY(da <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS' ) | ('CAST_PARTS_SCHEMA.DATED_EFFECTIVITY' IN TYPEOF(da\effectivity_assignment.assigned_effectivity) )))=1; (* -------- master_sample to lot (as belongs_to_lot) -- *) wr4: SIZEOF(QUERY(da <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS' ) | ('CAST_PARTS_SCHEMA.LOT_EFFECTIVITY' IN TYPEOF(da\effectivity_assignment.assigned_effectivity) )))=1; (* --------- master_sample to process_plan (as process_plan_used) ----*) wr5: SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROCESS_PRODUCT_ASSOCIATION.DEFINED_PRODUCT') | ((pdr.description='process plan used') AND ('CAST_PARTS_SCHEMA.PROCESS_PLAN_VERSION' IN TYPEOF(pdr.process)) ) ))<=1; WR6: SIZEOF(QUERY( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS') | (('CAST_PARTS_SCHEMA.EXTERNAL_SOURCE' IN TYPEOF(pdr\external_identification_assignment.source)) AND (NOT (SIZEOF(QUERY(es <* USEDIN(pdr.source, 'CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_ITEM.SOURCE') | 'CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_SCHEMA' IN TYPEOF(es) )) <=1 )) )) )=0; END_ENTITY; -- master_sample ENTITY material_designation; name : label; definitions : SET [1:?] OF characterized_definition; END_ENTITY; -- material_designation ENTITY material_property SUBTYPE OF (property_definition); UNIQUE ur1 : name, definition; WHERE wr1: ('CAST_PARTS_SCHEMA.CHARACTERIZED_OBJECT' IN TYPEOF(SELF\ property_definition.definition)) OR (SIZEOF(bag_to_set( USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - QUERY ( temp <* bag_to_set(USEDIN(SELF, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) | (( 'CAST_PARTS_SCHEMA.' + 'MATERIAL_PROPERTY_REPRESENTATION') IN TYPEOF(temp)) )) = 0); END_ENTITY; -- material_property ENTITY material_property_representation SUBTYPE OF (property_definition_representation); dependent_environment : data_environment; END_ENTITY; -- material_property_representation ENTITY material_structure SUBTYPE OF (material_property); WHERE (* --- material_structure to material_structure_element (as element)-- *) WR1: (SELF.definition.frame_of_reference.name= 'material structure definition'); (* --- material_structure to illustration (as illustration)----- *) wr2: SIZEOF(QUERY (adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| ('CAST_PARTS_SCHEMA.ILLUSTRATION' IN TYPEOF (adr.assigned_document))))=1; (* --- material_structure to specification (as referenced_to)----- *) wr3: SIZEOF(QUERY (adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| ('CAST_PARTS_SCHEMA.DOCUMENT' IN TYPEOF (adr.assigned_document))))=1; END_ENTITY; -- material_structure ENTITY material_usage SUBTYPE OF (property_definition); WHERE (* ---- Material_usage to numeric_parameter (as amount_used) ---------- *) wr1:(NOT (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | ( (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it))= 2) AND (it.name = 'amount used')) )) =1 )) ) =0)); (* ------------ material_usage to material (as material_used) ---------*) wr2: ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF (SELF.definition)); END_ENTITY; -- material_usage ENTITY material_usage_record SUBTYPE OF (activity_result_record); WHERE (* ----- Material_usage to numeric_parameter (as amount_used) -------- *) wr1: (SIZEOF(QUERY ( it <* SELF.items | ( (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'actual substance usage amount')) )) =1); (* ---- material_usage_record to material_usage (as recorded_usage)---- *) wr2:(SIZEOF(QUERY( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | ('CAST_PARTS_SCHEMA.MATERIAL_USAGE' IN TYPEOF(pdr.definition))))=1); END_ENTITY; -- material_usage_record ENTITY measure_qualification; name : label; description : text; qualified_measure : measure_with_unit; qualifiers : SET [1:?] OF value_qualifier; WHERE wr1: SIZEOF(QUERY ( temp <* qualifiers | ( 'CAST_PARTS_SCHEMA.PRECISION_QUALIFIER' IN TYPEOF(temp)) )) < 2; END_ENTITY; -- measure_qualification ENTITY measure_representation_item SUBTYPE OF (representation_item, measure_with_unit); END_ENTITY; -- measure_representation_item ENTITY measure_with_unit SUPERTYPE OF (ONEOF (length_measure_with_unit,mass_measure_with_unit, time_measure_with_unit,plane_angle_measure_with_unit, ratio_measure_with_unit)); value_component : measure_value; unit_component : unit; WHERE wr1: valid_units(SELF); END_ENTITY; -- measure_with_unit ENTITY mechanical_property_requirements SUBTYPE OF (property_definition); WHERE (* --------- chemical_analysis_certification ---------- *) wr1: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'chemical analysis certification') AND (it.description IN (['TRUE','FALSE'])) ) )) =1 )))=0)); (* --------- mechanical_properties_certification ---------- *) wr2: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'mechanical properties certification') AND (it.description IN (['TRUE','FALSE'])) ) )) =1 )))=0)); (* --------- tensile_strength ---------- *) wr3: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'tensile strength') ))) =1 )))=0)); (* --------- yeild_strength ---------- *) wr4: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'yeild strength') ))) =1 )))=0)); (* --------- to material_hardness (as hardness)------------- *) wr5: SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION')| ('CAST_PARTS_SCHEMA.MATERIAL_PROPERTY' IN TYPEOF(pdr.related_property_definition)) )) = 1; (* --------to specification (as requirement_specification) ---------- *) wr6: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS') | (adr.assigned_document.kind.product_data_type= 'requirement specification') )) = 1; END_ENTITY; -- mechanical_property_requirements ENTITY mechanical_stress SUBTYPE OF (customer_casting_requirement); WHERE (* -------- to descriptive_parameter(as type_of_stress) ------------- *) wr1: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'type of stress') ) )) =1 )))=0)); (* ------- to numeric_parameter(as maximum_psi_design_stress) ---------- *) wr2: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'maximum psi design stress')) )) = 1 )))=0)); (* ----- to numeric_parameter(as percent_safety_factor_required) ------- *) wr3: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'percent safety factor required')) )) = 1 )))=0)); END_ENTITY; -- mechanical_stress ENTITY melting_equipment SUBTYPE OF (casting_equipment); END_ENTITY; -- melting_equipment ENTITY meshing_condition SUBTYPE OF (action_method); WHERE (* number_of_elements *) wr1:(NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(mri)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(mri\measure_with_unit.value_component))AND (mri.name = 'number of elements')) )) =1 ))) =0 )))))=0 )))))=0)); (* number_of_nodes *) wr2:(NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(mri)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(mri\measure_with_unit.value_component))AND (mri.name = 'number of nodes')) )) =1 ))) =0 )))))=0 )))))=0)); (* meshing_condition to numeric_range(as density_of_nodes) *) wr3:(NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(mri)) = 2)AND (mri.name = 'density of nodes')) )) =1 ))) =0 )))))=0 )))))=0)); (* meshing_condition to numeric_range(as density_of_elements) *) wr4:(NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(mri)) = 2)AND (mri.name = 'density of elements')) )) =1 ))) =0 )))))=0 )))))=0)); (* meshing_condition to shape_aspect (as area_to_be_meshed) *) wr5:(NOT(SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF (eds)) )) =1 )) ))=0)); END_ENTITY; -- meshing_condition ENTITY metalcaster_simulation SUBTYPE OF (simulation_process); WHERE (* --------- to simulation_exception_report (as defect_results) ----------*) wr1: ('CAST_PARTS_SCHEMA.ACTION_METHOD_WITH_ASSOCIATED_DOCUMENTS' IN TYPEOF(SELF)) AND (SIZEOF(QUERY( doc <* SELF.documents | (doc.kind.product_data_type='simulation exception report')))=1); (* ---------- to tooling_report (as suggestion_for_changes) --------------*) wr2: ('CAST_PARTS_SCHEMA.ACTION_METHOD_WITH_ASSOCIATED_DOCUMENTS' IN TYPEOF(SELF)) AND (SIZEOF(QUERY( doc <* SELF.documents | (doc.kind.product_data_type='simulation tooling report')))=1); (* ---- to gating_system (as proposed_rigging) ------------- *) wr3:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND ('CAST_PARTS_SCHEMA.GATING_SYSTEM' IN TYPEOF(eds.definition)) ))) =1 ))))=0)); (* ---- to pattern_equipment_available (as available_tooling) ------- *) wr4:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PATTERN_EQUIPMENT_AVAILABLE' IN TYPEOF (eds)) ))) <=1 ))))=0)); END_ENTITY; -- metalcaster_simulation ENTITY mismatch_tolerance SUBTYPE OF (property_definition); WHERE (* -------- to numeric_parameter(as maximum_amount) ---------- *) wr1: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( NOT(SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'maximum amount') )) =1 )) )) = 0); (* ------- to parting_surface(as with_respect_to)------------- *) wr2: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | (NOT(SIZEOF(QUERY(ps <* USEDIN(pdr.related_property_definition, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'CAST_PARTS_SCHEMA.PARTING_SURFACE' IN TYPEOF(ps)))=1))))=0); END_ENTITY; -- mismatch_tolerance ENTITY modified_geometric_tolerance SUBTYPE OF (geometric_tolerance); modifier : limit_condition; END_ENTITY; -- modified_geometric_tolerance ENTITY modified_pattern SUBTYPE OF (shape_aspect); WHERE wr1: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) ) | ((SIZEOF([ 'CAST_PARTS_SCHEMA.REPLICATE_FEATURE', 'CAST_PARTS_SCHEMA.INSTANCED_FEATURE'] * TYPEOF(fcr. related_shape_aspect.of_shape.definition)) >= 1) AND (fcr. description = 'base shape')) )) = 1; wr2: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) ) | ((SIZEOF([ 'CAST_PARTS_SCHEMA.CIRCULAR_PATTERN', 'CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN'] * TYPEOF(fcr. related_shape_aspect.of_shape.definition)) = 1) AND (fcr. description = 'base pattern')) )) = 1; wr3: SIZEOF(QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | (SIZEOF(QUERY ( msar <* USEDIN( sar.related_shape_aspect, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | (((SIZEOF([ 'CAST_PARTS_SCHEMA.PATTERN_OFFSET_MEMBERSHIP', 'CAST_PARTS_SCHEMA.PATTERN_OMIT_MEMBERSHIP'] * TYPEOF(sar)) = 1) AND (sar.description = 'modified pattern')) AND (sar :<>: msar)) )) >= 1) )) = 0; END_ENTITY; -- modified_pattern ENTITY mold_box SUBTYPE OF (sand_cast_design_feature); WHERE (* ---------- mold_box to item_size (as box_size) ------------- *) WR1:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='mold box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'mold box dimension usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ***** mold_box to descriptive_parameter (as description) ***** *) wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'mold box description')))) <=1 ))))=1; END_ENTITY; -- mold_box ENTITY mold_lock SUBTYPE OF (sand_cast_design_feature); WHERE (* ---------- mold_locks to item_size (as lock_dimensions) ---------- *) WR1:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='mold lock occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'mold lock dimension usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ***** mold_locks to descriptive_parameter (as description) ***** *) wr2:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'mold lock description')))) <=1 ))))=1; END_ENTITY; -- mold_lock ENTITY molding_equipment SUBTYPE OF (casting_equipment); END_ENTITY; -- molding_equipment ENTITY name_attribute; attribute_value : label; named_item : name_attribute_select; END_ENTITY; -- name_attribute ENTITY named_unit SUPERTYPE OF (ONEOF (si_unit,conversion_based_unit, context_dependent_unit) ANDOR ONEOF (length_unit,mass_unit, time_unit,plane_angle_unit,solid_angle_unit,ratio_unit)); dimensions : dimensional_exponents; END_ENTITY; -- named_unit ENTITY next_assembly_usage_occurrence SUBTYPE OF (assembly_component_usage); END_ENTITY; -- next_assembly_usage_occurrence ENTITY ngon_closed_profile SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT ((SIZEOF(impl_rep. used_representation.items) >= 3) AND (SIZEOF(impl_rep. used_representation.items) <= 4))) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr. used_representation.items | (((((srwp_i.name = 'orientation') OR (srwp_i.name = 'number of sides')) OR (srwp_i.name = 'circumscribed diameter')) OR (srwp_i.name = 'corner radius')) OR (srwp_i.name = 'diameter across flats')) )) = SIZEOF(pdr. used_representation.items))) )) = 1) )) = 1; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'number of sides')) )) = 1)) )) = 0)) )) = 0; wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name IN ['circumscribed diameter', 'diameter across flats'])) )) = 1)) )) = 0)) )) = 0; wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'corner radius')) )) <= 1)) )) = 0)) )) = 0; END_ENTITY; -- ngon_closed_profile ENTITY non_casting_activity SUBTYPE OF (casting_activity); WHERE (* ----- to descriptive_parameter (as operation description) ---------- *) wr1: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'operation description') )))) =1 ))))>=1; (* ---- to finishing_or_machining_operations (as requirement) --------- *) wr2: SIZEOF(QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD')| (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(sar)) AND (SIZEOF(QUERY ( edi <* sar.items | ('CAST_PARTS_SCHEMA.FINISHING_AND_MACHINING_OPERATION' IN TYPEOF(edi)) )) <= 1))))>=0; (* --- to cast_part (as part_geometry_with_machining_allowance) ----- *) (* --- to design_part (as part_geometry_with_no_machining_allowance) -- *) wr3: (SIZEOF(QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD')| (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(sar)) AND (NOT(SIZEOF(QUERY ( ip <* sar.items | (SIZEOF(['CAST_PARTS_SCHEMA.CAST_PART', 'CAST_PARTS_SCHEMA.DESIGN_PART'] * TYPEOF(ip)) <=1)) ) =0 )))))>=0); END_ENTITY; -- non_casting_activity ENTITY non_casting_equipment_process SUBTYPE OF (non_machining_process); END_ENTITY; -- non_casting_equipment_process ENTITY non_machining_process SUBTYPE OF (manufacturing_process); END_ENTITY; -- non_machining_process ENTITY non_permanent_molding_process SUBTYPE OF (casting_activity); WHERE (* -------- molding_process ---------- *) wr1: (SELF.description IN ['shell','green sand','no bake', 'lost foam','vacuum']); (* -------- number_of_impressions ---------- *) wr2: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'number of impressions')) )) =1 ))))=1; (* -------- pattern_form ---------- *) wr3: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'pattern form') AND (it.description IN [ 'mounted match plate', 'mounted cope and drag inserts', 'mounted cope and drag boards', 'mounted flaskless cope and drag', 'loose split pattern', 'loose pattern with follow block', 'sweep'])))) =1 ))))>=1; (* ---- non_permanent_molding_process to flask (as flask_type) -------- *) (* ---- non_permanent_molding_process to flaskless (as flask_type) ---- *) (* ---- non_permanent_molding_process to mold_box (as flask_type) ---- *) wr4:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND (SIZEOF(['CAST_PARTS_SCHEMA.FLASK', 'CAST_PARTS_SCHEMA.FLASKLESS'] * TYPEOF(eds.definition)) =1) ))) =1 )))) =0)); (* ---- to production_pattern_definition (as pattern) ------------- *) wr5:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND (SIZEOF(['CAST_PARTS_SCHEMA.PRODUCTION_PATTERN_DEFINITION', 'CAST_PARTS_SCHEMA.LOST_FOAM_CASTING_DIE', 'CAST_PARTS_SCHEMA.INVESTMENT_MOLD'] * TYPEOF(eds.definition)) =1) ))) =1 )))) =0)); END_ENTITY; -- non_permanent_molding_process ENTITY object_role; name : label; description : OPTIONAL text; END_ENTITY; -- object_role ENTITY open_path_profile SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit')) )) <= 1)) )) = 0; END_ENTITY; -- open_path_profile ENTITY open_shell SUBTYPE OF (connected_face_set); END_ENTITY; -- open_shell ENTITY ordered_part SUBTYPE OF (action_assignment, characterized_object); items : SET [1:?] OF ordered_item; WHERE wr1: (SIZEOF(USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION'))= 1); wr2: (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1)) )) = 0); wr3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF( pdr.used_representation.items) = 1)) )) = 0)) )) = 0); wr4: (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'quantity')) )) = 1)) )) = 0)) )) = 0); END_ENTITY; -- ordered_part ENTITY organization; id : OPTIONAL identifier; name : label; description : OPTIONAL text; END_ENTITY; -- organization ENTITY organization_assignment ABSTRACT SUPERTYPE; assigned_organization : organization; role : organization_role; END_ENTITY; -- organization_assignment ENTITY organization_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- organization_role ENTITY organizational_address SUBTYPE OF (address); organizations : SET [1:?] OF organization; description : OPTIONAL text; END_ENTITY; -- organizational_address 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,'CAST_PARTS_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- organizational_project 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 ('CAST_PARTS_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(SELF. closed_shell_element)); END_ENTITY; -- oriented_closed_shell 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 ('CAST_PARTS_SCHEMA.ORIENTED_EDGE' IN TYPEOF(SELF. edge_element)); END_ENTITY; -- oriented_edge 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 ('CAST_PARTS_SCHEMA.ORIENTED_FACE' IN TYPEOF(SELF. face_element)); END_ENTITY; -- oriented_face 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 ('CAST_PARTS_SCHEMA.ORIENTED_OPEN_SHELL' IN TYPEOF(SELF. open_shell_element)); END_ENTITY; -- oriented_open_shell 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 ('CAST_PARTS_SCHEMA.ORIENTED_PATH' IN TYPEOF(SELF. path_element)); END_ENTITY; -- oriented_path ENTITY oriented_surface SUBTYPE OF (surface); orientation : BOOLEAN; END_ENTITY; -- oriented_surface ENTITY other_inspection SUBTYPE OF (inspection_or_test_result); WHERE (* ---------- inspection result ------------- *) wr1: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'inspection result') ) ))=1 )))) = 0); (* -- to inspection_or_test_requirement (as requirements)------------- *) wr2: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.INSPECTION_OR_TEST_REQUIREMENT' IN TYPEOF(pdr.related_property_definition)) )) =1); END_ENTITY; -- other_inspection ENTITY outer_round SUBTYPE OF (feature_definition); WHERE wr1: (NOT (SELF\characterized_object.description = 'outer diameter')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr. used_representation.items) = 3)) )) = 1) )) = 1); wr2: (NOT (SELF\characterized_object.description = 'outer diameter to shoulder')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ((2 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 3))) )) = 1) )) = 1); wr3: SELF\characterized_object.description IN ['outer diameter', 'outer diameter to shoulder']; wr4: (NOT (SELF\characterized_object.description = 'outer diameter')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'length')) )) = 1)) )) = 0)) )) = 0); wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) = 1)) )) = 0)) )) = 0; wr6: (NOT (SELF\characterized_object.description = 'outer diameter to shoulder')) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'v-shape boundary occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (('CAST_PARTS_SCHEMA.VEE_PROFILE' IN TYPEOF(sdr. relating_shape_aspect)) AND (sdr.relating_shape_aspect. description = 'v-shape')) )) = 1)) )) = 1)) )) = 0); wr7: (NOT (SELF\characterized_object.description = 'outer diameter')) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'reduced size occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'taper usage') AND ('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | ((('CAST_PARTS_SCHEMA.TAPER' IN TYPEOF(sdr .relating_shape_aspect)) AND ( 'CAST_PARTS_SCHEMA.OUTER_ROUND' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition))) AND (sdr.name = 'reduced size')) )) = 1)) )) <= 1)) )) = 0); wr8: (NOT (SELF\characterized_object.description = 'outer diameter to shoulder')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'length')) )) <= 1)) )) = 0)) )) = 0); wr9: (NOT (SELF\characterized_object.description = 'outer diameter to shoulder')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'feature length')) )) <= 1)) )) = 0)) )) = 0); END_ENTITY; -- outer_round ENTITY outside_profile SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr. used_representation.items) = 1)) )) = 1) )) = 1; wr2 : SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (sa_occ. description IN ['boundary occurrence', 'non-planar boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence']) )) = 1)) )) = 0; wr3 : (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (sa_occ. description = 'boundary occurrence') )) = 1)) )) = 0)) OR ( SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('CAST_PARTS_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar))) ) | (( SIZEOF(['CAST_PARTS_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.NGON_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.CLOSED_PATH_PROFILE', 'CAST_PARTS_SCHEMA.SQUARE_U_PROFILE', 'CAST_PARTS_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'CAST_PARTS_SCHEMA.ROUNDED_U_PROFILE', 'CAST_PARTS_SCHEMA.LINEAR_PROFILE', 'CAST_PARTS_SCHEMA.VEE_PROFILE', 'CAST_PARTS_SCHEMA.TEE_PROFILE', 'CAST_PARTS_SCHEMA.OPEN_PATH_PROFILE'] * TYPEOF(sdr. relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect .description = 'outside boundary')) )) = 1) )) = 1)) )) = 0); wr4 : (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (sa_occ. description IN ['complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence']) )) = 1)) )) = 0)) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (NOT (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile floor usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (('CAST_PARTS_SCHEMA.PROFILE_FLOOR' IN TYPEOF(sdr.relating_shape_aspect)) AND ( 'CAST_PARTS_SCHEMA.OUTSIDE_PROFILE' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition))) )) = 1)) )) = 0)) )) = 0); wr5 : (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (sa_occ. description IN ['outside boundary', 'complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence']) )) = 1)) )) = 0)) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND (('CAST_PARTS_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar))) ) | ((( SIZEOF(['CAST_PARTS_SCHEMA.PATH_FEATURE_COMPONENT'] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.name = 'profile swept shape')) AND (sdr.relating_shape_aspect. description = 'linear')) )) = 1) )) = 1)) )) = 0); wr6 : (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (sa_occ. description = 'complex boundary occurrence') )) = 1)) )) = 0)) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (SIZEOF([ 'CAST_PARTS_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.NGON_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.CLOSED_PATH_PROFILE', 'CAST_PARTS_SCHEMA.SQUARE_U_PROFILE', 'CAST_PARTS_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'CAST_PARTS_SCHEMA.ROUNDED_U_PROFILE', 'CAST_PARTS_SCHEMA.VEE_PROFILE', 'CAST_PARTS_SCHEMA.TEE_PROFILE', 'CAST_PARTS_SCHEMA.LINEAR_PROFILE', 'CAST_PARTS_SCHEMA.OPEN_PATH_PROFILE'] * TYPEOF(sdr. relating_shape_aspect)) = 1) )) = 1) )) = 1)) )) = 0); wr7 : (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (sa_occ. description = 'partial circular boundary occurrence') )) = 1)) )) = 0)) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) )) = 1) )) = 1)) )) = 0); wr8 : (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (sa_occ. description = 'closed circular boundary occurrence') )) = 1)) )) = 0)) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) )) = 1) )) = 1)) )) = 0); wr9 : (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (sa_occ. description = 'open rectangular boundary occurrence') )) = 1)) )) = 0)) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.SQUARE_U_PROFILE' IN TYPEOF( sdr.relating_shape_aspect)) )) = 1) )) = 1)) )) = 0); wr10: (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (sa_occ. description = 'closed rectangular boundary occurrence') )) = 1)) )) = 0)) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) )) = 1) )) = 1)) )) = 0); wr11: (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (sa_occ. description IN ['boundary occurrence', 'complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence']) )) = 1)) )) = 0) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'removal direction')) )) = 1)) )) = 0); wr12: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0; END_ENTITY; -- outside_profile ENTITY parabola SUBTYPE OF (conic); focal_dist : length_measure; WHERE wr1: focal_dist <> 0; END_ENTITY; -- parabola ENTITY parallel_offset SUBTYPE OF (derived_shape_aspect); offset : measure_with_unit; WHERE wr1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- parallel_offset ENTITY parallelism_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) < 3; END_ENTITY; -- parallelism_tolerance ENTITY parametric_representation_context SUBTYPE OF (representation_context); END_ENTITY; -- parametric_representation_context ENTITY partial_circular_profile SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) >= 3)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it)) = 2) AND (it.name = 'sweep angle')) )) = 1)) )) = 0)) )) = 0; wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit')) )) <= 1)) )) = 0; END_ENTITY; -- partial_circular_profile ENTITY parting_surface SUBTYPE OF (shape_representation); WHERE wr1: (SIZEOF(QUERY( it <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'cope or drag') AND (it.description IN ['cope','drag']) )))=1); wr2: (SIZEOF(QUERY( it <* SELF.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'male or female') AND (it.description IN ['male','female']) )))=1); wr3: (SIZEOF(QUERY( it <* SELF.items | (SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'offset distance')))>=1); wr4:(SIZEOF(QUERY (rep <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.REPRESENTATION_RELATIONSHIP.REP_1') | (SIZEOF(['CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' , 'CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION'] * TYPEOF(rep.rep_2))>=1)))=1); END_ENTITY; -- parting_surface ENTITY path SUPERTYPE OF (ONEOF (edge_loop,oriented_path)) SUBTYPE OF (topological_representation_item); edge_list : LIST [1:?] OF UNIQUE oriented_edge; WHERE wr1: path_head_to_tail(SELF); END_ENTITY; -- path ENTITY path_feature_component SUBTYPE OF (shape_aspect); WHERE wr1 : 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); wr2 : SELF.description IN ['partial circular','complete circular', 'linear','complex']; wr3 : (NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0); wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr5 : (NOT (SELF.description = 'partial circular')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 3)) )) = 0)) )) = 0); wr6 : (NOT (SELF.description = 'partial circular')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0); wr7 : (NOT (SELF.description = 'partial circular')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'sweep angle')) )) = 1)) )) = 0)) )) = 0); wr8 : (NOT (SELF.description = 'complete circular')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 2)) )) = 0)) )) = 0); wr9 : (NOT (SELF.description = 'complete circular')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0); wr10: (NOT (SELF.description = 'linear')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 2)) )) = 0)) )) = 0); wr11: (NOT (SELF.description = 'linear')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'distance')) )) = 1)) )) = 0)) )) = 0); wr12: (NOT (SELF.description = 'linear')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); wr13: (NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr .used_representation)) AND (pdr.used_representation.name = 'sweep path')) AND (SIZEOF(QUERY ( srwp_i <* pdr. used_representation.items | (srwp_i.name = 'profile shape') )) = 1)) )) = 1)) )) = 0); END_ENTITY; -- path_feature_component ENTITY path_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(SELF.items) >= 1; wr2: SIZEOF(QUERY ( i <* SELF.items | (SIZEOF([ 'CAST_PARTS_SCHEMA.BOUNDED_CURVE', 'CAST_PARTS_SCHEMA.EDGE_CURVE','CAST_PARTS_SCHEMA.PATH'] * TYPEOF(i)) = 1) )) >= 1; END_ENTITY; -- path_shape_representation ENTITY pattern_equipment_available SUBTYPE OF (customer_casting_requirement); WHERE (* ---------- core_box_cavity_id ------------- *) wr1: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'core box cavity id') ) )) =1 )))=0)); (* ---------- core_box_id ------------- *) wr2: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'core box id')) )) =1 ))) =0)); (* --------- number_of_core_boxes ---------- *) wr3:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'number of core boxes') )) =1 )))=0)); (* --------- number_of_cores_per_box ---------- *) wr4:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'number of core per box') )) =1 ))) =0)); (* --------- number_of_cores_per_casting ---------- *) wr5:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'number of cores per casting') )) =1 ))) =0)); (* --------- number_of_patterns ---------- *) wr6:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'number of patterns') )) =1 ))) =0)); (* ---------- condition ---------- *) wr7:(NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'condition') AND (it.description IN ['good','bad','fair','new'] ) ))) =1 )))=0)); (* ---------- core_box_material ---------- *) wr8: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ((pdr.name = 'core box material') AND (SIZEOF(QUERY ( mfuo <* USEDIN(pdr.related_property_definition.definition, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | (mfuo.name IN [ 'plaster', 'expandable polystytrene', 'iron', 'soft wood', 'shell', 'aluminum', 'epoxy', 'wood metal reinforced', 'brass', 'hard_wood', 'urethane', 'other', 'steel', 'ceramic', 'polymethylmethacrylate', 'plywood']) )) = 1)) )) =0)); (* ---------- pattern_impression_id ------------- *) wr9: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'pattern impression id') ))) =1 )))=0)); (* ---------- pattern_material ---------- *) wr10: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ((pdr.name = 'pattern material') AND (SIZEOF(QUERY ( mfuo <* USEDIN(pdr.related_property_definition.definition, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | (mfuo.name IN [ 'plaster', 'expandable polystytrene', 'iron', 'soft wood', 'shell', 'aluminum', 'epoxy', 'wood metal reinforced', 'brass', 'hard wood', 'urethane', 'other', 'steel', 'ceramic', 'polymethylmethacrylate', 'plywood']) )) = 1)) )) =0)); (* ---------- core_per_core_box_per_assembly ---------- *) wr11: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'core per core box per assembly') AND (it.description IN ['same core','different core'] ) ))) =1 )))=0)); (* ---------- pattern ---------- *) wr12: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'pattern') AND (it.description IN [ 'loose pattern with follow on board', 'loose solid pattern', 'loose split pattern', 'mounted cope and drag boards', 'mounted cope and drag flaskless', 'mounted cope and drag inserts', 'mounted snapboard', 'mounted match plate', 'sweep pattern'] ) ))) =1 )))=0)); (* -------- to flask (as flask_size_for_mounted_patterns)------------- *) wr13: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ((pdr.name= 'flask size for mounted patterns') AND ('CAST_PARTS_SCHEMA.FLASK' IN TYPEOF (pdr.related_property_definition.definition) )) )) =1); (* ----- to flask (as flask_size_for_plate_patterns)------------- *) wr14: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ((pdr.name= 'flask size for plate pattern') AND ('CAST_PARTS_SCHEMA.FLASK' IN TYPEOF (pdr.related_property_definition.definition) )) )) =1); (* ---- to flaskless(as flaskless_pattern)------------- *) wr15:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ((pdr.name= 'flaskless pattern') AND ('CAST_PARTS_SCHEMA.FLASKLESS' IN TYPEOF (pdr.related_property_definition.definition) )) )) =1); (* ***** to in_facility_location (as tooling_location) ***** *) (* ***** to person_and_organization (as tooling_location) ***** *) wr16: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('CAST_PARTS_SCHEMA.IN_FACILITY_LOCATION' IN TYPEOF(pdr.used_representation) ))) =1) OR (SIZEOF(QUERY(ada <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | (ada.role.name='tooling location')))=1); END_ENTITY; -- pattern_equipment_available ENTITY pattern_offset_membership SUBTYPE OF (feature_component_relationship); WHERE wr1 : SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF. relating_shape_aspect, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | (( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | (SIZEOF( QUERY ( pdr <* QUERY ( pd <* USEDIN(fcr. related_shape_aspect.of_shape, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (SIZEOF(['CAST_PARTS_SCHEMA.CIRCULAR_PATTERN', 'CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN'] * TYPEOF(pdr. definition)) = 1) )) = 0) )) = 0; wr2 : SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF. related_shape_aspect, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | (( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | ((fcr.description = 'modified pattern') AND ( 'CAST_PARTS_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr. relating_shape_aspect))) )) >= 1; wr3 : SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF. related_shape_aspect, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | (( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | (( 'CAST_PARTS_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr. relating_shape_aspect)) AND (NOT (SIZEOF(QUERY ( modfcr <* QUERY ( modsar <* USEDIN(fcr.relating_shape_aspect, 'CAST_PARTS_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (( SIZEOF(['CAST_PARTS_SCHEMA.CIRCULAR_PATTERN', 'CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN'] * TYPEOF(modsar. related_shape_aspect.of_shape.definition)) = 1) AND (modsar :<>: fcr)) ) | (NOT (modfcr.related_shape_aspect.of_shape. definition :=: SELF.relating_shape_aspect.of_shape. definition)) )) = 0))) )) = 0; wr4 : (NOT ('CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 2)) )) = 0); wr5 : (NOT ('CAST_PARTS_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1)) )) = 0); wr6 : (NOT ('CAST_PARTS_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT ( SIZEOF(pdr.used_representation.items) = 2)) )) = 0)) )) = 0); wr7 : (NOT ('CAST_PARTS_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'index number')) )) = 1)) )) = 0)) )) = 0); wr8 : (NOT ('CAST_PARTS_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(it)) AND (it.name = 'offset')) )) = 1)) )) = 0)) )) = 0); wr9 : (NOT ('CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 3)) )) = 0)) )) = 0); wr10: (NOT ('CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'row index')) )) = 1)) )) = 0)) )) = 0); wr11: (NOT ('CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'column index')) )) = 1)) )) = 0)) )) = 0); wr12: (NOT ('CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it)) AND (it.name = 'offset distance')) )) = 1)) )) = 0)) )) = 0); wr13: (NOT ('CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'offset direction')) )) = 1)) )) = 0); END_ENTITY; -- pattern_offset_membership ENTITY pattern_omit_membership SUBTYPE OF (feature_component_relationship); WHERE wr1: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF. relating_shape_aspect, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | (( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | (SIZEOF( QUERY ( pdr <* QUERY ( pd <* USEDIN(fcr.related_shape_aspect .of_shape,'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd)) ) | (SIZEOF(['CAST_PARTS_SCHEMA.CIRCULAR_PATTERN', 'CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN'] * TYPEOF(pdr. definition)) = 1) )) = 0) )) = 0; wr2: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF. related_shape_aspect, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | (( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | ((fcr.description = 'modified pattern') AND ( 'CAST_PARTS_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr. relating_shape_aspect))) )) >= 1; wr3: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF. related_shape_aspect, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | (( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF)) ) | (( 'CAST_PARTS_SCHEMA.MODIFIED_PATTERN' IN TYPEOF(fcr. relating_shape_aspect)) AND (NOT (SIZEOF(QUERY ( modfcr <* QUERY ( modsar <* USEDIN(fcr.relating_shape_aspect, 'CAST_PARTS_SCHEMA.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (( SIZEOF(['CAST_PARTS_SCHEMA.CIRCULAR_PATTERN', 'CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN'] * TYPEOF(modsar. related_shape_aspect.of_shape.definition)) = 1) AND (modsar :<>: fcr)) ) | (NOT (modfcr.related_shape_aspect.of_shape. definition :=: SELF.relating_shape_aspect.of_shape. definition)) )) = 0))) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1)) )) = 0; wr5: (NOT ('CAST_PARTS_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT ( SIZEOF(pdr.used_representation.items) = 1)) )) = 0)) )) = 0); wr6: (NOT ('CAST_PARTS_SCHEMA.CIRCULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'index number')) )) = 1)) )) = 0)) )) = 0); wr7: (NOT ('CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT ( SIZEOF(pdr.used_representation.items) = 2)) )) = 0)) )) = 0); wr8: (NOT ('CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'row index')) )) = 1)) )) = 0)) )) = 0); wr9: (NOT ('CAST_PARTS_SCHEMA.RECTANGULAR_PATTERN' IN TYPEOF(SELF. relating_shape_aspect.of_shape.definition))) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF.related_shape_aspect, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'column index')) )) = 1)) )) = 0)) )) = 0); END_ENTITY; -- pattern_omit_membership ENTITY pattern_plate SUBTYPE OF (sand_cast_design_feature); WHERE (* ---------- type_of_plate ------------- *) wr1: SIZEOF(QUERY ( co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | (('CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF(co)) AND (co.name IN ['wood','metal','metal insert','wood insert'])) )) = 1; (* ------ pattern_plate to item_size (as pattern_plate_dimensions) --- *) wr2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='pattern plate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'pattern plate usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* - pattern_plate to location_element (as mounting_hole_locations)---- *) wr3: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name='location'))))=1; (* -------- pattern_plate to flask (as defines_flask_type) ------------- *) wr4:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='pattern plate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'flask reference usage') AND ('CAST_PARTS_SCHEMA.FLASK' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* -------- pattern_plate to gating_system (as gate_rigging) ---------- *) wr5:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='pattern plate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'gating system reference usage') AND ('CAST_PARTS_SCHEMA.GATING_SYSTEM' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* -------- pattern_plate to mold_locks (as lock_definitions) ------- *) wr6:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='pattern plate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'mold lock reference usage') AND ('CAST_PARTS_SCHEMA.MOLD_LOCK' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; (* -------- pattern_plate to parting_surface (as parting_line) ---- *) wr7: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.PARTING_SURFACE' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name='parting line'))))=1; (* ----- pattern_plate to pin_center (as pin_center_definition) -- *) wr8: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='pattern plate occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'pin center reference usage') AND ('CAST_PARTS_SCHEMA.PIN_CENTER' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; (* ----- pattern_plate to molding_equipment (as molding_machine)---- *) wr9: (SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT.ITEMS')| (('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(adr.assigned_action_method)) AND (SIZEOF(QUERY(ar <* USEDIN(adr.assigned_action_method, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE.USAGE') | ('CAST_PARTS_SCHEMA.MOLDING_EQUIPMENT' IN TYPEOF(ar) )))=1))))=1); END_ENTITY; -- pattern_plate ENTITY payment_and_shipping SUBTYPE OF (customer_casting_requirement); WHERE (* ---------- customer_payment ---------- *) wr1: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'customer payment') ) )) =1 )))=0)); (* ---------- packaging_or_creating ---------- *) wr2: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'packaging or creating') ) )) =1 )))=0)); (* ---------- ship_casting ---------- *) wr3: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'ship_casting') ) )) =1 )))=0)); END_ENTITY; -- payment_and_shipping ENTITY pcurve SUBTYPE OF (curve); basis_surface : surface; reference_to_curve : definitional_representation; WHERE wr1: SIZEOF(reference_to_curve\representation.items) = 1; wr2: 'CAST_PARTS_SCHEMA.CURVE' IN TYPEOF(reference_to_curve\ representation.items[1]); wr3: reference_to_curve\representation.items[1]\ geometric_representation_item.dim = 2; END_ENTITY; -- pcurve ENTITY permanent_molding_process SUBTYPE OF (casting_activity); WHERE (* -------- molding_process ---------- *) wr1: (SELF.description IN ['static','tilt','low pressure']); (* -------- number_of_impressions ---------- *) wr2: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'number of impressions')) )) =1 ))))=1; (* ---- to die_mold_vent (as ejection_definition) ------------- *) wr3: (NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND ('CAST_PARTS_SCHEMA.DIE_MOLD_VENT' IN TYPEOF(eds.definition)) ))) =1 ))))=0)); (* ---- to ejector_system (as vent_definition) ------------- *) wr4:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND ('CAST_PARTS_SCHEMA.EJECTOR_SYSTEM' IN TYPEOF(eds.definition)) ))) =1 ))))=0)); (* ---- (as permanent_die_definition) ------------- *) wr5:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND ('CAST_PARTS_SCHEMA.PRODUCTION_DIE_MOLD' IN TYPEOF(eds.definition)) ))) =1 ))))=0)); (* -- permanent_mold_process to ingate (as metal_flow_system) ----- *) wr6:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND ('CAST_PARTS_SCHEMA.INGATE' IN TYPEOF(eds.definition)) ))) =1 ))))=0)); (* ---- p to runner (as metal_flow_system) ------------- *) wr7:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND ('CAST_PARTS_SCHEMA.RUNNER' IN TYPEOF(eds.definition)) ))) =1 ))))=0)); (* ---- to sprue (as metal_flow_system) ------------- *) wr8:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND ('CAST_PARTS_SCHEMA.SPRUE' IN TYPEOF(eds.definition)) ))) =1 ))))=0)); END_ENTITY; -- permanent_molding_process ENTITY perpendicular_to SUBTYPE OF (derived_shape_aspect); WHERE wr1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- perpendicular_to ENTITY perpendicularity_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) <= 3; END_ENTITY; -- perpendicularity_tolerance ENTITY person; id : identifier; last_name : OPTIONAL label; first_name : OPTIONAL label; middle_names : OPTIONAL LIST [1:?] OF label; prefix_titles : OPTIONAL LIST [1:?] OF label; suffix_titles : OPTIONAL LIST [1:?] OF label; WHERE wr1: EXISTS(last_name) OR EXISTS(first_name); END_ENTITY; -- person ENTITY person_and_organization; the_person : person; the_organization : organization; DERIVE name : label := get_name_value(SELF); description : text := get_description_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; wr2: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- person_and_organization ENTITY person_and_organization_assignment ABSTRACT SUPERTYPE; assigned_person_and_organization : person_and_organization; role : person_and_organization_role; END_ENTITY; -- person_and_organization_assignment ENTITY person_and_organization_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- person_and_organization_role ENTITY personal_address SUBTYPE OF (address); people : SET [1:?] OF person; description : OPTIONAL text; END_ENTITY; -- personal_address ENTITY pin_center SUBTYPE OF (sand_cast_design_feature); WHERE wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'dimension')) )) =1 ))))=1; END_ENTITY; -- pin_center ENTITY pin_tip SUBTYPE OF (ejector_design_feature); WHERE wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='pin tip occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'pin tip shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) =1; END_ENTITY; -- pin_tip ENTITY placed_datum_target_feature SUBTYPE OF (datum_target); WHERE wr1 : SELF.description IN ['point','line','rectangle','circle']; wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( dtm_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* dtm_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr4 : (NOT (SELF.description = 'point')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( dtm_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(dtm_rep. used_representation.items) = 1)) )) = 0)) )) = 0); wr5 : (NOT (SELF.description IN ['line','circle'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( dtm_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(dtm_rep. used_representation.items) = 2)) )) = 0)) )) = 0); wr6 : (NOT (SELF.description = 'rectangle')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( dtm_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(dtm_rep. used_representation.items) = 3)) )) = 0)) )) = 0); wr7 : (NOT (SELF.description = 'circle')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( dtm_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* dtm_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'target diameter')) )) = 1)) )) = 0)) )) = 0); wr8 : (NOT (SELF.description = 'line')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( dtm_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* dtm_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'target length')) )) = 1)) )) = 0)) )) = 0); wr9 : (NOT (SELF.description = 'rectangle')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( dtm_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* dtm_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'target length')) )) = 1)) )) = 0)) )) = 0); wr10: (NOT (SELF.description = 'rectangle')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( dtm_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* dtm_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'target width')) )) = 1)) )) = 0)) )) = 0); END_ENTITY; -- placed_datum_target_feature ENTITY placement SUPERTYPE OF (ONEOF (axis1_placement,axis2_placement_2d, axis2_placement_3d)) SUBTYPE OF (geometric_representation_item); location : cartesian_point; END_ENTITY; -- placement ENTITY planar_shape_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(SELF.items) = 1; wr2: SIZEOF(QUERY ( it <* SELF.items | ('CAST_PARTS_SCHEMA.PLANE' IN TYPEOF(it)) )) = 1; END_ENTITY; -- planar_shape_representation ENTITY plane SUBTYPE OF (elementary_surface); END_ENTITY; -- plane ENTITY plane_angle_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1: 'CAST_PARTS_SCHEMA.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\ measure_with_unit.unit_component); END_ENTITY; -- plane_angle_measure_with_unit ENTITY plane_angle_unit SUBTYPE OF (named_unit); WHERE wr1: ((((((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF \named_unit.dimensions.mass_exponent = 0)) AND (SELF\ named_unit.dimensions.time_exponent = 0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0)) AND ( SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0)) AND (SELF\ named_unit.dimensions.amount_of_substance_exponent = 0)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0); END_ENTITY; -- plane_angle_unit ENTITY plus_minus_tolerance; range : tolerance_method_definition; toleranced_dimension : dimensional_characteristic; UNIQUE ur1 : toleranced_dimension; END_ENTITY; -- plus_minus_tolerance ENTITY pocket SUBTYPE OF (feature_definition); WHERE wr1 : SELF\characterized_object.description IN ['closed rectangular', 'open rectangular','complex','circular cutout', 'complex cutout','recess']; wr2 : SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'pocket depth occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | (((sar.description = 'path feature component usage') AND (sar.name = 'pocket depth')) AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (('CAST_PARTS_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'linear')) )) = 1)) )) = 1)) )) = 0; wr3 : SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND ((1 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 2))) )) = 1) )) = 1; wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr. used_representation.items | ((srwp_i.name = 'orientation') OR (srwp_i.name = 'fillet radius')) )) = SIZEOF(pdr. used_representation.items))) )) = 1) )) = 1; wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'fillet radius')) )) <= 1)) )) = 0)) )) = 0; wr7 : (NOT (SELF\characterized_object.description IN ['complex', 'non-circular cutout','recess'])) OR (SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'boundary occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (SIZEOF([ 'CAST_PARTS_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.NGON_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.CLOSED_PATH_PROFILE', 'CAST_PARTS_SCHEMA.SQUARE_U_PROFILE', 'CAST_PARTS_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'CAST_PARTS_SCHEMA.ROUNDED_U_PROFILE', 'CAST_PARTS_SCHEMA.VEE_PROFILE', 'CAST_PARTS_SCHEMA.TEE_PROFILE', 'CAST_PARTS_SCHEMA.OPEN_PATH_PROFILE'] * TYPEOF(sdr. relating_shape_aspect)) = 1) )) = 1)) )) = 1)) )) = 0); wr8 : (NOT (SELF\characterized_object.description = 'closed rectangular')) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'closed boundary occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); wr9 : (NOT (SELF\characterized_object.description = 'open rectangular')) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'open boundary occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.SQUARE_U_PROFILE' IN TYPEOF( sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); wr10: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'bottom condition occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'pocket bottom usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (('CAST_PARTS_SCHEMA.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ( 'CAST_PARTS_SCHEMA.POCKET' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition))) )) = 1)) )) = 1)) )) = 0; wr11: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'change in boundary occurrence') AND (SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ((sar.description = 'taper usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | ((('CAST_PARTS_SCHEMA.TAPER' IN TYPEOF( fcr.relating_shape_aspect)) AND ('CAST_PARTS_SCHEMA.POCKET' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND (fcr.related_shape_aspect.description IN ['angle taper', 'directed taper'])) )) = 1)) )) <= 1)) )) = 0; wr12: (NOT (SELF\characterized_object.description = 'circular cutout')) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'enclosed boundary occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0); wr13: (NOT (SELF\characterized_object.description IN [ 'circular cutout','complex cutout'])) OR (SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'bottom condition occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'pocket bottom usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | ((('CAST_PARTS_SCHEMA.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ( 'CAST_PARTS_SCHEMA.POCKET' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition))) AND (sdr. relating_shape_aspect.description = 'through')) )) = 1)) )) = 1)) )) = 0); wr14: (NOT (SELF\characterized_object.description = 'recess')) OR ( SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'bottom condition occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'pocket bottom usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | ((('CAST_PARTS_SCHEMA.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ( 'CAST_PARTS_SCHEMA.POCKET' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition))) AND (sdr. relating_shape_aspect.description IN ['planar','complex'])) )) = 1)) )) = 1)) )) = 0); wr15: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0; wr16: (NOT (SELF\characterized_object.description IN [ 'closed rectangular','open rectangular','complex','recess'])) OR (SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (csa.name = 'uncut area')) AND (SIZEOF(QUERY ( sar <* csa.component_relationships | (( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF(['CAST_PARTS_SCHEMA.BOSS', 'CAST_PARTS_SCHEMA.PROTRUSION'] * TYPEOF(sar. related_shape_aspect)) = 1)) )) = 1)) )) <= 1)) )) = 1); END_ENTITY; -- pocket ENTITY pocket_bottom SUBTYPE OF (shape_aspect); WHERE wr1 : 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); wr2 : SELF.description IN ['planar','complex','through']; wr3 : (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'floor normal')) )) = 1)) )) = 0); wr4 : (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'floor location')) )) = 1)) )) = 0); wr5 : (NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr .used_representation)) AND (pdr.used_representation.name = 'floor face')) )) = 1)) )) = 0); wr6 : (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0); wr7 : (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) <= 1)) )) = 0)) )) = 0); wr8 : (NOT (SELF.description = 'through')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 0)) )) = 0); wr9 : (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) <= 1)) )) = 0)) )) = 0); wr10: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ((sar.description = 'pocket bottom usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND ( 'CAST_PARTS_SCHEMA.POCKET' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition))) AND ( 'CAST_PARTS_SCHEMA.POCKET_BOTTOM' IN TYPEOF(fcr. relating_shape_aspect))) )) >= 1; wr11: (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ((sar.description = 'pocket bottom usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | ((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND (fcr. related_shape_aspect.name IN ['pocket depth start', 'pocket depth end'])) )) = 0); END_ENTITY; -- pocket_bottom ENTITY point SUPERTYPE OF (cartesian_point) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- point ENTITY poly_loop SUBTYPE OF (loop, geometric_representation_item); polygon : LIST [3:?] OF UNIQUE cartesian_point; END_ENTITY; -- poly_loop ENTITY polyline SUBTYPE OF (bounded_curve); points : LIST [2:?] OF cartesian_point; END_ENTITY; -- polyline ENTITY position_tolerance SUBTYPE OF (geometric_tolerance); WHERE WR1: ( NOT ('CAST_PARTS_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF (SELF))) OR (SIZEOF (SELF\geometric_tolerance_with_datum_reference. datum_system) <= 3); END_ENTITY; -- position_tolerance ENTITY pre_defined_item; name : label; END_ENTITY; -- pre_defined_item ENTITY precision_qualifier; precision_value : INTEGER; END_ENTITY; -- precision_qualifier ENTITY process_parameter_record SUBTYPE OF (activity_result_record); WHERE (* - to property_parameter (as actual_parameter) ------------- *) wr1: (SIZEOF(QUERY( it <* SELF.items | (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(it)) = 1) AND (it.name = 'actual parameter')))=1); (* -- to property_parameter (as planned_parameter) ------------- *) wr2: (SIZEOF(QUERY( it <* SELF.items | (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(it)) = 1) AND (it.name = 'planned parameter')))=1); END_ENTITY; -- process_parameter_record ENTITY process_plan_activity SUBTYPE OF (action_method); WHERE (* -------- activity_number ---------- *) wr1: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'activity number')) )) =1 ))))=1; (* -------- frequency ---------- *) wr2: (SIZEOF(QUERY(ar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE.USAGE' ) | (ar.name='frequency') )) <=1); (* ---- to activity_execution_result to activity (as execution_result) - *) wr3: (SIZEOF(QUERY(ar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION.CHOSEN_METHOD') | ('CAST_PARTS_SCHEMA.ACTIVITY_EXECUTION_RESULT' IN TYPEOF(ar) )) )<=1); (* ----to organization (as performed_by_organization_id) ---------- *) wr4: (SIZEOF(QUERY ( aam <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | ((aam\organization_assignment.role.name='activity organization id') AND ('CAST_PARTS_SCHEMA.ORGANIZATION' IN TYPEOF(aam\organization_assignment.assigned_organization)))))<=1); (* ------- to special_instruction (as activity_information) ---------- *) wr5: SIZEOF(QUERY ( pdr <* get_action_property_representation(SELF) | (('CAST_PARTS_SCHEMA.REPRESENTATION' IN TYPEOF(pdr.representation)) AND (SIZEOF(QUERY (it <* pdr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'special instruction') )))) >=0 ))))>=1; (* --- to supplemental_document (as process_specification) ------------*) wr6:(NOT (('CAST_PARTS_SCHEMA.ACTION_METHOD_WITH_ASSOCIATED_DOCUMENTS') IN TYPEOF(SELF))) OR (SIZEOF(QUERY ( adr <* SELF\action_method_with_associated_documents.documents | (('CAST_PARTS_SCHEMA.PROCESS_PLAN_SPECIFICATION' IN TYPEOF(adr)) AND (adr.kind.product_data_type = 'supplemental documents')))) >= 0); (* -------- activity to performance_rate (as duration) ---------- *) wr7: (NOT(SIZEOF(QUERY(ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (SIZEOF([ 'CAST_PARTS_SCHEMA.ALLOWED_TIME', 'CAST_PARTS_SCHEMA.PRODUCTION_RATE'] * TYPEOF(ap)) >= 0)))=0)); (* --activity to design_reference (as graphics_representation) ------*) (* --activity to view_reference (as graphics_representation) --------*) (* --activity to illustration (as graphics_representation) ----------*) wr8: (NOT('CAST_PARTS_SCHEMA.ACTION_METHOD_WITH_ASSOCIATED_DOCUMENTS' IN TYPEOF(SELF)) OR (NOT (SIZEOF(QUERY( doc <* SELF.documents | (SIZEOF([ 'CAST_PARTS_SCHEMA.DESIGN_REFERENCE', 'CAST_PARTS_SCHEMA.VIEW_REFERENCE', 'CAST_PARTS_SCHEMA.ILLUSTRATION'] * TYPEOF(doc)) >=0 ))) =0 ))); (* --------- activity to cast_part (as output_item) ---------- *) wr9: (SIZEOF(QUERY ( apr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(apr)) AND (NOT(SIZEOF(QUERY(it <* apr.items | (SIZEOF([ 'CAST_PARTS_SCHEMA.CAST_PART', 'CAST_PARTS_SCHEMA.CAST_PART_WITH_RIGGING'] * TYPEOF(it)) <=1 ) )) =0 )) )) )<=1); (* -- activity to generic_manufacturing_resource (as consumable_resource) *) wr10: (SIZEOF(QUERY(ar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE.USAGE' ) | ('CAST_PARTS_SCHEMA.GENERIC_MANUFACTURING_RESOURCE' IN TYPEOF(ar))))>=0); END_ENTITY; -- process_plan_activity ENTITY process_plan_security SUBTYPE OF (security_classification); WHERE wr1: SIZEOF(QUERY ( da <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | ((( 'CAST_PARTS_SCHEMA.DATE_ASSIGNMENT' IN TYPEOF(da)) AND ( 'CAST_PARTS_SCHEMA.CALENDAR_DATE' IN TYPEOF(da.assigned_date))) AND (da.role.name = 'classification date')) )) = 1; wr2: SIZEOF(QUERY ( da <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | ((( 'CAST_PARTS_SCHEMA.DATE_ASSIGNMENT' IN TYPEOF(da)) AND ( 'CAST_PARTS_SCHEMA.CALENDAR_DATE' IN TYPEOF(da.assigned_date))) AND (da.role.name = 'declassification date')) )) = 1; wr3: SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SECURITY_CLASSIFICATION_ASSIGNMENT.' + 'ASSIGNED_SECURITY_CLASSIFICATION') | (('CAST_PARTS_SCHEMA.APPLIED_SECURITY_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ap)) AND (NOT (SIZEOF(QUERY ( it <* ap.items | ( 'CAST_PARTS_SCHEMA.PROCESS_PLAN_ACTIVITY' IN TYPEOF(it)) )) = 1))) )) = 0; wr4: SIZEOF(QUERY ( ap <* USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'SECURITY_CLASSIFICATION_ASSIGNMENT.ASSIGNED_SECURITY_CLASSIFICATION') | (('CAST_PARTS_SCHEMA.APPLIED_SECURITY_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(ap)) AND (NOT (SIZEOF(QUERY ( it <* ap.items | ( 'CAST_PARTS_SCHEMA.PROCESS_PLAN_VERSION' IN TYPEOF(it)) )) = 1))) )) = 0; END_ENTITY; -- process_plan_security ENTITY process_plan_specification SUBTYPE OF (document); WHERE wr1: SIZEOF(QUERY ( duc <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.DOCUMENT_USAGE_CONSTRAINT.SOURCE') | (duc .subject_element = 'revision') )) = 1; wr2: SIZEOF(QUERY ( duc <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.DOCUMENT_USAGE_CONSTRAINT.SOURCE') | (duc .subject_element = 'subclass') )) = 1; END_ENTITY; -- process_plan_specification ENTITY process_plan_version SUBTYPE OF (product_definition_process); WHERE wr1:(NOT(SIZEOF(QUERY ( ppp <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROCESS_PRODUCT_ASSOCIATION.PROCESS') | (SIZEOF(['CAST_PARTS_SCHEMA.DESIGN_PART', 'CAST_PARTS_SCHEMA.CAST_PART', 'CAST_PARTS_SCHEMA.CAST_PART_WITH_RIGGING', 'CAST_PARTS_SCHEMA.CASTING_PRODUCT_DEFINITION'] * TYPEOF(ppp.defined_product) )=1) ))=0)); wr2: (SIZEOF(QUERY(act <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_RELATIONSHIP.RELATING_ACTION')| ('CAST_PARTS_SCHEMA.ACTIVITY_EXECUTION_RESULT' IN TYPEOF(act.related_action)) ))=1); (* process_plan to casting_activity (as activities) *) wr3: (SIZEOF(QUERY ( duc <* USEDIN(SELF.chosen_method, 'CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD') | ('CAST_PARTS_SCHEMA.CASTING_ACTIVITY' IN TYPEOF(duc.related_method) )))=1); (* to manufacturing_process (as activities to produce part) *) wr4: (NOT(SELF\action.id = 'mini plan')) AND (NOT(SIZEOF(QUERY ( duc <* USEDIN(SELF.chosen_method, 'CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD') | (('CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP' IN TYPEOF(duc)) AND ( SIZEOF([ 'CAST_PARTS_SCHEMA.NON_MACHINING_PROCESS', 'CAST_PARTS_SCHEMA.MACHINING_PROCESS'] * TYPEOF(duc.related_method))=1))))=0)); (* ------ to material_usage as amount of raw materials) ------------ *) wr5:(NOT(SELF\action.id = 'mini plan')) AND (NOT(SIZEOF(QUERY( act <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_ASSIGNMENT.ASSIGNED_ACTION') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(act)) AND (SIZEOF(QUERY( mu <* act.items | 'CAST_PARTS_SCHEMA.MATERIAL_USAGE' IN TYPEOF(mu)))=1))))=0)); (* ------ to ordered_part (quantity_of_parts) ------------ *) wr6:(NOT(SELF\action.id = 'mini plan')) AND (NOT (SIZEOF(QUERY( act <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ORDERED_PART.ITEMS') | (SIZEOF(QUERY ( pd <* USEDIN(act, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'quantity')) )) =1 )) )) =0 )) )) =0 ))) =0)); (* to property_parameter (as process plan properties) *) wr7:(NOT(SELF\action.id = 'mini plan')) AND (NOT(SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT (SIZEOF(QUERY ( apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY ( it <* apr.representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF (it) )=1 ) AND (it.name='process plan properties' )) ))=1)))=0))))=0)); (* to special_instruction (as process plan information) *) wr8: (NOT(SELF\action.id = 'mini plan')) AND (NOT(SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT (SIZEOF(QUERY ( apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY ( it <* apr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'special instruction')) )) = 1))) = 0)))) = 0)); END_ENTITY; -- process_plan_version ENTITY process_product_association; name : label; description : text; defined_product : characterized_product_definition; process : product_definition_process; END_ENTITY; -- process_product_association ENTITY process_property_association; name : label; description : text; process : property_process; property_or_shape : property_or_shape_select; END_ENTITY; -- process_property_association ENTITY process_requirement SUBTYPE OF (customer_casting_requirement); WHERE wr1: NOT (SIZEOF(QUERY ( pdr <* USEDIN(SELF,'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY ( it <* pdr.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'process name')) )) = 1) )) = 0); END_ENTITY; -- process_requirement ENTITY product; id : identifier; name : label; description : OPTIONAL text; frame_of_reference : SET [1:?] OF product_context; END_ENTITY; -- product ENTITY product_category; name : label; description : OPTIONAL text; DERIVE id : identifier := get_id_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- product_category ENTITY product_context SUBTYPE OF (application_context_element); discipline_type : label; END_ENTITY; -- product_context ENTITY product_definition; id : identifier; description : OPTIONAL text; formation : product_definition_formation; frame_of_reference : product_definition_context; DERIVE name : label := get_name_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- product_definition ENTITY product_definition_context SUBTYPE OF (application_context_element); life_cycle_stage : label; END_ENTITY; -- product_definition_context ENTITY product_definition_effectivity SUBTYPE OF (effectivity); usage : product_definition_relationship; WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = 0; END_ENTITY; -- product_definition_effectivity ENTITY product_definition_formation; id : identifier; description : OPTIONAL text; of_product : product; UNIQUE ur1 : id, of_product; END_ENTITY; -- product_definition_formation ENTITY product_definition_formation_relationship; id : identifier; name : label; description : OPTIONAL text; relating_product_definition_formation : product_definition_formation; related_product_definition_formation : product_definition_formation; END_ENTITY; -- product_definition_formation_relationship ENTITY product_definition_process SUBTYPE OF (action); identification : identifier; INVERSE product_definitions : SET [1:?] OF process_product_association FOR process; END_ENTITY; -- product_definition_process ENTITY product_definition_relationship; id : identifier; name : label; description : OPTIONAL text; relating_product_definition : product_definition; related_product_definition : product_definition; END_ENTITY; -- product_definition_relationship ENTITY product_definition_shape SUBTYPE OF (property_definition); UNIQUE ur1 : definition; WHERE wr1: SIZEOF(['CAST_PARTS_SCHEMA.CHARACTERIZED_PRODUCT_DEFINITION', 'CAST_PARTS_SCHEMA.CHARACTERIZED_OBJECT'] * TYPEOF(SELF\ property_definition.definition)) > 0; END_ENTITY; -- product_definition_shape ENTITY product_definition_usage SUPERTYPE OF (ONEOF (make_from_usage_option,assembly_component_usage)) SUBTYPE OF (product_definition_relationship); UNIQUE ur1 : id, relating_product_definition, related_product_definition; WHERE wr1: acyclic_product_definition_relationship(SELF,[SELF\ product_definition_relationship.related_product_definition], 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_USAGE'); END_ENTITY; -- product_definition_usage ENTITY product_definition_with_associated_documents SUBTYPE OF (product_definition); documentation_ids : SET [1:?] OF document; END_ENTITY; -- product_definition_with_associated_documents ENTITY product_material_composition_relationship SUBTYPE OF (product_definition_relationship); class : label; constituent_amount : SET [1:?] OF measure_with_unit; composition_basis : label; determination_method : text; END_ENTITY; ENTITY product_related_product_category SUBTYPE OF (product_category); products : SET [1:?] OF product; END_ENTITY; -- product_related_product_category ENTITY production_core_box SUBTYPE OF (sand_cast_design_feature); WHERE (* ***** box_type ***** *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'core box type')))) =1 ))))=1; (* ***** vent_type ***** *) wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'core vent type')))) =1 ))))=1; (* ---------- core_box_material ------------- *) WR3: SIZEOF(QUERY ( co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | (('CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF(co)) AND (co.name IN ['wood','cast iron','urethane','aluminum'])) )) = 1; (* ---------- number_of_impressions ------------- *) wr4: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'number of impressions')) )) =1 ))))=1; (* ---------shrink_factor----- *) wr5:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'shrink factor')) )) =1 ))))=1; (* ----------production_core_box to casting_insert (as inserts) --- *) wr6:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production core box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'casting insert reference usage') AND ('CAST_PARTS_SCHEMA.CASTING_INSERT' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---production_core_box to chaplet_pad (as chaplet_pad_definition) --- *) wr7:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production core box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'chaplet pad reference usage') AND ('CAST_PARTS_SCHEMA.CHAPLET_PAD' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ----------production_core_box to core (as core_definiton)) ---------- *) wr8: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production core box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'core reference usage') AND ('CAST_PARTS_SCHEMA.CORE' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* ---- production_core_box to core_equipment (as core_made_by )------- *) wr9:(NOT(SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT.ITEMS')| (('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(adr.assigned_action_method)) AND (SIZEOF(QUERY(ar <* USEDIN(adr.assigned_action_method, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE.USAGE') | ('CAST_PARTS_SCHEMA.CORE_EQUIPMENT' IN TYPEOF(ar) )))>=1))))=0)); (* -production_core_box to core_print (as core_print_definition) ------ *) wr10:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production core box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'core print reference usage') AND ('CAST_PARTS_SCHEMA.CORE_PRINT' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* -------- production_core_box to drafted_surface (as draft) *) wr11: SIZEOF (QUERY(pdr <* get_property_definition_representations(SELF) | ( 'CAST_PARTS_SCHEMA.DRAFTED_SURFACE' IN TYPEOF ( pdr.used_representation ) ))) >=1; (* -production_core_box to loose_piece(as loose_piece_requirement) --- *) wr12:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production core box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'loose piece reference usage') AND ('CAST_PARTS_SCHEMA.LOOSE_PIECE' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* production_core_box to in_facility_location (as core_box_location) *) wr13: ((SIZEOF (QUERY(pdr <* get_property_definition_representations (SELF) | (( 'CAST_PARTS_SCHEMA.IN_FACILITY_LOCATION' IN TYPEOF ( pdr.used_representation ) )) )) =1) OR (SIZEOF(QUERY(ada <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | (ada.role.name='core box stored')))=1) ); (* ----- production_core_box to item_size (as guide_pin) ------------- *) WR14:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production core box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'guide pin size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; (* - production_core_box to item_size (as outside_shape_of_core_box) --- *) WR15:((SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production core box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'outside size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1) OR (SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production core box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'outside size usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1)); (* - production_core_box to parting_surface (as cope_and_drag_parting) *) wr16:SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | (( 'CAST_PARTS_SCHEMA.PARTING_SURFACE' IN TYPEOF ( pdr.used_representation )) AND (pdr.used_representation.name='cope and drag parting')))) >=1; (* - production_core_box to parting_surface (as offset_parting) --- *) wr17: SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | (( 'CAST_PARTS_SCHEMA.PARTING_SURFACE' IN TYPEOF ( pdr.used_representation )) AND (pdr.used_representation.name='offset parting')))) >=1; (* --- production_core_box to shape_element (as invest area_shape)---- *) WR18: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production core box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'investment area shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* --- production_core_box to shape_element (as impression_shape)------ *) WR19: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production core box occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'impression shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* * to machining_allowance (as machine_stock_on_tool) ** *) wr20: (SIZEOF(QUERY (co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | 'CAST_PARTS_SCHEMA.MACHINE_ALLOWANCE' IN TYPEOF (co)))>=1); END_ENTITY; -- production_core_box ENTITY production_die_cast_mold SUBTYPE OF (production_tool); WHERE (* ***** port_connection_type ***** *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'port connection type')))) =1 ))))=1; (* ***** insert_material_type ***** *) wr2: (SIZEOF(QUERY (co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF (co)))<=1); (* ---------- cooling_requirement ------------- *) wr3: (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'cooling requirement') AND (it.description IN ['true','false'] ) )))=1))))=0))))=0); (* ---------- die_type ------------- *) wr4: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'die type') AND ((it.description IN ['hot chamber','cold chamber','vacum chamber'] )) )) )) =1 )) ))>=1; (* ---------- inserts ------------- *) wr5: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'insert') AND ((it.description IN ['unit','combination','cast in','none'] )) )) )) <=1 )) ))>=1; (* production_die_cast_mold to item_size (as external_box_dimensions) *) WR6:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die cast mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production die cast mold dimension usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ***** production_die_cast_mold to sprue (as pouring_sprue) ***** *) wr7: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die cast mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'sprue reference usage') AND ('CAST_PARTS_SCHEMA.SPRUE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ***** production_die_cast_mold to runner (as gate_runner) ***** *) wr8: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die cast mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'gate runner reference usage') AND ( SIZEOF(['CAST_PARTS_SCHEMA.RUNNER', 'CAST_PARTS_SCHEMA.INGATE'] * TYPEOF(sar.relating_shape_aspect)) =1))) >=1 ))))>=1; (* production_die_cast_mold to slide (as movable_die_items) ***** *) (* ** production_die_cast_mold to die_clamping (as movable_die_items) *) wr9: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die cast mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'movable die clamping reference usage') AND ( SIZEOF(['CAST_PARTS_SCHEMA.SLIDE', 'CAST_PARTS_SCHEMA.DIE_CLAMPING'] * TYPEOF(sar.relating_shape_aspect)) =1))) >=0 ))))>=1; (* *** production_die_cast_mold to cooling_port (as cooling_type) ***** *) wr10: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die cast mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'cooling port reference usage') AND ('CAST_PARTS_SCHEMA.COOLING_PORT' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; (* to secondary_tooling (as secondary_tooling_requirements) ***** *) wr11:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die cast mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'secondary tooling reference usage') AND ('CAST_PARTS_SCHEMA.SECONDARY_TOOLING' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* production_die_cast_mold to die_clamping (as stationary_die_items) *) (* production_die_cast_mold to shot_sleeve (as stationary_die_items) *) wr12: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die cast mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'stationary die clamping reference usage') AND ( SIZEOF(['CAST_PARTS_SCHEMA.SHOT_SLEEVE', 'CAST_PARTS_SCHEMA.DIE_CLAMPING'] * TYPEOF(sar.relating_shape_aspect)) =1))) >=1 ))))>=1; END_ENTITY; -- production_die_cast_mold ENTITY production_die_mold SUBTYPE OF (production_tool); WHERE (* ***** die_type ***** *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'die type')))) =1 ))))=1; (* --- production_die_mold to item_size (as external_box_dimensions) -*) WR2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production die mold dimension usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ***** production_die_mold to slide (as slide_requirement) ***** *) wr3:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'slide reference usage') AND ('CAST_PARTS_SCHEMA.SLIDE' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* --- production_die_mold to gating_system (as gate_rigging) ---------- *) wr4:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'gating system reference usage') AND ('CAST_PARTS_SCHEMA.GATING_SYSTEM' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ------ production_die_mold to die_core (as core for die) --------- *) (* ---- production_die_mold to core(as core for die) -------- *) wr5: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production die mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'core reference usage') AND ( SIZEOF(['CAST_PARTS_SCHEMA.CORE', 'CAST_PARTS_SCHEMA.DIE_CORE'] * TYPEOF(sar.relating_shape_aspect)) =1))) >=0 ))))>=1; END_ENTITY; -- production_die_mold ENTITY production_investment_cast_mold SUBTYPE OF (production_tool); WHERE (* * production_investment_cast_mold to slide (as slide_requirement) * *) wr1:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production investment cast mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'slide reference usage') AND ('CAST_PARTS_SCHEMA.SLIDE' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* -------- to in_facility_location (as die_mold_location) *) wr2: ((SIZEOF (QUERY(pdr <* get_property_definition_representations (SELF) | (( 'CAST_PARTS_SCHEMA.IN_FACILITY_LOCATION' IN TYPEOF ( pdr.used_representation ) )) )) =1) OR (SIZEOF(QUERY(ada <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | (ada.role.name='core box stored')))=1) ); END_ENTITY; -- production_investment_cast_mold ENTITY production_tool SUBTYPE OF (die_design_feature); WHERE (* ---------shrink_factor----- *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'shrink factor')) )) =1 ))))=1; (* ---------- male_or_female_mold------------- *) wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'male or female') AND ((it.description IN ['male mold','female mold'] )) )) )) =1 )) ))>=1; (* ---------- number_of_cavities ------------- *) wr3: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'number of cavities')) )) =1 ))))=1; (* ------- production_tool to item_size (as guide_pin) ------------- *) WR4:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production tool occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'guide pin shape usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; (* ------ production_tool to die_core (as core_for_die) ------------- *) wr5:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production tool occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'die core reference usage') AND ('CAST_PARTS_SCHEMA.DIE_CORE' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* -- production_tool to ejector_system (as ejection_definition) ---- *) wr6:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production tool occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ejector system reference usage') AND ('CAST_PARTS_SCHEMA.EJECTOR_SYSTEM' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* - production_tool to production_core_box (as core_definition) --- *) wr7:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production tool occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production core box reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_CORE_BOX' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* * to machining_allowance (as allowance_on_machinable_surfaces) ** *) wr8: (SIZEOF(QUERY (co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | 'CAST_PARTS_SCHEMA.MACHINE_ALLOWANCE' IN TYPEOF (co)))<=1); (* - production_tool to parting_surface (as male_or_female_parting) - *) wr9: SIZEOF (QUERY(pdr <* get_property_definition_representations (SELF) | (( 'CAST_PARTS_SCHEMA.PARTING_SURFACE' IN TYPEOF ( pdr.used_representation )) AND (pdr.used_representation.name='male or female parting')))) >=1; (* - production_tool to parting_surface (as offset_parting_surfaces) *) wr10: SIZEOF (QUERY(pdr <* get_property_definition_representations (SELF) | (( 'CAST_PARTS_SCHEMA.PARTING_SURFACE' IN TYPEOF ( pdr.used_representation )) AND (pdr.used_representation.name='offset parting')))) >=0; (* production_tool to drafted_surface (as draft) *) wr11: SIZEOF (QUERY(pdr <* get_property_definition_representations (SELF) | ( 'CAST_PARTS_SCHEMA.DRAFTED_SURFACE' IN TYPEOF ( pdr.used_representation ) ))) >=1; (* ---------- to shape_aspect (as outside_shape_of_die_mold)-------- *) (* ------- production_tool to (as outside_shape_of_die_mold) ------------- *) WR12: ((SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production tool occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production tool outside shape usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1) OR (SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production tool occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production tool outside shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1)); (* --- production_tool to shape_element (as mold_impression_shape)----- *) WR13:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production tool occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production tool impression shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* ------ production_tool to riser (as riser_on_mold) ------------- *) (* ---- production_tool to riser_contact (as riser_on_mold) -------- *) wr14: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production tool occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'riser reference usage') AND ( SIZEOF(['CAST_PARTS_SCHEMA.RISER', 'CAST_PARTS_SCHEMA.RISER_CONTACT'] * TYPEOF(sar.relating_shape_aspect)) =1))) >=0 ))))>=1; (* ---------- production_tool to vent ( as vent requirement) ------------- *) WR15: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production tool occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'vent reference usage') AND ('CAST_PARTS_SCHEMA.VENT' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; END_ENTITY; -- production_tool ENTITY production_pattern_definition SUBTYPE OF (sand_cast_design_feature); WHERE (* ***** condition ***** *) WR1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'condition') AND (it.description IN ['good','bad','fair','new'] )) )) ) =1 )))) >=1; (* ---------- number_of_patterns_mounted ------------- *) wr2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'number of patterns mounted')) )) =1 ))))=1; (* ---------shrink_factor----- *) wr3: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'shrink factor')) )) =1 ))))=1; (* ---production_pattern_definition to casting_insert (as inserts) -- *) wr4: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production pattern definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'casting insert reference usage') AND ('CAST_PARTS_SCHEMA.CASTING_INSERT' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* -- to chaplet_pad (as chaplet_pad_definition) -- *) wr5: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production pattern definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'chaplet pad reference usage') AND ('CAST_PARTS_SCHEMA.CHAPLET_PAD' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* --production_pattern_definition to chill (as chill_pattern) --- *) wr6: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production pattern definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'chill reference usage') AND ('CAST_PARTS_SCHEMA.CHILL' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* -- to in_facility_location (as pattern_location) *) wr7: SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'CAST_PARTS_SCHEMA.IN_FACILITY_LOCATION' IN TYPEOF ( pdr.used_representation ) ))) =1; (* -- to production_core_box(as cores_for_pattern) --*) wr8: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production pattern definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production core box reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_CORE_BOX' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* -- to core_print (as core_print_definition) -- *) wr9: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production pattern definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'core print reference usage') AND ('CAST_PARTS_SCHEMA.CORE_PRINT' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---- production_pattern_definition to drafted_surface (as draft) *) wr10: SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | ( 'CAST_PARTS_SCHEMA.DRAFTED_SURFACE' IN TYPEOF ( pdr.used_representation ) ))) >=1; (* - to loose_piece(as loose_piece_requirement) -- *) wr11: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production pattern definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'loose piece reference usage') AND ('CAST_PARTS_SCHEMA.LOOSE_PIECE' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* -- to parting_surface (as cope_and_drag_parting) - *) wr12: SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | (( 'CAST_PARTS_SCHEMA.PARTING_SURFACE' IN TYPEOF ( pdr.used_representation )) AND (pdr.used_representation.name='cope and drag parting')))) =1; (* -- to parting_surface (as offset_parting) ------- *) wr13: SIZEOF(QUERY(pdr <* get_property_definition_representations(SELF) | (( 'CAST_PARTS_SCHEMA.PARTING_SURFACE' IN TYPEOF ( pdr.used_representation )) AND (pdr.used_representation.name='offset parting')))) >=0; (* -- to pattern_plate (as match_plate_patterns) ---- *) wr14: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production pattern definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'pattern plate reference usage') AND ('CAST_PARTS_SCHEMA.PATTERN_PLATE' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* -------- to riser (as riser_on_pattern) ------- *) (* ------- to riser_contact (as riser_on_pattern) ------- *) wr15: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production pattern definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'riser reference usage') AND ( SIZEOF(['CAST_PARTS_SCHEMA.RISER', 'CAST_PARTS_SCHEMA.RISER_CONTACT'] * TYPEOF(sar.relating_shape_aspect)) =1))) >=0 ))))>=1; (* ---------- to shape_element (as invest_area)------------- *) WR16:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='production pattern definition occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production pattern definition shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- production_pattern_definition ENTITY production_rate SUBTYPE OF (action_property); WHERE wr1: SIZEOF(QUERY ( apr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| (SIZEOF(QUERY ( it <* apr.representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.TIME_MEASURE_WITH_UNIT'] * TYPEOF (it)) = 2) AND (it.name = 'time per unit')))) = 1))) = 1; wr2: SIZEOF(QUERY ( apr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| (SIZEOF(QUERY ( it <* apr.representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'unit quantity'))))=1)))=1; wr3: SIZEOF(QUERY ( apr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| (SIZEOF(QUERY ( it <* apr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'production rate source'))))=1)))=1; END_ENTITY; -- production_rate ENTITY production_welding SUBTYPE OF (non_casting_activity); END_ENTITY; -- production_welding ENTITY profile_floor SUBTYPE OF (shape_aspect); WHERE wr1 : 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); wr2 : SELF.description IN ['planar','complex','through']; wr3 : (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0); wr4 : (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | ((NOT (SIZEOF(impl_rep. used_representation.items) >= 1)) AND (SIZEOF(impl_rep. used_representation.items) <= 2)) )) = 0)) )) = 0); wr5 : (NOT (SELF.description = 'through')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 0)) )) = 0); wr6 : (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0); wr7 : SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ((sar.description = 'profile floor usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (('CAST_PARTS_SCHEMA.OUTSIDE_PROFILE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND ( 'CAST_PARTS_SCHEMA.PROFILE_FLOOR' IN TYPEOF(fcr. relating_shape_aspect))) )) >= 1; wr8 : (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'shape profile floor orientation')) AND (it.description IN ['shape profile start','shape profile end'])) )) = 1)) )) = 0)) )) = 0); wr9 : (NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr .used_representation)) AND (pdr.used_representation.name = 'floor')) )) = 1)) )) = 1); wr10: (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'floor')) )) = 1)) )) = 1); END_ENTITY; -- profile_floor ENTITY projected_zone_definition SUBTYPE OF (tolerance_zone_definition); projection_end : shape_aspect; projected_length : measure_with_unit; WHERE wr1: projected_length.value_component > 0; END_ENTITY; -- projected_zone_definition ENTITY property_definition; name : label; description : OPTIONAL text; definition : characterized_definition; DERIVE id : identifier := get_id_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- property_definition ENTITY property_definition_relationship; name : label; description : text; relating_property_definition : property_definition; related_property_definition : property_definition; END_ENTITY; -- property_definition_relationship ENTITY property_definition_representation; definition : represented_definition; used_representation : representation; DERIVE description : text := get_description_value(SELF); name : label := get_name_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; wr2: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY; -- property_definition_representation ENTITY property_inspection SUBTYPE OF (inspection_or_test_result); WHERE (* --to property_parameter (as property_result)--- *) wr1:(NOT (SIZEOF(QUERY( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY( it <* pdr.used_representation.items | (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(it)) = 1) AND (it.name = 'property result'))) =1 ))) =0)); (* --to property_parameter (as requirements)---- *) wr2: (NOT (SIZEOF(QUERY( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY( it <* pdr.used_representation.items | (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(it)) = 1) AND (it.name = 'requirements') )) >=1))) =0)); END_ENTITY; -- property_inspection ENTITY property_process SUBTYPE OF (action); identification : identifier; INVERSE properties : SET [1:?] OF process_property_association FOR process; END_ENTITY; -- property_process ENTITY property_relationship SUBTYPE OF (representation); WHERE (* --- x property name----- *) wr1: SIZEOF(QUERY ( mri <* SELF.items | (( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(mri)) AND (mri.name = 'x property name')) )) = 1; (* --- y property name----- *) wr2: SIZEOF(QUERY ( mri <* SELF.items | (( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(mri)) AND (mri.name = 'y property name')) )) = 1; (* --- property_relationship to data_curve (as data_points)----- *) wr3: SIZEOF(QUERY ( rep <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.REPRESENTATION_RELATIONSHIP.REP_1') | (('CAST_PARTS_SCHEMA.DATA_CURVE' IN TYPEOF(rep.rep_2)) AND (rep.rep_2.name='relationship curve')))) >= 1; END_ENTITY; -- property_relationship ENTITY protrusion SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0; wr2: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'shape volume occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'volume shape usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (sdr.relating_shape_aspect.description = 'volume shape') )) = 1)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0; END_ENTITY; -- protrusion ENTITY qualified_representation_item SUBTYPE OF (representation_item); qualifiers : SET [1:?] OF value_qualifier; WHERE wr1: SIZEOF(QUERY ( temp <* qualifiers | ( 'CAST_PARTS_SCHEMA.PRECISION_QUALIFIER' IN TYPEOF(temp)) )) < 2; END_ENTITY; -- qualified_representation_item ENTITY quasi_uniform_curve SUBTYPE OF (b_spline_curve); END_ENTITY; -- quasi_uniform_curve ENTITY quasi_uniform_surface SUBTYPE OF (b_spline_surface); END_ENTITY; -- quasi_uniform_surface ENTITY ratio_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1: 'CAST_PARTS_SCHEMA.RATIO_UNIT' IN TYPEOF(SELF\measure_with_unit .unit_component); END_ENTITY; -- ratio_measure_with_unit ENTITY ratio_unit SUBTYPE OF (named_unit); WHERE wr1: ((((((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF \named_unit.dimensions.mass_exponent = 0)) AND (SELF\ named_unit.dimensions.time_exponent = 0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0)) AND ( SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0)) AND (SELF\ named_unit.dimensions.amount_of_substance_exponent = 0)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0); END_ENTITY; -- ratio_unit ENTITY rational_b_spline_curve SUBTYPE OF (b_spline_curve); weights_data : LIST [2:?] OF REAL; DERIVE weights : ARRAY [0:upper_index_on_control_points] OF REAL := list_to_array(weights_data,0, upper_index_on_control_points); WHERE wr1: SIZEOF(weights_data) = SIZEOF(SELF\b_spline_curve. control_points_list); wr2: curve_weights_positive(SELF); END_ENTITY; -- rational_b_spline_curve ENTITY rational_b_spline_surface SUBTYPE OF (b_spline_surface); weights_data : LIST [2:?] OF LIST [2:?] OF REAL; DERIVE weights : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF REAL := make_array_of_array(weights_data,0,u_upper,0,v_upper); WHERE wr1: (SIZEOF(weights_data) = SIZEOF(SELF\b_spline_surface. control_points_list)) AND (SIZEOF(weights_data[1]) = SIZEOF( SELF\b_spline_surface.control_points_list[1])); wr2: surface_weights_positive(SELF); END_ENTITY; -- rational_b_spline_surface ENTITY rectangular_closed_profile SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT ((SIZEOF(impl_rep. used_representation.items) >= 3) AND (SIZEOF(impl_rep. used_representation.items) <= 4))) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION.DEFINITION') | (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ((((srwp_i .name = 'orientation') OR (srwp_i.name = 'length')) OR ( srwp_i.name = 'width')) OR (srwp_i.name = 'corner radius')) )) = SIZEOF(pdr.used_representation.items))) )) = 1) )) = 1; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'width')) )) = 1)) )) = 0)) )) = 0; wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'length')) )) = 1)) )) = 0)) )) = 0; wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'corner radius')) )) <= 1)) )) = 0)) )) = 0; END_ENTITY; -- rectangular_closed_profile ENTITY rectangular_pattern SUBTYPE OF (replicate_feature); WHERE wr1 : SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) ) | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.related_shape_aspect)) )) = 1) )) <= 5)) )) = 0; wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'row layout direction')) )) = 1)) )) = 0; wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'column layout direction')) )) = 1)) )) = 0; wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 5)) )) = 0)) )) = 0; wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'number of rows')) )) = 1)) )) = 0)) )) = 0; wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'number of columns')) )) = 1)) )) = 0)) )) = 0; wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'row spacing')) )) = 1)) )) = 0)) )) = 0; wr9 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'column spacing')) )) = 1)) )) = 0)) )) = 0; wr10: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; END_ENTITY; -- rectangular_pattern ENTITY red_lined_part SUBTYPE OF (product_definition); WHERE (* ------- red_lined_part to feature (as mark_up_feature) *) wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='red lined part occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'red lined feature usage') AND ( SIZEOF(['CAST_PARTS_SCHEMA.INSTANCED_FEATURE', 'CAST_PARTS_SCHEMA.CASTING_INSTANCED_FEATURE'] * TYPEOF(sar.relating_shape_aspect)) =1))) >=0 ))))>=1; (* ------- red_lined_part to shape_aspect (as mark_up_shape) *) wr2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='red lined part occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'red lined shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ------ red_lined_part to material (as mark_up_material) *) WR3: (NOT(SIZEOF(QUERY (pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| (('CAST_PARTS_SCHEMA.MAKE_FROM_USAGE_OPTION' IN TYPEOF(pdr)) AND (pdr.name='mark up material') AND (SIZEOF(QUERY(mfuo <* USEDIN(pdr.related_product_definition, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF (mfuo) ))>=0))))=0)); (* ------- red_lined_part to property (as mark_up_property) *) wr4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (pd.id='mark up property'))) >=0; END_ENTITY; -- red_lined_part ENTITY referenced_modified_datum SUBTYPE OF (datum_reference); modifier : limit_condition; END_ENTITY; -- referenced_modified_datum ENTITY relationship_condition; name : label; applicable_relationships : SET [1:?] OF relationship_with_condition; condition_description : text; END_ENTITY; -- relationship_condition ENTITY removal_volume SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0; wr2: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'shape volume occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'volume shape usage') AND (('CAST_PARTS_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar))) ) | (sdr. relating_shape_aspect.description = 'volume shape') )) = 1)) )) = 1)) )) = 0; END_ENTITY; -- removal_volume ENTITY replicate_feature SUPERTYPE OF (ONEOF (circular_pattern,rectangular_pattern, feature_pattern)) SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr2: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) ) | ((SIZEOF([ 'CAST_PARTS_SCHEMA.REPLICATE_FEATURE', 'CAST_PARTS_SCHEMA.INSTANCED_FEATURE'] * TYPEOF(fcr. related_shape_aspect)) >= 1) AND (fcr.name = 'pattern basis')) )) = 1; wr3: (SIZEOF(QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | (NOT ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) )) + SIZEOF(QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | (NOT ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ))) = 0; END_ENTITY; -- replicate_feature ENTITY reporting_requirement SUBTYPE OF (customer_casting_requirement); WHERE (* --- reporting_requirement to date (as date_to_be_reported)----- *) wr1: (SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | (ada.role.name='required delivery date')))=1); (* reporting_requirement to customer_casting_requirement (as based_on)- *) wr2:(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | (('CAST_PARTS_SCHEMA.CUSTOMER_CASTING_REQUIREMENT' IN TYPEOF (pdr.related_property_definition) )) )) =1); END_ENTITY; -- reporting_requirement ENTITY representation; name : label; items : SET [1:?] OF representation_item; context_of_items : representation_context; DERIVE id : identifier := get_id_value(SELF); description : text := get_description_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; wr2: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- representation ENTITY representation_context; context_identifier : identifier; context_type : text; INVERSE representations_in_context : SET [1:?] OF representation FOR context_of_items; END_ENTITY; -- representation_context ENTITY representation_item; name : label; WHERE wr1: SIZEOF(using_representations(SELF)) > 0; END_ENTITY; -- representation_item ENTITY representation_map; mapping_origin : representation_item; mapped_representation : representation; INVERSE map_usage : SET [1:?] OF mapped_item FOR mapping_source; WHERE wr1: item_in_context(SELF.mapping_origin,SELF.mapped_representation. context_of_items); END_ENTITY; -- representation_map ENTITY representation_relationship; name : label; description : OPTIONAL text; rep_1 : representation; rep_2 : representation; END_ENTITY; -- representation_relationship ENTITY request_for_quotation SUBTYPE OF (versioned_action_request); WHERE (* ------------ quantity_breaks ----------------*) wr1: SIZEOF(QUERY(ars <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.REQUEST') | (NOT (SIZEOF(QUERY(ap <* USEDIN(ars.method, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT (SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (NOT (SIZEOF(QUERY(it <* apr.representation.items | ((('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'quantity breaks')) ))>=1)) ))=0)) ))=0)) ))=0; (* ------------ quantity_per_release ----------------*) wr2: SIZEOF(QUERY(ars <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.REQUEST') | (NOT (SIZEOF(QUERY(ap <* USEDIN(ars.method, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT (SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (NOT (SIZEOF(QUERY(it <* apr.representation.items | ((('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'quantity per release')) )) <=1)) ))=0)) ))=0)) ))=0; (* ------------ quantity_per_month ----------------*) wr3: SIZEOF(QUERY(ars <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.REQUEST') | (NOT (SIZEOF(QUERY(ap <* USEDIN(ars.method, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT (SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (NOT (SIZEOF(QUERY(it <* apr.representation.items | ((('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'quantity per month')) )) <=1)) ))=0)) ))=0)) ))=0; (* ------------ quantity_per_year ----------------*) wr4: SIZEOF(QUERY(ars <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.REQUEST') | (NOT (SIZEOF(QUERY(ap <* USEDIN(ars.method, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT (SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (NOT (SIZEOF(QUERY(it <* apr.representation.items | ((('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'quantity per year')) )) <=1)) ))=0)) ))=0)) ))=0; (* ------------ quantity_per_order ----------------*) wr5: SIZEOF(QUERY(ars <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.REQUEST') | (NOT (SIZEOF(QUERY(ap <* USEDIN(ars.method, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT (SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (NOT (SIZEOF(QUERY(it <* apr.representation.items | ((('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'total quantity per order')) ))=1)) ))=0)) ))=0)) ))=0; (* ------------ type_of_quotation ----------------*) wr6: SIZEOF(QUERY(ars <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.REQUEST') | (NOT (SIZEOF(QUERY(ap <* USEDIN(ars.method, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT (SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (NOT (SIZEOF(QUERY(it <* apr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'type of quotation')) ))=1)) ))=0)) ))=0)) ))=0; (* - request_for_quotation to date (as delivery_date) - *) wr7: (SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | (ada.role.name='delivery date')))=1); (* -- request_for_quotation to date (as reply_due_date) - *) wr8: (SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | (ada.role.name='reply due date')))=1); (* -- request_for_quotation to date (as request_date) -*) wr9: (SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | (ada.role.name='request date')))=1); (* -- request_for_quotation to date (as order_completion) - *) wr10: (SIZEOF(QUERY(ada <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | (ada.role.name='order completion')))=1); END_ENTITY; -- request_for_quotation ENTITY requirement_for_action_resource SUBTYPE OF (action_resource_requirement); resources : SET [1:?] OF action_resource; END_ENTITY; -- requirement_for_action_resource ENTITY reset_or_push_pin SUBTYPE OF (ejector_design_feature); WHERE (* ***** spring_description ***** *) WR1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'spring description')))) <=1 ))))=1; (* - reset_or_return_pins to item_size (as pin_dimensions) ------ *) WR2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='reset or push pin occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'reset or push pin dimensions size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; END_ENTITY; -- reset_or_push_pin ENTITY resource_property; name : label; description : text; resource : characterized_resource_definition; END_ENTITY; -- resource_property ENTITY resource_property_representation; name : label; description : text; property : resource_property; representation : representation; END_ENTITY; -- resource_property_representation ENTITY resource_requirement_type; name : label; description : text; END_ENTITY; -- resource_requirement_type ENTITY resource_with_material SUBTYPE OF (generic_manufacturing_resource); WHERE wr1: (NOT (SIZEOF(QUERY( am <* SELF.usage | (('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(am)) AND (NOT(SIZEOF(QUERY ( ama <* USEDIN(am, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD')| (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY ( eds <* ama.items | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(eds)) ))=1))))=0)))))=0)); END_ENTITY; -- resource_with_material ENTITY resource_with_representation SUBTYPE OF (generic_manufacturing_resource); WHERE wr1:(NOT (SIZEOF(QUERY ( ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.RESOURCE_PROPERTY.RESOURCE') | (SIZEOF(QUERY ( rpr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.RESOURCE_PROPERTY_REPRESENTATION.PROPERTY') | ('CAST_PARTS_SCHEMA.EXTERNALLY_DEFINED_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(rpr.representation)) )) = 1) )) = 0)); END_ENTITY; -- resource_with_representation ENTITY revision SUBTYPE OF (action_relationship); WHERE (* ---------- reason_for_revision ---------- *) wr1: SIZEOF(QUERY ( rc <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'RELATIONSHIP_CONDITION.APPLICABLE_RELATIONSHIPS')| (rc.name = 'reason for revision'))) = 1; (* ---------- revision_level ---------- *) wr2: SIZEOF(QUERY ( ars <* USEDIN(SELF.related_action.chosen_method, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.METHOD') | (('CAST_PARTS_SCHEMA.VERSIONED_ACTION_REQUEST' IN TYPEOF(ars.request)) AND (ars.request.description = 'revision level')))) = 1; (* ---------- revision to status_authority ( as approved_by) ---------- *) wr3: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_APPROVAL_ASSIGNMENT.ITEMS')| ('CAST_PARTS_SCHEMA.APPROVAL' IN TYPEOF(adr.assigned_approval)))) >= 1; (* ---------- revision to process_plan_version (as related_to ---------- *) (* ---------- revision to process_plan_version (as relating_to --------- *) wr4: ('CAST_PARTS_SCHEMA.PROCESS_PLAN_VERSION' IN TYPEOF(SELF.related_action)) AND ('CAST_PARTS_SCHEMA.PROCESS_PLAN_VERSION' IN TYPEOF(SELF.relating_action)); END_ENTITY; -- revision ENTITY revolved_profile SUBTYPE OF (feature_definition); WHERE wr1: SELF\characterized_object.description IN ['groove','flat', 'round','open profile']; wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 2)) )) = 0)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'removal direction')) )) = 1; wr5: (NOT (SELF\characterized_object.description = 'open profile')) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'outer edge shape occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (('CAST_PARTS_SCHEMA.OPEN_PATH_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'outer edge shape')) )) = 1)) )) = 1)) )) = 0); wr6: (NOT (SELF\characterized_object.description = 'flat')) OR ( SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'flat edge shape occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (('CAST_PARTS_SCHEMA.LINEAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect. description = 'flat edge shape')) )) = 1)) )) = 1)) )) = 0); wr7: (NOT (SELF\characterized_object.description = 'round')) OR ( SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'rounded edge shape occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (('CAST_PARTS_SCHEMA.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'rounded edge shape')) )) = 1)) )) = 1)) )) = 0); wr8: (NOT (SELF\characterized_object.description = 'groove')) OR ( SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'sweep occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ((SIZEOF(['CAST_PARTS_SCHEMA.SQUARE_U_PROFILE', 'CAST_PARTS_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'CAST_PARTS_SCHEMA.ROUNDED_U_PROFILE', 'CAST_PARTS_SCHEMA.VEE_PROFILE', 'CAST_PARTS_SCHEMA.TEE_PROFILE', 'CAST_PARTS_SCHEMA.OPEN_PATH_PROFILE'] * TYPEOF(sdr. relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect. description = 'sweep')) )) = 1)) )) = 1)) )) = 0); wr9: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0; END_ENTITY; -- revolved_profile ENTITY rib SUBTYPE OF (casting_design_feature); WHERE wr1 : SELF\characterized_object.description IN ['planar','complex']; (* ------ general_rib to numeric_parameter (as part_rib_fillet)------ *) wr2: ((NOT (SELF\characterized_object.description = 'complex')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'part rib fillet')) )) =1 )))) =1 )); (* ------- general_rib to numeric_parameter (as wall_to_floor_fillet)- *) wr3: ((NOT (SELF\characterized_object.description = 'complex')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'wall to floor fillet')) )) =1 )))) =1 )); (* ----- general_rib to numeric_parameter (as wall_to_top_fillet)------ *) wr4: ((NOT (SELF\characterized_object.description = 'complex')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'wall to top radius')) )) =1 )))) =1 )); (* ---- general_rib to face_shape_element(as walls_top_floor)---------- *) (* --- general_rib to planar_element(as walls_top_floor) ------------- *) WR5: ((NOT (SELF\characterized_object.description = 'complex')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | ((SIZEOF(['CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION', 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION'] * TYPEOF(pdr.used_representation)) = 1)AND (pdr.used_representation.name='walls top floor'))))>=1)); (* ---------planar_rib to numeric_parameter (as part_rib_radius)--- *) wr6: ((NOT (SELF\characterized_object.description = 'planar')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'part rib radius')) )) =1 )))) =1 )); (* --Planar_rib to numeric_parameter (as rib_extent_fillet)- *) wr7: ((NOT (SELF\characterized_object.description = 'planar')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'rib extent fillet')) )) =1 )))) =1 )); (* - Planar_rib to numeric_parameter (as transition_to_top_radius)----- *) wr8: ((NOT (SELF\characterized_object.description = 'planar')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'transition to top radius')) )) =1 )))) =1 )); (* - Planar_rib to numeric_parameter (as wall_to_top_radius) *) wr9: ((NOT (SELF\characterized_object.description = 'planar')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'wall to top radius')) )) =1 )))) =1 )); (* - Planar_rib to numeric_parameter (as wall_to_floor_fillet)----- *) wr10:((NOT (SELF\characterized_object.description = 'planar')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | ((SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'wall to floor fillet')) )) =1 )))) =1 )); (* ------ Planar_rib to face_shape_element(as top)------------- *) (* ------- Planar_rib to planar_element(as top) ------------- *) wr11: ((NOT (SELF\characterized_object.description = 'planar')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | ((SIZEOF(['CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION', 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION'] * TYPEOF(pdr.used_representation)) = 1)AND (pdr.used_representation.name='top'))))>=1)); (* -------- Planar_rib to planar_element(as walls) ------------- *) WR12: ((NOT (SELF\characterized_object.description = 'planar')) OR (SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | ((SIZEOF(['CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION'] * TYPEOF(pdr.used_representation)) = 1)AND (pdr.used_representation.name='walls'))))>=1)); END_ENTITY; -- rib ENTITY rib_top SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'rib top condition occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'rib top usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (('CAST_PARTS_SCHEMA.RIB_TOP_FLOOR' IN TYPEOF(sdr.relating_shape_aspect)) AND ( 'CAST_PARTS_SCHEMA.RIB_TOP' IN TYPEOF(sdr. related_shape_aspect.of_shape.definition))) )) = 1)) )) = 1)) )) = 0; wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'removal direction')) )) = 1)) )) = 1; wr3: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0; END_ENTITY; -- rib_top ENTITY rib_top_floor SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SELF.description IN ['planar','complex']; wr3: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | ((sar.description = 'rib top usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (((fcr.related_shape_aspect.description = 'rib top condition occurrence') AND ( 'CAST_PARTS_SCHEMA.RIB_TOP' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition))) AND ( 'CAST_PARTS_SCHEMA.RIB_TOP_FLOOR' IN TYPEOF(fcr. relating_shape_aspect))) )) >= 1; wr4: (NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr. used_representation)) AND (pdr.used_representation.name = 'rib top face')) )) = 1)) )) = 0); wr5: (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'rib top face')) )) = 1)) )) = 0); wr6: (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'boundary occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ((SIZEOF([ 'CAST_PARTS_SCHEMA.CIRCULAR_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.NGON_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.RECTANGULAR_CLOSED_PROFILE', 'CAST_PARTS_SCHEMA.CLOSED_PATH_PROFILE'] * TYPEOF(sdr. relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect. description = 'rib top floor boundary')) )) = 1)) )) = 1)) )) = 0); END_ENTITY; -- rib_top_floor ENTITY riser SUBTYPE OF (gating_design_feature); WHERE (* ***** riser_type ***** *) WR1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'riser type') AND ((it.description IN ['open','blind','open with radiation sheld', 'top','top_with_radiation_sheld'] ))))))=1 ))))>=1; (* ***** riser_sleeve ***** *) WR2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'riser sleeve') AND ((it.description IN ['insulating','exothermic', 'insulating and exothermic'] ))))))<=1 ))))>=1; (* ---------- risers to item_size (as riser_dimensions) ----------- *) WR3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='riser occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'riser size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ---------- risers to item_size (as riser_neck) ------------- *) WR4: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='riser occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'riser neck size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---------- risers to riser_contact (as contact_definition) -------- *) WR5: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='riser occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'riser contact reference usage') AND ('CAST_PARTS_SCHEMA.RISER_CONTACT' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---------- risers to well (as riser_well) ------------- *) WR6: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='riser occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'well reference usage') AND ('CAST_PARTS_SCHEMA.WELL' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---------- risers to item_size (as riser_core) ------------- *) WR7: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='riser occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'riser core size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; END_ENTITY; -- riser ENTITY riser_contact SUBTYPE OF (gating_design_feature); WHERE (* ---------- contact_placement ------------- *) WR1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'cope or drag') AND ((it.description IN ['cope', 'drag','cope and drag'] )) )) )) =1 )) ))>=1; (* ------ riser_contact to shape_element (as break_off_connection)----- *) wr2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='riser contact occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'riser contact shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) <=0 )))) <=1; END_ENTITY; -- riser_contact ENTITY role_association; role : object_role; item_with_role : role_select; END_ENTITY; -- role_association ENTITY round_hole SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'diameter occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (('CAST_PARTS_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.name = 'diameter')) )) = 1)) )) = 1)) )) = 0; wr2: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'hole depth occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ((('CAST_PARTS_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.name = 'hole depth')) AND (sdr.relating_shape_aspect.description = 'linear')) )) = 1)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'bottom condition occurrence') AND (SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'hole bottom usage') AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (('CAST_PARTS_SCHEMA.HOLE_BOTTOM' IN TYPEOF(fcr.relating_shape_aspect)) AND ( 'CAST_PARTS_SCHEMA.ROUND_HOLE' IN TYPEOF(fcr. related_shape_aspect.of_shape.definition))) )) = 1)) )) = 1)) )) = 0; wr4: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'change in diameter occurrence') AND (SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'taper usage') AND ('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (('CAST_PARTS_SCHEMA.TAPER' IN TYPEOF(fcr. relating_shape_aspect)) AND ('CAST_PARTS_SCHEMA.ROUND_HOLE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) )) = 1)) )) <= 1)) )) = 0; wr5: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1; END_ENTITY; -- round_hole ENTITY rounded_end SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0; wr2: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'partial circular boundary occurrence') AND ( SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'course of travel occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (('CAST_PARTS_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'linear')) )) = 1)) )) = 1)) )) = 0; wr4: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0; END_ENTITY; -- rounded_end ENTITY rounded_u_profile SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | ((NOT (SIZEOF(impl_rep. used_representation.items) >= 1)) AND (SIZEOF(impl_rep. used_representation.items) <= 2)) )) = 0)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr. used_representation.items | ((srwp_i.name = 'orientation') OR (srwp_i.name = 'depth')) )) = SIZEOF(pdr. used_representation.items))) )) = 1) )) = 1; wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'width')) )) = 1)) )) = 0)) )) = 0; wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit')) )) <= 1)) )) = 0; wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'depth')) )) <= 1)) )) = 0)) )) = 0; END_ENTITY; -- rounded_u_profile ENTITY roundness_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1: NOT (('CAST_PARTS_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE') IN TYPEOF(SELF)); END_ENTITY; -- roundness_tolerance ENTITY runner SUBTYPE OF (gating_design_feature); WHERE (* ---------- runner_placement ------------- *) WR1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'cope or drag') AND ((it.description IN ['cope', 'drag','cope and drag'] )) )) )) =1 )) ))>=1; (* ---------- runners to feeders (as riser_connection) ------------- *) WR2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='runner occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'feeder reference usage') AND ('CAST_PARTS_SCHEMA.FEEDER' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---------- runners to item_size (as runner_dimensions) -------- *) WR3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='runner occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'runner dimensions size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ---------- runners to sprue ( as sprue_connections) ------------- *) WR4: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='runner occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'sprue reference usage') AND ('CAST_PARTS_SCHEMA.SPRUE' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* ---------- runners to filter ( as metal_flow_filter) ------------- *) WR5: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='runner occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'filter reference usage') AND ('CAST_PARTS_SCHEMA.FILTER' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---------- runners to choke ( as runner choke) ------------- *) WR6: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='runner occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'choke reference usage') AND ('CAST_PARTS_SCHEMA.CHOKE' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---------- runners to vent ( as runner vent) ------------- *) WR7: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='runner occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'vent reference usage') AND ('CAST_PARTS_SCHEMA.VENT' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; END_ENTITY; -- runner ENTITY runout_zone_definition SUBTYPE OF (tolerance_zone_definition); orientation : runout_zone_orientation; END_ENTITY; -- runout_zone_definition ENTITY runout_zone_orientation; angle : measure_with_unit; END_ENTITY; -- runout_zone_orientation ENTITY runout_zone_orientation_reference_direction SUBTYPE OF (runout_zone_orientation); orientation_defining_relationship : shape_aspect_relationship; END_ENTITY; -- runout_zone_orientation_reference_direction ENTITY sampled_set SUBTYPE OF (property_definition); WHERE (* ---------- size------------- *) wr1:(NOT (SIZEOF(QUERY( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY( it <* pdr.used_representation.items | (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'size') )) <=1)) ) =0)); (* --------- sampled_set to master_sample(as master_sample_inspected)-- *) (* **** SEE MASTER_SAMPLE FOR THIS RULE **** *) (* ---------- sampled_set to heat(as sampled_form)---------- *) (* ---------- sampled_set to lot(as sampled_form)----------- *) Wr2: (NOT(SIZEOF(QUERY ( da <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS') | (SIZEOF([ 'CAST_PARTS_SCHEMA.LOT_EFFECTIVITY', 'CAST_PARTS_SCHEMA.DATED_EFFECTIVITY'] * TYPEOF(da\effectivity_assignment.assigned_effectivity)) = 1)))=0)); (* -- to product_quality_report (as quality_assurance_document)- *) Wr3: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS') | (adr.assigned_document.kind.product_data_type= 'production quality report'))) >= 1; END_ENTITY; -- sampled_set ENTITY sand_cast_design_feature SUBTYPE OF (casting_feature_definition); WHERE WR1: SIZEOF(QUERY( pdr <* get_property_definition_representations (SELF) | 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF ( pdr.used_representation ) ) ) =1; (* ***** Sand_cast_design_feature to orientation (as placement) ***** *) WR2: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) =1 ))))=1; END_ENTITY; -- sand_cast_design_feature ENTITY sand_casting_tooling SUBTYPE OF (casting_product_definition); WHERE (* ------ sand_casting_tooling to material (as material_definition) *) WR1: (NOT(SIZEOF(QUERY (pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| (('CAST_PARTS_SCHEMA.MAKE_FROM_USAGE_OPTION' IN TYPEOF(pdr)) AND (pdr.name='material definition') AND (SIZEOF(QUERY(mfuo <* USEDIN(pdr.related_product_definition, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF (mfuo) ))=1))))=0)); (* ------ sand_casting_tooling to material (as tooling_material) *) WR2: (NOT(SIZEOF(QUERY (pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION')| (('CAST_PARTS_SCHEMA.MAKE_FROM_USAGE_OPTION' IN TYPEOF(pdr)) AND (pdr.name='tooling material') AND (SIZEOF(QUERY(mfuo <* USEDIN(pdr.related_product_definition, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | (mfuo.name IN ['wood','cast iron','urethane','aluminum'] ) ))=1))))=0)); (* to production_pattern_definition (as pattern_equipment) *) wr3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sand casting tooling occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'production pattern definition reference usage') AND ('CAST_PARTS_SCHEMA.PRODUCTION_PATTERN_DEFINITION' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; END_ENTITY; -- sand_casting_tooling ENTITY sand_mold SUBTYPE OF (sand_cast_design_feature); WHERE (* ---------- sand_mold_type ------------- *) WR1:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'sand mold type') AND ((it.description IN ['grean sand material','skin dried metrhod', 'cold box mold method','no bake mold method'] )) )) )) =1 )) ))>=1; (* ***** sand_mold to chaplet (as chaplet_definition) ***** *) wr2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sand mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'chaplet reference usage') AND ('CAST_PARTS_SCHEMA.CHAPLET' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ***** sand_mold to chill (as chill_definition) ***** *) wr3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sand mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'chill reference usage') AND ('CAST_PARTS_SCHEMA.CHILL' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ------ sand_mold to equipment (as mold_made_by) *) wr4: (NOT (SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT.ITEMS')| (('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(adr.assigned_action_method)) AND (SIZEOF(QUERY(ar <* USEDIN(adr.assigned_action_method, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE.USAGE') | ('CAST_PARTS_SCHEMA.CASTING_EQUIPMENT' IN TYPEOF(ar) )))=1))))=0)); END_ENTITY; -- sand_mold ENTITY secondary_tooling SUBTYPE OF (die_design_feature); WHERE (* ***** type_of_tooling ***** *) wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'type of tooling')))) =1 ))))=1; END_ENTITY; -- secondary_tooling ENTITY security_classification; name : label; purpose : text; security_level : security_classification_level; END_ENTITY; -- security_classification ENTITY security_classification_assignment ABSTRACT SUPERTYPE; assigned_security_classification : security_classification; DERIVE role : object_role := get_role(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY; -- security_classification_assignment ENTITY security_classification_level; name : label; END_ENTITY; -- security_classification_level ENTITY sequential_method SUBTYPE OF (serial_action_method); sequence_position : count_measure; END_ENTITY; -- sequential_method ENTITY serial_action_method SUBTYPE OF (action_method_relationship); END_ENTITY; -- serial_action_method ENTITY shakeout SUBTYPE OF (casting_equipment); END_ENTITY; -- shakeout ENTITY shape_aspect; name : label; description : OPTIONAL text; of_shape : product_definition_shape; product_definitional : LOGICAL; DERIVE id : identifier := get_id_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- shape_aspect ENTITY shape_aspect_deriving_relationship SUBTYPE OF (shape_aspect_relationship); WHERE wr1: 'CAST_PARTS_SCHEMA.DERIVED_SHAPE_ASPECT' IN TYPEOF(SELF\ shape_aspect_relationship.relating_shape_aspect); END_ENTITY; -- shape_aspect_deriving_relationship ENTITY shape_aspect_relationship; name : label; description : OPTIONAL text; relating_shape_aspect : shape_aspect; related_shape_aspect : shape_aspect; DERIVE id : identifier := get_id_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY; -- shape_aspect_relationship ENTITY shape_defining_relationship SUBTYPE OF (shape_aspect_relationship); END_ENTITY; -- shape_defining_relationship ENTITY shape_definition_representation SUBTYPE OF (property_definition_representation); WHERE wr1: ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF. definition)) OR ('CAST_PARTS_SCHEMA.SHAPE_DEFINITION' IN TYPEOF(SELF.definition.definition)); wr2: 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION' IN TYPEOF(SELF. used_representation); END_ENTITY; -- shape_definition_representation ENTITY shape_dimension SUBTYPE OF (property_definition); WHERE (* shape_dimension to dimensional_tolerance(as dimensionals) shape_dimension to production_die_mold (as tooling) shape_dimension to production_core_box (as tooling) shape_dimension to production_pattern_definition (as tooling) shape_dimension to production_investment_cast_mold (as tooling) shape_dimension to production_die_cast_mold (as tooling) *) wr1: (NOT (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ( ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pdr.related_property_definition)) AND (NOT (SIZEOF(QUERY( it <* USEDIN(pdr.related_property_definition, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF(['CAST_PARTS_SCHEMA.PRODUCTION_DIE_MOLD', 'CAST_PARTS_SCHEMA.PRODUCTION_CORE_BOX', 'CAST_PARTS_SCHEMA.PRODUCTION_PATTERN_DEFINITION', 'CAST_PARTS_SCHEMA.PRODUCTION_DIE_CAST_MOLD', 'CAST_PARTS_SCHEMA.PRODUCTION_INVESTMENT_CAST_MOLD'] * TYPEOF(it)) = 1) )) =1 )) )) ) =0 )); END_ENTITY; -- shape_dimension ENTITY shape_dimension_representation SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(QUERY ( temp <* SELF.items | (NOT ( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( temp))) )) = 0; wr2: SIZEOF(SELF.items) <= 2; wr3: SIZEOF(QUERY ( pos_mri <* QUERY ( real_mri <* SELF.items | ( 'REAL' IN TYPEOF(real_mri\measure_with_unit.value_component)) ) | (NOT (pos_mri\measure_with_unit.value_component > 0)) )) = 0; END_ENTITY; -- shape_dimension_representation ENTITY shape_representation SUBTYPE OF (representation); END_ENTITY; -- shape_representation ENTITY shape_representation_with_parameters SUBTYPE OF (shape_representation); WHERE wr1: SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([ 'CAST_PARTS_SCHEMA.PLACEMENT', 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(it)) = 1)) )) = 0; END_ENTITY; -- shape_representation_with_parameters ENTITY shot_sleeve SUBTYPE OF (die_design_feature); WHERE (* ----- shot_sleeve to item_size (as shot_sleeve_size) ------------- *) wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='shot sleeve occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'shot sleeve shape usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; END_ENTITY; -- shot_sleeve ENTITY si_unit SUBTYPE OF (named_unit); prefix : OPTIONAL si_prefix; name : si_unit_name; DERIVE SELF\named_unit.dimensions : dimensional_exponents := dimensions_for_si_unit(name); END_ENTITY; -- si_unit ENTITY simulated_property SUBTYPE OF (representation); WHERE (* property_value *) WR1: SIZEOF(QUERY( it <* SELF.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.PARAMETER_VALUE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'property value'))))=1; END_ENTITY; -- simulated_property ENTITY simulation_input SUBTYPE OF (requirement_for_action_resource); WHERE (* simulation_input to CAST_PARTS_SCHEMA (as setup_file) *) wr1: SIZEOF(QUERY (adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| ('CAST_PARTS_SCHEMA.DOCUMENT' IN TYPEOF (adr.assigned_document))))=1; (* simulation_input to condition_or_assumption(as condition) *) wr2: SIZEOF(QUERY ( ap <* SELF.OPERATIONS | (('CAST_PARTS_SCHEMA.CONDITION_OR_ASSUMPTION' IN TYPEOF(ap) ) AND (ap.name='condition')) )) >= 0; (* simulation_input to condition_or_assumption(as assumption) *) wr3: SIZEOF(QUERY ( ap <* SELF.OPERATIONS| (('CAST_PARTS_SCHEMA.CONDITION_OR_ASSUMPTION' IN TYPEOF(ap) ) AND (ap.name='assumption')) )) >= 0; (* to integration_interval(as integration_time_specification) *) wr4: SIZEOF(QUERY ( ap <* SELF.OPERATIONS| (('CAST_PARTS_SCHEMA.INTEGRATION_INTERVAL' IN TYPEOF(ap) ) AND (ap.name='assumption')) )) >= 1; (* simulation_input to numeric_parameter(as input_parameter) *) wr5: (NOT(SIZEOF(QUERY ( rp <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.RESOURCE_PROPERTY.RESOURCE') | (NOT(SIZEOF(QUERY ( ap <* USEDIN(rp, 'CAST_PARTS_SCHEMA.RESOURCE_PROPERTY_REPRESENTATION.PROPERTY') | ((SIZEOF(QUERY(ri <* ap.representation.items| (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(ri)) AND (ri.name = 'input parameter')))) >=1 )))) =0 )))) =0 )); (* simulation_input to property_relationship(as input_parameter) *) wr6: (NOT(SIZEOF(QUERY ( rp <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.RESOURCE_PROPERTY.RESOURCE') | (SIZEOF(QUERY ( ap <* USEDIN(rp, 'CAST_PARTS_SCHEMA.RESOURCE_PROPERTY_REPRESENTATION.PROPERTY') | (('CAST_PARTS_SCHEMA.PROPERTY_RELATIONSHIP' IN TYPEOF(ap.representation) ) ))) >=1 ))) =0)); (* simulation_input to simulation_input_region (as region) *) wr7: SIZEOF(QUERY ( r <* SELF.resources | 'CAST_PARTS_SCHEMA.SIMULATION_INPUT_REGION' IN TYPEOF(r))) >= 1; END_ENTITY; -- simulation_input ENTITY simulation_input_region SUBTYPE OF (action_resource); WHERE (* simulation_input_region to boundary_conditon(as boundary_condition) *) wr1: SIZEOF(QUERY( am <* SELF.usage | ('CAST_PARTS_SCHEMA.BOUNDARY_CONDITION' IN TYPEOF(am))))>=0; (* simulation_input_region to boundary_conditon(as boundary_condition) *) wr2: SIZEOF(QUERY( am <* SELF.usage | ('CAST_PARTS_SCHEMA.MESHING_CONDITION' IN TYPEOF(am))))>=0; (* simulation_input_region to numeric_parameter(as region_property)*) wr3: (NOT (SIZEOF(QUERY( am <* SELF.usage | (('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(am)) AND (NOT(SIZEOF(QUERY( ama <* USEDIN(am, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(mri)) = 2)AND (mri.name = 'region property')) )) >=1 ))) =0 ))))) =0 ))))) =0 ))))) =0)); (* simulation_input_region to property_relationship(as region_property) *) wr4: (NOT (SIZEOF(QUERY( am <* SELF.usage | (('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(am)) AND (NOT(SIZEOF(QUERY( ama <* USEDIN(am, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | ('CAST_PARTS_SCHEMA.PROPERTY_RELATIONSHIP' IN TYPEOF(mri))))=1) )) >=1 ))))) =0 ))))) =0 ))))) =0)); (* simulation_input_region to shape_aspect (as area_to) *) wr5:(NOT (SIZEOF(QUERY( am <* SELF.usage | (('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(am)) AND (NOT(SIZEOF(QUERY( ama <* USEDIN(am, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF (eds)) )) =1 )))) =0 ))))) =0)); (* simulation_input_region to part_version (as associated_part) *) wr6: (NOT (SIZEOF(QUERY( am <* SELF.usage | (('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(am)) AND (NOT(SIZEOF(QUERY( ama <* USEDIN(am, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | ('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF (eds)) )) >=0 )))) =0 ))))) =0)); END_ENTITY; -- simulation_input_region ENTITY simulation_output SUBTYPE OF (versioned_action_request); WHERE (* simulation_output to defect_prediction(as predicted_defect) *) wr1: SIZEOF(QUERY ( ars <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.REQUEST') | ('CAST_PARTS_SCHEMA.DEFECT_PREDICTION' IN TYPEOF(ars.method))))>=0; (* simulation_output to simulation_result(as result) *) wr2: SIZEOF(QUERY ( ars <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_REQUEST_SOLUTION.REQUEST') | ( 'CAST_PARTS_SCHEMA.SIMULATION_RESULT' IN TYPEOF(ars)) )) >= 0; END_ENTITY; -- simulation_output ENTITY simulation_output_region SUBTYPE OF (action_property); WHERE (* simulation_output_region to simulation_input_region(as belongs_to) *) wr1: ('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(SELF.definition)) AND (SIZEOF(QUERY ( am <* USEDIN(SELF.definition, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE.USAGE') | ( 'CAST_PARTS_SCHEMA.SIMULATION_INPUT_REGION' IN TYPEOF(am)) )) = 1); (* simulation_output_region to simulation_unit_state(as history) *) wr2: SIZEOF(QUERY ( am <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'ACTION_PROPERTY_RELATIONSHIP.RELATING_ACTION_PROPERTY') | ('CAST_PARTS_SCHEMA.SIMULATION_UNIT_STATE' IN TYPEOF(am.related_action_property) )))>=1; (* simulation_output_region to shape_element(as region_shape) *) wr3: ('CAST_PARTS_SCHEMA.ACTION_METHOD' IN TYPEOF(SELF.definition)) AND (NOT(SIZEOF(QUERY(am <* USEDIN(SELF.definition, 'CAST_PARTS_SCHEMA.'+ 'ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(am)) AND (SIZEOF(QUERY(eds <* am.items | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF (eds)) )) =1 ))))=0)); END_ENTITY; -- simulation_output_region ENTITY simulation_process SUBTYPE OF (casting_activity); WHERE (* --- simulation_process to design_part (as part_geometry) ---------- *) (* --- simulation_process to design_part (as part_geometry) ----------- *) (* --- simulation_process to design_part (as cast_part_with_rigging) -- *) wr1: (SIZEOF(QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD')| (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(sar)) AND (NOT(SIZEOF(QUERY ( ip <* sar.items | (SIZEOF(['CAST_PARTS_SCHEMA.CAST_PART', 'CAST_PARTS_SCHEMA.CAST_PART_WITH_RIGGING', 'CAST_PARTS_SCHEMA.DESIGN_PART'] * TYPEOF(ip)) =1)) ) =0 )))))>=0); (* -- to customer_casting_requirement (as quality_requirements) -- *) wr2:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.CUSTOMER_CASTING_REQUIREMENT' IN TYPEOF (eds)) ))) >=1 ))))=0)); (* -- simulation_process to simulation_run (as run_simulation) -- *) wr3: (SIZEOF(QUERY(ar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION.CHOSEN_METHOD') | ('CAST_PARTS_SCHEMA.SIMULATION_RUN' IN TYPEOF(ar) )) )=1); (* ---- to tooling(as tooling_for_simulation) ------------- *) wr4:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF (eds)) AND (SIZEOF(['CAST_PARTS_SCHEMA.DIE_CAST_TOOLING', 'CAST_PARTS_SCHEMA.DIE_MOLD_TOOLING', 'CAST_PARTS_SCHEMA.SAND_CASTING_TOOLING', 'CAST_PARTS_SCHEMA.CORE_BOX_TOOLING', 'CAST_PARTS_SCHEMA.INVESTMENT_CASTING_TOOLING'] * TYPEOF(eds)) =1) ))) =1 )))) =0)); END_ENTITY; -- simulation_process ENTITY simulation_result SUBTYPE OF (action_request_solution); WHERE (* begin_time *) wr1: SIZEOF(QUERY (adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_TIME_ASSIGNMENT.ITEMS')| ((adr.role.name='begin time') AND ('CAST_PARTS_SCHEMA.LOCAL_TIME' IN TYPEOF (adr.assigned_time)))))=1; (* end_time *) wr2: SIZEOF(QUERY (adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_TIME_ASSIGNMENT.ITEMS')| ((adr.role.name='end time') AND ('CAST_PARTS_SCHEMA.LOCAL_TIME' IN TYPEOF (adr.assigned_time)))))=1; (* simulation_result to simulation_output_region (as region) *) wr3: (NOT(SIZEOF(QUERY( am <* USEDIN(SELF.method, 'CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD') | (SIZEOF(QUERY( sor <* USEDIN(am.related_method, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | ('CAST_PARTS_SCHEMA.SIMULATION_OUTPUT_REGION' IN TYPEOF(sor)) )) >=1 )))=0)); (* imulation_result to illustration (as illustration) *) wr4: SIZEOF(QUERY (adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')| ('CAST_PARTS_SCHEMA.ILLUSTRATION' IN TYPEOF (adr.assigned_document))))>=0; END_ENTITY; -- simulation_result ENTITY simulation_run SUBTYPE OF (directed_action); WHERE (* identification *) wr1: SIZEOF(QUERY( arr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ID_ATTRIBUTE.IDENTIFIED_ITEM')| ('CAST_PARTS_SCHEMA.ID_ATTRIBUTE' IN TYPEOF(arr))))=1; (* simulation_run to activity (as associated_process) *) wr2: ('CAST_PARTS_SCHEMA.PROCESS_PLAN_ACTIVITY' IN TYPEOF(SELF.chosen_method)); (* simulation_run to simulation_input (as input) *) wr3: SIZEOF(QUERY( arr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE_REQUIREMENT.OPERATIONS')| ('CAST_PARTS_SCHEMA.SIMULATION_INPUT' IN TYPEOF(arr))))=1; (* simulation_run to simulation_output (as output) *) wr4: SIZEOF(QUERY ( r <* SELF.directive.requests | 'CAST_PARTS_SCHEMA.SIMULATION_OUTPUT' IN TYPEOF(r))) = 1; (* simulation_run to simulation_software (as software_used) *) wr5: SIZEOF(QUERY( arr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_RESOURCE.USAGE')| ('CAST_PARTS_SCHEMA.SIMULATION_SOFTWARE' IN TYPEOF(arr))))=1; END_ENTITY; -- simulation_run ENTITY simulation_run_relationship SUBTYPE OF (action_method_relationship); WHERE (* simulation_run_relationship to simulation_run (as related) *) wr1: ('CAST_PARTS_SCHEMA.SIMULATION_RUN' IN TYPEOF(SELF.related_method)); (* simulation_run_relationship to simulation_run (as relating) *) wr2: ('CAST_PARTS_SCHEMA.SIMULATION_RUN' IN TYPEOF(SELF.relating_method)); END_ENTITY; -- simulation_run_relationship ENTITY simulation_software SUBTYPE OF (action_resource); WHERE (* simulation_software to date (as release_date) *) wr1: SIZEOF(QUERY (adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS')| ((adr.role.name='release date') AND ('CAST_PARTS_SCHEMA.DATE' IN TYPEOF (adr.assigned_date)))))=1; END_ENTITY; -- simulation_software ENTITY simulation_unit SUBTYPE OF (action_property); WHERE (* simulation_unit to location_element(as unit_location) *) wr1:(NOT(SIZEOF(QUERY( ama <* USEDIN(SELF.definition, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (NOT (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF(eds)) AND (NOT(SIZEOF(QUERY(pd <* USEDIN(eds, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY(mri <* pd.used_representation.items | ('CAST_PARTS_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(mri))))=1) ))=1)))))=0)))))=0)); (* simulation_unit to simulation_output_region(as belongs_to) *) wr2: SIZEOF(QUERY ( am <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'ACTION_PROPERTY_RELATIONSHIP.RELATING_ACTION_PROPERTY') | ('CAST_PARTS_SCHEMA.SIMULATION_OUTPUT_REGION' IN TYPEOF(am.related_action_property) )))=1; (* simulation_unit to simulation_unit_state(as history)*) wr4: SIZEOF(QUERY ( am <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.'+ 'ACTION_PROPERTY_RELATIONSHIP.RELATING_ACTION_PROPERTY') | ('CAST_PARTS_SCHEMA.SIMULATION_UNIT_STATE' IN TYPEOF(am.related_action_property) )))>=1; (* simulation_unit to shape_element(as unit_shape) *) wr5: (NOT(SIZEOF(QUERY( ama <* USEDIN(SELF.definition, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF (eds)) )) =1 )) ))=0)); END_ENTITY; -- simulation_unit ENTITY simulation_unit_state SUBTYPE OF (action_property); WHERE wr1: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_TIME_ASSIGNMENT.ITEMS') | ((adr.role.name = 'evaluation time') AND ('CAST_PARTS_SCHEMA.LOCAL_TIME' IN TYPEOF(adr.assigned_time))) )) = 1; wr2: SIZEOF(QUERY ( apr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')| 'CAST_PARTS_SCHEMA.SIMULATED_PROPERTY' IN TYPEOF(apr.representation) ))>=1; END_ENTITY; -- simulation_unit_state ENTITY single_activity_relationship SUBTYPE OF (sequential_method); WHERE wr2: 'CAST_PARTS_SCHEMA.MANUFACTURING_PROCESS' IN TYPEOF(SELF. relating_method); wr3: SIZEOF(['CAST_PARTS_SCHEMA.MACHINE_SETUP', 'CAST_PARTS_SCHEMA.ANCILLARY_SETUP'] * TYPEOF(SELF. related_method)) = 1; END_ENTITY; -- single_activity_relationship ENTITY slide SUBTYPE OF (die_design_feature); WHERE (* ***** slide_material ***** *) wr1: SIZEOF(QUERY ( co <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS') | (('CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION' IN TYPEOF(co)) AND (co.name IN ['wood','cast iron','urethane','aluminum','plastic'])) )) = 1; (* ---------- slide to shape_element (as shape)------------- *) wr2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='slide occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'slide shape usage') AND ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* ***** slide_activation_method ***** *) w3: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'slide activation method')))) =1 ))))=1; END_ENTITY; -- slide ENTITY slot SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0; wr2: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'swept shape occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (SIZEOF(['CAST_PARTS_SCHEMA.SQUARE_U_PROFILE', 'CAST_PARTS_SCHEMA.PARTIAL_CIRCULAR_PROFILE', 'CAST_PARTS_SCHEMA.ROUNDED_U_PROFILE', 'CAST_PARTS_SCHEMA.VEE_PROFILE', 'CAST_PARTS_SCHEMA.TEE_PROFILE', 'CAST_PARTS_SCHEMA.OPEN_PATH_PROFILE'] * TYPEOF(sdr. relating_shape_aspect)) = 1) )) = 1)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'course of travel occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND ((sar.name = 'course of travel') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar)))) ) | ('CAST_PARTS_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0; wr4: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'end condition occurrence') AND (SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | (((sar.description = 'slot end usage') AND (sar.name IN ['course of travel start', 'course of travel end'])) AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | ((('CAST_PARTS_SCHEMA.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect. description IN ['open','radiused','flat','woodruff'])) AND ( 'CAST_PARTS_SCHEMA.SLOT' IN TYPEOF(fcr.related_shape_aspect. of_shape.definition))) )) = 1)) )) = 2)) )) = 0; wr5: (NOT (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'end condition occurrence') AND (SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP' + '.RELATED_SHAPE_ASPECT') | (((sar.description = 'slot end usage') AND (sar.name IN ['course of travel start', 'course of travel end'])) AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | ((('CAST_PARTS_SCHEMA.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect. description IN ['loop'])) AND ('CAST_PARTS_SCHEMA.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) )) = 1)) )) = 1)) )) = 0)) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'course of travel occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND ((sar.name = 'course of travel') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar)))) ) | (('CAST_PARTS_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description IN ['complex', 'complete circular'])) )) = 1)) )) = 1)) )) = 0); wr6: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0; END_ENTITY; -- slot ENTITY slot_end SUBTYPE OF (shape_aspect); WHERE wr1 : 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); wr2 : SELF.description IN ['open','radiused','flat','woodruff', 'loop']; wr3 : (NOT (SELF.description IN ['open','radiused','loop'])) OR ( SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 0)) )) = 0); wr4 : (NOT (SELF.description IN ['flat','woodruff'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0); wr5 : (NOT (SELF.description IN ['flat'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(impl_rep .used_representation.items) = 2)) )) = 0)) )) = 0); wr6 : (NOT (SELF.description = 'flat')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first radius')) )) = 1)) )) = 0)) )) = 0); wr7 : (NOT (SELF.description = 'flat')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second radius')) )) = 1)) )) = 0)) )) = 0); wr8 : (NOT (SELF.description = 'woodruff')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF( QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it)) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0); wr9 : (NOT (SELF.description IN ['woodruff'])) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(impl_rep .used_representation.items) = 1)) )) = 0)) )) = 0); wr10: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT') | (((sar.description = 'slot end usage') AND (sar.name IN [ 'course of travel start','course of travel end'])) AND ( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) ) | (((fcr.related_shape_aspect.description = 'end condition occurrence') AND ('CAST_PARTS_SCHEMA.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND ('CAST_PARTS_SCHEMA.SLOT_END' IN TYPEOF(fcr. relating_shape_aspect))) )) >= 1; END_ENTITY; -- slot_end ENTITY solid_angle_unit SUBTYPE OF (named_unit); WHERE wr1: ((((((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF \named_unit.dimensions.mass_exponent = 0)) AND (SELF\ named_unit.dimensions.time_exponent = 0)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0)) AND ( SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0)) AND (SELF\ named_unit.dimensions.amount_of_substance_exponent = 0)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0); END_ENTITY; -- solid_angle_unit ENTITY solid_model SUPERTYPE OF (manifold_solid_brep) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- solid_model ENTITY special_inspection_requirement SUBTYPE OF (customer_casting_requirement); WHERE (* ---------- inspection_description ------------- *) wr1: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'inspection description') AND (it.description IN (['ultrasonic', 'other testing method', 'presure test','x ray radiography', 'welding','liquid penetrant', 'magnetic particle'] )) ) )) =1 )))=0)); (* ---------- other_testing_method ------------- *) wr2: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( NOT(SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'other testing method') ) ))<=1 )))) = 0); (* ---------- performed_by_customer ------------- *) wr3: (NOT(SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'performed by customer') AND (it.description IN (['TRUE','FALSE'] )) ) )) >=1 )))=0)); (* - to specification (as inspection_requirements)------------- *) wr4: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS') | (adr.assigned_document.kind.product_data_type= 'inspection requirements') )) >= 1; END_ENTITY; -- special_inspection_requirement ENTITY spherical_cap SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 3)) )) = 0)) )) = 0; wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) = 0; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it)) = 2) AND (it.name = 'internal angle')) )) = 1)) )) = 0)) )) = 0; END_ENTITY; -- spherical_cap ENTITY spherical_surface SUBTYPE OF (elementary_surface); radius : positive_length_measure; END_ENTITY; -- spherical_surface ENTITY sprue SUBTYPE OF (gating_design_feature); WHERE (* --sprues to item_size (as sprue_dimensions) -- *) WR1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sprue occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'sprue size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* **sprues to filter (as metal_flow_filter) * *) wr2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sprue occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'filter reference usage') AND ('CAST_PARTS_SCHEMA.FILTER' IN TYPEOF(sar.relating_shape_aspect)) )) <=1 )))) >=1; (* ***** sprues to well (as sprue_well) ***** *) wr3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sprue occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'well reference usage') AND ('CAST_PARTS_SCHEMA.WELL' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; (* ---------- sprue core ------------ *) wr4: SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'sprue core')))) =1 ))))=1; (* --sprues to item_size (as pouring_cup) -- *) WR5:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sprue occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'sprue pouring cup size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) >=0 )))) >=1; END_ENTITY; -- sprue ENTITY sprue_and_runner_mold SUBTYPE OF (investment_design_feature); WHERE (* --sprue_and_runner_mold to sprue ( as pouring_sprue) -- *) WR1:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sprue and runner mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'sprue reference usage') AND ('CAST_PARTS_SCHEMA.SPRUE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* -- sprue_and_runner_mold to runner (as gate_runner) -- *) wr2: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sprue and runner mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'runner reference usage') AND ('CAST_PARTS_SCHEMA.RUNNER' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* -- sprue_and_runner_mold to ingate (as grigging_component) -- *) wr3: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sprue and runner mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'ingate reference usage') AND ('CAST_PARTS_SCHEMA.INGATE' IN TYPEOF(sar.relating_shape_aspect)) )) >=1 )))) >=1; (* -- sprue_and_runner_mold to ingate (as mold_assembly) -- *) wr4: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='sprue and runner mold occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'investment mold reference usage') AND ('CAST_PARTS_SCHEMA.INVESTMENT_MOLD' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; END_ENTITY; -- sprue_and_runner_mold ENTITY square_u_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | ((NOT (SIZEOF(impl_rep. used_representation.items) >= 4)) AND (SIZEOF(impl_rep. used_representation.items) <= 7)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr. used_representation.items | ((((((((srwp_i.name = 'orientation') OR (srwp_i.name = 'width')) OR (srwp_i.name = 'first angle')) OR (srwp_i.name = 'second angle')) OR ( srwp_i.name = 'first radius')) OR (srwp_i.name = 'second radius')) OR (srwp_i.name = 'profile limit')) OR ( srwp_i.name = 'depth')) )) = SIZEOF(pdr.used_representation .items))) )) = 1) )) = 1; wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'width')) )) = 1)) )) = 0)) )) = 0; wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first radius')) )) <= 1)) )) = 0)) )) = 0; wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second radius')) )) <= 1)) )) = 0)) )) = 0; wr9 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first angle')) )) = 1)) )) = 0)) )) = 0; wr10: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second angle')) )) = 1)) )) = 0)) )) = 0; wr11: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit')) )) <= 1)) )) = 0; wr12: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'depth')) )) <= 1)) )) = 0)) )) = 0; END_ENTITY; -- square_u_profile ENTITY standard_uncertainty SUBTYPE OF (uncertainty_qualifier); uncertainty_value : REAL; END_ENTITY; -- standard_uncertainty ENTITY step SUBTYPE OF (feature_definition); WHERE wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0; wr2: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'course of travel occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | (('CAST_PARTS_SCHEMA.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr. relating_shape_aspect.description = 'linear')) )) = 1)) )) = 1)) )) = 0; wr3: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'removal boundary occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.VEE_PROFILE' IN TYPEOF(sdr. relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0; wr4: SIZEOF(QUERY ( pdr <* get_property_definition_representations( SELF) | (('CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'maximum feature limit')) )) >= 0; wr5: SIZEOF(QUERY ( pds <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((( 'CAST_PARTS_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (csa.name = 'uncut area')) AND (SIZEOF(QUERY ( sar <* csa.component_relationships | (( 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF(['CAST_PARTS_SCHEMA.BOSS', 'CAST_PARTS_SCHEMA.PROTRUSION'] * TYPEOF(sar. related_shape_aspect)) = 1)) )) = 1)) )) <= 1)) )) = 1; END_ENTITY; -- step ENTITY stop_pin SUBTYPE OF (ejector_design_feature); WHERE wr1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='stop pin occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'stop pin size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; END_ENTITY; -- stop_pin ENTITY straightness_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1: NOT (('CAST_PARTS_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE') IN TYPEOF(SELF)); END_ENTITY; -- straightness_tolerance ENTITY surface SUPERTYPE OF (ONEOF (elementary_surface,swept_surface,bounded_surface)) SUBTYPE OF (geometric_representation_item); END_ENTITY; -- surface ENTITY surface_curve SUBTYPE OF (curve); curve_3d : curve; associated_geometry : LIST [1:2] OF pcurve_or_surface; master_representation : preferred_surface_curve_representation; DERIVE basis_surface : SET [1:2] OF surface := get_basis_surface(SELF); WHERE wr1: curve_3d.dim = 3; wr2: ('CAST_PARTS_SCHEMA.PCURVE' IN TYPEOF(associated_geometry[1])) OR (master_representation <> pcurve_s1); wr3: ('CAST_PARTS_SCHEMA.PCURVE' IN TYPEOF(associated_geometry[2])) OR (master_representation <> pcurve_s2); wr4: NOT ('CAST_PARTS_SCHEMA.PCURVE' IN TYPEOF(curve_3d)); END_ENTITY; -- surface_curve ENTITY surface_finish SUBTYPE OF (non_casting_activity); END_ENTITY; -- surface_finish ENTITY surface_of_linear_extrusion SUBTYPE OF (swept_surface); extrusion_axis : vector; END_ENTITY; -- surface_of_linear_extrusion ENTITY surface_of_revolution SUBTYPE OF (swept_surface); axis_position : axis1_placement; DERIVE axis_line : line := (dummy_gri || curve()) || line(axis_position. location,dummy_gri || vector(axis_position.z,1)); END_ENTITY; -- surface_of_revolution ENTITY surface_profile_tolerance SUBTYPE OF (geometric_tolerance); WHERE wr1: (NOT (('CAST_PARTS_SCHEMA.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE') IN TYPEOF(SELF))) OR (SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) <= 3); END_ENTITY; -- surface_profile_tolerance ENTITY swept_surface SUPERTYPE OF (ONEOF (surface_of_linear_extrusion,surface_of_revolution)) SUBTYPE OF (surface); swept_curve : curve; END_ENTITY; -- swept_surface ENTITY symmetric_shape_aspect SUBTYPE OF (shape_aspect); INVERSE basis_relationships : SET [1:?] OF shape_aspect_relationship FOR relating_shape_aspect; WHERE wr1: SIZEOF(QUERY ( x <* SELF.basis_relationships | ( 'CAST_PARTS_SCHEMA.CENTRE_OF_SYMMETRY' IN TYPEOF(x. related_shape_aspect)) )) >= 1; END_ENTITY; -- symmetric_shape_aspect ENTITY symmetry_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) <= 3; END_ENTITY; -- symmetry_tolerance ENTITY tangent SUBTYPE OF (derived_shape_aspect); WHERE wr1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1; END_ENTITY; -- tangent ENTITY taper SUBTYPE OF (shape_aspect); WHERE wr1: 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF .of_shape.definition); wr2: SELF.description IN ['angle taper','diameter taper', 'directed taper']; wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(impl_rep. used_representation.items) = 1)) )) = 0)) )) = 0; wr5: (NOT (SELF.description = 'angle taper')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it)) = 2) AND (it.name = 'taper angle')) )) = 1)) )) = 0)) )) = 0); wr6: (NOT (SELF.description = 'diameter taper')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'final diameter')) )) = 1)) )) = 0)) )) = 0); wr7: (NOT (SELF.description = 'directed taper')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF( it)) = 2) AND (it.name = 'angle')) )) = 1)) )) = 0)) )) = 0); wr8: (NOT (SELF.description = 'directed taper')) OR (SIZEOF( QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr. used_representation.name = 'direction')) )) = 1)) )) = 0); END_ENTITY; -- taper ENTITY tee_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | ((NOT (SIZEOF(impl_rep. used_representation.items) >= 9)) AND (SIZEOF(impl_rep. used_representation.items) <= 10)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr. used_representation.items | ((((((((((srwp_i.name = 'orientation') OR (srwp_i.name = 'width')) OR (srwp_i.name = 'depth')) OR (srwp_i.name = 'cross bar width')) OR ( srwp_i.name = 'cross bar depth')) OR (srwp_i.name = 'first offset')) OR (srwp_i.name = 'second offset')) OR ( srwp_i.name = 'first angle')) OR (srwp_i.name = 'second angle')) OR (srwp_i.name = 'radius')) )) = SIZEOF( pdr.used_representation.items))) )) = 1) )) = 1; wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'width')) )) = 1)) )) = 0)) )) = 0; wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'depth')) )) = 1)) )) = 0)) )) = 0; wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'cross bar width')) )) = 1)) )) = 0)) )) = 0; wr9 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'cross bar depth')) )) = 1)) )) = 0)) )) = 0; wr10: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first offset')) )) = 1)) )) = 0)) )) = 0; wr11: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second offset')) )) = 1)) )) = 0)) )) = 0; wr12: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first angle')) )) = 1)) )) = 0)) )) = 0; wr13: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second angle')) )) = 1)) )) = 0)) )) = 0; wr14: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')) )) <= 1)) )) = 0)) )) = 0; wr15: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit')) )) <= 1)) )) = 0; END_ENTITY; -- tee_profile ENTITY thread SUBTYPE OF (feature_definition); WHERE wr1 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (8 <= SIZEOF(pdr. used_representation.items))) AND (SIZEOF(pdr. used_representation.items) <= 11)) )) = 1) )) = 1; wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'major diameter')) )) = 1)) )) = 0)) )) = 0; wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'minor diameter')) )) <= 1)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'pitch diameter')) )) <= 1)) )) = 0)) )) = 0; wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'number of threads')) )) = 1)) )) = 0)) )) = 0; wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class')) )) = 1)) )) = 0)) )) = 0; wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'form')) )) = 1)) )) = 0)) )) = 0; wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'hand')) AND (it.description IN ['left','right'])) )) = 1)) )) = 0)) )) = 0; wr9 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'qualifier')) )) <= 1)) )) = 0)) )) = 0; wr10: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'thread side')) AND ((it. description = 'internal') OR (it.description = 'external'))) )) = 1)) )) = 0)) )) = 0; wr11: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'crest')) )) <= 1)) )) = 0)) )) = 0; wr12: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'partial area occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'applied area usage') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.APPLIED_AREA' IN TYPEOF(sdr. relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0; wr13: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'applied shape') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr. relating_shape_aspect)) )) = 1) )) = 1)) )) = 0; wr14: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class 2')) )) <= 1)) )) = 0)) )) = 0; wr15: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'nominal size')) )) <= 1)) )) = 0)) )) = 0; END_ENTITY; -- thread ENTITY time_assignment ABSTRACT SUPERTYPE; assigned_time : local_time; role : time_role; END_ENTITY; -- time_assignment ENTITY time_measure_with_unit SUBTYPE OF (measure_with_unit); WHERE wr1: 'CAST_PARTS_SCHEMA.TIME_UNIT' IN TYPEOF(SELF\measure_with_unit. unit_component); END_ENTITY; -- time_measure_with_unit ENTITY time_role; name : label; DERIVE description : text := get_description_value(SELF); WHERE wr1: SIZEOF(USEDIN(SELF,'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY; -- time_role ENTITY time_unit SUBTYPE OF (named_unit); WHERE wr1: ((((((SELF\named_unit.dimensions.length_exponent = 0) AND (SELF \named_unit.dimensions.mass_exponent = 0)) AND (SELF\ named_unit.dimensions.time_exponent = 1)) AND (SELF\ named_unit.dimensions.electric_current_exponent = 0)) AND ( SELF\named_unit.dimensions. thermodynamic_temperature_exponent = 0)) AND (SELF\ named_unit.dimensions.amount_of_substance_exponent = 0)) AND (SELF\named_unit.dimensions.luminous_intensity_exponent = 0); END_ENTITY; -- time_unit ENTITY tolerance_inspection SUBTYPE OF (inspection_or_test_result); WHERE (* --tolerance_inspection to numeric_parameter (as tolerance_result)-- *) wr1:(NOT (SIZEOF(QUERY( pdr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY( it <* pdr.used_representation.items | (SIZEOF(['CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tolerance result') )) >=1)) ) =0)); (* --tolerance_inspection to tolerance_requirement (as requirements)- *) wr2: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.TOLERANCE_REQUIREMENT' IN TYPEOF(pdr.related_property_definition)) )) >=1); END_ENTITY; -- tolerance_inspection ENTITY tolerance_requirement SUBTYPE OF (customer_casting_requirement); WHERE (* ---------- allowance_value ------------- *) wr1: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ( NOT(SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'dimension method') AND (it.description IN ['commercial practice', 'specification data','drawing data'] ) ) ))=1 )))) = 0); (* ---------- gaging_fixtures_available------------- *) wr2: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'gaging fixtures available') AND (it.description IN ['TRUE','FALSE'] ) ) ))=1 )))) = 0); (* --------- to dimensional_tolerance(as tolerance_based_on)------------- *) wr3: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(QUERY ( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'tolerance based one') AND (it.description IN ['mismatch','dimensional','geometric'] ) ) ))=1 )))) = 0); (* --tolerance_requirement to checking_aid_tool(as gaging_requirement)-- *) wr4: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.CHECKING_AID_TOOL' IN TYPEOF(pdr.related_property_definition) )))>=0); (* --- tolerance_requirement to mismatch_tolerance( as mismatch)-- *) wr5: (SIZEOF(QUERY ( pdr <* USEDIN(SELF , 'CAST_PARTS_SCHEMA.'+ 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | ('CAST_PARTS_SCHEMA.MISMATCH_TOLERANCE' IN TYPEOF(pdr.related_property_definition) )))<=1); (* - tolerance_requirement to specification (as dimension_specification)- *) wr6: SIZEOF(QUERY ( adr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS') | (adr.assigned_document.kind.product_data_type= 'dimension specification') )) <=1; END_ENTITY; -- tolerance_requirement ENTITY tolerance_value; lower_bound : measure_with_unit; upper_bound : measure_with_unit; WHERE wr1: upper_bound.value_component > lower_bound.value_component; wr2: upper_bound.unit_component = lower_bound.unit_component; END_ENTITY; -- tolerance_value ENTITY tolerance_zone SUBTYPE OF (shape_aspect); defining_tolerance : SET [1:?] OF geometric_tolerance; form : tolerance_zone_form; END_ENTITY; -- tolerance_zone ENTITY tolerance_zone_definition SUPERTYPE OF (ONEOF (projected_zone_definition,runout_zone_definition)); zone : tolerance_zone; boundaries : SET [1:?] OF shape_aspect; END_ENTITY; -- tolerance_zone_definition ENTITY tolerance_zone_form; name : label; END_ENTITY; -- tolerance_zone_form ENTITY tool_verification SUBTYPE OF (casting_method); WHERE (* -------tool_verification to core_assembly (as core_fit)------------- *) wr1: (SIZEOF(QUERY(am <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD') | ('CAST_PARTS_SCHEMA.CORE_ASSEMBLY' IN TYPEOF(am.related_method)))) <=1); (* ----------tool_verification to core_print (as verify_clearance)--*) wr2:(NOT(SIZEOF(QUERY(am <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(am)) AND (SIZEOF(QUERY( cp <* am.items | ('CAST_PARTS_SCHEMA.CORE_PRINT' IN TYPEOF(cp)))) >=1 ))))=0)); (* --tool_verification to design_part (as based_on_part_design)- *) wr3: (NOT(SIZEOF(QUERY(am <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(am)) AND (SIZEOF(QUERY( cp <* am.items | ('CAST_PARTS_SCHEMA.DESIGN_PART' IN TYPEOF(cp)))) =1 ))))=0)); (* ----------tool_verification to shape_dimensions (as verify)--------- *) wr4: (NOT(SIZEOF(QUERY(am <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(am)) AND (SIZEOF(QUERY( cp <* am.items | ('CAST_PARTS_SCHEMA.SHAPE_DIMENSION' IN TYPEOF(cp)))) =1 ))))=0)); (* tool_verification to tolerance_requirement (as customer_requirement)--*) wr5: (NOT(SIZEOF(QUERY(am <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(am)) AND (SIZEOF(QUERY( cp <* am.items | ('CAST_PARTS_SCHEMA.TOLERANCE_REQUIREMENT' IN TYPEOF(cp)))) >=1 ))))=0)); END_ENTITY; -- tool_verification ENTITY tooling_process SUBTYPE OF (casting_activity); WHERE (* -------- number_of_impressions ---------- *) wr1:(NOT(SIZEOF(QUERY(ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT(SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY(it <* apr.representation.items | (( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'number of impressions') ))) =1 ))) =0 )))) =0)); (* -------- shrinkage factor ---------- *) wr2: (NOT(SIZEOF(QUERY(ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT(SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY(it <* apr.representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) =2) AND (it.name = 'shrinkage factor') ))) =1 ))) =0 )))) =0)); (* - process) - *) wr3: (NOT(SIZEOF(QUERY(ap <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT(SIZEOF(QUERY(apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (SIZEOF(QUERY(it <* apr.representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name='process method') AND (it.description IN [ 'casting process', 'non permanent molding process', 'permanent molding process'] ) ))) >=0 ))) =0 )) )) =0)); (* ---- tooling_proces to core (as cores_to_make) ------------- *) wr4:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND ('CAST_PARTS_SCHEMA.CORE' IN TYPEOF(eds.definition)) ))) =1 ))))=0)); (* ---permanent_mold_process to gating_system (as required_gating) --- *) wr5:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.PROPERTY_DEFINITION' IN TYPEOF (eds)) AND ('CAST_PARTS_SCHEMA.GATING_SYSTEM' IN TYPEOF(eds.definition)) ))) =1 ))))=0)); (* -- to customer_casting_requirement (as customer_requirements) - *) wr6:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.CUSTOMER_CASTING_REQUIREMENT' IN TYPEOF (eds)) ))) >=1 ))))=0)); (* ---- permanent_mold_process to design_part (as part_geometry) --- *) wr7:(NOT (SIZEOF(QUERY( ama <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_ASSIGNMENT.ASSIGNED_ACTION_METHOD') | (('CAST_PARTS_SCHEMA.APPLIED_ACTION_METHOD_ASSIGNMENT' IN TYPEOF(ama)) AND (SIZEOF(QUERY(eds <* ama.items | (('CAST_PARTS_SCHEMA.DESIGN_PART' IN TYPEOF (eds)) ))) =1 ))))=0)); (* ------- to tool_verification (as quality_assurance) ---------- *) wr8:(SIZEOF(QUERY(amr <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.ACTION_METHOD_RELATIONSHIP.RELATING_METHOD') | ('CAST_PARTS_SCHEMA.TOOL_VERIFICATION' IN TYPEOF(amr.related_method) )))=1); END_ENTITY; -- tooling_process ENTITY topological_representation_item SUPERTYPE OF (ONEOF (vertex,edge,face_bound,face,connected_face_set, loop ANDOR path)) SUBTYPE OF (representation_item); END_ENTITY; -- topological_representation_item ENTITY toroidal_surface SUBTYPE OF (elementary_surface); major_radius : positive_length_measure; minor_radius : positive_length_measure; END_ENTITY; -- toroidal_surface ENTITY total_runout_tolerance SUBTYPE OF (geometric_tolerance_with_datum_reference); WHERE wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference. datum_system) <= 2; END_ENTITY; -- total_runout_tolerance ENTITY transition_feature SUPERTYPE OF (ONEOF (chamfer,edge_round,fillet)) SUBTYPE OF (shape_aspect); WHERE wr1: SIZEOF(['CAST_PARTS_SCHEMA.PRODUCT_DEFINITION', 'CAST_PARTS_SCHEMA.COMPOUND_FEATURE'] * TYPEOF(SELF.of_shape .definition)) = 1; wr2: SIZEOF(['CAST_PARTS_SCHEMA.CHAMFER', 'CAST_PARTS_SCHEMA.EDGE_ROUND','CAST_PARTS_SCHEMA.FILLET'] * TYPEOF(SELF)) = 1; END_ENTITY; -- transition_feature ENTITY turned_knurl SUBTYPE OF (feature_definition); WHERE wr1 : SELF\characterized_object.description IN ['diamond','diagonal', 'straight']; wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND ((6 <= SIZEOF(pdr. used_representation.items)) AND (SIZEOF(pdr. used_representation.items) <= 9))) )) = 1) )) = 1; wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\ measure_with_unit.value_component))) AND (it.name = 'number of teeth')) )) <= 1)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'major diameter')) )) = 1)) )) = 0)) )) = 0; wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'nominal diameter')) )) = 1)) )) = 0)) )) = 0; wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.' + 'DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tooth depth')) )) <= 1)) )) = 0)) )) = 0; wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'root fillet')) )) <= 1)) )) = 0)) )) = 0; wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'diametral pitch')) )) = 1)) )) = 0)) )) = 0; wr9 : (NOT (SELF\characterized_object.description IN ['diamond', 'diagonal'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'helix angle')) )) = 1)) )) = 0)) )) = 0); wr10: (NOT (SELF\characterized_object.description = 'diagonal')) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'helix hand')) )) = 1)) )) = 0)) )) = 0); wr11: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ. description = 'partial area occurrence') AND (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'applied area usage') AND (('CAST_PARTS_SCHEMA.' + 'SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar))) ) | ( 'CAST_PARTS_SCHEMA.APPLIED_AREA' IN TYPEOF(sdr. relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0; wr12: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT') | ((sar.description = 'applied shape') AND ( 'CAST_PARTS_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar))) ) | ('CAST_PARTS_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr. relating_shape_aspect)) )) = 1) )) = 1)) )) = 0; END_ENTITY; -- turned_knurl ENTITY type_qualifier; name : label; END_ENTITY; -- type_qualifier ENTITY uncertainty_measure_with_unit SUBTYPE OF (measure_with_unit); name : label; description : OPTIONAL text; WHERE wr1: valid_measure_value(SELF\measure_with_unit.value_component); END_ENTITY; -- uncertainty_measure_with_unit ENTITY uncertainty_qualifier SUPERTYPE OF (standard_uncertainty); measure_name : label; description : text; END_ENTITY; -- uncertainty_qualifier ENTITY uniform_curve SUBTYPE OF (b_spline_curve); END_ENTITY; -- uniform_curve ENTITY uniform_surface SUBTYPE OF (b_spline_surface); END_ENTITY; -- uniform_surface ENTITY value_range SUBTYPE OF (compound_representation_item); WHERE wr1: SIZEOF(QUERY ( mri <* QUERY( sri <* SELF.item_element | ('CAST_PARTS_SCHEMA.SET_REPRESENTATION_ITEM' IN TYPEOF (sri))) | ('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (mri)) ))=2; wr2: SIZEOF(QUERY ( mri <* QUERY( sri <* SELF.item_element | ('CAST_PARTS_SCHEMA.SET_REPRESENTATION_ITEM' IN TYPEOF (sri))) | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (mri)) AND (mri.name='lower limit')) ))=1; wr3: SIZEOF(QUERY ( mri <* QUERY( sri <* SELF.item_element | ('CAST_PARTS_SCHEMA.SET_REPRESENTATION_ITEM' IN TYPEOF (sri))) | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (mri)) AND (mri.name='upper limit')) ))=1; wr4: SIZEOF(QUERY( i1 <* SELF.item_element | ('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i1)) AND (SIZEOF ( QUERY (i2 <* SELF.item_element | ('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF (i2)) AND (i1 :<>: i2) AND (i1\measure_with_unit.unit_component :=: i2\measure_with_unit.unit_component) ) ) = 1 ))) = 2 ; END_ENTITY; -- value_range ENTITY value_representation_item SUBTYPE OF (representation_item); value_component : measure_value; WHERE wr1: SIZEOF(QUERY ( rep <* using_representations(SELF) | (NOT ( 'CAST_PARTS_SCHEMA.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( rep.context_of_items))) )) = 0; END_ENTITY; -- value_representation_item ENTITY vector SUBTYPE OF (geometric_representation_item); orientation : direction; magnitude : length_measure; WHERE wr1: magnitude >= 0; END_ENTITY; -- vector ENTITY vee_profile SUBTYPE OF (shape_aspect); WHERE wr1 : 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape.definition); wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) )) = 1)) )) = 0; wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | ((NOT (SIZEOF(impl_rep. used_representation.items) >= 3)) AND (SIZEOF(impl_rep. used_representation.items) <= 6)) )) = 0)) )) = 0; wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr. used_representation.items | ((((((srwp_i.name = 'orientation') OR (srwp_i.name = 'profile angle')) OR ( srwp_i.name = 'tilt angle')) OR (srwp_i.name = 'profile radius')) OR (srwp_i.name = 'first length')) OR ( srwp_i.name = 'second length')) )) = SIZEOF(pdr. used_representation.items))) )) = 1) )) = 1; wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | (( 'CAST_PARTS_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0; wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it)) AND ('CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'profile radius')) )) <= 1)) )) = 0)) )) = 0; wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'profile angle')) )) = 1)) )) = 0)) )) = 0; wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF([ 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM', 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tilt angle')) )) = 1)) )) = 0)) )) = 0; wr9 : SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit')) )) <= 1)) )) = 0; wr10: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it)) AND ('CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'first length')) )) <= 1)) )) = 0)) )) = 0; wr11: SIZEOF(QUERY ( pd <* USEDIN(SELF, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (( 'CAST_PARTS_SCHEMA.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr. used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* impl_rep.used_representation.items | ((( 'CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it)) AND ('CAST_PARTS_SCHEMA.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\measure_with_unit.value_component))) AND (it.name = 'second length')) )) <= 1)) )) = 0)) )) = 0; END_ENTITY; -- vee_profile ENTITY vent SUBTYPE OF (gating_design_feature); WHERE (* ---------- type of vent ------------- *) wr1:SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY (it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ((it.name = 'type of vent') AND ((it.description IN ['air','gas'] )) )) )) =1 )) ))>=1; (* ---------- vent to item_size (as core_vent_size) ------------- *) WR2:SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='vent occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'vent reference usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* -------- vent to location_element (as vent_placement)------------- *) wr3 : SIZEOF(QUERY ( pdr <* get_property_definition_representations(SELF) | (('CAST_PARTS_SCHEMA.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name='location'))))=1; END_ENTITY; -- vent ENTITY versioned_action_request; id : identifier; version : label; purpose : text; description : OPTIONAL text; END_ENTITY; -- versioned_action_request ENTITY vertex SUBTYPE OF (topological_representation_item); END_ENTITY; -- vertex ENTITY vertex_loop SUBTYPE OF (loop); loop_vertex : vertex; END_ENTITY; -- vertex_loop ENTITY vertex_point SUBTYPE OF (vertex, geometric_representation_item); vertex_geometry : point; END_ENTITY; -- vertex_point ENTITY view_reference SUBTYPE OF (document_usage_constraint); WHERE wr1: NOT (SIZEOF(QUERY ( adr <* QUERY ( dr <* USEDIN(SELF.source, 'CAST_PARTS_SCHEMA.DOCUMENT_REFERENCE.ASSIGNED_DOCUMENT') | ('CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE' IN TYPEOF(dr)) ) | (SIZEOF(QUERY ( d <* adr.items | ( 'CAST_PARTS_SCHEMA.PROCESS_PLAN_ACTIVITY' IN TYPEOF(d)) )) >= 0) )) = 0); wr2: 'CAST_PARTS_SCHEMA.DESIGN_REFERENCE' IN TYPEOF(SELF.source); wr3: SELF.subject_element IN ['sheet','view','zone']; END_ENTITY; -- view_reference ENTITY well SUBTYPE OF (gating_design_feature); WHERE (* ---------- well to item_size (as well_dimensions) ------------- *) WR1: SIZEOF(QUERY ( sa <* get_property_definition_shape_aspect(SELF) | ((sa.description='well occurrence') AND (SIZEOF(QUERY (sar <* USEDIN(sa, 'CAST_PARTS_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('CAST_PARTS_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) AND (sar.description = 'well size usage') AND ('CAST_PARTS_SCHEMA.CASTING_FEATURE_SIZE' IN TYPEOF(sar.relating_shape_aspect)) )) =1 )))) >=1; (* ---------- well to parting_surface (as drag_surface) ------- *) wr2: SIZEOF(QUERY( pdr <* get_property_definition_representations(SELF) | ('CAST_PARTS_SCHEMA.PARTING_SURFACE' IN TYPEOF(pdr.used_representation)) )) = 1; END_ENTITY; -- well RULE application_context_requires_ap_definition FOR (application_context, application_protocol_definition); WHERE wr1: SIZEOF(QUERY ( ac <* application_context | (NOT (SIZEOF( QUERY ( apd <* application_protocol_definition | ((ac :=: apd. application) AND (apd. application_interpreted_model_schema_name = 'cast parts schema')) )) = 1)) )) = 0; END_RULE; -- application_context_requires_ap_definition RULE casting_feature_life_cycle FOR (casting_instanced_feature); WHERE wr1: SIZEOF(QUERY ( mf <* casting_instanced_feature | (NOT (mf. of_shape.definition.frame_of_reference.life_cycle_stage = 'manufacturing planning')) )) = 0; END_RULE; -- casting_feature_life_cycle RULE chamfer_offset_requires_faces FOR (chamfer_offset, property_definition_representation); WHERE WR1: SIZEOF(QUERY ( co <* chamfer_offset | (( (co.description = 'first offset')) AND (SIZEOF(QUERY ( pd <* USEDIN(co, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'first chamfer face')) )) = 1)) )) = 1)) ))=0; WR2: SIZEOF(QUERY ( co <* chamfer_offset | (( (co.description = 'second offset')) AND (SIZEOF(QUERY ( pd <* USEDIN(co, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'second chamfer face')) )) = 1)) )) = 1)) ))=0; END_RULE; -- chamfer_offset_requires_faces RULE chamfer_requires_faces FOR (chamfer, property_definition_representation); WHERE wr1: SIZEOF(QUERY ( er <* chamfer | (SIZEOF (QUERY (pd <* USEDIN (er, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'chamfer face')))=1)))=1)))=0; END_RULE; -- chamfer_requires_faces RULE compatible_dimension FOR (cartesian_point, direction, representation_context, geometric_representation_context); WHERE wr1: SIZEOF(QUERY ( x <* cartesian_point | (SIZEOF(QUERY ( y <* geometric_representation_context | (item_in_context(x,y) AND ( HIINDEX(x.coordinates) <> y.coordinate_space_dimension)) )) > 0) )) = 0; wr2: SIZEOF(QUERY ( x <* direction | (SIZEOF(QUERY ( y <* geometric_representation_context | (item_in_context(x,y) AND ( HIINDEX(x.direction_ratios) <> y.coordinate_space_dimension)) )) > 0) )) = 0; END_RULE; -- compatible_dimension RULE composition_element_requires_name FOR ( product_definition,product_definition_formation); WHERE wr1: SIZEOF(QUERY ( pd <* product_definition | ((pd.frame_of_reference.name='material composition definition') AND (NOT((SIZEOF(QUERY( pdf <* product_definition_formation | ((pd.formation :=: pdf) AND (pdf.of_product.name IN [ 'Actinium','Aluminum','Americium','Antimony','Argon','Arsenic','Astatine', 'Barium','Berkelium','Beryllium','Bismuth','Bohrium','Boron','Bromine', 'Cadmium','Caesium','Calcium','Californium','Carbon','Cerium','Chlorine', 'Chromium','Cobalt','Copper','Curium','Darmstadtium','Dubnium','Dysprosium', 'Einsteinium','Erbium','Europium','Fermium','Fluorine','Francium', 'Gadolinium','Gallium','Germanium','Gold','Hafnium','Hassium','Helium', 'Holmium','Hydrogen','Indium','Iodine','Iridium','Iron','Krypton', 'Lanthanum','Lawrencium','Lead','Lithium','Lutetium','Magnesium', 'Manganese','Meitnerium','Mendelevium','Mercury','Molybdenum','Neodymium', 'Neon','Neptunium','Nickel','Niobium','Nitrogen','Nobelium','Osmium', 'Oxygen','Palladium','Phosphorus','Platinum','Plutonium','Polonium', 'Potassium','Praseodymium','Promethium','Protactinium','Radium','Radon', 'Rhenium','Rhodium','Roentgenium','Rubidium','Ruthenium','Rutherfordium', 'Samarium','Scandium','Seaborgium','Selenium','Silicon','Silver','Sodium', 'Strontium','Sulfur','Tantalum','Technetium','Tellurium','Terbium', 'Thallium','Thorium','Thulium','Tin','Titanium','Tungsten','Ununbium', 'Ununhexium','Ununoctium','Ununpentium','Ununquadium','Ununtrium', 'Uranium','Vanadium','Xenon','Ytterbium','Yttrium','Zinc','Zirconium'] )) )) =1 )) )) )) =0; END_RULE; --composition_element_requires_name RULE customer_order_rules FOR (directed_action); WHERE wr1 : SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( ada <* USEDIN(da, 'CAST_PARTS_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS') | (ada. role.name = 'delivery date') )) = 1))) )) = 0; wr2 : SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( ap <* USEDIN(da, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT ( SIZEOF(QUERY ( apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (NOT (SIZEOF(QUERY ( rep <* apr.representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(rep)) AND (rep.name = 'production status')) AND (rep. description IN ['current','experimental','prototype','new'])) )) = 1)) )) = 0)) )) = 0))) )) = 0; wr3 : SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( fr <* da.directive .requests | ('CAST_PARTS_SCHEMA.FIRST_ARTICLE' IN TYPEOF(fr)) )) >= 1))) )) = 0; wr4 : SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( ada <* USEDIN(da, 'CAST_PARTS_SCHEMA.ACTION_RELATIONSHIP.RELATED_ACTION') | ( 'CAST_PARTS_SCHEMA.INSPECTION_PLAN' IN TYPEOF(ada. relating_action)) )) = 1))) )) = 0; wr5 : SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( fr <* da.directive .requests | ('CAST_PARTS_SCHEMA.REQUEST_FOR_QUOTATION' IN TYPEOF(fr)) )) <= 1))) )) = 0; wr6 : SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( ada <* USEDIN(da, 'CAST_PARTS_SCHEMA.ACTION_ASSIGNMENT.ASSIGNED_ACTION') | ( 'CAST_PARTS_SCHEMA.ORDERED_PART' IN TYPEOF(ada)) )) = 1))) )) = 0; wr7 : SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( ap <* USEDIN(da, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION') | (NOT ( SIZEOF(QUERY ( apr <* USEDIN(ap, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY') | (NOT (SIZEOF(QUERY ( rep <* apr.representation.items | ((( 'CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(rep)) AND (rep.name = 'casting method')) AND (rep. description IN ['core presentation', 'core setting', 'die assembly', 'die handling', 'die temperature control', 'furnace loading', 'gate system removal', 'grinding', 'inspection', 'laddle loading', 'loading injection system', 'melt raw material', 'mold closing', 'mold making process', 'package and shipping', 'part routing', 'pattern handling', 'tool handling', 'pouring process', 'refractor removal', 'removal from die', 'shakeout', 'slurry process', 'sand removal', 'wax removal', 'shell', 'green sand', 'no bake', 'lost form', 'vacuum', 'static', 'tilt', 'low pressure'])) )) = 1)) )) = 0)) )) = 0))) )) = 0; wr8 : SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( ada <* USEDIN(da,'CAST_PARTS_SCHEMA.APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS') | (ada.role.name = 'customer') )) = 1))) )) = 0; wr9 : SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( ada <* USEDIN(da, 'CAST_PARTS_SCHEMA.ACTION_RELATIONSHIP.RELATED_ACTION') | ( ada.relating_action.name = 'project order') )) = 1))) )) = 0; wr10: SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( ada <* USEDIN(da, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS') | (ada. assigned_document\document.kind.product_data_type = 'simulation report') )) = 1))) )) = 0; END_RULE; -- customer_order_rules RULE dependent_instantiable_approval_status FOR (approval_status); WHERE wr1: SIZEOF(QUERY ( ast <* approval_status | (NOT (SIZEOF(USEDIN(ast, '')) >= 1)) )) = 0; END_RULE; -- dependent_instantiable_approval_status RULE dependent_instantiable_date FOR (date); WHERE wr1: SIZEOF(QUERY ( dt <* date | (NOT (SIZEOF(USEDIN(dt,'')) >= 1)) )) = 0; END_RULE; -- dependent_instantiable_date RULE dependent_instantiable_named_unit FOR (named_unit); WHERE wr1: SIZEOF(QUERY ( nu <* named_unit | (NOT (SIZEOF(USEDIN(nu,'')) >= 1)) )) = 0; END_RULE; -- dependent_instantiable_named_unit RULE dependent_instantiable_precision_qualifier FOR (precision_qualifier); WHERE wr1: SIZEOF(QUERY ( pq <* precision_qualifier | (NOT (SIZEOF(USEDIN(pq, '')) >= 1)) )) = 0; END_RULE; -- dependent_instantiable_precision_qualifier RULE dependent_instantiable_security_classification_level FOR ( security_classification_level); WHERE wr1: SIZEOF(QUERY ( scl <* security_classification_level | (NOT ( SIZEOF(USEDIN(scl,'')) >= 1)) )) = 0; END_RULE; -- dependent_instantiable_security_classification_level RULE dependent_instantiable_shape_representation FOR ( shape_representation); WHERE wr1: SIZEOF(QUERY ( sr <* shape_representation | (NOT (SIZEOF(USEDIN( sr,'')) >= 1)) )) = 0; END_RULE; -- dependent_instantiable_shape_representation RULE dependent_instantiable_type_qualifier FOR (type_qualifier); WHERE wr1: SIZEOF(QUERY ( tq <* type_qualifier | (NOT (SIZEOF(USEDIN(tq,'')) >= 1)) )) = 0; END_RULE; -- dependent_instantiable_type_qualifier RULE dependent_instantiable_uncertainty_qualifier FOR ( uncertainty_qualifier); WHERE wr1: SIZEOF(QUERY ( uq <* uncertainty_qualifier | (NOT (SIZEOF(USEDIN( uq,'')) >= 1)) )) = 0; END_RULE; -- dependent_instantiable_uncertainty_qualifier RULE document_file_rules FOR (document_file); WHERE (* --quality_acceptance_report to reporting_requirement (as applied_to) - *) wr1: ((SIZEOF(QUERY(doc <* document_file | ((doc.kind.product_data_type ='quality acceptance report') AND (NOT(SIZEOF(QUERY ( pd <* USEDIN(doc, 'CAST_PARTS_SCHEMA.DOCUMENT_REFERENCE.ASSIGNED_DOCUMENT') | (('CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE' IN TYPEOF(doc)) AND (SIZEOF(QUERY(rep <* doc.items | ('CAST_PARTS_SCHEMA.REPORTING_REQUIREMENT' IN TYPEOF(rep)) ))>=1))))=0)))))=0)); (* ---------- Product_quality_report action_required ---------- *) wr2: (NOT(SIZEOF(QUERY(doc <* document_file | ((doc.kind.product_data_type ='product quality report') AND (NOT(SIZEOF(QUERY ( pd <* USEDIN(doc, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (NOT(SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'action required')))) =1 ))) =0 )))) =0 ))))) =0)); (* ---------- Product_quality_report number_failed ---------- *) wr3: (NOT (SIZEOF(QUERY(doc <* document_file | ((doc.kind.product_data_type ='product quality report') AND (NOT(SIZEOF(QUERY ( pd <* USEDIN(doc, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (NOT(SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('CAST_PARTS_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\measure_with_unit.value_component)) AND (it.name = 'number failed') ) )) =1 ))) =0 )))) =0 )))))=0)); (* Product_quality_report to inspection_or_test_result (as what_failed) -*) wr4: ((SIZEOF(QUERY(doc <* document_file | ((doc.kind.product_data_type ='product quality report') AND (NOT(SIZEOF(QUERY ( pd <* USEDIN(doc, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| ('CAST_PARTS_SCHEMA.INSPECTION_OR_TEST_RESULT' IN TYPEOF(pd))))=1) ))))=0)); (* -- customer_design_deficiency_report list_of_results ---------- *) wr5: (NOT(SIZEOF(QUERY(doc <* document_file | ((doc.kind.product_data_type ='product quality report') AND (NOT(SIZEOF(QUERY ( pd <* USEDIN(doc, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')| (NOT(SIZEOF(QUERY ( pdr <* USEDIN(pd, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF(QUERY( it <* pdr.used_representation.items | (('CAST_PARTS_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'list of results')))) =1 ))) =0 )))) =0 ))))) =0)); (* --- customer_tool_design_report to tooling (as designed_tool -------- *) wr6: ((SIZEOF(QUERY(doc <* document_file | ((doc.kind.product_data_type ='customer tool design report') AND (SIZEOF(QUERY ( pd <* USEDIN(doc, 'CAST_PARTS_SCHEMA.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT')| (NOT ('CAST_PARTS_SCHEMA.CASTING_PRODUCT_DEFINITION' IN TYPEOF(pd.related_product) ))))=1 ))))=0)); END_RULE; -- document_file__rules RULE edge_round_requires_faces FOR (edge_round, property_definition_representation); WHERE wr1: SIZEOF(QUERY ( er <* edge_round | (SIZEOF (QUERY (pd <* USEDIN (er, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'edge round face'))) =1 ))) =1 )))=0; wr2: SIZEOF(QUERY ( er <* edge_round | (SIZEOF (QUERY (pd <* USEDIN (er, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape'))) =1 ))) =1 )))=0; wr3: SIZEOF(QUERY ( er <* edge_round | (SIZEOF (QUERY (pd <* USEDIN (er, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (pdr <* USEDIN (pd, 'CAST_PARTS_SCHEMA.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('CAST_PARTS_SCHEMA.FACE_SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape'))) =1 ))) =1 )))=0; END_RULE; -- edge_round_requires_faces RULE externally_defined_class_with_known_source_requirement FOR ( externally_defined_class); WHERE wr1: SIZEOF(QUERY ( edc <* externally_defined_class | (( 'CAST_PARTS_SCHEMA.KNOWN_SOURCE' IN TYPEOF(edc.source)) AND ( NOT (SIZEOF(QUERY ( aoa <* USEDIN(edc.source, 'CAST_PARTS_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | ( aoa.role.name = 'library supplier') )) = 1))) )) <= 1; END_RULE; -- externally_defined_class_with_known_source_requirement RULE machining_feature_life_cycle FOR (instanced_feature); WHERE wr1: SIZEOF(QUERY ( mf <* instanced_feature | (NOT (mf.of_shape. definition.frame_of_reference.life_cycle_stage = 'manufacturing planning')) )) = 0; END_RULE; -- machining_feature_life_cycle RULE material_is_specified_for_part FOR (product_definition, make_from_usage_option); WHERE wr1: SIZEOF(QUERY ( nmpd <* QUERY ( pd <* product_definition | (SIZEOF(USEDIN(pd,'CAST_PARTS_SCHEMA.MATERIAL_DESIGNATION.DEFINITIONS')) = 0) ) | (NOT (SIZEOF(QUERY ( mfuo <* make_from_usage_option | (nmpd :=: mfuo.relating_product_definition) )) >= 1)) )) = 0; END_RULE; -- material_is_specified_for_part RULE part_requires_project_order FOR (product_definition, applied_action_assignment); WHERE wr1: SIZEOF(QUERY ( pd <* product_definition | ((pd.frame_of_reference.name='part definition') AND (NOT (SIZEOF(QUERY ( fbppaa <* applied_action_assignment | ((pd.formation IN fbppaa.items) AND (fbppaa.assigned_action.name = 'project order')) )) =1 )) ))) =0; END_RULE; -- part_requires_project_order RULE part_to_approval FOR (product_definition_formation, applied_approval_assignment); WHERE wr1: SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT ( SIZEOF(QUERY ( fbppa <* applied_approval_assignment | (pdf IN fbppa.items) )) <= 1)) )) = 0; END_RULE; -- part_to_approval RULE part_requires_security_classification FOR ( product_definition, applied_security_classification_assignment); WHERE wr1: SIZEOF(QUERY ( pd <* product_definition | ((pd.frame_of_reference.name='part definition') AND (NOT (SIZEOF(QUERY ( fbppsca <* applied_security_classification_assignment | (pd.formation IN fbppsca.items) )) =1 )) )) )=0; END_RULE; -- part_requires_security_classification RULE product_requires_version FOR (product, product_definition_formation); WHERE wr1: SIZEOF(QUERY ( prod <* product | (NOT (SIZEOF(QUERY ( pdf <* product_definition_formation | (prod :=: pdf.of_product) )) >= 1)) )) = 0; END_RULE; -- product_requires_version RULE project_order_requires_approval FOR (directed_action, applied_approval_assignment); WHERE wr1: SIZEOF(QUERY ( po <* QUERY ( da <* directed_action | (da.name = 'project order') ) | (NOT (SIZEOF(QUERY ( fbppapp <* applied_approval_assignment | (po IN fbppapp.items) )) = 1)) )) = 0; END_RULE; -- project_order_requires_approval RULE project_order_tracking_relationships FOR (directed_action, action_relationship); WHERE wr1: SIZEOF(QUERY ( da <* directed_action | ((da.name IN [ 'shop work order','resource acquisition order', 'digital technical data package work order', 'pedigree creation order']) AND (NOT (SIZEOF(QUERY ( ar <* action_relationship | ((da :=: ar.related_action) AND (( 'CAST_PARTS_SCHEMA.DIRECTED_ACTION' IN TYPEOF(ar. relating_action)) AND (ar.relating_action.name = 'project order'))) )) = 1))) )) = 0; wr2: SIZEOF(QUERY ( da <* directed_action | ((da.name = 'project order') AND (NOT (SIZEOF(QUERY ( ar <* action_relationship | ((da :=: ar.relating_action) AND (( 'CAST_PARTS_SCHEMA.DIRECTED_ACTION' IN TYPEOF(ar. related_action)) AND (ar.related_action.name = 'shop work order'))) )) <= 1))) )) = 0; wr3: SIZEOF(QUERY ( da <* directed_action | ((da.name = 'project order') AND (NOT (SIZEOF(QUERY ( ar <* action_relationship | ((da :=: ar.relating_action) AND (( 'CAST_PARTS_SCHEMA.DIRECTED_ACTION' IN TYPEOF(ar. related_action)) AND (ar.related_action.name = 'resource acquisition order'))) )) <= 1))) )) = 0; wr4: SIZEOF(QUERY ( da <* directed_action | ((da.name = 'project order') AND (NOT (SIZEOF(QUERY ( ar <* action_relationship | ((da :=: ar.relating_action) AND (( 'CAST_PARTS_SCHEMA.DIRECTED_ACTION' IN TYPEOF(ar. related_action)) AND (ar.related_action.name = 'digital technical data package work order'))) )) <= 1))) )) = 0; wr5: SIZEOF(QUERY ( da <* directed_action | ((da.name = 'project order') AND (NOT (SIZEOF(QUERY ( ar <* action_relationship | ((da :=: ar.relating_action) AND (( 'CAST_PARTS_SCHEMA.DIRECTED_ACTION' IN TYPEOF(ar. related_action)) AND (ar.related_action.name = 'pedigree creation order'))) )) <= 1))) )) = 0; wr6: SIZEOF(QUERY ( da <* directed_action | ((da.name = 'customer order') AND (NOT (SIZEOF(QUERY ( ar <* action_relationship | ((da :=: ar.related_action) AND (( 'CAST_PARTS_SCHEMA.DIRECTED_ACTION' IN TYPEOF(ar. relating_action)) AND (ar.relating_action.name = 'project order'))) )) >= 1))) )) = 0; wr7: SIZEOF(QUERY ( da <* directed_action | ((da.name = 'project order') AND (NOT (SIZEOF(QUERY ( ar <* action_relationship | ((da :=: ar.relating_action) AND (( 'CAST_PARTS_SCHEMA.DIRECTED_ACTION' IN TYPEOF(ar. related_action)) AND (ar.related_action.name = 'customer order'))) )) <= 1))) )) = 0; END_RULE; -- project_order_tracking_relationships RULE restrict_approval_status FOR (approval_status); WHERE wr1: SIZEOF(QUERY ( ast <* approval_status | (NOT (ast.name IN [ 'approved','not yet approved','disapproved','withdrawn'])) )) = 0; END_RULE; -- restrict_approval_status RULE restrict_externally_defined_feature_definition FOR ( externally_defined_feature_definition); WHERE wr1: (SIZEOF(QUERY ( ex <* externally_defined_feature_definition | (NOT (SIZEOF(QUERY ( adr <* USEDIN(ex, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS') | ('CAST_PARTS_SCHEMA.DOCUMENT_FILE' IN TYPEOF(adr.assigned_document)) )) >= 1)) )) = 0) OR (SIZEOF(QUERY ( ex <* externally_defined_feature_definition | (NOT (SIZEOF(QUERY ( adr <* USEDIN(ex, 'CAST_PARTS_SCHEMA.APPLIED_DOCUMENT_USAGE_CONSTRAINT_ASSIGNMENT.ITEMS') | ('CAST_PARTS_SCHEMA.DOCUMENT_FILE' IN TYPEOF(adr\document_usage_constraint_assignment.assigned_document_usage.source)) )) >= 1)) )) = 0); END_RULE; -- restrict_externally_defined_feature_definition RULE restrict_name_for_known_source FOR (known_source); WHERE wr1: SIZEOF(QUERY ( ks <* known_source | ((ks.name :<>: 'ISO 13584 library') AND (ks.name :<>: 'ISO 10303 part')) )) = 0; END_RULE; -- restrict_name_for_known_source RULE restrict_security_classification_level FOR ( security_classification_level); WHERE wr1: SIZEOF(QUERY ( scl <* security_classification_level | (NOT (scl. name IN ['unclassified','classified','proprietary', 'confidential','secret','top_secret'])) )) = 0; END_RULE; -- restrict_security_classification_level RULE subtype_mandatory_characterized_object FOR (characterized_object); WHERE wr1: SIZEOF(QUERY ( csa <* characterized_object | ((NOT (SIZEOF([ 'CAST_PARTS_SCHEMA.DOCUMENT_FILE', 'CAST_PARTS_SCHEMA.FEATURE_DEFINITION', 'CAST_PARTS_SCHEMA.CASTING_FEATURE_DEFINITION', 'CAST_PARTS_SCHEMA.FEATURE_COMPONENT_DEFINITION', 'CAST_PARTS_SCHEMA.ORDERED_PART'] * TYPEOF(csa)) = 1)) AND ( NOT (SIZEOF(QUERY ( pd <* USEDIN(csa, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION') | ( 'CAST_PARTS_SCHEMA.MATERIAL_PROPERTY' IN TYPEOF(pd)) )) = 1))) )) = 0; END_RULE; -- subtype_mandatory_characterized_object RULE transition_feature_life_cycle FOR (transition_feature); WHERE wr1: SIZEOF(QUERY ( tf <* transition_feature | (NOT (tf.of_shape. definition.frame_of_reference.life_cycle_stage = 'manufacturing planning')) )) = 0; END_RULE; -- transition_feature_life_cycle RULE transition_feature_on_part_boundary FOR (transition_feature); WHERE wr1: SIZEOF(QUERY ( tf <* transition_feature | (NOT tf. product_definitional) )) = 0; END_RULE; -- transition_feature_on_part_boundary FUNCTION acyclic_mapped_representation( parent_set: SET OF representation; children_set: SET OF representation_item ): BOOLEAN; LOCAL x : SET OF representation_item; y : SET OF representation_item; END_LOCAL; x := QUERY ( z <* children_set | ('CAST_PARTS_SCHEMA.MAPPED_ITEM' IN TYPEOF(z)) ); IF SIZEOF(x) > 0 THEN REPEAT i := 1 TO HIINDEX(x) BY 1; IF x[i]\mapped_item.mapping_source.mapped_representation IN parent_set THEN RETURN(FALSE); END_IF; IF NOT acyclic_mapped_representation(parent_set + x[i]\mapped_item .mapping_source.mapped_representation,x[i]\mapped_item. mapping_source.mapped_representation.items) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; x := children_set - x; IF SIZEOF(x) > 0 THEN REPEAT i := 1 TO HIINDEX(x) BY 1; y := QUERY ( z <* bag_to_set(USEDIN(x[i],'')) | ( 'CAST_PARTS_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z)) ); IF NOT acyclic_mapped_representation(parent_set,y) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; RETURN(TRUE); END_FUNCTION; -- acyclic_mapped_representation FUNCTION acyclic_product_definition_relationship( relation: product_definition_relationship; relatives: SET [1:?] OF product_definition; specific_relation: STRING ): BOOLEAN; LOCAL x : SET OF product_definition_relationship; END_LOCAL; IF relation.relating_product_definition IN relatives THEN RETURN(FALSE); END_IF; x := QUERY ( pd <* bag_to_set(USEDIN(relation. relating_product_definition,('CAST_PARTS_SCHEMA.' + 'PRODUCT_DEFINITION_RELATIONSHIP.') + 'RELATED_PRODUCT_DEFINITION')) | (specific_relation IN TYPEOF(pd)) ); REPEAT i := 1 TO HIINDEX(x) BY 1; IF NOT acyclic_product_definition_relationship(x[i],relatives + relation.relating_product_definition,specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION; -- acyclic_product_definition_relationship FUNCTION associated_surface( arg: pcurve_or_surface ): surface; LOCAL surf : surface; END_LOCAL; IF 'CAST_PARTS_SCHEMA.PCURVE' IN TYPEOF(arg) THEN surf := arg.basis_surface; ELSE surf := arg; END_IF; RETURN(surf); END_FUNCTION; -- associated_surface FUNCTION bag_to_set( the_bag: BAG OF GENERIC:intype ): SET OF GENERIC:intype; LOCAL the_set : SET OF GENERIC:intype := []; END_LOCAL; IF SIZEOF(the_bag) > 0 THEN REPEAT i := 1 TO HIINDEX(the_bag) BY 1; the_set := the_set + the_bag[i]; END_REPEAT; END_IF; RETURN(the_set); END_FUNCTION; -- bag_to_set FUNCTION base_axis( dim: INTEGER; axis1, axis2, axis3: direction ): LIST [2:3] OF direction; LOCAL u : LIST [2:3] OF direction; d1 : direction; d2 : direction; factor : REAL; END_LOCAL; IF dim = 3 THEN d1 := NVL(normalise(axis3),dummy_gri || direction([0,0,1])); d2 := first_proj_axis(d1,axis1); u := [d2,second_proj_axis(d1,d2,axis2),d1]; ELSE IF EXISTS(axis1) THEN d1 := normalise(axis1); u := [d1,orthogonal_complement(d1)]; IF EXISTS(axis2) THEN factor := dot_product(axis2,u[2]); IF factor < 0 THEN u[2].direction_ratios[1] := -u[2].direction_ratios[1]; u[2].direction_ratios[2] := -u[2].direction_ratios[2]; END_IF; END_IF; ELSE IF EXISTS(axis2) THEN d1 := normalise(axis2); u := [orthogonal_complement(d1),d1]; u[1].direction_ratios[1] := -u[1].direction_ratios[1]; u[1].direction_ratios[2] := -u[1].direction_ratios[2]; ELSE u := [dummy_gri || direction([1,0]),dummy_gri || direction([0,1])]; END_IF; END_IF; END_IF; RETURN(u); END_FUNCTION; -- base_axis FUNCTION boolean_choose( b: BOOLEAN; choice1, choice2: GENERIC:item ): GENERIC:item; IF b THEN RETURN(choice1); ELSE RETURN(choice2); END_IF; END_FUNCTION; -- boolean_choose FUNCTION build_2axes( ref_direction: direction ): LIST [2:2] OF direction; LOCAL d : direction := NVL(normalise(ref_direction),dummy_gri || direction([1,0])); END_LOCAL; RETURN([d,orthogonal_complement(d)]); END_FUNCTION; -- build_2axes FUNCTION build_axes( axis, ref_direction: direction ): LIST [3:3] OF direction; LOCAL d1 : direction; d2 : direction; END_LOCAL; d1 := NVL(normalise(axis),dummy_gri || direction([0,0,1])); d2 := first_proj_axis(d1,ref_direction); RETURN([d2,normalise(cross_product(d1,d2)).orientation,d1]); END_FUNCTION; -- build_axes FUNCTION closed_shell_reversed( a_shell: closed_shell ): oriented_closed_shell; LOCAL the_reverse : oriented_closed_shell; END_LOCAL; IF 'CAST_PARTS_SCHEMA.ORIENTED_CLOSED_SHELL' IN TYPEOF(a_shell) THEN the_reverse := ((dummy_tri || connected_face_set(a_shell\ connected_face_set.cfs_faces)) || closed_shell()) || oriented_closed_shell(a_shell\oriented_closed_shell. closed_shell_element,NOT a_shell\oriented_closed_shell. orientation); ELSE the_reverse := ((dummy_tri || connected_face_set(a_shell\ connected_face_set.cfs_faces)) || closed_shell()) || oriented_closed_shell(a_shell,FALSE); END_IF; RETURN(the_reverse); END_FUNCTION; -- closed_shell_reversed FUNCTION conditional_reverse( p: BOOLEAN; an_item: reversible_topology ): reversible_topology; IF p THEN RETURN(an_item); ELSE RETURN(topology_reversed(an_item)); END_IF; END_FUNCTION; -- conditional_reverse FUNCTION constraints_composite_curve_on_surface( c: composite_curve_on_surface ): BOOLEAN; LOCAL n_segments : INTEGER := SIZEOF(c.segments); END_LOCAL; REPEAT k := 1 TO n_segments BY 1; IF ((NOT ('CAST_PARTS_SCHEMA.PCURVE' IN TYPEOF(c\composite_curve. segments[k].parent_curve))) AND (NOT ( 'CAST_PARTS_SCHEMA.SURFACE_CURVE' IN TYPEOF(c\composite_curve. segments[k].parent_curve)))) AND (NOT ( 'CAST_PARTS_SCHEMA.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c\ composite_curve.segments[k].parent_curve))) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION; -- constraints_composite_curve_on_surface FUNCTION constraints_param_b_spline( degree, up_knots, up_cp: INTEGER; knot_mult: LIST OF INTEGER; knots: LIST OF parameter_value ): BOOLEAN; LOCAL k : INTEGER; sum : INTEGER; result : BOOLEAN := TRUE; END_LOCAL; sum := knot_mult[1]; REPEAT i := 2 TO up_knots BY 1; sum := sum + knot_mult[i]; END_REPEAT; IF (((degree < 1) OR (up_knots < 2)) OR (up_cp < degree)) OR (sum <> ( (degree + up_cp) + 2)) THEN result := FALSE; RETURN(result); END_IF; k := knot_mult[1]; IF (k < 1) OR (k > (degree + 1)) THEN result := FALSE; RETURN(result); END_IF; REPEAT i := 2 TO up_knots BY 1; IF (knot_mult[i] < 1) OR (knots[i] <= knots[i - 1]) THEN result := FALSE; RETURN(result); END_IF; k := knot_mult[i]; IF (i < up_knots) AND (k > degree) THEN result := FALSE; RETURN(result); END_IF; IF (i = up_knots) AND (k > (degree + 1)) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION; -- constraints_param_b_spline FUNCTION cross_product( arg1, arg2: direction ): vector; LOCAL v2 : LIST [3:3] OF REAL; v1 : LIST [3:3] OF REAL; mag : REAL; res : direction; result : vector; END_LOCAL; IF ((NOT EXISTS(arg1)) OR (arg1.dim = 2)) OR ((NOT EXISTS(arg2)) OR ( arg2.dim = 2)) THEN RETURN(?); ELSE BEGIN v1 := normalise(arg1).direction_ratios; v2 := normalise(arg2).direction_ratios; res := dummy_gri || direction([(v1[2] * v2[3]) - (v1[3] * v2[2]),( v1[3] * v2[1]) - (v1[1] * v2[3]),(v1[1] * v2[2]) - (v1[2] * v2[ 1])]); mag := 0; REPEAT i := 1 TO 3 BY 1; mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]); END_REPEAT; IF mag > 0 THEN result := dummy_gri || vector(res,SQRT(mag)); ELSE result := dummy_gri || vector(arg1,0); END_IF; RETURN(result); END; END_IF; END_FUNCTION; -- cross_product FUNCTION curve_weights_positive( b: rational_b_spline_curve ): BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.upper_index_on_control_points BY 1; IF b.weights[i] <= 0 THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION; -- curve_weights_positive FUNCTION derive_dimensional_exponents( x: unit ): dimensional_exponents; LOCAL result : dimensional_exponents := dimensional_exponents(0,0,0,0,0,0, 0); END_LOCAL; IF 'CAST_PARTS_SCHEMA.DERIVED_UNIT' IN TYPEOF(x) THEN REPEAT i := LOINDEX(x.elements) TO HIINDEX(x.elements) BY 1; result.length_exponent := result.length_exponent + (x.elements[i]. exponent * x.elements[i].unit.dimensions.length_exponent); result.mass_exponent := result.mass_exponent + (x.elements[i]. exponent * x.elements[i].unit.dimensions.mass_exponent); result.time_exponent := result.time_exponent + (x.elements[i]. exponent * x.elements[i].unit.dimensions.time_exponent); result.electric_current_exponent := result. electric_current_exponent + (x.elements[i].exponent * x. elements[i].unit.dimensions.electric_current_exponent); result.thermodynamic_temperature_exponent := result. thermodynamic_temperature_exponent + (x.elements[i].exponent * x.elements[i].unit.dimensions. thermodynamic_temperature_exponent); result.amount_of_substance_exponent := result. amount_of_substance_exponent + (x.elements[i].exponent * x. elements[i].unit.dimensions.amount_of_substance_exponent); result.luminous_intensity_exponent := result. luminous_intensity_exponent + (x.elements[i].exponent * x. elements[i].unit.dimensions.luminous_intensity_exponent); END_REPEAT; ELSE result := x.dimensions; END_IF; RETURN(result); END_FUNCTION; -- derive_dimensional_exponents FUNCTION dimension_of( item: geometric_representation_item ): dimension_count; LOCAL x : SET OF representation; y : representation_context; dim : dimension_count; END_LOCAL; IF 'CAST_PARTS_SCHEMA.CARTESIAN_POINT' IN TYPEOF(item) THEN dim := SIZEOF(item\cartesian_point.coordinates); RETURN(dim); END_IF; IF 'CAST_PARTS_SCHEMA.DIRECTION' IN TYPEOF(item) THEN dim := SIZEOF(item\direction.direction_ratios); RETURN(dim); END_IF; IF 'CAST_PARTS_SCHEMA.VECTOR' IN TYPEOF(item) THEN dim := SIZEOF(item\vector.orientation\direction.direction_ratios); RETURN(dim); END_IF; x := using_representations(item); y := x[1].context_of_items; dim := y\geometric_representation_context.coordinate_space_dimension; RETURN(dim); END_FUNCTION; -- dimension_of FUNCTION dimensions_for_si_unit( n: si_unit_name ): dimensional_exponents; CASE n OF metre : RETURN(dimensional_exponents(1,0,0,0,0,0,0)); gram : RETURN(dimensional_exponents(0,1,0,0,0,0,0)); second : RETURN(dimensional_exponents(0,0,1,0,0,0,0)); ampere : RETURN(dimensional_exponents(0,0,0,1,0,0,0)); kelvin : RETURN(dimensional_exponents(0,0,0,0,1,0,0)); mole : RETURN(dimensional_exponents(0,0,0,0,0,1,0)); candela : RETURN(dimensional_exponents(0,0,0,0,0,0,1)); radian : RETURN(dimensional_exponents(0,0,0,0,0,0,0)); steradian : RETURN(dimensional_exponents(0,0,0,0,0,0,0)); hertz : RETURN(dimensional_exponents(0,0,-1,0,0,0,0)); newton : RETURN(dimensional_exponents(1,1,-2,0,0,0,0)); pascal : RETURN(dimensional_exponents(-1,1,-2,0,0,0,0)); joule : RETURN(dimensional_exponents(2,1,-2,0,0,0,0)); watt : RETURN(dimensional_exponents(2,1,-3,0,0,0,0)); coulomb : RETURN(dimensional_exponents(0,0,1,1,0,0,0)); volt : RETURN(dimensional_exponents(2,1,-3,-1,0,0,0)); farad : RETURN(dimensional_exponents(-2,-1,4,1,0,0,0)); ohm : RETURN(dimensional_exponents(2,1,-3,-2,0,0,0)); siemens : RETURN(dimensional_exponents(-2,-1,3,2,0,0,0)); weber : RETURN(dimensional_exponents(2,1,-2,-1,0,0,0)); tesla : RETURN(dimensional_exponents(0,1,-2,-1,0,0,0)); henry : RETURN(dimensional_exponents(2,1,-2,-2,0,0,0)); degree_celsius : RETURN(dimensional_exponents(0,0,0,0,1,0,0)); lumen : RETURN(dimensional_exponents(0,0,0,0,0,0,1)); lux : RETURN(dimensional_exponents(-2,0,0,0,0,0,1)); becquerel : RETURN(dimensional_exponents(0,0,-1,0,0,0,0)); gray : RETURN(dimensional_exponents(2,0,-2,0,0,0,0)); sievert : RETURN(dimensional_exponents(2,0,-2,0,0,0,0)); END_CASE; END_FUNCTION; -- dimensions_for_si_unit FUNCTION dot_product( arg1, arg2: direction ): REAL; LOCAL ndim : INTEGER; scalar : REAL; vec1 : direction; vec2 : direction; END_LOCAL; IF (NOT EXISTS(arg1)) OR (NOT EXISTS(arg2)) THEN scalar := ?; ELSE IF arg1.dim <> arg2.dim THEN scalar := ?; ELSE BEGIN vec1 := normalise(arg1); vec2 := normalise(arg2); ndim := arg1.dim; scalar := 0; REPEAT i := 1 TO ndim BY 1; scalar := scalar + (vec1.direction_ratios[i] * vec2. direction_ratios[i]); END_REPEAT; END; END_IF; END_IF; RETURN(scalar); END_FUNCTION; -- dot_product FUNCTION edge_reversed( an_edge: edge ): oriented_edge; LOCAL the_reverse : oriented_edge; END_LOCAL; IF 'CAST_PARTS_SCHEMA.ORIENTED_EDGE' IN TYPEOF(an_edge) THEN the_reverse := (dummy_tri || edge(an_edge.edge_end,an_edge. edge_start)) || oriented_edge(an_edge\oriented_edge.edge_element, NOT an_edge\oriented_edge.orientation); ELSE the_reverse := (dummy_tri || edge(an_edge.edge_end,an_edge. edge_start)) || oriented_edge(an_edge,FALSE); END_IF; RETURN(the_reverse); END_FUNCTION; -- edge_reversed FUNCTION face_bound_reversed( a_face_bound: face_bound ): face_bound; LOCAL the_reverse : face_bound; END_LOCAL; IF 'CAST_PARTS_SCHEMA.FACE_OUTER_BOUND' IN TYPEOF(a_face_bound) THEN the_reverse := (dummy_tri || face_bound(a_face_bound\face_bound. bound,NOT a_face_bound\face_bound.orientation)) || face_outer_bound(); ELSE the_reverse := dummy_tri || face_bound(a_face_bound.bound,NOT a_face_bound.orientation); END_IF; RETURN(the_reverse); END_FUNCTION; -- face_bound_reversed FUNCTION face_reversed( a_face: face ): oriented_face; LOCAL the_reverse : oriented_face; END_LOCAL; IF 'CAST_PARTS_SCHEMA.ORIENTED_FACE' IN TYPEOF(a_face) THEN the_reverse := (dummy_tri || face(set_of_topology_reversed(a_face. bounds))) || oriented_face(a_face\oriented_face.face_element,NOT a_face\oriented_face.orientation); ELSE the_reverse := (dummy_tri || face(set_of_topology_reversed(a_face. bounds))) || oriented_face(a_face,FALSE); END_IF; RETURN(the_reverse); END_FUNCTION; -- face_reversed FUNCTION first_proj_axis( z_axis, arg: direction ): direction; LOCAL x_vec : vector; v : direction; z : direction; x_axis : direction; END_LOCAL; IF NOT EXISTS(z_axis) THEN RETURN(?); ELSE z := normalise(z_axis); IF NOT EXISTS(arg) THEN IF z.direction_ratios <> [1,0,0] THEN v := dummy_gri || direction([1,0,0]); ELSE v := dummy_gri || direction([0,1,0]); END_IF; ELSE IF arg.dim <> 3 THEN RETURN(?); END_IF; IF cross_product(arg,z).magnitude = 0 THEN RETURN(?); ELSE v := normalise(arg); END_IF; END_IF; x_vec := scalar_times_vector(dot_product(v,z),z); x_axis := vector_difference(v,x_vec).orientation; x_axis := normalise(x_axis); END_IF; RETURN(x_axis); END_FUNCTION; -- first_proj_axis FUNCTION get_basis_surface( c: curve_on_surface ): SET [0:2] OF surface; LOCAL surfs : SET [0:2] OF surface; n : INTEGER; END_LOCAL; surfs := []; IF 'CAST_PARTS_SCHEMA.PCURVE' IN TYPEOF(c) THEN surfs := [c\pcurve.basis_surface]; ELSE IF 'CAST_PARTS_SCHEMA.SURFACE_CURVE' IN TYPEOF(c) THEN n := SIZEOF(c\surface_curve.associated_geometry); REPEAT i := 1 TO n BY 1; surfs := surfs + associated_surface(c\surface_curve. associated_geometry[i]); END_REPEAT; END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c) THEN n := SIZEOF(c\composite_curve.segments); surfs := get_basis_surface(c\composite_curve.segments[1]. parent_curve); IF n > 1 THEN REPEAT i := 2 TO n BY 1; surfs := surfs * get_basis_surface(c\composite_curve.segments[i] .parent_curve); END_REPEAT; END_IF; END_IF; RETURN(surfs); END_FUNCTION; -- get_basis_surface FUNCTION get_description_value( obj: description_attribute_select ): text; LOCAL description_bag : BAG OF description_attribute := USEDIN(obj,( 'CAST_PARTS_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.') + 'DESCRIBED_ITEM'); END_LOCAL; IF SIZEOF(description_bag) = 1 THEN RETURN(description_bag[1].attribute_value); ELSE RETURN(?); END_IF; END_FUNCTION; -- get_description_value FUNCTION get_id_value( obj: id_attribute_select ): identifier; LOCAL id_bag : BAG OF id_attribute := USEDIN(obj,('CAST_PARTS_SCHEMA.' + 'ID_ATTRIBUTE.') + 'IDENTIFIED_ITEM'); END_LOCAL; IF SIZEOF(id_bag) = 1 THEN RETURN(id_bag[1].attribute_value); ELSE RETURN(?); END_IF; END_FUNCTION; -- get_id_value FUNCTION get_name_value( obj: name_attribute_select ): label; LOCAL name_bag : BAG OF name_attribute := USEDIN(obj,('CAST_PARTS_SCHEMA.' + 'NAME_ATTRIBUTE.') + 'NAMED_ITEM'); END_LOCAL; IF SIZEOF(name_bag) = 1 THEN RETURN(name_bag[1].attribute_value); ELSE RETURN(?); END_IF; END_FUNCTION; -- get_name_value FUNCTION get_property_definition_representations( c_def_instance: characterized_definition ): SET OF property_definition_representation; LOCAL pdr_set : SET OF property_definition_representation := []; pd_set : SET OF property_definition := []; END_LOCAL; pd_set := bag_to_set(USEDIN(c_def_instance, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')); IF SIZEOF(pd_set) < 1 THEN RETURN(pdr_set); END_IF; REPEAT i := 1 TO HIINDEX(pd_set) BY 1; pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')); END_REPEAT; RETURN(pdr_set); END_FUNCTION; -- get_property_definition_representations FUNCTION get_role( obj: role_select ): object_role; LOCAL role_bag : BAG OF role_association := USEDIN(obj,( 'CAST_PARTS_SCHEMA.' + 'ROLE_ASSOCIATION.') + 'ITEM_WITH_ROLE'); END_LOCAL; IF SIZEOF(role_bag) = 1 THEN RETURN(role_bag[1].role); ELSE RETURN(?); END_IF; END_FUNCTION; -- get_role FUNCTION item_in_context( item: representation_item; cntxt: representation_context ): BOOLEAN; LOCAL y : BAG OF representation_item; END_LOCAL; IF SIZEOF(USEDIN(item,'CAST_PARTS_SCHEMA.REPRESENTATION.ITEMS') * cntxt.representations_in_context) > 0 THEN RETURN(TRUE); ELSE y := QUERY ( z <* USEDIN(item,'') | ( 'CAST_PARTS_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z)) ); IF SIZEOF(y) > 0 THEN REPEAT i := 1 TO HIINDEX(y) BY 1; IF item_in_context(y[i],cntxt) THEN RETURN(TRUE); END_IF; END_REPEAT; END_IF; END_IF; RETURN(FALSE); END_FUNCTION; -- item_in_context FUNCTION leap_year( year: year_number ): BOOLEAN; IF (((year MOD 4) = 0) AND ((year MOD 100) <> 0)) OR ((year MOD 400) = 0) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END_FUNCTION; -- leap_year FUNCTION list_face_loops( f: face ): LIST [0:?] OF loop; LOCAL loops : LIST [0:?] OF loop := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(f.bounds) BY 1; loops := loops + f.bounds[i].bound; END_REPEAT; RETURN(loops); END_FUNCTION; -- list_face_loops FUNCTION list_of_topology_reversed( a_list: list_of_reversible_topology_item ): list_of_reversible_topology_item; LOCAL the_reverse : list_of_reversible_topology_item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF(a_list) BY 1; the_reverse := topology_reversed(a_list[i]) + the_reverse; END_REPEAT; RETURN(the_reverse); END_FUNCTION; -- list_of_topology_reversed FUNCTION list_to_array( lis: LIST [0:?] OF GENERIC:t; low, u: INTEGER ): ARRAY OF GENERIC:t; LOCAL n : INTEGER; res : ARRAY [low:u] OF GENERIC:t; END_LOCAL; n := SIZEOF(lis); IF n <> ((u - low) + 1) THEN RETURN(?); ELSE res := [lis[1],n]; REPEAT i := 2 TO n BY 1; res[(low + i) - 1] := lis[i]; END_REPEAT; RETURN(res); END_IF; END_FUNCTION; -- list_to_array FUNCTION list_to_set( l: LIST [0:?] OF GENERIC:t ): SET OF GENERIC:t; LOCAL s : SET OF GENERIC:t := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(l) BY 1; s := s + l[i]; END_REPEAT; RETURN(s); END_FUNCTION; -- list_to_set FUNCTION make_array_of_array( lis: LIST [1:?] OF LIST [1:?] OF GENERIC:t; low1, u1, low2, u2: INTEGER ): ARRAY OF ARRAY OF GENERIC:t; LOCAL res : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC:t; END_LOCAL; IF ((u1 - low1) + 1) <> SIZEOF(lis) THEN RETURN(?); END_IF; IF ((u2 - low2) + 1) <> SIZEOF(lis[1]) THEN RETURN(?); END_IF; res := [list_to_array(lis[1],low2,u2),(u1 - low1) + 1]; REPEAT i := 2 TO HIINDEX(lis) BY 1; IF ((u2 - low2) + 1) <> SIZEOF(lis[i]) THEN RETURN(?); END_IF; res[(low1 + i) - 1] := list_to_array(lis[i],low2,u2); END_REPEAT; RETURN(res); END_FUNCTION; -- make_array_of_array FUNCTION mixed_loop_type_set( l: SET [0:?] OF loop ): LOGICAL; LOCAL poly_loop_type : LOGICAL; END_LOCAL; IF SIZEOF(l) <= 1 THEN RETURN(FALSE); END_IF; poly_loop_type := 'CAST_PARTS_SCHEMA.POLY_LOOP' IN TYPEOF(l[1]); REPEAT i := 2 TO SIZEOF(l) BY 1; IF ('CAST_PARTS_SCHEMA.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type THEN RETURN(TRUE); END_IF; END_REPEAT; RETURN(FALSE); END_FUNCTION; -- mixed_loop_type_set FUNCTION msb_shells( brep: manifold_solid_brep ): SET [1:?] OF closed_shell; IF SIZEOF(QUERY ( msbtype <* TYPEOF(brep) | (msbtype LIKE '*BREP_WITH_VOIDS') )) >= 1 THEN RETURN(brep\brep_with_voids.voids + brep.outer); ELSE RETURN([brep.outer]); END_IF; END_FUNCTION; -- msb_shells FUNCTION normalise( arg: vector_or_direction ): vector_or_direction; LOCAL ndim : INTEGER; v : direction; vec : vector; mag : REAL; result : vector_or_direction; END_LOCAL; IF NOT EXISTS(arg) THEN result := ?; ELSE ndim := arg.dim; IF 'CAST_PARTS_SCHEMA.VECTOR' IN TYPEOF(arg) THEN BEGIN v := dummy_gri || direction(arg.orientation.direction_ratios); IF arg.magnitude = 0 THEN RETURN(?); ELSE vec := dummy_gri || vector(v,1); END_IF; END; ELSE v := dummy_gri || direction(arg.direction_ratios); END_IF; mag := 0; REPEAT i := 1 TO ndim BY 1; mag := mag + (v.direction_ratios[i] * v.direction_ratios[i]); END_REPEAT; IF mag > 0 THEN mag := SQRT(mag); REPEAT i := 1 TO ndim BY 1; v.direction_ratios[i] := v.direction_ratios[i] / mag; END_REPEAT; IF 'CAST_PARTS_SCHEMA.VECTOR' IN TYPEOF(arg) THEN vec.orientation := v; result := vec; ELSE result := v; END_IF; ELSE RETURN(?); END_IF; END_IF; RETURN(result); END_FUNCTION; -- normalise FUNCTION open_shell_reversed( a_shell: open_shell ): oriented_open_shell; LOCAL the_reverse : oriented_open_shell; END_LOCAL; IF 'CAST_PARTS_SCHEMA.ORIENTED_OPEN_SHELL' IN TYPEOF(a_shell) THEN the_reverse := ((dummy_tri || connected_face_set(a_shell\ connected_face_set.cfs_faces)) || open_shell()) || oriented_open_shell(a_shell\oriented_open_shell. open_shell_element,NOT a_shell\oriented_open_shell.orientation); ELSE the_reverse := ((dummy_tri || connected_face_set(a_shell\ connected_face_set.cfs_faces)) || open_shell()) || oriented_open_shell(a_shell,FALSE); END_IF; RETURN(the_reverse); END_FUNCTION; -- open_shell_reversed FUNCTION orthogonal_complement( vec: direction ): direction; LOCAL result : direction; END_LOCAL; IF (vec.dim <> 2) OR (NOT EXISTS(vec)) THEN RETURN(?); ELSE result := dummy_gri || direction([-vec.direction_ratios[2],vec. direction_ratios[1]]); RETURN(result); END_IF; END_FUNCTION; -- orthogonal_complement FUNCTION path_head_to_tail( a_path: path ): BOOLEAN; LOCAL n : INTEGER; p : BOOLEAN := TRUE; END_LOCAL; n := SIZEOF(a_path.edge_list); REPEAT i := 2 TO n BY 1; p := p AND (a_path.edge_list[i - 1].edge_end :=: a_path.edge_list[i] .edge_start); END_REPEAT; RETURN(p); END_FUNCTION; -- path_head_to_tail FUNCTION path_reversed( a_path: path ): oriented_path; LOCAL the_reverse : oriented_path; END_LOCAL; IF 'CAST_PARTS_SCHEMA.ORIENTED_PATH' IN TYPEOF(a_path) THEN the_reverse := (dummy_tri || path(list_of_topology_reversed(a_path. edge_list))) || oriented_path(a_path\oriented_path.path_element, NOT a_path\oriented_path.orientation); ELSE the_reverse := (dummy_tri || path(list_of_topology_reversed(a_path. edge_list))) || oriented_path(a_path,FALSE); END_IF; RETURN(the_reverse); END_FUNCTION; -- path_reversed FUNCTION scalar_times_vector( scalar: REAL; vec: vector_or_direction ): vector; LOCAL v : direction; mag : REAL; result : vector; END_LOCAL; IF (NOT EXISTS(scalar)) OR (NOT EXISTS(vec)) THEN RETURN(?); ELSE IF 'CAST_PARTS_SCHEMA.VECTOR' IN TYPEOF(vec) THEN v := dummy_gri || direction(vec.orientation.direction_ratios); mag := scalar * vec.magnitude; ELSE v := dummy_gri || direction(vec.direction_ratios); mag := scalar; END_IF; IF mag < 0 THEN REPEAT i := 1 TO SIZEOF(v.direction_ratios) BY 1; v.direction_ratios[i] := -v.direction_ratios[i]; END_REPEAT; mag := -mag; END_IF; result := dummy_gri || vector(normalise(v),mag); END_IF; RETURN(result); END_FUNCTION; -- scalar_times_vector FUNCTION second_proj_axis( z_axis, x_axis, arg: direction ): direction; LOCAL temp : vector; v : direction; y_axis : vector; END_LOCAL; IF NOT EXISTS(arg) THEN v := dummy_gri || direction([0,1,0]); ELSE v := arg; END_IF; temp := scalar_times_vector(dot_product(v,z_axis),z_axis); y_axis := vector_difference(v,temp); temp := scalar_times_vector(dot_product(v,x_axis),x_axis); y_axis := vector_difference(y_axis,temp); y_axis := normalise(y_axis); RETURN(y_axis.orientation); END_FUNCTION; -- second_proj_axis FUNCTION set_of_topology_reversed( a_set: set_of_reversible_topology_item ): set_of_reversible_topology_item; LOCAL the_reverse : set_of_reversible_topology_item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF(a_set) BY 1; the_reverse := the_reverse + topology_reversed(a_set[i]); END_REPEAT; RETURN(the_reverse); END_FUNCTION; -- set_of_topology_reversed FUNCTION shell_reversed( a_shell: shell ): shell; IF 'CAST_PARTS_SCHEMA.OPEN_SHELL' IN TYPEOF(a_shell) THEN RETURN(open_shell_reversed(a_shell)); ELSE IF 'CAST_PARTS_SCHEMA.CLOSED_SHELL' IN TYPEOF(a_shell) THEN RETURN(closed_shell_reversed(a_shell)); ELSE RETURN(?); END_IF; END_IF; END_FUNCTION; -- shell_reversed FUNCTION surface_weights_positive( b: rational_b_spline_surface ): BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.u_upper BY 1; REPEAT j := 0 TO b.v_upper BY 1; IF b.weights[i][j] <= 0 THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; END_REPEAT; RETURN(result); END_FUNCTION; -- surface_weights_positive FUNCTION topology_reversed( an_item: reversible_topology ): reversible_topology; IF 'CAST_PARTS_SCHEMA.EDGE' IN TYPEOF(an_item) THEN RETURN(edge_reversed(an_item)); END_IF; IF 'CAST_PARTS_SCHEMA.PATH' IN TYPEOF(an_item) THEN RETURN(path_reversed(an_item)); END_IF; IF 'CAST_PARTS_SCHEMA.FACE_BOUND' IN TYPEOF(an_item) THEN RETURN(face_bound_reversed(an_item)); END_IF; IF 'CAST_PARTS_SCHEMA.FACE' IN TYPEOF(an_item) THEN RETURN(face_reversed(an_item)); END_IF; IF 'CAST_PARTS_SCHEMA.SHELL' IN TYPEOF(an_item) THEN RETURN(shell_reversed(an_item)); END_IF; IF 'SET' IN TYPEOF(an_item) THEN RETURN(set_of_topology_reversed(an_item)); END_IF; IF 'LIST' IN TYPEOF(an_item) THEN RETURN(list_of_topology_reversed(an_item)); END_IF; RETURN(?); END_FUNCTION; -- topology_reversed FUNCTION using_items( item: founded_item_select; checked_items: SET OF founded_item_select ): SET OF founded_item_select; LOCAL next_items : SET OF founded_item_select; new_check_items : SET OF founded_item_select; result_items : SET OF founded_item_select; END_LOCAL; result_items := []; new_check_items := checked_items + item; next_items := QUERY ( z <* bag_to_set(USEDIN(item,'')) | (( 'CAST_PARTS_SCHEMA.REPRESENTATION_ITEM' IN TYPEOF(z)) OR ( 'CAST_PARTS_SCHEMA.FOUNDED_ITEM' IN TYPEOF(z))) ); IF SIZEOF(next_items) > 0 THEN REPEAT i := 1 TO HIINDEX(next_items) BY 1; IF NOT (next_items[i] IN new_check_items) THEN result_items := (result_items + next_items[i]) + using_items( next_items[i],new_check_items); END_IF; END_REPEAT; END_IF; RETURN(result_items); END_FUNCTION; -- using_items FUNCTION using_representations( item: founded_item_select ): SET OF representation; LOCAL results : SET OF representation; intermediate_items : SET OF founded_item_select; result_bag : BAG OF representation; END_LOCAL; results := []; result_bag := USEDIN(item,'CAST_PARTS_SCHEMA.REPRESENTATION.ITEMS'); IF SIZEOF(result_bag) > 0 THEN REPEAT i := 1 TO HIINDEX(result_bag) BY 1; results := results + result_bag[i]; END_REPEAT; END_IF; intermediate_items := using_items(item,[]); IF SIZEOF(intermediate_items) > 0 THEN REPEAT i := 1 TO HIINDEX(intermediate_items) BY 1; result_bag := USEDIN(intermediate_items[i], 'CAST_PARTS_SCHEMA.REPRESENTATION.ITEMS'); IF SIZEOF(result_bag) > 0 THEN REPEAT j := 1 TO HIINDEX(result_bag) BY 1; results := results + result_bag[j]; END_REPEAT; END_IF; END_REPEAT; END_IF; RETURN(results); END_FUNCTION; -- using_representations FUNCTION valid_calendar_date( date: calendar_date ): LOGICAL; CASE date.month_component OF 1 : RETURN((1 <= date.day_component) AND (date.day_component <= 31)); 2 : BEGIN IF leap_year(date.year_component) THEN RETURN((1 <= date.day_component) AND (date.day_component <= 29)); ELSE RETURN((1 <= date.day_component) AND (date.day_component <= 28)); END_IF; END; 3 : RETURN((1 <= date.day_component) AND (date.day_component <= 31)); 4 : RETURN((1 <= date.day_component) AND (date.day_component <= 30)); 5 : RETURN((1 <= date.day_component) AND (date.day_component <= 31)); 6 : RETURN((1 <= date.day_component) AND (date.day_component <= 30)); 7 : RETURN((1 <= date.day_component) AND (date.day_component <= 31)); 8 : RETURN((1 <= date.day_component) AND (date.day_component <= 31)); 9 : RETURN((1 <= date.day_component) AND (date.day_component <= 30)); 10 : RETURN((1 <= date.day_component) AND (date. day_component <= 31)); 11 : RETURN((1 <= date.day_component) AND (date. day_component <= 30)); 12 : RETURN((1 <= date.day_component) AND (date. day_component <= 31)); END_CASE; RETURN(FALSE); END_FUNCTION; -- valid_calendar_date FUNCTION valid_measure_value( m: measure_value ): BOOLEAN; IF 'REAL' IN TYPEOF(m) THEN RETURN(m > 0); ELSE IF 'INTEGER' IN TYPEOF(m) THEN RETURN(m > 0); ELSE RETURN(TRUE); END_IF; END_IF; END_FUNCTION; -- valid_measure_value FUNCTION valid_time( time: local_time ): BOOLEAN; IF EXISTS(time.second_component) THEN RETURN(EXISTS(time.minute_component)); ELSE RETURN(TRUE); END_IF; END_FUNCTION; -- valid_time FUNCTION valid_units( m: measure_with_unit ): BOOLEAN; IF 'CAST_PARTS_SCHEMA.LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1,0,0,0,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.MASS_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,1,0,0,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.TIME_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,0,1,0,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,0,0,1,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,0,0,0,1,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,0,0,0,1,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,0,0,0,0,1,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,0,0,0,0,0,1) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,0,0,0,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,0,0,0,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.AREA_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(2,0,0,0,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.VOLUME_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(3,0,0,0,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.RATIO_MEASURE' IN TYPEOF(m.value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,0,0,0,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(1,0,0,0,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; IF 'CAST_PARTS_SCHEMA.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m. value_component) THEN IF derive_dimensional_exponents(m.unit_component) <> dimensional_exponents(0,0,0,0,0,0,0) THEN RETURN(FALSE); END_IF; END_IF; RETURN(TRUE); END_FUNCTION; -- valid_units FUNCTION vector_difference( arg1, arg2: vector_or_direction ): vector; LOCAL ndim : INTEGER; mag2 : REAL; mag1 : REAL; mag : REAL; res : direction; vec1 : direction; vec2 : direction; result : vector; END_LOCAL; IF ((NOT EXISTS(arg1)) OR (NOT EXISTS(arg2))) OR (arg1.dim <> arg2.dim) THEN RETURN(?); ELSE BEGIN IF 'CAST_PARTS_SCHEMA.VECTOR' IN TYPEOF(arg1) THEN mag1 := arg1.magnitude; vec1 := arg1.orientation; ELSE mag1 := 1; vec1 := arg1; END_IF; IF 'CAST_PARTS_SCHEMA.VECTOR' IN TYPEOF(arg2) THEN mag2 := arg2.magnitude; vec2 := arg2.orientation; ELSE mag2 := 1; vec2 := arg2; END_IF; vec1 := normalise(vec1); vec2 := normalise(vec2); ndim := SIZEOF(vec1.direction_ratios); mag := 0; res := dummy_gri || direction(vec1.direction_ratios); REPEAT i := 1 TO ndim BY 1; res.direction_ratios[i] := (mag1 * vec1.direction_ratios[i]) + ( mag2 * vec2.direction_ratios[i]); mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]); END_REPEAT; IF mag > 0 THEN result := dummy_gri || vector(res,SQRT(mag)); ELSE result := dummy_gri || vector(vec1,0); END_IF; END; END_IF; RETURN(result); END_FUNCTION; -- vector_difference FUNCTION get_property_definition_shape_aspect( c_def_instance: characterized_definition ): SET OF shape_aspect; LOCAL pdr_set : SET OF shape_aspect:= []; pd_set : SET OF property_definition := []; END_LOCAL; pd_set := bag_to_set(USEDIN(c_def_instance, 'CAST_PARTS_SCHEMA.PROPERTY_DEFINITION.DEFINITION')); IF SIZEOF(pd_set) < 1 THEN RETURN(pdr_set); END_IF; REPEAT i := 1 TO HIINDEX(pd_set) BY 1; pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'CAST_PARTS_SCHEMA.SHAPE_ASPECT.OF_SHAPE')); END_REPEAT; RETURN(pdr_set); END_FUNCTION; FUNCTION get_action_property_representation( c_def_instance: characterized_action_definition ): SET OF action_property_representation; LOCAL pdr_set : SET OF action_property_representation:= []; pd_set : SET OF action_property := []; END_LOCAL; pd_set := bag_to_set(USEDIN(c_def_instance, 'CAST_PARTS_SCHEMA.ACTION_PROPERTY.DEFINITION')); IF SIZEOF(pd_set) < 1 THEN RETURN(pdr_set); END_IF; REPEAT i := 1 TO HIINDEX(pd_set) BY 1; pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'CAST_PARTS_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')); END_REPEAT; RETURN(pdr_set); END_FUNCTION; FUNCTION get_resource_property_representation( c_def_instance: characterized_resource_definition ): SET OF resource_property_representation; LOCAL pdr_set : SET OF resource_property_representation:= []; pd_set : SET OF resource_property := []; END_LOCAL; pd_set := bag_to_set(USEDIN(c_def_instance, 'CAST_PARTS_SCHEMA.RESOURCE_PROPERTY.RESOURCE')); IF SIZEOF(pd_set) < 1 THEN RETURN(pdr_set); END_IF; REPEAT i := 1 TO HIINDEX(pd_set) BY 1; pdr_set := pdr_set + bag_to_set(USEDIN(pd_set[i], 'CAST_PARTS_SCHEMA.RESOURCE_PROPERTY_REPRESENTATION.PROPERTY')); END_REPEAT; RETURN(pdr_set); END_FUNCTION; END_SCHEMA; -- cast_parts_schema