(* FILE_SCHEMA (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN { 1 0 10303 210 wd1_3 1 1 }')); *) SCHEMA electronic_assembly_interconnect_and_packaging_design; CONSTANT dummy_gri : geometric_representation_item := representation_item('')|| geometric_representation_item(); dummy2_gri : geometric_representation_item := representation_item('')|| geometric_representation_item(); dummy_tri : topological_representation_item := representation_item('')|| topological_representation_item(); END_CONSTANT; TYPE action_assigned_item = SELECT (product_definition_formation, rule_definition); END_TYPE; TYPE approval_assigned_item = SELECT (action, action_directive, alternate_product_relationship, applied_date_and_time_assignment, applied_document_reference, certification, change, change_request, characterized_object, colour, component_definition, component_shape_aspect, composite_curve_segment, configuration_effectivity, configuration_item, contract, curve_style, curve_style_font, curve_style_font_and_scaling, date, dimension_related_tolerance_zone_element, dimensional_characteristic_representation, dimensional_size, directed_action, document, document_usage_constraint, externally_defined_item, fill_area_style, fill_area_style_colour, geometric_tolerance, geometric_tolerance_relationship, group, inter_stratum_feature, material_designation, measure_with_unit, plus_minus_tolerance, pre_defined_item, product, product_concept, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_formation_with_specified_source, product_definition_relationship, property_definition, property_definition_relationship, property_definition_representation, representation, representation_context, representation_item, representation_relationship, runout_zone_orientation, security_classification, shape_aspect, shape_aspect_relationship, start_request, start_work, stratum_feature, tolerance_value, tolerance_zone_form, versioned_action_request); END_TYPE; TYPE certification_assigned_item = SELECT (supplied_part_relationship, make_from_usage_option, product_definition_formation_with_specified_source); END_TYPE; TYPE change_request_item = SELECT (product_definition_formation, representation_relationship); END_TYPE; TYPE classification_assigned_item = SELECT (requirements_property, signal, stratum); END_TYPE; TYPE contract_assigned_item = SELECT (alternate_product_relationship, directed_action, product, product_definition_formation); END_TYPE; TYPE date_and_time_assigned_item = SELECT (approval_person_organization, certification, change, contract, directed_action, document, product_definition, rule_action, security_classification, versioned_action_request); END_TYPE; -- date_and_time_assigned_item TYPE date_assigned_item = SELECT (product_definition, versioned_action_request, directed_action, approval_person_organization, contract, security_classification, certification); END_TYPE; -- date_assigned_item TYPE document_assigned_item = SELECT (action_method, assembly_component_usage, bond_category, characterized_object, component_definition, component_interface_terminal, component_shape_aspect, component_terminal, configuration_item, descriptive_representation_item, externally_defined_item, functional_unit_terminal_definition, layer, material_designation, measure_representation_item, package_terminal, part_template_definition, product, product_definition, product_definition_formation, product_definition_formation_relationship, property_definition, representation, representation_item, requirements_property, rule_definition, shape_aspect, signal, stratum); END_TYPE; TYPE group_assigned_item = SELECT (component_definition, component_interface_terminal, component_shape_aspect, component_terminal, configuration_item, inter_stratum_feature, printed_part_template_terminal, product, product_definition_formation, representation, representation_item, requirements_property, rule_definition, shape_aspect, stratum, stratum_feature, stratum_surface); END_TYPE; TYPE managed_design_object = SELECT (action, alternate_product_relationship, applied_approval_assignment, applied_date_and_time_assignment, applied_document_reference, approval, approval_status, certification, characterized_object, colour, composite_curve_segment, configuration_effectivity, configuration_item, contract, curve_style, curve_style_font, curve_style_font_and_scaling, date, dimension_related_tolerance_zone_element, dimensional_characteristic_representation, dimensional_size, document, document_usage_constraint, externally_defined_item, fill_area_style, fill_area_style_colour, geometric_tolerance, geometric_tolerance_relationship, group, layer_connection_point, layer_connection_point_link, material_designation, measure_with_unit, organization, person, person_and_organization, plus_minus_tolerance, pre_defined_item, product, product_concept, product_definition, product_definition_formation, product_definition_formation_relationship, product_definition_relationship, property_definition, property_definition_relationship, property_definition_representation, representation, representation_context, representation_item, representation_relationship, runout_zone_orientation, security_classification, shape_aspect, shape_aspect_relationship, tolerance_value, tolerance_zone_form, versioned_action_request); END_TYPE; -- managed_design_object TYPE organization_assigned_item = SELECT (configuration_item, contract, directed_action, document, versioned_action_request, product, product_definition, product_definition_formation, product_definition_formation_with_specified_source, representation, security_classification); END_TYPE; -- organization_assigned_item TYPE person_and_organization_assigned_item = SELECT (configuration_item, contract, document, product, product_definition_formation, product_definition, rule_action, security_classification, versioned_action_request); END_TYPE; -- person_and_organization_assigned_item TYPE person_assigned_item = SELECT (change, document, security_classification); END_TYPE; TYPE replacement_from_item = SELECT (rule_definition); END_TYPE; TYPE replacement_to_item = SELECT (rule_definition); END_TYPE; TYPE security_classification_assigned_item = SELECT (assembly_component_usage, document, make_from_usage_option, product_definition_formation, product_definition); END_TYPE; TYPE start_request_item = SELECT (product_definition_formation, representation_relationship); END_TYPE; TYPE work_item = SELECT (product_definition_formation); END_TYPE; TYPE parameter_value = REAL; END_TYPE; TYPE boolean_operand = SELECT (solid_model, half_space_solid, csg_primitive, boolean_result, half_space_2d); END_TYPE; TYPE boolean_operator = ENUMERATION OF (union, intersection, difference); END_TYPE; TYPE CSG_PRIMITIVE = SELECT ( SPHERE, BLOCK, RIGHT_ANGULAR_WEDGE, TORUS, RIGHT_CIRCULAR_CONE, RIGHT_CIRCULAR_CYLINDER, PRIMITIVE_2D); END_TYPE; TYPE csg_select = SELECT (boolean_result, csg_primitive); END_TYPE; TYPE amount_of_substance_measure = REAL; END_TYPE; TYPE area_measure = REAL; END_TYPE; TYPE context_dependent_measure = REAL; END_TYPE; TYPE count_measure = NUMBER; END_TYPE; TYPE descriptive_measure = STRING; END_TYPE; TYPE electric_current_measure = REAL; END_TYPE; TYPE luminous_intensity_measure = REAL; END_TYPE; TYPE mass_measure = REAL; END_TYPE; TYPE measure_value = SELECT (length_measure, mass_measure, time_measure, electric_current_measure, thermodynamic_temperature_measure, amount_of_substance_measure, luminous_intensity_measure, plane_angle_measure, solid_angle_measure, area_measure, volume_measure, ratio_measure, parameter_value, numeric_measure, context_dependent_measure, descriptive_measure, positive_length_measure, positive_plane_angle_measure, positive_ratio_measure, count_measure); END_TYPE; TYPE numeric_measure = NUMBER; END_TYPE; TYPE positive_plane_angle_measure = plane_angle_measure; WHERE WR1: SELF > 0; END_TYPE; TYPE solid_angle_measure = REAL; END_TYPE; TYPE thermodynamic_temperature_measure = REAL; END_TYPE; TYPE time_measure = REAL; END_TYPE; TYPE volume_measure = REAL; END_TYPE; TYPE box_height = positive_ratio_measure; END_TYPE; TYPE box_rotate_angle = plane_angle_measure; END_TYPE; TYPE box_slant_angle = plane_angle_measure; END_TYPE; TYPE box_width = positive_ratio_measure; END_TYPE; TYPE characterized_product_definition = SELECT (product_definition, product_definition_relationship); END_TYPE; TYPE label = STRING; END_TYPE; TYPE text = STRING; END_TYPE; TYPE identifier = STRING; END_TYPE; TYPE vector_or_direction = SELECT (vector, direction); END_TYPE; TYPE knot_type = ENUMERATION OF (uniform_knots, quasi_uniform_knots, piecewise_bezier_knots, unspecified); END_TYPE; TYPE length_measure = REAL; END_TYPE; TYPE positive_length_measure = length_measure; WHERE WR1: SELF > 0; END_TYPE; TYPE plane_angle_measure = REAL; END_TYPE; TYPE pcurve_or_surface = SELECT (pcurve, surface); END_TYPE; TYPE preferred_surface_curve_representation = ENUMERATION OF (curve_3d, pcurve_s1, pcurve_s2); END_TYPE; TYPE curve_on_surface = SELECT (pcurve, surface_curve, composite_curve_on_surface); END_TYPE; TYPE reversible_topology = SELECT (reversible_topology_item, list_of_reversible_topology_item, set_of_reversible_topology_item); END_TYPE; TYPE list_of_reversible_topology_item = LIST [0:?] of reversible_topology_item; END_TYPE; TYPE reversible_topology_item = SELECT (edge, path, face, face_bound, closed_shell, open_shell); END_TYPE; TYPE set_of_reversible_topology_item = SET [0:?] of reversible_topology_item; END_TYPE; TYPE shell = SELECT (vertex_shell, wire_shell, open_shell, closed_shell); END_TYPE; TYPE founded_item_select = SELECT (founded_item, representation_item); END_TYPE; TYPE axis2_placement = SELECT (axis2_placement_2d, axis2_placement_3d); END_TYPE; TYPE dimension_count = INTEGER; WHERE WR1: SELF > 0; END_TYPE; TYPE geometric_set_select = SELECT (point, curve, surface); END_TYPE; TYPE transition_code = ENUMERATION OF (discontinuous, continuous, cont_same_gradient, cont_same_gradient_same_curvature); END_TYPE; TYPE trimming_select = SELECT (cartesian_point, parameter_value); END_TYPE; TYPE trimming_preference = ENUMERATION OF (cartesian, parameter, unspecified); END_TYPE; TYPE b_spline_curve_form = ENUMERATION OF (polyline_form, circular_arc, elliptic_arc, parabolic_arc, hyperbolic_arc, unspecified); END_TYPE; TYPE b_spline_surface_form = ENUMERATION OF (plane_surf, cylindrical_surf, conical_surf, spherical_surf, toroidal_surf, surf_of_revolution, ruled_surf, generalised_cone, quadric_surf, surf_of_linear_extrusion, unspecified); END_TYPE; TYPE year_number = INTEGER; END_TYPE; TYPE date_time_select = SELECT (date, local_time, date_and_time); END_TYPE; TYPE person_organization_select = SELECT (person, organization, person_and_organization); END_TYPE; TYPE day_in_month_number = INTEGER; END_TYPE; TYPE month_in_year_number = INTEGER; WHERE WR1: { 1 <= SELF <= 12 }; END_TYPE; TYPE hour_in_day = INTEGER; WHERE WR1: { 0 <= SELF < 24 }; END_TYPE; TYPE minute_in_hour = INTEGER; WHERE WR1: { 0 <= SELF <= 59 }; END_TYPE; TYPE second_in_minute = REAL; WHERE WR1: { 0 <= SELF < 60 }; END_TYPE; TYPE ahead_or_behind = ENUMERATION OF (ahead, behind); END_TYPE; TYPE SOURCE_ITEM = SELECT ( IDENTIFIER); END_TYPE; TYPE characterized_definition = SELECT (characterized_object, characterized_product_definition, shape_definition); END_TYPE; TYPE characterized_material_property = SELECT (material_property_representation, product_material_composition_relationship); END_TYPE; TYPE unit = SELECT (named_unit, derived_unit); END_TYPE; TYPE si_prefix = ENUMERATION OF (exa, peta, tera, giga, mega, kilo, hecto, deca, deci, centi, milli, micro, nano, pico, femto, atto); END_TYPE; TYPE si_unit_name = ENUMERATION OF (metre, gram, second, ampere, kelvin, mole, candela, radian, steradian, hertz, newton, pascal, joule, watt, coulomb, volt, farad, ohm, siemens, weber, tesla, henry, degree_Celsius, lumen, lux, becquerel, gray, sievert); END_TYPE; TYPE positive_ratio_measure = ratio_measure; WHERE WR1: SELF > 0; END_TYPE; TYPE ratio_measure = REAL; END_TYPE; TYPE curve_font_or_scaled_curve_font_select = SELECT (curve_style_font_select, curve_style_font_and_scaling); END_TYPE; TYPE SIZE_SELECT = SELECT ( POSITIVE_LENGTH_MEASURE, MEASURE_WITH_UNIT, DESCRIPTIVE_MEASURE); END_TYPE; TYPE curve_style_font_select = SELECT (curve_style_font, pre_defined_curve_font, externally_defined_curve_font); END_TYPE; TYPE squared_or_rounded = ENUMERATION OF (squared, rounded); END_TYPE; TYPE FILL_STYLE_SELECT = SELECT ( FILL_AREA_STYLE_COLOUR, EXTERNALLY_DEFINED_TILE_STYLE, FILL_AREA_STYLE_TILES, EXTERNALLY_DEFINED_HATCH_STYLE, FILL_AREA_STYLE_HATCHING); END_TYPE; TYPE curve_or_annotation_curve_occurrence = SELECT (curve, annotation_curve_occurrence); END_TYPE; TYPE FILL_AREA_STYLE_TILE_SHAPE_SELECT = SELECT ( FILL_AREA_STYLE_TILE_CURVE_WITH_STYLE, FILL_AREA_STYLE_TILE_COLOURED_REGION, FILL_AREA_STYLE_TILE_SYMBOL_WITH_STYLE, EXTERNALLY_DEFINED_TILE); END_TYPE; TYPE PRESENTATION_STYLE_SELECT = SELECT ( CURVE_STYLE, FILL_AREA_STYLE, TEXT_STYLE); END_TYPE; TYPE STYLE_CONTEXT_SELECT = SELECT ( GROUP, REPRESENTATION, REPRESENTATION_ITEM); END_TYPE; TYPE character_style_select = SELECT (character_glyph_style_stroke, character_glyph_style_outline, text_style_for_defined_font); END_TYPE; TYPE text_alignment = label; END_TYPE; TYPE presentable_text = STRING; END_TYPE; TYPE text_path = ENUMERATION OF (left, right, up, down); END_TYPE; TYPE FONT_SELECT = SELECT ( EXTERNALLY_DEFINED_TEXT_FONT); END_TYPE; TYPE source = ENUMERATION OF (made, bought, not_known); END_TYPE; TYPE value_qualifier = SELECT (precision_qualifier, type_qualifier, uncertainty_qualifier); END_TYPE; TYPE transformation = SELECT (item_defined_transformation, functionally_defined_transformation); END_TYPE; TYPE angle_relator = ENUMERATION OF (equal, large, small); END_TYPE; TYPE dimensional_characteristic = SELECT (dimensional_location, dimensional_size); END_TYPE; TYPE limit_condition = ENUMERATION OF (maximum_material_condition, least_material_condition, regardless_of_feature_size); END_TYPE; TYPE TOLERANCE_METHOD_DEFINITION = SELECT ( TOLERANCE_VALUE); END_TYPE; TYPE box_characteristic_select = SELECT (box_height, box_width, box_slant_angle, box_rotate_angle); END_TYPE; TYPE supported_item = SELECT (action_directive, action, action_method); END_TYPE; TYPE wireframe_model = SELECT (shell_based_wireframe_model, edge_based_wireframe_model); END_TYPE; TYPE surface_boundary = SELECT (boundary_curve, degenerate_pcurve); END_TYPE; TYPE SURFACE_MODEL = SELECT ( SHELL_BASED_SURFACE_MODEL); END_TYPE; TYPE CURVE_OR_RENDER = SELECT ( CURVE_STYLE); END_TYPE; TYPE INVISIBLE_ITEM = SELECT ( STYLED_ITEM, REPRESENTATION); END_TYPE; TYPE TEXT_OR_CHARACTER = SELECT ( ANNOTATION_TEXT, ANNOTATION_TEXT_CHARACTER, TEXT_LITERAL); END_TYPE; TYPE DEFINED_SYMBOL_SELECT = SELECT ( EXTERNALLY_DEFINED_SYMBOL); END_TYPE; TYPE layered_item = SELECT (presentation_representation, representation_item); END_TYPE; TYPE PRESENTATION_REPRESENTATION_SELECT = SELECT ( PRESENTATION_REPRESENTATION); END_TYPE; TYPE shape_definition = SELECT (product_definition_shape, shape_aspect, shape_aspect_relationship); END_TYPE; TYPE tolerance_select =SELECT (geometric_tolerance, plus_minus_tolerance); END_TYPE; ENTITY add_design_object_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF managed_design_object; WHERE WR1: SIZEOF(QUERY(it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(it)) AND (it.name = 'design object addition'))) = 1; END_ENTITY; -- add_design_object_assignment ENTITY add_design_object_request_assignment SUBTYPE OF (action_request_assignment); items : SET [1:?] OF managed_design_object; WHERE WR1: SIZEOF(QUERY(it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(it)) AND (it.name = 'design object addition'))) = 1; END_ENTITY; -- add_design_object_request_assignment ENTITY analytical_model SUBTYPE OF (representation); UNIQUE UR1: SELF\representation.name; WHERE WR1: SIZEOF (USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'APPLIED_DOCUMENT_REFERENCE.ITEMS')) = 2; WR2: SIZEOF (QUERY (dr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'APPLIED_DOCUMENT_REFERENCE.ITEMS') | dr.assigned_document.kind.product_data_type = 'language reference manual')) = 1; WR3: SIZEOF (QUERY (it <* SELF.items | NOT ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MODEL_PARAMETER' IN TYPEOF (it)))) = 0; WR4: SIZEOF (QUERY (rr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | (rr.name = 'access mechanism') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ANALYTICAL_MODEL_PORT' IN TYPEOF (rr.rep_2)))) >= 1; END_ENTITY; -- analytical_model ENTITY analytical_model_make_from_relationship SUBTYPE OF (representation, representation_relationship); UNIQUE UR1: SELF\representation_relationship.rep_1, SELF\representation_relationship.rep_2; WHERE WR1: SIZEOF (['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ANALYTICAL_MODEL'] * TYPEOF (SELF.rep_1)) = 1; WR2: SIZEOF (['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ANALYTICAL_MODEL'] * TYPEOF (SELF.rep_2)) = 1; WR3: SIZEOF( QUERY(rr <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_1') |NOT( ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MAKE_FROM_MODEL_PORT_RELATIONSHIP' IN TYPEOF(rr.rep_2))))) = 0; WR4: SIZEOF( QUERY(rr <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_1') |NOT( (rr.name = 'associated make from') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MAKE_FROM_MODEL_PORT_RELATIONSHIP' IN TYPEOF(rr.rep_2))))) = 0; WR5: SIZEOF (['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ANALYTICAL_MODEL'] * TYPEOF (SELF)) = 0; WR6: SIZEOF(TYPEOF(SELF) - (TYPEOF(SELF\representation || SELF\representation_relationship || SELF\analytical_model_make_from_relationship))) = 0; END_ENTITY; -- analytical_model_make_from_relationship ENTITY analytical_model_port SUBTYPE OF (representation); WHERE WR1: SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND (it.name = 'distributed property') AND (it\descriptive_representation_item.description IN ['true', 'false']))) = 1; WR2: SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND (it.name = 'nominal signal flow direction') AND (it\descriptive_representation_item.description IN ['input direction', 'output direction', 'bidirectional', 'unknown direction', 'not applicable']))) <= 1; WR3: SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND (it.name = 'port type') AND (it\descriptive_representation_item.description IN ['string property type', 'logical property type', 'physical property type', 'boolean property type']))) = 1; WR4: SIZEOF (QUERY (am <* QUERY (rr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_2') | rr.name = 'access mechanism') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ANALYTICAL_MODEL' IN TYPEOF (am.rep_1))) = 1; WR5: SIZEOF (QUERY (aga <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'APPLIED_GROUP_ASSIGNMENT.ITEMS') | aga.assigned_group\group.name IN ['scalar port', 'digital scalar port', 'vector port', 'digital vector port', 'digital analytical model port'])) <= 1; WR6: (NOT (SIZEOF (QUERY (aga <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'APPLIED_GROUP_ASSIGNMENT.ITEMS') | aga.assigned_group\group.name IN ['vector port', 'digital vector port'])) = 1)) OR (SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND (it.name = 'size') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COUNT_MEASURE' IN TYPEOF (it\measure_with_unit.value_component)) AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CONTEXT_DEPENDENT_UNIT' IN TYPEOF (it\measure_with_unit.unit_component)))) = 1); WR7: (NOT (SIZEOF (QUERY (aga <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'APPLIED_GROUP_ASSIGNMENT.ITEMS') | aga.assigned_group\group.name IN ['digital scalar port', 'digital vector port', 'digital analytical model port'])) = 1)) OR (SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND (it.name = 'nominal signal flow direction') AND (it\descriptive_representation_item.description IN ['input direction', 'output direction', 'bidirectional', 'unknown direction']))) = 1); END_ENTITY; -- analytical_model_port ENTITY analytical_representation SUBTYPE OF (representation); UNIQUE UR1: SELF\representation.name; WHERE WR1: SIZEOF (QUERY (rr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_1') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PARAMETER_ASSIGNMENT_REPRESENTATION' IN TYPEOF (rr.rep_2))) >= 1; WR2: SIZEOF (QUERY (rr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION_RELATIONSHIP.REP_2') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ANALYTICAL_MODEL' IN TYPEOF (rr.rep_1))) = 1; END_ENTITY; -- analytical_representation ENTITY angular_dimension_with_orientation SUBTYPE OF (dimensional_location); WHERE wr1: SELF\shape_aspect_relationship.description = 'angular'; END_ENTITY; -- angular_dimension_with_orientation ENTITY angularity_tolerance SUBTYPE OF (geometric_tolerance_with_specified_datum_system); WHERE WR1: SELF\geometric_tolerance.name = 'angularity'; END_ENTITY; -- angularity_tolerance ENTITY applied_action_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF action_assigned_item; END_ENTITY; -- applied_action_assignment ENTITY applied_approval_assignment SUBTYPE OF (approval_assignment); items : SET [1:?] OF approval_assigned_item; END_ENTITY; -- applied_approval_assignment ENTITY applied_certification_assignment SUBTYPE OF (certification_assignment); items : SET [1:?] OF certification_assigned_item; END_ENTITY; -- applied_certification_assignment ENTITY applied_classification_assignment SUBTYPE OF (group_assignment); items : SET [1:?] OF classification_assigned_item; END_ENTITY; -- applied_classification_assignment ENTITY applied_contract_assignment SUBTYPE OF (contract_assignment); items : SET [1:?] OF contract_assigned_item; END_ENTITY; -- applied_contract_assignment ENTITY applied_date_and_time_assignment SUBTYPE OF (date_and_time_assignment); items : SET [1:?] OF date_and_time_assigned_item; WHERE WR1: applied_date_time_correlation (SELF,'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN'); WR2: (NOT (SELF.role.name = 'participant date and time')) OR (SIZEOF (QUERY (ra <* QUERY (it <* SELF.items | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'RULE_ACTION' IN TYPEOF (it)) | NOT (SIZEOF (USEDIN (ra, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT.ITEMS')) = 1))) = 0); END_ENTITY; -- applied_date_and_time_assignment ENTITY applied_date_assignment SUBTYPE OF (date_assignment); items : SET [1:?] OF date_assigned_item; WHERE WR1: applied_date_correlation (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN'); END_ENTITY; -- applied_date_assignment ENTITY applied_document_reference SUBTYPE OF (document_reference); items : SET [1:?] OF document_assigned_item; END_ENTITY; -- applied_document_reference ENTITY applied_group_assignment SUBTYPE OF (group_assignment); items : SET [1:?] OF group_assigned_item; END_ENTITY; -- applied_group_assignment ENTITY applied_organization_assignment SUBTYPE OF (organization_assignment); items : SET [1:?] OF organization_assigned_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_assigned_item; END_ENTITY; -- applied_person_and_organization_assignment ENTITY applied_person_assignment SUBTYPE OF (person_assignment); items : SET [1:?] OF person_assigned_item; END_ENTITY; -- applied_person_assignment ENTITY applied_security_classification_assignment SUBTYPE OF (security_classification_assignment); items : SET [1:?] OF security_classification_assigned_item; END_ENTITY; -- applied_security_classification_assignment ENTITY array_placement_group_component_definition SUPERTYPE OF (ONEOF(linear_array_placement_group_component_definition, rectangular_array_placement_group_component_definition)) SUBTYPE OF (assembly_group_component_definition); END_ENTITY; -- array_placement_group_component_definition ENTITY array_placement_group_component_shape_aspect SUPERTYPE OF (ONEOF(linear_array_placement_group_component_shape_aspect, rectangular_array_placement_group_component_shape_aspect)) SUBTYPE OF (assembly_group_component_shape_aspect); END_ENTITY; -- array_placement_group_component_shape_aspect ENTITY assembly_bond_definition SUBTYPE OF (shape_aspect); UNIQUE UR1: SELF\shape_aspect.name; WHERE WR1: SIZEOF (USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MATERIAL_DESIGNATION.DEFINITIONS')) = 1; WR2: SIZEOF (QUERY (aga <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'APPLIED_GROUP_ASSIGNMENT.ITEMS') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'BOND_CATEGORY' IN TYPEOF (aga.assigned_group))) = 1; WR3: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'bonded feature 1' )) = 1; WR4: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'bonded feature 2' )) = 1; END_ENTITY; -- assembly_bond_definition ENTITY assembly_definition SUBTYPE OF (physical_unit); WHERE WR1: SIZEOF (QUERY (prpc <* USEDIN (SELF.formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc\product_category.name = 'assembly module')) >= 1; WR2: (NOT (SELF.frame_of_reference.name = 'physical design')) OR (SIZEOF (QUERY (du <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION') | pdr\product_definition_relationship.name = 'design usage') | (SIZEOF (['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ASSEMBLY_DEFINITION', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'EXTERNALLY_DEFINED_ASSEMBLY_DEFINITION', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LIBRARY_DEFINED_ASSEMBLY_DEFINITION'] * TYPEOF (du.relating_product_definition)) = 1) AND (du.relating_product_definition.frame_of_reference.name = 'physical design usage') AND (SIZEOF (QUERY (prpc <* USEDIN (du.relating_product_definition.formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.' + 'PRODUCTS') | prpc\product_category.name = 'assembly module')) >= 1))) = 1); WR3: (NOT (SELF.frame_of_reference.name = 'physical design usage')) OR (SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (sa <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT.OF_SHAPE') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ASSEMBLY_MODULE_TERMINAL' IN TYPEOF (sa)) AND (sa\shape_aspect.description = 'pca terminal'))) >= 2))) = 0); END_ENTITY; -- assembly_definition ENTITY assembly_group_component_definition SUBTYPE OF (component_definition); WHERE WR1: (SIZEOF (QUERY (gc <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | pdr\product_definition_relationship.name = 'group component') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_DEFINITION' IN TYPEOF (gc.related_product_definition)))) >= 1); END_ENTITY; -- assembly_group_component_definition ENTITY assembly_group_component_shape_aspect SUBTYPE OF (component_shape_aspect); WHERE WR1: (SIZEOF (QUERY (gc <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'group component') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_SHAPE_ASPECT' IN TYPEOF (gc.related_shape_aspect)))) >= 1); END_ENTITY; -- assembly_group_component_shape_aspect ENTITY assembly_joint SUBTYPE OF (shape_aspect_relationship, shape_aspect); WHERE WR1: (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_TERMINAL' IN TYPEOF (SELF.relating_shape_aspect)) AND (SELF.relating_shape_aspect\shape_aspect.description IN ['assembly module component terminal', 'bare die component terminal', 'interconnect component join terminal', 'interconnect module component terminal', 'package terminal occurrence', 'packaged component join terminal'])) OR ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_INTERFACE_TERMINAL' IN TYPEOF (SELF.relating_shape_aspect)); WR2: (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_TERMINAL' IN TYPEOF (SELF.related_shape_aspect)) AND (SELF.related_shape_aspect\shape_aspect.description IN ['assembly module component terminal', 'bare die component terminal', 'interconnect component join terminal', 'interconnect module component terminal', 'package terminal occurrence', 'packaged component join terminal'])) OR ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_INTERFACE_TERMINAL' IN TYPEOF (SELF.related_shape_aspect)); WR3: (NOT (SELF\shape_aspect_relationship.name = 'assembled with bonding')) OR (SIZEOF (QUERY (pdr <* USEDIN (SELF.of_shape.definition, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF (pdr))) >= 1); WR4: (NOT (SELF\shape_aspect_relationship.name = 'assembled with bonding')) OR (SIZEOF (QUERY (ddu <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'default definition usage') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ASSEMBLY_BOND_DEFINITION' IN TYPEOF (ddu.relating_shape_aspect))) = 1); WR5: (NOT (SELF\shape_aspect_relationship.name = 'assembled with bonding')) OR (SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF (QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (pdr.used_representation\representation.name = 'bond assembly position') AND (SIZEOF (QUERY (it <* pdr.used_representation.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MAPPED_ITEM' IN TYPEOF (it)) AND (it\representation_item.name = 'assembly position'))) = 1))) = 1)) <= 1); WR6: (NOT (SELF\shape_aspect_relationship.name = 'assembled with fasteners')) OR (SIZEOF (QUERY (pdr <* USEDIN (SELF.of_shape.definition, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ASSEMBLY_COMPONENT_USAGE' IN TYPEOF (pdr))) >= 1); END_ENTITY; -- assembly_joint ENTITY assembly_module_terminal SUBTYPE OF (shape_aspect); WHERE WR1: SIZEOF (QUERY (prpc <* USEDIN (SELF.of_shape.definition\product_definition.formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc\product_category.name = 'assembly module')) >= 1; WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation))) >= 1))) = 0; WR3: SIZEOF (QUERY (mct <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'member connected terminal') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PART_CONNECTED_TERMINALS_DEFINITION' IN TYPEOF (mct.relating_shape_aspect))) <= 1; WR4: (NOT (SELF\shape_aspect.description = 'pca terminal')) OR ((SIZEOF(TYPEOF (SELF.of_shape.definition) * ['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ASSEMBLY_DEFINITION', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'EXTERNALLY_DEFINED_ASSEMBLY_DEFINITION', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LIBRARY_DEFINED_ASSEMBLY_DEFINITION']) >=1) AND (SELF.of_shape.definition\product_definition. frame_of_reference.name = 'physical design usage')); WR5: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar.related_shape_aspect\shape_aspect.description = 'connection zone')) = 1; WR6: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar.related_shape_aspect\shape_aspect.description = 'interface terminal')) <= 1; END_ENTITY; -- assembly_module_terminal ENTITY assembly_module_usage_view_connector_relationship SUBTYPE OF (mapped_item); WHERE WR1: 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF (SELF\mapped_item.mapping_target); wr2: SELF\mapped_item.mapping_source.mapped_representation.name = '3d bound volume shape'; wr3: SIZEOF (QUERY (pdr <* USEDIN ( SELF\mapped_item.mapping_source.mapped_representation, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | (SIZEOF (['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PACKAGED_CONNECTOR', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'EXTERNALLY_DEFINED_PACKAGED_CONNECTOR', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LIBRARY_DEFINED_PACKAGED_CONNECTOR'] * TYPEOF (pdr.definition.definition) ) = 1) )) = 1; wr4: SIZEOF (QUERY (r <* USEDIN ( SELF\representation_item, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION.ITEMS') | SIZEOF (QUERY (pdr <* USEDIN (r, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | (pdr.definition.definition. frame_of_reference\application_context_element.name = 'physical design usage') AND (SIZEOF(QUERY (pc <* USEDIN (pdr.definition.definition.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | (pc\product_category.name = 'assembly module'))) = 1 ))) = 1 )) = 1; wr5: SIZEOF (QUERY (sr <* USEDIN ( SELF\representation_item, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION.ITEMS') | (sr\representation. context_of_items\geometric_representation_context. coordinate_space_dimension = 3) )) = SIZEOF (QUERY (sr <* USEDIN ( SELF\representation_item, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION.ITEMS') | (sr <> [] ) )); END_ENTITY; -- assembly_module_usage_view_connector_relationship ENTITY auxiliary_characteristic_dimension_representation SUBTYPE OF (dimensional_characteristic_representation); END_ENTITY; -- auxiliary_characteristic_dimension_representation ENTITY bare_die SUBTYPE OF (physical_unit); WHERE WR1: SIZEOF (QUERY (ifdu <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION') | pdr\property_definition_relationship.name = 'implemented function') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'FUNCTIONAL_UNIT' IN TYPEOF (ifdu.relating_product_definition)) AND (ifdu.relating_product_definition.frame_of_reference.name = 'functional design usage'))) = 1; WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF (QUERY (dut <* QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION') | pdr\property_definition_relationship.name = 'device unit technology') | dut.relating_property_definition.name = 'unit technology')) = 1)) = 1; WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (sa <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT.OF_SHAPE') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'BARE_DIE_TERMINAL' IN TYPEOF (sa))) >= 2))) = 0; END_ENTITY; -- bare_die ENTITY bare_die_terminal SUBTYPE OF (minimally_defined_bare_die_terminal); WHERE WR1: 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'BARE_DIE' IN TYPEOF (SELF.of_shape.definition); WR2: SIZEOF (QUERY (eca <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'external connection area') | eca.related_shape_aspect\shape_aspect.description = 'connection zone')) = 1; WR3: SIZEOF (USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MATERIAL_DESIGNATION.DEFINITIONS')) = 1; END_ENTITY; -- bare_die_terminal ENTITY bond_category SUBTYPE OF (group, externally_defined_item); WHERE WR1: SIZEOF (USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'APPLIED_DOCUMENT_REFERENCE.ITEMS')) = 1; END_ENTITY; -- bond_category ENTITY bus_structural_definition SUBTYPE OF (product_definition); WHERE WR1: SIZEOF (QUERY (bce <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | pdr\product_definition_relationship.name = 'bus composition element') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'NETWORK_NODE_DEFINITION' IN TYPEOF (bce.related_product_definition)) AND (bce.related_product_definition.frame_of_reference.name = 'functional network design')) OR ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'BUS_STRUCTURAL_DEFINITION' IN TYPEOF (bce.related_product_definition)))) >= 1; WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF (QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | pdr\property_definition_relationship.name = 'functional unit network terminal definition bus assignment')) <= 1)) <= 1; END_ENTITY; -- bus_structural_definition ENTITY change SUBTYPE OF (action_assignment); items : SET [1:?] OF work_item; WHERE WR1: 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DIRECTED_ACTION' IN TYPEOF (SELF.assigned_action); WR2: unique_version_change_order (SELF.assigned_action, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN'); END_ENTITY; -- change ENTITY change_from_design_object_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF managed_design_object; WHERE WR1: SIZEOF(QUERY(aa <* USEDIN(SELF\action_assignment.assigned_action, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ACTION_ASSIGNMENT.ASSIGNED_ACTION') |'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CHANGE_TO_DESIGN_OBJECT_ASSIGNMENT' IN TYPEOF(aa))) >= 1; END_ENTITY; -- change_from_design_object_assignment ENTITY change_from_design_object_request_assignment SUBTYPE OF (action_request_assignment); items : SET [1:?] OF managed_design_object; WHERE WR1: SIZEOF(QUERY(aa <* USEDIN(SELF\action_request_assignment.assigned_action_request, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ACTION_REQUEST_ASSIGNMENT.ASSIGNED_ACTION_REQUEST') |'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CHANGE_TO_DESIGN_OBJECT_REQUEST_ASSIGNMENT' IN TYPEOF(aa))) >= 1; END_ENTITY; -- change_from_design_object_request_assignment ENTITY change_request SUBTYPE OF (action_request_assignment); items : SET [1:?] OF change_request_item; END_ENTITY; -- change_request ENTITY change_to_design_object_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF managed_design_object; WHERE WR1: SIZEOF(QUERY(aa <* USEDIN(SELF\action_assignment.assigned_action, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ACTION_ASSIGNMENT.ASSIGNED_ACTION') |'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CHANGE_FROM_DESIGN_OBJECT_ASSIGNMENT' IN TYPEOF(aa))) >= 1; WR2: SIZEOF(QUERY ( pdr <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(pdr)) AND (pdr\product_definition_relationship.name = 'design object change'))) = 1; END_ENTITY; -- change_to_design_object_assignment ENTITY change_to_design_object_request_assignment SUBTYPE OF (action_request_assignment); items : SET [1:?] OF managed_design_object; WHERE WR1: SIZEOF(QUERY(aa <* USEDIN(SELF\action_request_assignment.assigned_action_request, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ACTION_REQUEST_ASSIGNMENT.ASSIGNED_ACTION_REQUEST') |'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CHANGE_FROM_DESIGN_OBJECT_REQUEST_ASSIGNMENT' IN TYPEOF(aa))) >= 1; WR2: SIZEOF(QUERY ( pdr <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(pdr)) AND (pdr\product_definition_relationship.name = 'design object change'))) = 1; END_ENTITY; -- change_to_design_object_request_assignment ENTITY characteristic_type SUBTYPE OF (group); WHERE WR1: SELF\group.name IN ['string property','logical property', '','boolean property']; END_ENTITY; -- characteristic_type ENTITY characterized_product_category SUBTYPE OF (characterized_object,product_category); UNIQUE UR1: SELF\product_category.name; WHERE WR1: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | (pd\property_definition.description = 'product category values') AND (SIZEOF (QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PARAMETER_ASSIGNMENT_REPRESENTATION' IN TYPEOF (pdr.used_representation)))) >= 1 ))) = 1; WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | ((pd\property_definition.description = 'product category parameters') AND (SIZEOF (QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (SIZEOF (QUERY (ri <* pdr.used_representation.items | (NOT (SIZEOF (TYPEOF (ri) * ['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MODEL_PARAMETER']) =1)) )) =0))) >= 1 )))) = 1; WR3: SELF\characterized_object.name = SELF\product_category.name; END_ENTITY; -- characterized_product_category ENTITY circular_runout_tolerance SUBTYPE OF (geometric_tolerance_with_specified_datum_system); WHERE WR1: SELF\geometric_tolerance.name = 'circular runout'; WR2: NOT('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MODIFIED_GEOMETRIC_TOLERANCE' IN TYPEOF(SELF)); WR3: SIZEOF (QUERY (pdr <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_RELATIONSHIP.RELATING_PROPERTY_DEFINITION') | (pdr\property_definition_relationship.name = 'referenced datum system definition') AND (pdr.related_property_definition\property_definition.description = 'datum system property without material conditions'))) = 1; END_ENTITY; -- circular_runout_tolerance ENTITY component_definition SUPERTYPE OF (ONEOF (printed_component, packaged_component) ANDOR (thermal_component)) SUBTYPE OF (product_definition); WHERE WR1: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (sr_pdr <* QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) | sr_pdr.used_representation\representation.name = 'planar projected shape')) <= 1))) = 0; WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (sr_pdr <* QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) | sr_pdr.used_representation\representation.name = '3d bound volume shape')) <= 1))) = 0; WR3: (NOT (SELF\product_definition.description = 'bare die component')) OR (SIZEOF (QUERY (ip <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr\product_definition_relationship.name = 'instantiated part') | (SIZEOF (['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'BARE_DIE', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'EXTERNALLY_DEFINED_BARE_DIE', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LIBRARY_DEFINED_BARE_DIE'] * TYPEOF (ip.relating_product_definition)) = 1) AND (ip.relating_product_definition.frame_of_reference.name = 'physical design usage'))) = 1); WR4: (NOT ((SELF.frame_of_reference.name = 'physical occurrence') AND (SIZEOF ( QUERY (pc1 <* USEDIN (SELF.formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | pc1\product_category.name = 'assembly module')) >= 1))) OR (SIZEOF (QUERY (ip <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr\product_definition_relationship.name = 'instantiated part') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_UNIT' IN TYPEOF (ip.relating_product_definition)) AND (ip.relating_product_definition.frame_of_reference.name = 'physical design usage') AND (SIZEOF ( QUERY (pc2 <* USEDIN (ip.relating_product_definition. formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | pc2\product_category.name = 'assembly module')) >= 1))) = 1); WR5: (NOT ((SELF.frame_of_reference.name = 'physical occurrence') AND (SIZEOF (QUERY (prpc <* USEDIN (SELF.formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc\product_category.name = 'assembly module')) >= 1))) OR (SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF (QUERY (sa <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT.OF_SHAPE') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_TERMINAL' IN TYPEOF (sa)) AND (sa\shape_aspect.description = 'assembly module component terminal'))) >= 2)) >= 1); WR6: (NOT ((SELF.frame_of_reference.name = 'physical occurrence') AND (SIZEOF ( QUERY (pc1 <* USEDIN (SELF.formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | pc1\product_category.name = 'interconnect module')) >= 1))) OR (SIZEOF (QUERY (ip <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr\product_definition_relationship.name = 'instantiated part') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_UNIT' IN TYPEOF (ip.relating_product_definition)) AND (ip.relating_product_definition.frame_of_reference.name = 'physical design usage') AND (SIZEOF ( QUERY (pc2 <* USEDIN (ip.relating_product_definition. formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | pc2\product_category.name = 'interconnect module')) >= 1))) = 1); WR7: (NOT ((SELF.frame_of_reference.name = 'physical occurrence') AND (SIZEOF (QUERY (prpc <* USEDIN (SELF.formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc\product_category.name = 'interconnect module')) >= 1))) OR (SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF (QUERY (sa <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT.OF_SHAPE') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_TERMINAL' IN TYPEOF (sa)) AND (sa\shape_aspect.description = 'interconnect module component terminal'))) >= 2)) >= 1); WR8: (NOT (SELF\product_definition.description = 'mating connector')) OR ((('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS' IN TYPEOF (SELF)) AND (SIZEOF (QUERY (doc <* SELF\product_definition_with_associated_documents.documentation_ids | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'EE_SPECIFICATION' IN TYPEOF (doc))) = 1)) OR (SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (pt_occ <* QUERY (sa <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT.OF_SHAPE') | sa\shape_aspect.description = 'part template occurrence') | SIZEOF (QUERY (it <* QUERY (sar <* USEDIN (pt_occ, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated template') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PART_TEMPLATE_DEFINITION' IN TYPEOF (it.relating_shape_aspect)) AND (it.relating_shape_aspect\shape_aspect.description = 'printed connector template'))) = 1)) = 1))) = 0) OR (SIZEOF (QUERY (ip <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr\product_definition_relationship.name = 'instantiated part') | (SIZEOF (['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PACKAGED_PART', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'EXTERNALLY_DEFINED_PACKAGED_PART', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LIBRARY_DEFINED_PACKAGED_PART'] * TYPEOF (ip.relating_product_definition)) = 1) AND (ip.relating_product_definition\product_definition.description = 'packaged connector'))) = 1)); WR9: (NOT (SELF\product_definition.description = 'mating connector')) OR (SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF (QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | pdr.used_representation\representation.name = 'mating connector placement')) = 1)) = 1); WR10: (NOT (SELF\product_definition.description = 'mating connector')) OR ((SIZEOF (QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF(pdr))) = 0) AND (SIZEOF (QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF(pdr))) = 0)); WR11: SIZEOF(QUERY(pdr <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | ((pdr\product_definition_relationship.name = 'instantiated part') AND (NOT(SELF.formation :=: pdr.relating_product_definition.formation))))) = 0; WR12: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (sr_pdr <* QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) | (sr_pdr.used_representation\representation.name = 'part template non planar 2d shape') OR (sr_pdr.used_representation\representation.name = 'non planar 2d shape') OR (sr_pdr.used_representation\representation.name = 'open shell based surface'))) <= 1))) = 0; END_ENTITY; -- component_definition ENTITY component_functional_terminal SUBTYPE OF (shape_aspect); WHERE WR1: 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_FUNCTIONAL_UNIT' IN TYPEOF (SELF.of_shape.definition); WR2: SIZEOF (QUERY (it <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated terminal') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'FUNCTIONAL_UNIT_TERMINAL_DEFINITION' IN TYPEOF (it.relating_shape_aspect))) = 1; WR3: SIZEOF (QUERY (futba <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION') | pdr\property_definition_relationship.name = 'functional unit terminal bus assignment') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'BUS_STRUCTURAL_DEFINITION' IN TYPEOF (futba.relating_property_definition.definition))) <= 1; WR4: SIZEOF (QUERY (futna <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_RELATIONSHIP.RELATED_PROPERTY_DEFINITION') | pdr\property_definition_relationship.name = 'functional unit terminal node assignment') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'NETWORK_NODE_DEFINITION' IN TYPEOF (futna.relating_property_definition.definition))) <= 1; END_ENTITY; -- component_functional_terminal ENTITY component_functional_unit SUBTYPE OF (product_definition); WHERE WR1: SELF.frame_of_reference.name = 'functional occurrence'; WR2: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF (QUERY (sa <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT.OF_SHAPE') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_FUNCTIONAL_TERMINAL' IN TYPEOF (sa))) >= 1)) >= 1; WR3: SIZEOF (QUERY (ifu <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr\product_definition_relationship.name = 'instantiated functional unit') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'FUNCTIONAL_UNIT' IN TYPEOF (ifu.relating_product_definition))) = 1; WR4: SIZEOF (QUERY (nc <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr\product_definition_relationship.name = 'network composition') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'FUNCTIONAL_UNIT' IN TYPEOF (nc.relating_product_definition)) AND (nc.relating_product_definition.frame_of_reference.name = 'functional network design'))) = 1; END_ENTITY; -- component_functional_unit ENTITY component_interface_terminal SUBTYPE OF (shape_aspect); WHERE WR1: SELF\shape_aspect.description IN [ 'interconnect component interface terminal', 'packaged connector component interface terminal']; WR2: 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_DEFINITION' IN TYPEOF (SELF.of_shape.definition); WR3: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature')) <= 1; WR4: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'design usage')) <= 1; WR5: (NOT (SELF\shape_aspect.description = 'packaged connector component interface terminal')) OR ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'INTERFACE_COMPONENT_DEFINITION' IN TYPEOF (SELF.of_shape.definition)); WR6: (NOT (SELF\shape_aspect.description = 'packaged connector component interface terminal')) OR (SELF.of_shape.definition\product_definition. frame_of_reference.name = 'physical occurrence'); WR7: (NOT (SELF\shape_aspect.description = 'interconnect component interface terminal')) OR ((SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (sar.related_shape_aspect\shape_aspect.description = 'connection zone'))) = 1) AND NOT(SELF.of_shape.definition\product_definition.description IN ['assembly module component', 'bare die component', 'interconnect module component', 'laminate component', 'packaged component'])); WR8: (NOT (SELF\shape_aspect.description = 'packaged connector component interface terminal')) OR (SELF.product_definitional); WR9: (NOT (SELF\shape_aspect.description = 'packaged connector component interface terminal')) OR (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PACKAGED_COMPONENT' IN TYPEOF (SELF.of_shape.definition)) AND (SELF.of_shape.definition\product_definition.description = 'packaged connector component') AND (SELF.of_shape.definition\product_definition. frame_of_reference.name = 'physical occurrence')); WR10: (NOT (SELF\shape_aspect.description = 'packaged connector component interface terminal')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PACKAGED_PART_TERMINAL' IN TYPEOF (i_f.relating_shape_aspect)) AND (i_f.relating_shape_aspect\shape_aspect.description = 'interface terminal'))) = 1); END_ENTITY; -- component_interface_terminal ENTITY component_location SUBTYPE OF (representation); WHERE WR1: SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND (it.name = 'placement fixed') AND ((it\descriptive_representation_item.description = 'true') OR (it\descriptive_representation_item.description = 'false')))) = 1; --tt changed to require 1 dri. WR2: SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF (it)))) = 1; WR3: (NOT (SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 2)) OR (SIZEOF (QUERY (it <* SELF.items | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CARTESIAN_TRANSFORMATION_OPERATOR_2D' IN TYPEOF (it))) = 1); WR4: (NOT (SELF.context_of_items\geometric_representation_context. coordinate_space_dimension = 3)) OR (SIZEOF (QUERY (it <* SELF.items | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF (it))) = 1); --tt add wr5 WR5: SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MAPPED_ITEM' IN TYPEOF (it)))) = 1; --tt add wr6 WR6: NOT (SIZEOF (QUERY (it <* SELF.items | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CARTESIAN_TRANSFORMATION_OPERATOR_2D' IN TYPEOF (it))) = 1) OR (SIZEOF (QUERY (cto2d <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CARTESIAN_TRANSFORMATION_OPERATOR_2D' IN TYPEOF (cto2d)) AND (SIZEOF (QUERY (mi <* USEDIN (cto2d, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MAPPED_ITEM.MAPPING_TARGET') | ((mi <> []) AND (SIZEOF (QUERY (cl <* USEDIN (mi, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION.ITEMS') |(cl = SELF))) = 1)))) = 1) )) = 1); --tt add wr7 WR7: NOT (SIZEOF (QUERY (it <* SELF.items | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF (it))) = 1) OR (SIZEOF (QUERY (cto2d <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF (cto2d)) AND (SIZEOF (QUERY (mi <* USEDIN (cto2d, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MAPPED_ITEM.MAPPING_TARGET') | ((mi <> []) AND (SIZEOF (QUERY (cl <* USEDIN (mi, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION.ITEMS') |(cl = SELF))) = 1)))) = 1) )) = 1); --tt add wr8 WR8:NOT((SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2) AND (( SIZEOF (QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | ( (pdr.definition.definition\shape_aspect.description = 'interconnect module component surface feature') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT' IN TYPEOF (pdr.definition.definition)) AND (SIZEOF(QUERY ( sar <* USEDIN (pdr.definition.definition, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.relating_shape_aspect\shape_aspect.description = 'interconnect module primary surface') OR (sar.relating_shape_aspect\shape_aspect.description = 'interconnect module edge surface') OR (sar.relating_shape_aspect\shape_aspect.description = 'interconnect module edge segment surface')))) = 1) ))) = 1))) OR (SIZEOF(QUERY (cto2d <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CARTESIAN_TRANSFORMATION_OPERATOR_2D' IN TYPEOF (cto2d)) AND (cto2d_determinant_test(cto2d,1.0,0.001 )))) = 1); --tt add wr9 WR9:NOT((SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2) AND (( SIZEOF (QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | ( (pdr.definition.definition\shape_aspect.description = 'interconnect module component surface feature') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT' IN TYPEOF (pdr.definition.definition)) AND (SIZEOF(QUERY ( sar <* USEDIN (pdr.definition.definition, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar.relating_shape_aspect\shape_aspect.description = 'interconnect module secondary surface')) = 1) ))) = 1))) OR (SIZEOF(QUERY( cto2d <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CARTESIAN_TRANSFORMATION_OPERATOR_2D' IN TYPEOF (cto2d)) AND (cto2d_determinant_test(cto2d,-1.0,0.001 )))) = 1); --tt IP2:converted to rule WR10: (NOT(is_laminate_component_location(SELF))) OR (SIZEOF(QUERY( pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | pdr.definition\shape_aspect.description = 'interconnect module component surface feature')) = 0); --tt added rule WR11: (NOT(is_laminate_component_location(SELF) AND (SELF.context_of_items\geometric_representation_context.coordinate_space_dimension = 2))) OR (SIZEOF(QUERY (cto2d <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CARTESIAN_TRANSFORMATION_OPERATOR_2D' IN TYPEOF (cto2d)) AND (cto2d_determinant_test(cto2d,1.0,0.001 )))) = 1); --tt added rule WR12: SIZEOF(QUERY( pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | pdr.definition\shape_aspect.description = 'interconnect module component surface feature')) <= 1; END_ENTITY; -- component_location ENTITY component_shape_aspect SUPERTYPE OF (ONEOF (land, inter_stratum_feature) ANDOR (thermal_component_shape_aspect)) SUBTYPE OF (shape_aspect); WHERE WR1: 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_DEFINITION' IN TYPEOF (SELF.of_shape.definition); WR2: (SIZEOF (['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'INTER_STRATUM_FEATURE', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'FIDUCIAL', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ASSEMBLY_GROUP_COMPONENT_SHAPE_ASPECT', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'THERMAL_COMPONENT_SHAPE_ASPECT', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'INTEGRAL_SHIELD', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROBE_ACCESS_AREA', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LAND'] * TYPEOF (SELF)) >= 1) OR (SELF\shape_aspect.description IN ['component feature', 'component termination passage interface terminal', 'land interface terminal', 'part template occurrence', 'non functional land interface terminal', 'printed connector component interface terminal', 'laminate component', 'laminate text component', 'laminate text string component', 'conductive interconnect element with pre defined transitions', 'conductive interconnect element with user defined single transition', 'routed interconnect component', 'special symbol laminate component', 'primary stratum indicator symbol', 'stratum feature template component', 'interconnect module component surface feature']); WR3: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (sr_pdr <* QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) | sr_pdr.used_representation\representation.name = 'planar projected shape')) <= 1))) = 0; WR4: SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF (QUERY (sr_pdr <* QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_REPRESENTATION' IN TYPEOF (pdr.used_representation)) | sr_pdr.used_representation\representation.name = '3d bound volume shape')) <= 1))) = 0; WR5: (NOT (SELF\shape_aspect.description IN ['component feature', 'component termination passage interface terminal', 'land interface terminal', 'non functional land interface terminal', 'printed connector component interface terminal'])) OR (SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'design usage')) <= 1); WR6: (NOT (SELF\shape_aspect.description IN ['laminate text component', 'laminate text string component', 'special symbol laminate component', 'primary stratum indicator symbol', 'stratum feature template component'])) OR (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_DEFINITION' IN TYPEOF (SELF.of_shape.definition)) AND (SIZEOF (QUERY (prpc <* USEDIN (SELF.of_shape.definition\product_definition.formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc\product_category.name = 'interconnect module')) >= 1)); WR7: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature')) <= 1; WR8: (NOT (SELF\shape_aspect.description = 'component termination passage interface terminal')) OR (SIZEOF (QUERY (ac <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'associated component') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PLATED_PASSAGE' IN TYPEOF (ac.relating_shape_aspect)) AND (ac.relating_shape_aspect\shape_aspect.description = 'component termination passage'))) = 1); WR9: (NOT (SELF\shape_aspect.description = 'component termination passage interface terminal')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | i_f.relating_shape_aspect\shape_aspect.description = 'component termination passage template interface terminal')) = 1); WR10: (NOT (SELF\shape_aspect.description = 'laminate text component')) OR (SIZEOF (QUERY (it <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated template') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PART_TEXT_TEMPLATE_DEFINITION' IN TYPEOF (it.relating_shape_aspect)))) = 1); WR11: (NOT (SELF\shape_aspect.description IN ['stratum feature template component'])) OR (SIZEOF (QUERY (sfi <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'stratum feature implementation') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'STRATUM_FEATURE' IN TYPEOF (sfi.relating_shape_aspect)))) = 1); WR12: (NOT (SELF\shape_aspect.description IN ['land interface terminal', 'non functional land interface terminal'])) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LAND_TEMPLATE_TERMINAL' IN TYPEOF (i_f.relating_shape_aspect)) AND (TRUE)))) = 1); WR13: (NOT (SELF\shape_aspect.description = 'land interface terminal')) OR (SIZEOF (QUERY (ac <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'associated component') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LAND' IN TYPEOF (ac.relating_shape_aspect)) AND (TRUE)))) = 1); WR14: (NOT (SELF\shape_aspect.description = 'non functional land interface terminal')) OR (SIZEOF (QUERY (ac <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'associated component') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LAND' IN TYPEOF (ac.relating_shape_aspect)) AND (TRUE)))) = 1); WR15: (NOT (SELF\shape_aspect.description IN ['conductive interconnect element with pre defined transitions', 'conductive interconnect element with ' + 'user defined single transition'])) OR (SIZEOF (QUERY (cc <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'composed conductor') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'STRATUM_FEATURE' IN TYPEOF (cc.related_shape_aspect)))) = 1); WR16: (NOT (SELF\shape_aspect.description IN ['conductive interconnect element with pre defined transitions', 'conductive interconnect element with user ' + 'defined single transition'])) OR (SIZEOF (QUERY (ac <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'associated component') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_TERMINAL' IN TYPEOF (ac.related_shape_aspect)) AND (ac.related_shape_aspect\shape_aspect.description = 'conductive interconnect element terminal')))) = 2); WR17: (NOT (SELF\shape_aspect.description = 'printed connector component interface terminal')) OR (SELF.product_definitional); WR18: (NOT (SELF\shape_aspect.description = 'printed connector component interface terminal')) OR (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRINTED_COMPONENT' IN TYPEOF (SELF.of_shape.definition)) AND (SELF.of_shape.definition\product_definition.description = 'printed connector component')); WR19: (NOT (SELF\shape_aspect.description = 'printed connector component interface terminal')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRINTED_PART_TEMPLATE_TERMINAL' IN TYPEOF (i_f.relating_shape_aspect)) AND (i_f.relating_shape_aspect\shape_aspect.description = 'interface terminal'))) = 1); WR20: (NOT (SELF\shape_aspect.description = 'routed interconnect component')) OR (SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF(USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) >=1 )) = 1); WR21: (NOT (SELF\shape_aspect.description IN ['special symbol laminate component', 'primary stratum indicator symbol'])) OR (SIZEOF (QUERY (it <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated template') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PART_TEMPLATE_DEFINITION' IN TYPEOF (it.relating_shape_aspect)) AND (it.related_shape_aspect\shape_aspect.description = 'special symbol part template')))) = 1); WR22: (NOT (SELF\shape_aspect.description = 'stratum feature template component')) OR (SIZEOF (QUERY (it <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated template') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PART_TEMPLATE_DEFINITION' IN TYPEOF (it.relating_shape_aspect)) AND (it.relating_shape_aspect\shape_aspect.description = 'stratum feature template')) OR ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LAND_PHYSICAL_TEMPLATE' IN TYPEOF (it.relating_shape_aspect)))) = 1); WR23: (NOT (SELF\shape_aspect.description IN ['laminate text component'])) OR (SIZEOF (QUERY (sfi <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'stratum feature implementation') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'STRATUM_FEATURE' IN TYPEOF (sfi.relating_shape_aspect)))) >= 1); WR24: (NOT (SELF\shape_aspect.description = 'interconnect module component surface feature')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | i_f.relating_shape_aspect\shape_aspect.description IN ['interconnect module secondary surface', 'interconnect module primary surface', 'interconnect module cavity surface', 'interconnect module cutout surface', 'interconnect module edge surface', 'interconnect module edge segment surface'])) = 1); WR25: NOT ((SIZEOF (['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'INTER_STRATUM_FEATURE', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'FIDUCIAL', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ASSEMBLY_GROUP_COMPONENT_SHAPE_ASPECT', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'THERMAL_COMPONENT_SHAPE_ASPECT', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'INTEGRAL_SHIELD', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROBE_ACCESS_AREA', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LAND'] * TYPEOF (SELF)) >= 1) OR (SELF\shape_aspect.description IN [ 'laminate component', 'laminate text component', 'laminate text string component', 'conductive interconnect element with pre defined transitions', 'conductive interconnect element with user defined single transition', 'routed interconnect component', 'special symbol laminate component', 'primary stratum indicator symbol', 'stratum feature template component'])) OR (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_DEFINITION' IN TYPEOF (SELF.of_shape.definition)) AND (SELF.of_shape.definition\ product_definition.frame_of_reference\ application_context_element.name = 'layout occurrence')); WR26: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated template')) <= 1; END_ENTITY; -- component_shape_aspect ENTITY component_terminal SUBTYPE OF (shape_aspect); WHERE WR1: SELF\shape_aspect.description IN ['assembly module component terminal', 'bare die component terminal', 'component termination passage join terminal', 'conductive interconnect element terminal', 'interconnect component join terminal', 'interconnect module component terminal', 'land join terminal', 'minimally defined component terminal', 'non functional land join terminal', 'packaged component join terminal', 'printed component join terminal', 'package terminal occurrence', 'via terminal']; WR2: 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_DEFINITION' IN TYPEOF (SELF.of_shape.definition); WR3: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature')) <= 1; WR4: SIZEOF (QUERY (at <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'associated terminals') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_CONNECTIVITY_DEFINITION' IN TYPEOF (at.relating_shape_aspect))) <= 1; WR5: SIZEOF (QUERY (cr <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'connectivity requirement') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_NETWORK' IN TYPEOF (cr.relating_shape_aspect))) <= 1; WR6: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'design usage')) <= 1; WR7: (NOT (SELF\shape_aspect.description IN ['assembly module component terminal', 'bare die component terminal', 'package terminal occurrence', 'packaged component join terminal', 'printed component join terminal'])) OR (SELF.product_definitional); WR8: (NOT (SELF\shape_aspect.description = 'assembly module component terminal')) OR ((SELF.of_shape.definition.frame_of_reference.name = 'physical occurrence') AND (SIZEOF (QUERY (prpc <* USEDIN (SELF.of_shape.definition\product_definition.formation. of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc\product_category.name = 'assembly module')) >= 1)); WR9: (NOT (SELF\shape_aspect.description = 'assembly module component terminal')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ASSEMBLY_MODULE_TERMINAL' IN TYPEOF (i_f.relating_shape_aspect)))) = 1); WR10: (NOT (SELF\shape_aspect.description = 'bare die component terminal')) OR (SELF.of_shape.definition\product_definition.description = 'bare die component'); WR11: (NOT (SELF\shape_aspect.description = 'bare die component terminal')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'BARE_DIE_TERMINAL' IN TYPEOF (i_f.relating_shape_aspect)))) = 1); WR12: (NOT (SELF\shape_aspect.description = 'component termination passage join terminal')) OR (SIZEOF (QUERY (ac <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'associated component') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PLATED_PASSAGE' IN TYPEOF (ac.relating_shape_aspect)) AND (ac.relating_shape_aspect\shape_aspect.description = 'component termination passage'))) = 1); WR13: (NOT (SELF\shape_aspect.description = 'component termination passage join terminal')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | i_f.relating_shape_aspect\shape_aspect.description = 'component termination passage template join terminal')) = 1); WR14: (NOT (SELF\shape_aspect.description = 'conductive interconnect element terminal')) OR (SIZEOF (QUERY (ac <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'associated component') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_SHAPE_ASPECT' IN TYPEOF (ac.relating_shape_aspect)) AND ((ac.relating_shape_aspect\shape_aspect.description = 'conductive interconnect element with pre defined transitions') OR (ac.relating_shape_aspect\shape_aspect.description = 'conductive interconnect element with user defined single transition') ))) = 1); WR15: (NOT (SELF\shape_aspect.description IN ['conductive interconnect element terminal', 'interconnect component join terminal', 'printed component join terminal'])) OR (SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar.related_shape_aspect\shape_aspect.description = 'connection zone')) = 1); WR16: (NOT (SELF\shape_aspect.description = 'interconnect module component terminal')) OR ((SELF.of_shape.definition\product_definition.frame_of_reference.name = 'physical occurrence') AND (SIZEOF (QUERY (prpc <* USEDIN (SELF.of_shape.definition\product_definition.formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc\product_category.name = 'interconnect module')) >= 1)); WR17: (NOT (SELF\shape_aspect.description = 'interconnect module component terminal')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'INTERCONNECT_MODULE_TERMINAL' IN TYPEOF (i_f.relating_shape_aspect)) AND (SIZEOF (QUERY (pc <* USEDIN (i_f. relating_shape_aspect.of_shape.definition\product_definition. formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | pc\product_category.name = 'interconnect module')) > 0 ))) = 1); WR18: (NOT (SELF\shape_aspect.description IN ['land join terminal', 'non functional land join terminal'])) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LAND_TEMPLATE_TERMINAL' IN TYPEOF (i_f.relating_shape_aspect)) AND (TRUE)))) = 1); WR19: (NOT (SELF\shape_aspect.description = 'land join terminal')) OR (SIZEOF (QUERY (ac <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'associated component') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LAND' IN TYPEOF (ac.relating_shape_aspect)) AND (TRUE) ))) = 1); WR20: (NOT (SELF\shape_aspect.description = 'minimally defined terminal')) OR (SIZEOF (QUERY (pdr<* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | pdr.used_representation\representation.name = 'part terminal external reference')) = 1); WR21: (NOT (SELF\shape_aspect.description = 'non functional land join terminal')) OR (SIZEOF (QUERY (ac <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'associated component') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LAND' IN TYPEOF (ac.relating_shape_aspect)) AND (ac.relating_shape_aspect\shape_aspect.description IN ['non functional land', 'via dependent non functional land', 'via and contact size dependent non functional land', 'component termination passage dependent non functional land', 'contact size dependent non functional land', 'component termination passage and contact size ' + 'dependent non functional land', 'unsupported passage dependent non functional land'])))) = 1); WR22: (NOT (SELF\shape_aspect.description = 'package terminal occurrence')) OR (SIZEOF (QUERY (ud <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'usage definition') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PACKAGE_TERMINAL' IN TYPEOF (ud.relating_shape_aspect)))) = 1); WR23: (NOT (SELF\shape_aspect.description IN ['package terminal occurrence', 'packaged component join terminal'])) OR (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PACKAGED_COMPONENT' IN TYPEOF (SELF.of_shape.definition)) AND (SELF.of_shape.definition\product_definition. frame_of_reference.name = 'physical occurrence')); WR24: (NOT (SELF\shape_aspect.description = 'packaged component join terminal')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PACKAGED_PART_TERMINAL' IN TYPEOF (i_f.relating_shape_aspect)) AND (i_f.relating_shape_aspect\shape_aspect.description = 'join terminal'))) = 1); WR25: (NOT (SELF\shape_aspect.description = 'packaged component join terminal')) OR (SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF (QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | SIZEOF (QUERY (it <* pdr.used_representation.items | SIZEOF ( ['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF (it)) = 2)) <= 2)) <= 1)) <= 1); WR26: (NOT (SELF\shape_aspect.description = 'packaged component join terminal')) OR (SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF (QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | SIZEOF (QUERY (lmwu <* QUERY (it <* pdr.used_representation.items | SIZEOF ( ['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF (it)) = 2) | lmwu.name = 'maximum wire length')) <= 1)) <= 1)) <= 1); WR27: (NOT (SELF\shape_aspect.description = 'packaged component join terminal')) OR (SIZEOF (QUERY (pd <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF (QUERY (pdr <* USEDIN (pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | SIZEOF (QUERY (lmwu <* QUERY (it <* pdr.used_representation.items | SIZEOF ( ['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'LENGTH_MEASURE_WITH_UNIT'] * TYPEOF (it)) = 2) | lmwu.name = 'minimum wire length')) <= 1)) <= 1)) <= 1); WR28: (NOT (SELF\shape_aspect.description = 'printed component join terminal')) OR ((SELF.of_shape.definition\product_definition. frame_of_reference.name = 'physical occurrence') AND (SIZEOF (QUERY (prpc <* USEDIN (SELF.of_shape.definition\product_definition. formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc\product_category.name = 'interconnect module')) >= 1)); WR29: (NOT (SELF\shape_aspect.description = 'printed component join terminal')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRINTED_PART_TEMPLATE_TERMINAL' IN TYPEOF (i_f.relating_shape_aspect)) AND (i_f.relating_shape_aspect\shape_aspect.description = 'join terminal'))) = 1); WR30: (NOT (SELF\shape_aspect.description = 'printed component join terminal')) OR (SIZEOF (QUERY (i <* QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | pdr\shape_aspect_relationship.name = 'implementation') | (SIZEOF (['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'INTER_STRATUM_FEATURE', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'STRATUM_FEATURE', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_SHAPE_ASPECT'] * TYPEOF (i.relating_shape_aspect)) >= 1) OR (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_DEFINITION' IN TYPEOF (i.relating_shape_aspect.of_shape.definition)) AND (i.relating_shape_aspect.of_shape.definition\product_definition. frame_of_reference.name = 'layout occurrence') AND (SIZEOF ( QUERY (pc <* USEDIN (i.relating_shape_aspect. of_shape.definition\product_definition.formation.of_product, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | pc\product_category.name = 'interconnect module')) >= 1)))) = 1); WR31: (NOT (SELF\shape_aspect.description = 'via terminal')) OR (SIZEOF (QUERY (ac <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'associated component') | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PLATED_PASSAGE' IN TYPEOF (ac.relating_shape_aspect)) AND (ac.relating_shape_aspect\shape_aspect.description IN ['buried via', 'interfacial connection', 'bonded conductive base blind via', 'non conductive base blind via', 'plated conductive base blind via'])))) = 1); WR32: (NOT (SELF\shape_aspect.description = 'via terminal')) OR (SIZEOF (QUERY (i_f <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'instantiated feature') | i_f.relating_shape_aspect\shape_aspect.description = 'via template terminal')) = 1); WR33: (NOT (SELF\shape_aspect.description = 'interconnect component join terminal')) OR ((SELF.of_shape.definition\product_definition. frame_of_reference.name = 'physical occurrence') AND NOT(SELF.of_shape.definition\product_definition.description IN ['assembly module component', 'bare die component', 'interconnect module component', 'laminate component', 'packaged component'])); WR34: SIZEOF(QUERY(pd <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | SIZEOF(QUERY(dri <* pdr.used_representation.items | (dri\representation_item.name = 'global swappable') AND (dri.description IN ['true', 'false']))) = 1)) = 1)) <= 1; WR35: SIZEOF(QUERY(pd <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | SIZEOF(QUERY(dri <* pdr.used_representation.items | (dri\representation_item.name = 'local swappable') AND (dri.description IN ['true', 'false']))) = 1)) = 1)) <= 1; WR36: SIZEOF(QUERY(pd <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | SIZEOF(QUERY(dri <* pdr.used_representation.items | dri\representation_item.name = 'swap code' )) = 1)) = 1)) <= 1; END_ENTITY; -- component_terminal ENTITY composite_array_shape_aspect SUBTYPE OF (composite_shape_aspect); END_ENTITY; -- composite_array_shape_aspect ENTITY composite_group_shape_aspect SUBTYPE OF (composite_shape_aspect); END_ENTITY; -- composite_group_shape_aspect ENTITY composite_unit_shape_aspect SUBTYPE OF (composite_shape_aspect); END_ENTITY; -- composite_unit_shape_aspect ENTITY concentricity_tolerance SUBTYPE OF (geometric_tolerance_with_specified_datum_system); WHERE WR1: SELF\geometric_tolerance.name = 'concentricity'; END_ENTITY; -- concentricity_tolerance ENTITY connection_zone_based_assembly_joint SUBTYPE OF (assembly_joint); WHERE WR1: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'zone_1')) = 1; WR2: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'zone_2')) = 1; WR3: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar.relating_shape_aspect\shape_aspect.description = 'connection zone')) = 2; END_ENTITY; -- connection_zone_based_assembly_joint ENTITY connection_zone_interface_plane_relationship SUBTYPE OF (shape_aspect_relationship); UNIQUE UR1: SELF\shape_aspect_relationship.name; WHERE WR1: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_aspect_relationship || SELF\connection_zone_interface_plane_relationship)) = 0; WR2: 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SEATING_PLANE' IN TYPEOF(SELF\shape_aspect_relationship.related_shape_aspect); WR3: SELF\shape_aspect_relationship.related_shape_aspect\shape_aspect.description = 'plane'; WR4: SELF\shape_aspect_relationship.relating_shape_aspect\shape_aspect.description = 'connection zone'; END_ENTITY; -- connection_zone_interface_plane_relationship ENTITY connectivity_sub_structure SUBTYPE OF (shape_aspect); WHERE WR1: SIZEOF (QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'COMPONENT_TERMINAL' IN TYPEOF (sar.related_shape_aspect)) OR (sar.related_shape_aspect\shape_aspect.description = 'topological junction'))) > 1; END_ENTITY; -- connectivity_sub_structure ENTITY coordinated_representation_item SUBTYPE OF (representation, representation_item); WHERE WR1: SIZEOF (QUERY (pdr <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF (USEDIN (pdr, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DATA_ENVIRONMENT.ELEMENTS')) <= 1)) <= 1; WR2: SIZEOF (USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'APPLIED_DOCUMENT_REFERENCE.ITEMS')) = 1; WR3: (NOT (SELF\representation_item.name = 'tolerance')) OR (SIZEOF (QUERY (it <* SELF.items | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it))) >= 1); WR4: (NOT (SELF\representation_item.name = 'plus minus tolerance')) OR (SIZEOF (QUERY (it <* SELF.items | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it))) = 3); WR5: (NOT (SELF\representation_item.name = 'symmetrical tolerance')) OR (SIZEOF (QUERY (it <* SELF.items | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it))) = 2); WR6: (NOT (SELF\representation_item.name = 'plus minus tolerance')) OR ( (SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND (it\representation_item.name = 'basic value')) ) = 1) AND (SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND (it\representation_item.name = 'plus value')) ) = 1) AND (SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND (it\representation_item.name = 'minus value')) ) = 1) ); WR7: (NOT (SELF\representation_item.name = 'symmetrical tolerance')) OR ((SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND (it\representation_item.name = 'basic value')) ) = 1) AND (SIZEOF (QUERY (it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF (it)) AND ( it\representation_item.name = 'deviation value')) ) = 1) ); END_ENTITY; -- coordinated_representation_item ENTITY csg_2d_shape_representation SUBTYPE OF (shape_representation); WHERE WR1: SELF.context_of_items\ geometric_representation_context.coordinate_space_dimension = 2; WR2 : SIZEOF (QUERY (it <* SELF.items| NOT (SIZEOF(['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.CSG_SOLID', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.MAPPED_ITEM', 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.AXIS2_PLACEMENT_2D'] * TYPEOF(it)) = 1 ))) = 0; WR3: SIZEOF(QUERY ( it <* SELF.items | (SIZEOF(['ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.CSG_SOLID'] * TYPEOF(it)) = 1) OR (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CSG_2D_SHAPE_REPRESENTATION' IN TYPEOF(it\mapped_item.mapping_source.mapped_representation))) )) >= 1; WR4: SIZEOF(QUERY ( it <* SELF.items | (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.MAPPED_ITEM' IN TYPEOF(it)) AND (NOT (( 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'CSG_2D_SHAPE_REPRESENTATION') IN TYPEOF(it\mapped_item.mapping_source.mapped_representation)))) )) = 0; WR5: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_representation || SELF\csg_2d_shape_representation)) = 0; END_ENTITY; -- csg_2d_shape_representation ENTITY curve_dimension SUBTYPE OF (dimensional_size); WHERE WR1: SELF\dimensional_size.name <> 'angular' ; END_ENTITY; -- curve_dimension ENTITY cutout_edge_segment SUPERTYPE OF (plated_cutout_edge_segment) SUBTYPE OF (inter_stratum_feature,shape_aspect_relationship); WHERE WR1: SELF.description IN [ 'plated cutout edge segment', 'cutout edge segment']; WR2: SIZEOF (QUERY (cc <* QUERY (sar <* USEDIN (SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'composed cutout') |( ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'INTER_STRATUM_FEATURE' IN TYPEOF (cc.relating_shape_aspect)) AND (cc.relating_shape_aspect\shape_aspect.description IN ['cutout', 'physical connectivity interrupting cutout', 'plated cutout'])) )) = 1; WR3: ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'EDGE_SEGMENT_VERTEX' IN TYPEOF (SELF\shape_aspect_relationship.relating_shape_aspect)); WR4: ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'EDGE_SEGMENT_VERTEX' IN TYPEOF (SELF\shape_aspect_relationship.related_shape_aspect)); WR5: SELF\shape_aspect_relationship.related_shape_aspect :<>: SELF\shape_aspect_relationship.relating_shape_aspect; END_ENTITY; -- cutout_edge_segment ENTITY datum_difference SUBTYPE OF (shape_aspect,shape_aspect_relationship); WHERE WR1: ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_UNIT_DATUM' IN TYPEOF (SELF\shape_aspect_relationship.relating_shape_aspect)) AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_UNIT_DATUM' IN TYPEOF (SELF\shape_aspect_relationship.related_shape_aspect)); WR2: SELF\shape_aspect.name = SELF\shape_aspect_relationship.name; WR3: SELF\shape_aspect.description = SELF\shape_aspect_relationship. description; WR4: SELF\shape_aspect_relationship.relating_shape_aspect :<>: SELF\shape_aspect_relationship.related_shape_aspect; WR5: SIZEOF (TYPEOF(SELF) - (TYPEOF(SELF\shape_aspect || SELF\shape_aspect_relationship || SELF\datum_difference))) = 0; END_ENTITY; -- datum_difference ENTITY datum_difference_analytical_model_port_assignment SUBTYPE OF (property_definition_representation); WHERE WR1: ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'ANALYTICAL_MODEL_PORT' IN TYPEOF (SELF\property_definition_representation.used_representation)) AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DATUM_DIFFERENCE' IN TYPEOF (SELF\property_definition_representation.definition)); WR2: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\property_definition_representation || SELF\datum_difference_analytical_model_port_assignment)) = 0; END_ENTITY; -- datum_difference_analytical_model_port_assignment ENTITY datum_difference_based_characteristic SUBTYPE OF (representation_item); WHERE WR1: SIZEOF(QUERY ( r <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION.ITEMS') | (SIZEOF(QUERY (prd2 <* QUERY ( prd <* USEDIN(r, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | ((('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION') IN TYPEOF(prd)) AND (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION') IN TYPEOF(prd\ property_definition_representation.definition))) ) | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DATUM_DIFFERENCE' IN TYPEOF(prd2\property_definition_representation.definition\ property_definition.definition)))) = 1) )) = 1; END_ENTITY; -- datum_difference_based_characteristic ENTITY datum_difference_based_model_parameter SUBTYPE OF (model_parameter); WHERE wr1: SIZEOF(QUERY ( r <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'REPRESENTATION.ITEMS') | (SIZEOF(QUERY (prd2 <* QUERY ( prd <* USEDIN(r, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | ((('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION_REPRESENTATION') IN TYPEOF(prd)) AND (('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION') IN TYPEOF(prd\ property_definition_representation.definition))) ) | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DATUM_DIFFERENCE' IN TYPEOF(prd2\property_definition_representation.definition\ property_definition.definition)))) = 1) )) = 1; END_ENTITY; -- datum_difference_based_model_parameter ENTITY datum_difference_functional_unit_usage_view_terminal_assignment SUBTYPE OF (shape_aspect_relationship); WHERE WR1: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_aspect_relationship || SELF\datum_difference_functional_unit_usage_view_terminal_assignment)) = 0; WR2: 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'FUNCTIONAL_UNIT_TERMINAL_DEFINITION' IN TYPEOF (SELF\shape_aspect_relationship.related_shape_aspect); WR3: 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DATUM_DIFFERENCE' IN TYPEOF (SELF\shape_aspect_relationship.relating_shape_aspect); END_ENTITY; -- datum_difference_functional_unit_- -- usage_view_terminal_assignment ENTITY datum_reference_frame SUBTYPE OF (shape_aspect); WHERE WR1: SIZEOF(TYPEOF(SELF) - TYPEOF(SELF\shape_aspect || SELF\datum_reference_frame)) = 0; WR2: SELF\shape_aspect.product_definitional = False; WR3: (SIZEOF (QUERY (pud <* QUERY ( sar <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'reference axis') | (pud.related_shape_aspect\shape_aspect.description = 'axis') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_UNIT_DATUM' IN TYPEOF (pud)))) <= 3); WR4: (SIZEOF (QUERY (pud <* QUERY ( sar <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'reference plane') | (pud.related_shape_aspect\shape_aspect.description = 'plane') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_UNIT_DATUM' IN TYPEOF (pud)))) <= 3); WR5: (SIZEOF (QUERY (pud <* QUERY ( sar <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'reference origin') | (pud.related_shape_aspect\shape_aspect.description = 'point') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_UNIT_DATUM' IN TYPEOF (pud)))) <= 1); WR6: (SIZEOF (QUERY (ds <* QUERY ( sar <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'established datum reference frame') | 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'DATUM_SYSTEM' IN TYPEOF (ds))) <= 1); WR7: (SIZEOF (QUERY (pud <* QUERY ( sar <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'reference axis') | (pud.related_shape_aspect\shape_aspect.description = 'axis') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_UNIT_DATUM' IN TYPEOF (pud)))) + SIZEOF (QUERY (pud <* QUERY ( sar <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'reference plane') | (pud.related_shape_aspect\shape_aspect.description = 'plane') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_UNIT_DATUM' IN TYPEOF (pud)))) + SIZEOF (QUERY (pud <* QUERY ( sar <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'reference origin') | (pud.related_shape_aspect\shape_aspect.description = 'point') AND ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PHYSICAL_UNIT_DATUM' IN TYPEOF (pud)))) >= 1); END_ENTITY; -- datum_reference_frame ENTITY datum_system SUBTYPE OF (shape_aspect); WHERE WR1: SELF\shape_aspect.product_definitional = False; WR2: (SIZEOF (QUERY (sar <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'established datum reference frame')) = 1); WR3: (SIZEOF (QUERY (sar <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | sar\shape_aspect_relationship.name = 'datum usage in datum system')) >= 1); WR4: (SIZEOF (QUERY (pd <* USEDIN(SELF, 'ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') | (pd\property_definition.description = 'datum system property with material conditions') OR (pd.description = 'datum system property without material conditions'))) = 1); END_ENTITY; -- datum_system ENTITY datum_system_based_dimensional_location SUBTYPE OF (dimensional_location); END_ENTITY; -- datum_system_based_dimensional_location ENTITY delete_design_object_assignment SUBTYPE OF (action_assignment); items : SET [1:?] OF managed_design_object; WHERE WR1: SIZEOF(QUERY(it <* SELF.items | ('ELECTRONIC_ASSEMBLY_INTERCONNECT_AND_PACKAGING_DESIGN.' + 'PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(it)) AND (it.name = 'design object deletion'))) = 1; END_ENTITY; -- delete_design_