(************************************************************************)
(* Thu Aug 22 22:41:50 2019                                             *)
(* This HTML file is produced by                                        *)
(*     The EXPRESS Data Manager EXPRESS Compiler version 10.2.2 20181031*)
(************************************************************************)



(* $Id: mim_lf.exp,v 1.101 2019/07/01 16:42:01 kevin Exp $ ISO TC184/SC4/WG12 N10517 - ISO/TS 10303-442 AP242 managed model based 3d engineering - EXPRESS MIM Long form Supersedes ISO TC184/SC4/WG3 N10384 *) -- -*- Mode: Express -*- (* ===================================================================================== *) (* Long form schema generated by The EXPRESS Data Manager compiler version 9.8.9B 20130507 *) (* Sat Jun 08 15:16:30 2019 *) (* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994 *) (* ===================================================================================== *) (* Pretty Printed by Express Engine 5.0.21 (GIT eeng-5.0.21) Steel Bank CL 1.4.16 (64-bits) eengine --pretty -mode mim_longform -schema mim_lf.exp Line Width: 120 Commandline: eengine --pretty -mode mim_longform -schema mim_lf.exp *) (* File: /Users/klt/Desktop/mim_lf.exp *) (* 1 Schema: AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF *) (* Interfaces: 0 *) (* Constants: 29 *) (* Types: 449 *) (* Entities: 2,118 *) (* Subtype_Constraints: 0 *) (* Functions: 316 *) (* Rules: 55 *) (* Procedures: 0 *) SCHEMA Ap242_Managed_Model_Based_3d_Engineering_Mim_Lf;
CONSTANT Deprecated_Constructed_Data_Types : SET OF STRING := ['approved_item', 'certified_item', 'change_request_item', 'contracted_item', 'cc_classified_item', 'date_time_item', 'cc_person_organization_item', 'cc_specified_item', 'start_request_item', 'work_item']; Deprecated_Entity_Data_Types : SET OF STRING := ['cc_design_approval', 'cc_design_certification', 'cc_design_contract', 'cc_design_date_and_time_assignment', 'cc_design_person_and_organization_assignment', 'cc_design_security_classification', 'cc_design_specification_reference', 'change', 'change_request', 'design_context', 'design_make_from_relationship', 'mechanical_context', 'product_category_relationship', 'start_request', 'start_work', 'supplied_part_relationship']; Deprecated_Interfaced_Data_Types : SET OF STRING := ['document_with_class', 'ordinal_date', 'product_definition_formation_with_specified_source', 'week_of_year_and_day_date']; Dummy_Gri : Geometric_Representation_Item := Representation_Item('') || Geometric_Representation_Item(); Dummy_Tri : Topological_Representation_Item := Representation_Item('') || Topological_Representation_Item(); Pre_Defined_Picture_Representation_Types : SET [0 : ?] OF STRING := ['JPEG','PNG','TIFF','BMP','GIF']; Schema_Prefix : STRING := 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.'; The_Binarys : Elementary_Space := Make_Elementary_Space(Es_Binarys); The_Booleans : Elementary_Space := Make_Elementary_Space(Es_Booleans); The_Complex_Numbers : Elementary_Space := Make_Elementary_Space(Es_Complex_Numbers); The_Complex_Tuples : Extended_Tuple_Space := Make_Extended_Tuple_Space(The_Zero_Tuple_Space, The_Complex_Numbers); The_Empty_Maths_Tuple : Maths_Tuple := []; The_Empty_Space : Finite_Space := Make_Finite_Space([]); The_Generics : Elementary_Space := Make_Elementary_Space(Es_Generics); The_Integer_Tuples : Extended_Tuple_Space := Make_Extended_Tuple_Space(The_Zero_Tuple_Space, The_Integers); The_Integers : Elementary_Space := Make_Elementary_Space(Es_Integers); The_Logicals : Elementary_Space := Make_Elementary_Space(Es_Logicals); The_Maths_Spaces : Elementary_Space := Make_Elementary_Space(Es_Maths_Spaces); The_Neg1_one_interval : Finite_Real_Interval := Make_Finite_Real_Interval(-1.0, Closed, 1.0, Closed); The_Neghalfpi_Halfpi_Interval : Finite_Real_Interval := Make_Finite_Real_Interval(-0.5 * PI, Closed, 0.5 * PI, Closed); The_Negpi_Pi_Interval : Finite_Real_Interval := Make_Finite_Real_Interval(-PI, Open, PI, Closed); The_Nonnegative_Reals : Real_Interval_From_Min := Make_Real_Interval_From_Min(0.0, Closed); The_Numbers : Elementary_Space := Make_Elementary_Space(Es_Numbers); The_Real_Tuples : Extended_Tuple_Space := Make_Extended_Tuple_Space(The_Zero_Tuple_Space, The_Reals); The_Reals : Elementary_Space := Make_Elementary_Space(Es_Reals); The_Strings : Elementary_Space := Make_Elementary_Space(Es_Strings); The_Tuples : Extended_Tuple_Space := Make_Extended_Tuple_Space(The_Zero_Tuple_Space, The_Generics); The_Zero_Pi_Interval : Finite_Real_Interval := Make_Finite_Real_Interval(0.0, Closed, PI, Closed); The_Zero_Tuple_Space : Listed_Product_Space := Make_Listed_Product_Space([]); END_CONSTANT;
TYPE A3m_Accuracy_Type_Name = ENUMERATION OF (Atna_Others, Atns_Area_Measure, Atns_Length_Measure, Atns_Others, Atns_Plane_Angle_Measure, Atns_Volume_Measure); END_TYPE;
TYPE A3m_Detected_Difference_Type_Name = ENUMERATION OF (Ddna_A3ms_Inspected_Equivalence_Element_Select, Ddna_Assembly_Component_Usage, Ddna_Binary_Assembly_Constraint, Ddna_Cartesian_Point, Ddna_Context_Dependent_Shape_Representation, Ddna_Count_Measure, Ddna_Multi_Level_Reference_Designator, Ddna_No_Element, Ddna_Others, Ddna_Volume_Measure, Ddns_Area_Measure, Ddns_Cartesian_Point, Ddns_Connected_Face_Set, Ddns_Count_Measure, Ddns_Edge, Ddns_Face, Ddns_Five_Count_Measure, Ddns_Four_Count_Measure, Ddns_Length_Measure, Ddns_No_Element, Ddns_Others, Ddns_Point_On_Curve, Ddns_Point_On_Surface, Ddns_Several_Edges, Ddns_Several_Faces, Ddns_Three_Count_Measure, Ddns_Two_Cartesian_Points, Ddns_Two_Count_Measure, Ddns_Volume_Measure); END_TYPE;
TYPE A3m_Element_Type_Name = ENUMERATION OF (Etna_Others, Etna_Product_Definition_Or_Reference, Etna_Shape_Representation, Etns_Connected_Edge_Set, Etns_Connected_Face_Set, Etns_External_Representation_Item, Etns_Manifold_Solid_Brep, Etns_Others, Etns_Point_Cloud_Dataset, Etns_Shell_Based_Surface_Model, Etns_Shell_Based_Wireframe_Model, Etns_Vertex_Point); END_TYPE;
TYPE A3m_Equivalence_Assessment_Specification_Select = SELECT (A3m_Equivalence_Assessment_By_Logical_Test, A3m_Equivalence_Assessment_By_Numerical_Test); END_TYPE;
TYPE A3m_Measured_Data_Type_Name = ENUMERATION OF (Mdna_Boolean_Value, Mdna_Context_Dependent_Measure, Mdna_Length_Measure, Mdna_Length_Measure_And_Context_Dependent_Measure, Mdna_Others, Mdna_Plane_Angle_Measure, Mdna_Volume_Measure, Mdns_Area_Measure, Mdns_Boolean_Value, Mdns_Length_Measure, Mdns_Others, Mdns_Plane_Angle_Measure, Mdns_Volume_Measure); END_TYPE;
TYPE A3ma_Accuracy_Type_Name = A3m_Accuracy_Type_Name; END_TYPE;
TYPE A3ma_Detected_Difference_Type_Name = A3m_Detected_Difference_Type_Name; END_TYPE;
TYPE A3ma_Element_Type_Name = A3m_Element_Type_Name; END_TYPE;
TYPE A3ma_Measured_Data_Type_Name = A3m_Measured_Data_Type_Name; END_TYPE;
TYPE A3ms_Accuracy_Type_Name = A3m_Accuracy_Type_Name; END_TYPE;
TYPE A3ms_Detected_Difference_Type_Name = A3m_Detected_Difference_Type_Name; END_TYPE;
TYPE A3ms_Element_Type_Name = A3m_Element_Type_Name; END_TYPE;
TYPE A3ms_Inspected_Equivalence_Element_Select = Inspected_Equivalence_Element_Select; END_TYPE;
TYPE A3ms_Measured_Data_Type_Name = A3m_Measured_Data_Type_Name; END_TYPE;
TYPE Absorbed_Dose_Measure = REAL; END_TYPE;
TYPE Acceleration_Measure = REAL; END_TYPE;
TYPE Accuracy_Associated_Target_Select = SELECT (A3m_Equivalence_Criteria_Representation, A3m_Equivalence_Criterion, A3m_Equivalence_Inspection_Result_Representation, Data_Equivalence_Inspection_Result); END_TYPE;
TYPE Action_Items = SELECT (Action, Action_Directive, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Relationship, Action_Request_Solution, Alternate_Product_Relationship, Alternative_Solution_Relationship, Analysis_Assignment, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Date_And_Time_Assignment, Applied_Date_Assignment, Applied_Description_Text_Assignment, Applied_Description_Text_Assignment_Relationship, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_State_Observed_Assignment, Applied_State_Type_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Approval, Approval_Status, Ascribable_State, Ascribable_State_Relationship, Assembly_Component_Usage_Substitute, Assignment_Object_Relationship, Breakdown_Of, Calendar_Date, Certification, Certification_Item, Change_Group, Characterized_Class, Characterized_Object, Class, Classification_Item, Class_System, Condition, Conditional_Effectivity, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Date_And_Time, Date_And_Time_Assignment, Date_Assignment, Dimensional_Location, Dimensional_Size, Directed_Action_Assignment, Directed_Dimensional_Location, Document_File, Document_Reference_Item, Document_Relationship, Document_Type, Draughting_Model, Drawing_Revision, Effectivity, Evaluated_Characteristic, Evaluated_Characteristic_Of_Product_As_Individual_Test_Result, Event_Occurrence, Evidence, Exclusive_Product_Concept_Feature_Category, Executed_Action, Frozen_Assignment, General_Property, General_Property_Relationship, Group, Group_Relationship, Hierarchical_Interface_Connection, Identification_Assignment_Relationship, Inclusion_Product_Concept_Feature, Identification_Item, Information_Right, Information_Usage_Right, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Design, Interface_Connector_Occurrence, Interface_Connector_Version, Interface_Definition_Connection, Interface_Definition_For, Interface_Specification_Version, Material_Designation, Material_Designation_Characterization, Measure_Representation_Item, Mechanical_Design_Geometric_Presentation_Representation, Organization, Organizational_Address, Organizational_Project, Organizational_Project_Relationship, Organization_Relationship, Package_Product_Concept_Feature, Person, Person_And_Organization, Person_And_Organization_Address, Presentation_Area, Process_Operation, Process_Plan, Product, Product_Category, Product_Class, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Element_Relationship, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Group_Assignment, Product_Definition_Relationship, Product_Definition_Substitute, Product_Definition_Usage, Product_Group, Product_Group_Membership, Product_Group_Relationship, Product_Identification, Product_Process_Plan, Product_Related_Product_Category, Product_Relationship, Property_Definition, Property_Definition_Relationship, Property_Definition_Representation, Representation, Representation_Item, Representation_Relationship, Requirement_Assigned_Item, Requirement_Assignment, Requirement_For_Action_Resource, Resource_Property, Retention, Rule_Set, Security_Classification, Security_Classification_Level, Shape_Aspect, Shape_Aspect_Relationship, Shape_Representation, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Type, State_Type_Assignment, State_Type_Relationship, Structured_Message, Usage_Association, Validation, Value_Representation_Item, Verification, Versioned_Action_Request); END_TYPE;
TYPE Action_Method_Items = SELECT (Action, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Request_Solution, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Contract_Assignment, Applied_Description_Text_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Approval, Breakdown_Of, Condition, Configuration_Design, Configuration_Item, Contract, Contract_Assignment, Date_And_Time, Date_And_Time_Assignment, Date_Assignment, Directed_Action_Assignment, Document_File, Effectivity, Envelope, Event_Occurrence, Evidence, Executed_Action, Externally_Defined_General_Property, Frozen_Assignment, General_Property, General_Property_Relationship, Hierarchical_Interface_Connection, Interface_Connection, Interface_Connector_Occurrence, Interface_Definition_Connection, Material_Designation_Characterization, Measure_Representation_Item, Organization, Organizational_Address, Organizational_Project, Package_Product_Concept_Feature, Person, Person_And_Organization, Person_And_Organization_Address, Product, Product_Class, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Design_Version_To_Individual, Product_Group, Product_Group_Membership, Product_Group_Relationship, Product_Identification, Property_Definition, Property_Definition_Representation, Representation_Item, Representation_Relationship, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_View_Definition_Relationship, State_Observed, State_Type, State_Type_Relationship, Structured_Message, Validation, Value_Representation_Item, Verification, Versioned_Action_Request); END_TYPE;
TYPE Action_Request_Item = SELECT (Action, Action_Method, Action_Property, Action_Relationship, Alternate_Product_Relationship, Assembly_Component_Usage_Substitute, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Document_File, Draughting_Model, Drawing_Revision, Executed_Action, General_Property, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organization, Organizational_Project, Person, Person_And_Organization, Presentation_Area, Product, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Substitute, Product_Identification, Property_Definition, Resource_Property, Shape_Aspect, Shape_Representation, Versioned_Action_Request); END_TYPE;
TYPE Actuated_Direction = ENUMERATION OF (Bidirectional, Positive_Only, Negative_Only, Not_Actuated); END_TYPE;
TYPE Ahead_Or_Behind = ENUMERATION OF (Ahead, Exact, Behind); END_TYPE;
TYPE Amount_Of_Substance_Measure = REAL; END_TYPE;
TYPE Analysed_Item = SELECT (Action_Property_Representation, Alternate_Product_Relationship, Ascribable_State, Assembly_Component_Usage_Substitute, Evidence, Interface_Connection, Interface_Connector_Occurrence, Organization, Organizational_Project_Relationship, Organization_Relationship, Product, Product_Concept, Product_Definition, Product_Definition_Context, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Group_Relationship, Product_Relationship, Property_Definition, Property_Definition_Representation, Requirement_Assignment, State_Observed, State_Observed_Assignment, State_Observed_Role, State_Type, Validation, Verification, Verification_Relationship); END_TYPE;
TYPE Angle_Direction_Reference_Select = SELECT (Curve, Direction, Point_Path); END_TYPE;
TYPE Angle_Direction_Reference_With_A2p3d_Select = SELECT (Angle_Direction_Reference_Select, Axis2_Placement_3d); END_TYPE;
TYPE Angle_Relator = ENUMERATION OF (Equal, Large, Small); END_TYPE;
TYPE Angular_Deviation = Positive_Plane_Angle_Measure; END_TYPE;
TYPE Annotation_Placeholder_Occurrence_Role = ENUMERATION OF (Annotation_Text, Gps_Data); END_TYPE;
TYPE Annotation_Plane_Element = SELECT (Draughting_Callout, Styled_Item); END_TYPE;
TYPE Annotation_Representation_Select = SELECT (Draughting_Model, Presentation_Area, Presentation_View, Symbol_Representation); END_TYPE;
TYPE Annotation_Symbol_Occurrence_Item = SELECT (Annotation_Symbol, Defined_Symbol); END_TYPE;
TYPE Annotation_Text_Occurrence_Item = SELECT (Annotation_Text, Annotation_Text_Character, Composite_Text, Defined_Character_Glyph, Text_Literal); END_TYPE;
TYPE Ap242_Assignment_Object_Select = Assignment_Object_Select; END_TYPE;
TYPE Approval_Item = SELECT (Action, Action_Directive, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Request_Solution, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Description_Text_Assignment, Applied_Description_Text_Assignment_Relationship, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Assembly_Component_Usage_Substitute, Breakdown_Of, Certification, Class, Class_System, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Date, Date_And_Time_Assignment, Date_Assignment, Directed_Action, Directed_Action_Assignment, Document, Document_File, Draughting_Model, Drawing_Revision, Effectivity, Envelope, Evaluated_Characteristic_Of_Product_As_Individual_Test_Result, Evidence, Exclusive_Product_Concept_Feature_Category, Executed_Action, Externally_Defined_General_Property, Frozen_Assignment, General_Property, General_Property_Relationship, Group, Group_Relationship, Identification_Assignment_Relationship, Inclusion_Product_Concept_Feature, Information_Usage_Right, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Definition, Interface_Connector_Design, Interface_Connector_Design_To_Planned, Interface_Connector_Design_To_Realized, Interface_Connector_Occurrence, Interface_Connector_Planned_To_Realized, Interface_Connector_Version, Interface_Definition_For, Interface_Specification_Definition, Interface_Specification_Version, In_Zone, Material_Designation, Material_Designation_Characterization, Measure_Representation_Item, Mechanical_Design_Geometric_Presentation_Representation, Organization, Organizational_Address, Organizational_Project, Organization_Relationship, Package_Product_Concept_Feature, Person_And_Organization, Presentation_Area, Process_Plan, Product, Product_Class, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Group_Assignment, Product_Definition_Relationship, Product_Definition_Substitute, Product_Definition_Usage, Product_Process_Plan, Product_Relationship, Property_Definition, Property_Definition_Representation, Representation, Representation_Item, Representation_Relationship, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Resource_Property, Security_Classification, Shape_Aspect_Relationship, Shape_Representation, Structured_Message, Validation, Value_Representation_Item, Verification, Versioned_Action_Request); END_TYPE;
TYPE Approved_Item = SELECT (Certification, Change, Change_Request, Configuration_Effectivity, Configuration_Item, Contract, Product, Security_Classification, Start_Request, Start_Work); END_TYPE;
TYPE Area_Measure = REAL; END_TYPE;
TYPE Area_Or_View = SELECT (Presentation_Area, Presentation_View); END_TYPE;
TYPE Area_Unit_Type = ENUMERATION OF (Circular, Cylindrical, Rectangular, Spherical, Square); END_TYPE;
TYPE Assignment_Object_Select = SELECT (Action_Property, Action_Property_Representation, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Contract_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Breakdown_Of, Date_And_Time_Assignment, Date_Assignment, Directed_Action_Assignment, Frozen_Assignment, Material_Designation_Characterization, Organizational_Address, Person_And_Organization_Address, Product_Concept_Feature_Association, Product_Concept_Feature_Category_Usage, Property_Definition, Property_Definition_Representation, Requirement_Assignment, Requirement_For_Action_Resource); END_TYPE;
TYPE Atom_Based_Tuple = LIST OF Atom_Based_Value; END_TYPE;
TYPE Atom_Based_Value = SELECT (Atom_Based_Tuple, Maths_Atom); END_TYPE;
TYPE Attribute_Classification_Item = SELECT (Action, Action_Directive, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Relationship, Action_Request_Solution, Action_Request_Status, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_Identification_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Approval, Approval_Person_Organization, Approval_Relationship, Approval_Status, Certification, Context_Dependent_Unit, Contract, Date_And_Time_Assignment, Date_Assignment, Derived_Unit, Descriptive_Representation_Item, Document_File, Document_Relationship, Effectivity, Envelope, Envelope_Relationship, Event_Occurrence_Relationship, Executed_Action, General_Property, General_Property_Relationship, Group, Group_Relationship, Information_Right, Information_Usage_Right, Interface_Connection, Interface_Connector_Definition, Interface_Definition_Connection, Interface_Specification_Definition, Language, Measure_Representation_Item, Measure_With_Unit, Message_Relationship, Named_Unit, Organizational_Address, Organizational_Project_Relationship, Organization_Relationship, Person_And_Organization, Person_And_Organization_Address, Product, Product_Category, Product_Concept, Product_Concept_Context, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Property_Definition, Property_Definition_Relationship, Property_Definition_Representation, Representation, Representation_Context, Representation_Item, Security_Classification, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Type, State_Type_Assignment, State_Type_Relationship, Structured_Message, Time_Interval_Relationship, Uncertainty_Measure_With_Unit, Usage_Association, Versioned_Action_Request); END_TYPE;
TYPE Attribute_Identifier = Identifier; WHERE WR1: Validate_Attribute_Id(SELF); END_TYPE;
TYPE Attribute_Language_Item = SELECT (Action, Action_Method, Action_Method_Relationship, Actuated_Kinematic_Pair, Alternate_Product_Relationship, Application_Context, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Certification_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_External_Identification_Assignment, Applied_Identification_Assignment, Applied_Organizational_Project_Assignment, Applied_Security_Classification_Assignment, Approval, Approval_Relationship, Approval_Status, Assembly_Component_Usage_Substitute, Attribute_Value_Assignment, Certification, Certification_Type, Configuration_Design, Configuration_Item, Contract, Data_Environment, Date_Role, Date_Time_Role, Descriptive_Representation_Item, Document_Relationship, Document_Usage_Role, Draughting_Title, Effectivity, Effectivity_Relationship, Envelope, Envelope_Relationship, Event_Occurrence, Evidence, External_Source, General_Property, General_Property_Relationship, Geometric_Representation_Item, Geometric_Tolerance, Group, Group_Relationship, Identification_Role, Information_Right, Information_Usage_Right, Interface_Connection, Interface_Connector_Occurrence, Interface_Definition_Connection, Interface_Definition_For, Kinematic_Pair, Make_From_Usage_Option, Mapped_Item, Message_Relationship, Multi_Language_Attribute_Assignment, Name_Assignment, Object_Role, Organizational_Project, Organizational_Project_Relationship, Organizational_Project_Role, Organization_Relationship, Organization_Role, Person_And_Organization, Person_And_Organization_Role, Presentation_Layer_Assignment, Process_Product_Association, Product, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Relationship, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Shape, Product_Definition_Substitute, Product_Group, Product_Group_Relationship, Product_Related_Product_Category, Property_Definition, Property_Definition_Relationship, Representation, Representation_Item, Representation_Relationship, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Resource_Property, Resource_Requirement_Type, Security_Classification, Security_Classification_Assignment, Shape_Aspect, Shape_Aspect_Relationship, Shape_Representation, State_Observed, State_Observed_Relationship, State_Type, State_Type_Relationship, Structured_Message, Styled_Item, Time_Interval_Role, Topological_Representation_Item, Uncertainty_Measure_With_Unit, Uncertainty_Qualifier, Usage_Association, Validation, Verification, Versioned_Action_Request, Versioned_Action_Request_Relationship); END_TYPE;
TYPE Attribute_Select = SELECT (Product_Group_Context, Product_Group_Purpose); END_TYPE;
TYPE Attribute_Type = SELECT (Label, Text); END_TYPE;
TYPE Axial_Geometry_Constraint_Element = SELECT (Circle, Conical_Surface, Cylindrical_Surface, Line, Plane, Point, Revolved_Area_Solid, Revolved_Face_Solid, Right_Circular_Cone, Right_Circular_Cylinder, Sphere, Spherical_Surface, Surface_Of_Revolution, Toroidal_Surface, Torus); END_TYPE;
TYPE Axis2_Placement = SELECT (Axis2_Placement_2d, Axis2_Placement_3d); END_TYPE;
TYPE B_Spline_Curve_Form = ENUMERATION OF (Polyline_Form, Circular_Arc, Elliptic_Arc, Parabolic_Arc, Hyperbolic_Arc, Unspecified); END_TYPE;
TYPE B_Spline_Or_Composite_Curve_Select = SELECT (B_Spline_Curve, Composite_Curve); END_TYPE;
TYPE B_Spline_Or_Rectangular_Composite_Surface_Select = SELECT (B_Spline_Surface, Rectangular_Composite_Surface); 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 Base_Solid_Select = SELECT (Solid_Model, Csg_Primitive, Boolean_Result); WHERE WR1: NOT('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D' IN TYPEOF(SELF)); END_TYPE;
TYPE Basis_11_Direction_Member = SELECT (Cartesian_11, Curve_11, Cylindrical_11, Point_Array, Polar_11, User_Defined_11); END_TYPE;
TYPE Blend_End_Condition_Select = SELECT (Edge_Curve, Point_On_Curve, Vertex); END_TYPE;
TYPE Blend_Radius_Variation_Type = ENUMERATION OF (Linear_Blend, Cubic_Blend, Unspecified_Blend); END_TYPE;
TYPE Boolean_Operand = SELECT (Boolean_Result, Csg_Primitive, Half_Space_2d, Half_Space_Solid, Solid_Model); END_TYPE;
TYPE Boolean_Operand_2d = SELECT (Boolean_Result_2d, Bounded_Primitive_2d); END_TYPE;
TYPE Boolean_Operator = ENUMERATION OF (Union, Intersection, Difference); END_TYPE;
TYPE Boolean_Value = BOOLEAN; END_TYPE;
TYPE Bounded_Primitive_2d = SELECT (Area_With_Outer_Boundary, Circular_Area, Elliptic_Area, Path_Area_With_Parameters, Polygonal_Area, Rectangular_Area); END_TYPE;
TYPE Box_Characteristic_Select = SELECT (Box_Height, Box_Rotate_Angle, Box_Slant_Angle, Box_Width); 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 Camera_Model_D3_Multi_Clipping_Intersection_Select = SELECT (Camera_Model_D3_Multi_Clipping_Union, Plane); END_TYPE;
TYPE Camera_Model_D3_Multi_Clipping_Union_Select = SELECT (Camera_Model_D3_Multi_Clipping_Intersection, Plane); END_TYPE;
TYPE Capacitance_Measure = REAL; END_TYPE;
TYPE Category_Usage_Item = SELECT (Product_Class); END_TYPE;
TYPE Cc_Classified_Item = SELECT (Assembly_Component_Usage, Product_Definition_Formation); END_TYPE;
TYPE Cc_Person_Organization_Item = SELECT (Change, Change_Request, Configuration_Item, Contract, Product, Product_Definition, Product_Definition_Formation, Security_Classification, Start_Request, Start_Work); END_TYPE;
TYPE Cc_Specified_Item = SELECT (Product_Definition, Shape_Aspect); END_TYPE;
TYPE Celsius_Temperature_Measure = REAL; END_TYPE;
TYPE Central_Or_Parallel = ENUMERATION OF (Central, Parallel); END_TYPE;
TYPE Certification_Item = SELECT (Action_Method, Alternate_Product_Relationship, Analysis_Assignment, Applied_Action_Method_Assignment, Assembly_Component_Usage, Evidence, Executed_Action, Interface_Connection, Interface_Connector_Version, Interface_Definition_Connection, Interface_Specification_Version, Make_From_Usage_Option, Organizational_Project, Product, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Occurrence, Product_Definition_Occurrence_Reference, Product_Definition_Relationship, Product_Group, Product_Group_Relationship, Product_Identification, Product_Relationship, Requirement_View_Definition_Relationship); END_TYPE;
TYPE Certified_Item = SELECT (Supplied_Part_Relationship); END_TYPE;
TYPE Chained_Representation_Link = SELECT (Mapped_Item, Representation_Context, Representation_Relationship); END_TYPE;
TYPE Change_Management_Object = SELECT (Action, Action_Items, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Relationship, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Contract_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Assembly_Component_Usage, Assembly_Component_Usage_Substitute, Assignment_Object_Relationship, Breakdown_Of, Class, Condition, Conditional_Effectivity, Configuration_Effectivity, Contract, Date_And_Time_Assignment, Date_Assignment, Directed_Action_Assignment, Document_File, Effectivity, Event_Occurrence, Exclusive_Product_Concept_Feature_Category, Frozen_Assignment, General_Property_Relationship, Inclusion_Product_Concept_Feature, Material_Designation, Material_Designation_Characterization, Measure_Representation_Item, Organization, Organizational_Address, Organizational_Project, Organizational_Project_Relationship, Package_Product_Concept_Feature, Person, Person_And_Organization, Person_And_Organization_Address, Process_Operation, Process_Plan, Product, Product_Class, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Group_Assignment, Product_Definition_Occurrence, Product_Definition_Occurrence_Reference, Product_Definition_Relationship, Product_Definition_Substitute, Product_Identification, Product_Process_Plan, Project_Item, Property_Definition, Property_Definition_Representation, Representation_Relationship, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_View_Definition_Relationship, Value_Representation_Item); END_TYPE;
TYPE Change_Relationship_Select = SELECT (Action_Relationship, Alternative_Solution_Relationship, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Shape_Aspect_Relationship); END_TYPE;
TYPE Change_Request_Item = SELECT (Product_Definition_Formation); END_TYPE;
TYPE Character_Spacing_Select = SELECT (Descriptive_Measure, Length_Measure, Measure_With_Unit, Ratio_Measure); END_TYPE;
TYPE Character_Style_Select = SELECT (Character_Glyph_Style_Outline, Character_Glyph_Style_Stroke, Text_Style_For_Defined_Font); END_TYPE;
TYPE Characterized_Action_Definition = SELECT (Action, Action_Method, Action_Method_Relationship, Action_Relationship); END_TYPE;
TYPE Characterized_Definition = SELECT (Characterized_Item, Characterized_Object, Characterized_Product_Definition, Shape_Definition); END_TYPE;
TYPE Characterized_Item = SELECT (Dimensional_Size, Geometric_Tolerance, Item_Identified_Representation_Usage); END_TYPE;
TYPE Characterized_Material_Property = SELECT (Material_Property_Representation, Product_Material_Composition_Relationship); END_TYPE;
TYPE Characterized_Product_Composition_Value = SELECT (Measure_With_Unit); END_TYPE;
TYPE Characterized_Product_Definition = SELECT (Product_Definition, Product_Definition_Occurrence, Product_Definition_Relationship, Product_Definition_Relationship_Relationship); END_TYPE;
TYPE Characterized_Property_Representation = SELECT (Action_Property_Representation, Dimensional_Characteristic_Representation, Property_Definition_Representation, Resource_Property_Representation); END_TYPE;
TYPE Characterized_Resource_Definition = SELECT (Action_Resource, Action_Resource_Relationship, Action_Resource_Requirement); END_TYPE;
TYPE Chordal_Deviation = Positive_Length_Measure; END_TYPE;
TYPE Class_Usage_Effectivity_Context_Item = SELECT (Product_Definition); END_TYPE;
TYPE Classification_Item = SELECT (Action, Action_Directive, Action_Directive_Relationship, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Relationship, Action_Request_Solution, Action_Request_Status, Action_Resource, Action_Resource_Relationship, Address, Alternate_Product_Relationship, Alternative_Solution_Relationship, Analysis_Assignment, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment_Relationship, Applied_Contract_Assignment, Applied_Date_And_Time_Assignment, Applied_Date_Assignment, Applied_Description_Text_Assignment, Applied_Description_Text_Assignment_Relationship, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_External_Identification_Assignment_Relationship, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Approval, Approval_Person_Organization, Approval_Relationship, Approval_Status, Assembly_Component_Usage_Substitute, Assignment_Object_Relationship, Attribute_Language_Assignment, Breakdown_Context, Breakdown_Element_Realization, Breakdown_Of, Calendar_Date, Certification, Change_Element_Sequence, Change_Group, Characterized_Class, Characterized_Object, Class, Classified_Item, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configuration_Item_Relationship, Context_Dependent_Unit, Contract, Contract_Relationship, Conversion_Based_Unit, Date_And_Time, Date_And_Time_Assignment, Date_Assignment, Definitional_Representation_Relationship, Derived_Unit, Descriptive_Representation_Item, Directed_Action, Directed_Action_Assignment, Document_File, Document_Relationship, Document_Type, Effectivity, Effectivity_Relationship, Envelope, Envelope_Relationship, Evaluated_Characteristic, Event_Occurrence, Event_Occurrence_Relationship, Evidence, Executed_Action, Feature_Definition, General_Feature, General_Property, General_Property_Relationship, Generic_Property_Relationship, Group, Group_Relationship, Identification_Assignment, Identification_Assignment_Relationship, Information_Right, Information_Usage_Right, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Design, Interface_Connector_Design_To_Planned, Interface_Connector_Design_To_Realized, Interface_Connector_Occurrence, Interface_Connector_Planned_To_Realized, Interface_Definition_Connection, Interface_Definition_For, In_Zone, Language, Link_Motion_Relationship, Local_Time, Location, Location_Relationship, Material_Designation, Material_Designation_Characterization, Measure_Qualification, Measure_Representation_Item, Measure_With_Unit, Message_Relationship, Multi_Language_Attribute_Assignment, Named_Unit, Organization, Organizational_Address, Organizational_Project, Organizational_Project_Relationship, Organization_Relationship, Person, Person_And_Organization, Person_And_Organization_Address, Plus_Minus_Tolerance, Process_Operation, Process_Plan, Process_Product_Association, Product, Product_Concept, Product_Concept_Context, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Concept_Relationship, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Usage, Product_Definition_Usage_Relationship, Product_Design_To_Individual, Product_Design_Version_To_Individual, Product_Group, Product_Group_Membership, Product_Group_Relationship, Product_Process_Plan, Product_Relationship, Property_Definition, Property_Definition_Representation, Representation, Representation_Context, Representation_Item, Representation_Relationship, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Resource_Property, Retention, Satisfies_Requirement, Security_Classification, Security_Classification_Level, Shape_Aspect, Shape_Aspect_Relationship, Shape_Feature_Definition_Relationship, State_Definition_To_State_Assignment_Relationship, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Observed_Role, State_Type, State_Type_Assignment, State_Type_Relationship, Structured_Message, Time_Interval_Relationship, Type_Qualifier, Uncertainty_Measure_With_Unit, Usage_Association, Validation, Verification, Versioned_Action_Request, Versioned_Action_Request_Relationship); END_TYPE;
TYPE Classified_Item = SELECT (Product, Product_Definition, Product_Definition_Formation); END_TYPE;
TYPE Closed_Or_Open_Shell_Select = SELECT (Closed_Shell, Open_Shell); END_TYPE;
TYPE Colour_Type_Enum = ENUMERATION OF (Rgb8, Rgbt8); END_TYPE;
TYPE Common_Datum_List = LIST[2:?] OF Datum_Reference_Element; WHERE WR1: SIZEOF( QUERY(dre <* SELF | dre\Shape_Aspect.of_shape <> SELF[1]\Shape_Aspect.of_shape)) = 0; END_TYPE;
TYPE Compound_Inner_Area_Boundary = SELECT (Set_Inner_Area_Boundary); END_TYPE;
TYPE Compound_Item_Definition = SELECT (List_Representation_Item, Set_Representation_Item); END_TYPE;
TYPE Conductance_Measure = REAL; END_TYPE;
TYPE Configuration_Design_Item = SELECT (Product_Definition, Product_Definition_Formation, Product_Definition_Occurrence); END_TYPE;
TYPE Configured_Effectivity_Context_Item = SELECT (Product_Concept_Feature_Association); END_TYPE;
TYPE Configured_Effectivity_Item = SELECT (Action_Relationship, Process_Plan, Product_Definition, Product_Process_Plan); END_TYPE;
TYPE Connected_Edge_With_Length_Set_Items = SELECT (Connected_Edge_Set, Path, Vertex_On_Edge); END_TYPE;
TYPE Constraint_Group_Member = SELECT (Explicit_Constraint, Simultaneous_Constraint_Group); END_TYPE;
TYPE Constructive_Geometry_Representation_Or_Shape_Representation = SELECT (Constructive_Geometry_Representation, Shape_Representation); END_TYPE;
TYPE Context_Dependent_Measure = REAL; END_TYPE;
TYPE Contract_Item = SELECT (Action_Directive, Action_Method, Action_Method_Relationship, Alternate_Product_Relationship, Applied_Action_Method_Assignment, Applied_Classification_Assignment, Applied_Description_Text_Assignment, Applied_External_Identification_Assignment, Applied_Identification_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Directed_Action, Drawing_Revision, Executed_Action, Information_Usage_Right, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Design, Organization, Organizational_Project, Person_And_Organization, Product, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Group, Product_Group_Relationship, Product_Identification, Requirement_Assignment, Requirement_Source, Security_Classification, Structured_Message, Validation, Verification, Versioned_Action_Request); END_TYPE;
TYPE Contracted_Item = SELECT (Product_Definition_Formation); END_TYPE;
TYPE Count_Measure = NUMBER; END_TYPE;
TYPE Csg_2d_Area_Select = SELECT (Axis2_Placement_2d, Csg_Primitive_Solid_2d); END_TYPE;
TYPE Csg_2d_Shape_Select = SELECT (Axis2_Placement_2d, Csg_Solid_2d, Mapped_Item); END_TYPE;
TYPE Csg_Primitive = SELECT (Block, Bounded_Primitive_2d, Cyclide_Segment_Solid, Eccentric_Cone, Ellipsoid, Faceted_Primitive, Rectangular_Pyramid, Right_Angular_Wedge, Right_Circular_Cone, Right_Circular_Cylinder, Sphere, Torus); END_TYPE;
TYPE Csg_Select = SELECT (Boolean_Result, Csg_Primitive); END_TYPE;
TYPE Csg_Select_2d = SELECT (Boolean_Result_2d, Bounded_Primitive_2d); END_TYPE;
TYPE Current_Element_Assignment_Select = SELECT (Add_Element, Modify_Element); END_TYPE;
TYPE Curve_Font_Or_Scaled_Curve_Font_Select = SELECT (Curve_Style_Font_And_Scaling, Curve_Style_Font_Select); END_TYPE;
TYPE Curve_On_Surface = SELECT (Composite_Curve_On_Surface, Pcurve, Surface_Curve); END_TYPE;
TYPE Curve_Or_Annotation_Curve_Occurrence = SELECT (Annotation_Curve_Occurrence, Curve); END_TYPE;
TYPE Curve_Or_Curve_Set = SELECT (Curve, Geometric_Curve_Set); END_TYPE;
TYPE Curve_Or_Render = SELECT (Curve_Style, Curve_Style_Rendering); END_TYPE;
TYPE Curve_Or_Surface_Constraint_Element = SELECT (Curve, Surface); END_TYPE;
TYPE Curve_Style_Font_Select = SELECT (Curve_Style_Font, Externally_Defined_Curve_Font, Pre_Defined_Curve_Font); END_TYPE;
TYPE Curves_Or_Area = ENUMERATION OF (Curves, Area); END_TYPE;
TYPE Date_And_Time_Item = SELECT (Action, Action_Directive, Action_Method, Action_Property, Action_Relationship, Action_Request_Solution, Alternate_Product_Relationship, Analysis_Assignment, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_Identification_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Usage_Right, Approval, Approval_Person_Organization, Approval_Status, Ascribable_State, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Item, Configured_Effectivity_Assignment, Contract, Data_Equivalence_Definition, Data_Quality_Definition, Date_And_Time_Assignment, Date_Assignment, Directed_Action, Document, Document_File, Draughting_Model, Drawing_Revision, Effectivity, Envelope, Event_Occurrence, Evidence, Executed_Action, General_Property, General_Property_Relationship, Information_Usage_Right, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Design_To_Planned, Interface_Connector_Design_To_Realized, Interface_Connector_Occurrence, Interface_Connector_Planned_To_Realized, Interface_Definition_Connection, Interface_Definition_For, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organizational_Address, Organizational_Project, Organization_Relationship, Person, Person_And_Organization, Presentation_Area, Product, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Substitute, Product_Group, Product_Group_Membership, Product_Group_Relationship, Product_Identification, Property_Definition, Property_Definition_Representation, Representation, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Resource_Property, Rule_Action, Security_Classification, Security_Classification_Level, Shape_Representation, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Type, State_Type_Assignment, State_Type_Relationship, Structured_Message, Validation, Verification, Verification_Relationship, Versioned_Action_Request); END_TYPE;
TYPE Date_Item = SELECT (Action, Action_Directive, Action_Method, Action_Property, Action_Relationship, Action_Request_Solution, Alternate_Product_Relationship, Analysis_Assignment, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_Identification_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Usage_Right, Approval, Approval_Person_Organization, Approval_Status, Ascribable_State, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Item, Configured_Effectivity_Assignment, Contract, Data_Equivalence_Definition, Data_Quality_Definition, Date_And_Time_Assignment, Date_Assignment, Directed_Action, Document, Document_File, Draughting_Model, Drawing_Revision, Effectivity, Envelope, Event_Occurrence, Evidence, Executed_Action, General_Property, General_Property_Relationship, Information_Usage_Right, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Design_To_Planned, Interface_Connector_Design_To_Realized, Interface_Connector_Occurrence, Interface_Connector_Planned_To_Realized, Interface_Definition_Connection, Interface_Definition_For, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organizational_Address, Organizational_Project, Organization_Relationship, Person, Person_And_Organization, Presentation_Area, Product, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Substitute, Product_Group, Product_Group_Membership, Product_Group_Relationship, Product_Identification, Property_Definition, Property_Definition_Representation, Representation, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Resource_Property, Security_Classification, Security_Classification_Level, Shape_Representation, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Type, State_Type_Assignment, State_Type_Relationship, Structured_Message, Validation, Verification, Verification_Relationship, Versioned_Action_Request); END_TYPE;
TYPE Date_Time_Item = SELECT (Approval_Person_Organization, Certification, Change, Change_Request, Contract, Product_Definition, Security_Classification, Start_Request, Start_Work); END_TYPE;
TYPE Date_Time_Or_Event_Occurrence = SELECT (Date_Time_Select, Event_Occurrence); END_TYPE;
TYPE Date_Time_Select = SELECT (Date, Date_And_Time, Local_Time); END_TYPE;
TYPE Datum_Or_Common_Datum = SELECT (Common_Datum_List, Datum); END_TYPE;
TYPE Datum_Reference_Modifier = SELECT (Datum_Reference_Modifier_With_Value, Simple_Datum_Reference_Modifier); END_TYPE;
TYPE Datum_Reference_Modifier_Type = ENUMERATION OF (Circular_Or_Cylindrical, Distance, Projected, Spherical); END_TYPE;
TYPE Datum_System_Or_Reference = SELECT (Datum_Reference, Datum_System); END_TYPE;
TYPE Day_In_Month_Number = INTEGER; WHERE WR1: {1 <= SELF <= 31}; END_TYPE;
TYPE Day_In_Week_Number = INTEGER; WHERE WR1: { 1 <= SELF <= 7 }; END_TYPE;
TYPE Day_In_Year_Number = INTEGER; WHERE WR1: {1 <= SELF <= 366}; END_TYPE;
TYPE Defined_Glyph_Select = SELECT (Externally_Defined_Character_Glyph, Pre_Defined_Character_Glyph); END_TYPE;
TYPE Defined_Symbol_Select = SELECT (Externally_Defined_Symbol, Pre_Defined_Symbol); END_TYPE;
TYPE Derived_Property_Select = SELECT (Action_Property, Dimensional_Location, Dimensional_Size, Geometric_Tolerance, Property_Definition, Resource_Property); END_TYPE;
TYPE Description_Attribute_Select = SELECT (Action_Request_Solution, Application_Context, Approval_Role, Configuration_Design, Context_Dependent_Shape_Representation, Date_Role, Date_Time_Role, Effectivity, External_Source, Organizational_Project, Organization_Role, Person_And_Organization, Person_And_Organization_Role, Property_Definition_Representation, Representation); END_TYPE;
TYPE Description_Item = SELECT (Action, Action_Directive, Action_Directive_Relationship, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Relationship, Address, Alternate_Product_Relationship, Alternative_Solution_Relationship, Analysis_Representation_Context, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Classification_Assignment_Relationship, Applied_Contract_Assignment, Applied_Description_Text_Assignment, Applied_Description_Text_Assignment_Relationship, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_External_Identification_Assignment_Relationship, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Location_Assignment, Applied_Location_Representation_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_State_Observed_Assignment, Applied_State_Type_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Approval, Approval_Relationship, Ascribable_State, Ascribable_State_Relationship, Assembly_Component_Usage_Substitute, Assignment_Object_Relationship, Breakdown_Element_Group_Assignment, Certification, Change_Element_Sequence, Change_Group, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configuration_Item_Relationship, Contract, Contract_Relationship, Data_Environment, Date_And_Time_Assignment, Date_Assignment, Directed_Action_Assignment, Document_File, Document_Relationship, Effectivity, Effectivity_Relationship, Envelope, Envelope_Relationship, Evaluated_Characteristic, Event_Occurrence, Event_Occurrence_Relationship, Exclusive_Product_Concept_Feature_Category, General_Property, General_Property_Relationship, Generic_Property_Relationship, Geometric_Item_Specific_Usage, Global_Uncertainty_Assigned_Context, Global_Unit_Assigned_Context, Group, Group_Relationship, Location, Location_Relationship, Material_Designation_Characterization, Measure_Qualification, Measure_With_Unit, Message_Relationship, Organization, Organizational_Address, Organizational_Project, Organizational_Project_Relationship, Organization_Relationship, Organization_Type, Package_Product_Concept_Feature, Person, Person_And_Organization, Person_And_Organization_Address, Process_Operation, Process_Plan, Process_Product_Association, Product, Product_Concept, Product_Concept_Context, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Concept_Relationship, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Group_Assignment, Product_Definition_Relationship, Product_Definition_Usage, Product_Definition_Usage_Relationship, Product_Group_Membership, Product_Group_Relationship, Product_Process_Plan, Product_Relationship, Property_Definition, Property_Definition_Representation, Representation, Representation_Context, Representation_Item, Representation_Relationship, Requirement_For_Action_Resource, Retention, Satisfies_Requirement, Security_Classification, Shape_Aspect, Shape_Aspect_Relationship, Shape_Feature_Definition, Shape_Feature_Definition_Relationship, State_Definition_To_State_Assignment_Relationship, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Observed_Role, State_Type, State_Type_Assignment, State_Type_Relationship, State_Type_Role, Structured_Message, Time_Interval, Time_Interval_Relationship, Uncertainty_Measure_With_Unit, Uncertainty_Qualifier, Usage_Association, Verification_Relationship, Versioned_Action_Request, Versioned_Action_Request_Relationship); END_TYPE;
TYPE Descriptive_Measure = STRING; END_TYPE;
TYPE Detailed_Report_Style_Type = ENUMERATION OF (Inspected_Element, Defective_Element); END_TYPE;
TYPE Detailed_Report_Type = ENUMERATION OF (Measured_Element, Inferior_Quality_Element); END_TYPE;
TYPE Dimension_Count = INTEGER; WHERE WR1: SELF > 0; END_TYPE;
TYPE Dimension_Extent_Usage = ENUMERATION OF (Origin, Target); END_TYPE;
TYPE Dimensional_Characteristic = SELECT (Dimensional_Location, Dimensional_Size); END_TYPE;
TYPE Directed_Tolerance_Zone_Type = ENUMERATION OF (Perpendicular, Parallel, Including); END_TYPE;
TYPE Direction_Count_Select = SELECT (U_Direction_Count, V_Direction_Count); END_TYPE;
TYPE Document_Identifier_Assigned_Item = SELECT (Document); END_TYPE;
TYPE Document_Reference_Item = SELECT (Action_Directive, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Relationship, Analysis_Assignment, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Description_Text_Assignment, Applied_Description_Text_Assignment_Relationship, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Approval, Approval_Person_Organization, Approval_Relationship, Assembly_Component_Usage, Assembly_Component_Usage_Substitute, Breakdown_Context, Breakdown_Of, Certification, Change_Group, Characterized_Class, Characterized_Object, Class, Class_System, Condition, Configuration_Design, Configuration_Item, Contract, Contract_Relationship, Date_And_Time_Assignment, Date_Assignment, Descriptive_Representation_Item, Dimensional_Size, Directed_Action_Assignment, Document_Relationship, Effectivity, Effectivity_Relationship, Evaluated_Characteristic_Of_Product_As_Individual_Test_Result, Evidence, Exclusive_Product_Concept_Feature_Category, Executed_Action, Externally_Conditioned_Data_Quality_Criterion, Externally_Defined_Dimension_Definition, Externally_Defined_Item, Feature_Definition, Frozen_Assignment, General_Property, General_Property_Relationship, Group, Group_Relationship, Identification_Assignment_Relationship, Information_Right, Information_Usage_Right, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Design, Interface_Connector_Design_To_Planned, Interface_Connector_Design_To_Realized, Interface_Connector_Occurrence, Interface_Connector_Planned_To_Realized, Interface_Definition_Connection, In_Zone, Material_Designation, Material_Designation_Characterization, Measure_Representation_Item, Organization, Organizational_Address, Organizational_Project, Organizational_Project_Relationship, Organization_Relationship, Package_Product_Concept_Feature, Person, Person_And_Organization, Person_And_Organization_Address, Presentation_Area, Process_Plan, Product, Product_Category, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Group_Assignment, Product_Definition_Process, Product_Definition_Relationship, Product_Definition_Substitute, Product_Definition_Usage, Product_Design_To_Individual, Product_Design_Version_To_Individual, Product_Group, Product_Group_Membership, Product_Group_Relationship, Product_Process_Plan, Product_Related_Product_Category, Product_Relationship, Property_Definition, Property_Definition_Representation, Representation, Representation_Item, Representation_Relationship, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Resource_Requirement_Type, Retention, Rule_Set, Security_Classification, Shape_Aspect, Shape_Aspect_Relationship, State_Observed, State_Type, Structured_Message, Time_Interval, Time_Interval_Relationship, Usage_Association, Validation, Value_Representation_Item, Verification, Verification_Relationship, Versioned_Action_Request); END_TYPE;
TYPE Dose_Equivalent_Measure = REAL; END_TYPE;
TYPE Draughting_Callout_Element = SELECT (Annotation_Curve_Occurrence, Annotation_Fill_Area_Occurrence, Annotation_Placeholder_Occurrence, Annotation_Symbol_Occurrence, Annotation_Text_Occurrence, Tessellated_Annotation_Occurrence); END_TYPE;
TYPE Draughting_Model_Item_Association_Select = SELECT (Annotation_Occurrence, Draughting_Callout); END_TYPE;
TYPE Draughting_Model_Item_Definition = SELECT (Angularity_Tolerance, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Date_And_Time_Assignment, Applied_Date_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_Group_Assignment, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Name_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Circular_Runout_Tolerance, Coaxiality_Tolerance, Concentricity_Tolerance, Cylindricity_Tolerance, Dimensional_Location, Dimensional_Size, Flatness_Tolerance, Geometric_Tolerance, Geometric_Tolerance_With_Datum_Reference, Geometric_Tolerance_With_Defined_Area_Unit, Geometric_Tolerance_With_Defined_Unit, Geometric_Tolerance_With_Maximum_Tolerance, Geometric_Tolerance_With_Modifiers, Line_Profile_Tolerance, Modified_Geometric_Tolerance, Parallelism_Tolerance, Perpendicularity_Tolerance, Position_Tolerance, Product_Definition_Relationship, Product_Definition_Shape, Property_Definition, Roundness_Tolerance, Shape_Aspect, Shape_Aspect_Relationship, Straightness_Tolerance, Surface_Profile_Tolerance, Symmetry_Tolerance, Total_Runout_Tolerance, Unequally_Disposed_Geometric_Tolerance); END_TYPE;
TYPE Draughting_Model_Item_Select = SELECT (Axis2_Placement, Camera_Model, Draughting_Callout, Mapped_Item, Styled_Item); END_TYPE;
TYPE Draughting_Subfigure_Representation_Item = SELECT (Annotation_Occurrence, Axis2_Placement, Draughting_Callout); END_TYPE;
TYPE Draughting_Symbol_Representation_Item = SELECT (Annotation_Curve_Occurrence, Annotation_Fill_Area_Occurrence, Annotation_Symbol_Occurrence, Annotation_Text_Occurrence, Axis2_Placement); END_TYPE;
TYPE Draughting_Titled_Item = SELECT (Drawing_Revision, Drawing_Sheet_Revision); END_TYPE;
TYPE Edge_Or_Curve = SELECT (Curve, Edge); END_TYPE;
TYPE Effectivity_Item = SELECT (Action, Action_Directive, Action_Directive_Relationship, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Relationship, Alternative_Solution_Relationship, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment_Relationship, Applied_Contract_Assignment, Applied_Description_Text_Assignment, Applied_Description_Text_Assignment_Relationship, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_External_Identification_Assignment_Relationship, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Approval_Relationship, Assembly_Component_Usage_Substitute, Assignment_Object_Relationship, Breakdown_Of, Class, Class_System, Condition, Conditional_Effectivity, Configuration_Design, Configuration_Item, Configuration_Item_Relationship, Configured_Effectivity_Assignment, Contract, Date_And_Time_Assignment, Date_Assignment, Directed_Action_Assignment, Document_File, Document_Relationship, Draughting_Model, Drawing_Revision, Effectivity_Relationship, Event_Occurrence_Relationship, Evidence, Exclusive_Product_Concept_Feature_Category, Executed_Action, Externally_Defined_General_Property, Frozen_Assignment, General_Property, General_Property_Relationship, Generic_Property_Relationship, Group, Identification_Assignment_Relationship, Inclusion_Product_Concept_Feature, Interface_Connection, Interface_Connector_Design_To_Planned, Interface_Connector_Design_To_Realized, Interface_Connector_Occurrence, Interface_Connector_Planned_To_Realized, Interface_Definition_For, In_Zone, Link_Motion_Relationship, Material_Designation, Material_Designation_Characterization, Measure_Representation_Item, Mechanical_Design_Geometric_Presentation_Representation, Multi_Language_Attribute_Assignment, Organization, Organizational_Address, Organizational_Project, Organizational_Project_Relationship, Organization_Relationship, Package_Product_Concept_Feature, Person_And_Organization, Person_And_Organization_Address, Presentation_Area, Process_Operation, Process_Plan, Product, Product_Class, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Concept_Relationship, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Substitute, Product_Definition_Usage, Product_Definition_Usage_Relationship, Product_Design_To_Individual, Product_Design_Version_To_Individual, Product_Group, Product_Group_Membership, Product_Group_Relationship, Product_Identification, Product_Process_Plan, Product_Relationship, Property_Definition, Property_Definition_Representation, Representation, Representation_Relationship, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Resource_Property, Security_Classification, Shape_Aspect, Shape_Aspect_Relationship, Shape_Representation, Structured_Message, Time_Interval_Relationship, Usage_Association, Validation, Value_Representation_Item, Verification, Verification_Relationship, Versioned_Action_Request_Relationship); END_TYPE;
TYPE Electric_Charge_Measure = REAL; END_TYPE;
TYPE Electric_Current_Measure = REAL; END_TYPE;
TYPE Electric_Potential_Measure = REAL; END_TYPE;
TYPE Elementary_Function_Enumerators = ENUMERATION OF (Ef_And, Ef_Or, Ef_Not, Ef_Xor, Ef_Negate_I, Ef_Add_I, Ef_Subtract_I, Ef_Multiply_I, Ef_Divide_I, Ef_Mod_I, Ef_Exponentiate_I, Ef_Eq_I, Ef_Ne_I, Ef_Gt_I, Ef_Lt_I, Ef_Ge_I, Ef_Le_I, Ef_Abs_I, Ef_Max_I, Ef_Min_I, Ef_If_I, Ef_Negate_R, Ef_Reciprocal_R, Ef_Add_R, Ef_Subtract_R, Ef_Multiply_R, Ef_Divide_R, Ef_Mod_R, Ef_Exponentiate_R, Ef_Exponentiate_Ri, Ef_Eq_R, Ef_Ne_R, Ef_Gt_R, Ef_Lt_R, Ef_Ge_R, Ef_Le_R, Ef_Abs_R, Ef_Max_R, Ef_Min_R, Ef_Acos_R, Ef_Asin_R, Ef_Atan2_R, Ef_Cos_R, Ef_Exp_R, Ef_Ln_R, Ef_Log2_R, Ef_Log10_R, Ef_Sin_R, Ef_Sqrt_R, Ef_Tan_R, Ef_If_R, Ef_Form_C, Ef_Rpart_C, Ef_Ipart_C, Ef_Negate_C, Ef_Reciprocal_C, Ef_Add_C, Ef_Subtract_C, Ef_Multiply_C, Ef_Divide_C, Ef_Exponentiate_C, Ef_Exponentiate_Ci, Ef_Eq_C, Ef_Ne_C, Ef_Conjugate_C, Ef_Abs_C, Ef_Arg_C, Ef_Cos_C, Ef_Exp_C, Ef_Ln_C, Ef_Sin_C, Ef_Sqrt_C, Ef_Tan_C, Ef_If_C, Ef_Subscript_S, Ef_Eq_S, Ef_Ne_S, Ef_Gt_S, Ef_Lt_S, Ef_Ge_S, Ef_Le_S, Ef_Subsequence_S, Ef_Concat_S, Ef_Size_S, Ef_Format, Ef_Value, Ef_Like, Ef_If_S, Ef_Subscript_B, Ef_Eq_B, Ef_Ne_B, Ef_Gt_B, Ef_Lt_B, Ef_Ge_B, Ef_Le_B, Ef_Subsequence_B, Ef_Concat_B, Ef_Size_B, Ef_If_B, Ef_Subscript_T, Ef_Eq_T, Ef_Ne_T, Ef_Concat_T, Ef_Size_T, Ef_Entuple, Ef_Detuple, Ef_Insert, Ef_Remove, Ef_If_T, Ef_Sum_It, Ef_Product_It, Ef_Add_It, Ef_Subtract_It, Ef_Scalar_Mult_It, Ef_Dot_Prod_It, Ef_Sum_Rt, Ef_Product_Rt, Ef_Add_Rt, Ef_Subtract_Rt, Ef_Scalar_Mult_Rt, Ef_Dot_Prod_Rt, Ef_Norm_Rt, Ef_Sum_Ct, Ef_Product_Ct, Ef_Add_Ct, Ef_Subtract_Ct, Ef_Scalar_Mult_Ct, Ef_Dot_Prod_Ct, Ef_Norm_Ct, Ef_If, Ef_Ensemble, Ef_Member_Of); END_TYPE;
TYPE Elementary_Space_Enumerators = ENUMERATION OF (Es_Numbers, Es_Complex_Numbers, Es_Reals, Es_Integers, Es_Logicals, Es_Booleans, Es_Strings, Es_Binarys, Es_Maths_Spaces, Es_Maths_Functions, Es_Generics); END_TYPE;
TYPE Energy_Measure = REAL; END_TYPE;
TYPE Equivalence_Detected_Difference_Select = SELECT (A3ms_Inspected_Equivalence_Element_Select, Area_Measure, Assembly_Component_Usage, Binary_Assembly_Constraint, Cartesian_Point, Connected_Face_Set, Context_Dependent_Shape_Representation, Count_Measure, Edge, Face, Length_Measure, Multi_Level_Reference_Designator, Point_On_Curve, Point_On_Surface, Volume_Measure); END_TYPE;
TYPE Equivalence_Measured_Value_Select = SELECT (A3ma_Length_Measure_And_Context_Dependent_Measure_Pair, Area_Measure, Boolean_Value, Context_Dependent_Measure, Length_Measure, Plane_Angle_Measure, Volume_Measure); END_TYPE;
TYPE Equivalence_Product_Data_Select = SELECT (Product_Definition_Or_Reference, Product_Definition_Relationship); END_TYPE;
TYPE Event_Occurrence_Item = SELECT (Action, Action_Directive, Action_Method, Action_Property, Action_Request_Solution, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Classification_Assignment, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Draughting_Model, Drawing_Revision, Executed_Action, General_Organizational_Data_Select, General_Property, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organizational_Project, Organization_Relationship, Person_And_Organization, Presentation_Area, Product, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Substitute, Property_Definition, Requirement_For_Action_Resource, Resource_Property, Security_Classification_Level, Shape_Representation); END_TYPE;
TYPE Evidence_Item = SELECT (Action_Property, Action_Property_Representation, Analysis_Assignment, Applied_Action_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Date_And_Time_Assignment, Date_Assignment, Measure_Representation_Item, Person, Person_And_Organization, Product, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Relationship, Property_Definition, Property_Definition_Representation, Representation, Representation_Context, Representation_Item, State_Type, Structured_Message, Validation, Value_Representation_Item, Verification); END_TYPE;
TYPE Expression_Extension_Select = SELECT (Expression_Extension_Numeric, Expression_Extension_String); END_TYPE;
TYPE Extension_Options = ENUMERATION OF (Eo_None, Eo_Cont, Eo_Cont_Right, Eo_Cont_Left); END_TYPE;
TYPE External_Identification_Item = SELECT (Action_Directive, Action_Method, Action_Method_Relationship, Action_Relationship, Action_Request_Status, Address, Analysis_Model, Analysis_Representation_Context, Applied_Action_Method_Assignment, Applied_Classification_Assignment, Applied_External_Identification_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Approval, Approval_Person_Organization, Approval_Status, Assembly_Bond_Definition, Assembly_Joint, Assembly_Component_Usage, Breakdown_Context, Certification, Class, Composite_Curve, Condition, Configuration_Effectivity, Contract, Curve, Date_And_Time_Assignment, Date_Assignment, Derived_Unit, Document_File, Effectivity, Evaluated_Characteristic_Of_Product_As_Individual_Test_Result, Event_Occurrence, Evidence, Exclusive_Product_Concept_Feature_Category, Executed_Action, Externally_Defined_Class, Externally_Defined_Context_Dependent_Unit, Externally_Defined_Conversion_Based_Unit, Externally_Defined_General_Property, Externally_Defined_Picture_Representation_Item, Externally_Defined_Representation_Item, External_Source, General_Property, Generic_Product_Definition_Reference, Group, Information_Right, Information_Usage_Right, Interface_Connection, Interface_Connector_Definition, Interface_Connector_Occurrence, Interface_Connector_Version, Interface_Definition_Connection, Interface_Definition_For, Interface_Specification_Definition, Interface_Specification_Version, Loop, Material_Designation, Named_Unit, Organization, Organizational_Address, Organizational_Project, Oriented_Surface, Package_Product_Concept_Feature, Person, Person_And_Organization, Point_On_Curve, Precision_Qualifier, Process_Operation, Process_Plan, Product, Product_Concept, Product_Concept_Context, Product_Concept_Feature, Product_Concept_Feature_Category, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Occurrence, Product_Definition_Occurrence_Reference, Product_Group, Product_Identification, Product_Process_Plan, Product_Specification, Property_Definition, Representation, Representation_Item, Requirement_Source, Satisfies_Requirement, Security_Classification, Shape_Representation, State_Observed, State_Type, Structured_Message, Surface, Time_Interval, Trimmed_Curve, Type_Qualifier, Uncertainty_Qualifier, Validation, Verification, Versioned_Action_Request, Vertex_Point); END_TYPE;
TYPE Face_Or_Surface = SELECT (Face, Surface); END_TYPE;
TYPE Fill_Area_Style_Tile_Shape_Select = SELECT (Externally_Defined_Tile, Fill_Area_Style_Tile_Coloured_Region, Fill_Area_Style_Tile_Curve_With_Style, Fill_Area_Style_Tile_Symbol_With_Style, Pre_Defined_Tile); END_TYPE;
TYPE Fill_Style_Select = SELECT (Externally_Defined_Hatch_Style, Externally_Defined_Tile_Style, Fill_Area_Style_Colour, Fill_Area_Style_Hatching, Fill_Area_Style_Tiles, Texture_Style_Specification); END_TYPE;
TYPE Font_Select = SELECT (Externally_Defined_Text_Font, Pre_Defined_Text_Font, Text_Font); END_TYPE;
TYPE Force_Measure = REAL; END_TYPE;
TYPE Founded_Item_Select = SELECT (Founded_Item, Representation_Item); END_TYPE;
TYPE Frequency_Measure = REAL; END_TYPE;
TYPE General_Organizational_Data_Select = SELECT (Action_Directive, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Relationship, Action_Request_Solution, Alternate_Product_Relationship, Alternative_Solution_Relationship, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Description_Text_Assignment, Applied_Description_Text_Assignment_Relationship, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Approval, Approval_Person_Organization, Approval_Relationship, Approval_Status, Assembly_Component_Usage, Assembly_Component_Usage_Substitute, Breakdown_Element_Group_Assignment, Breakdown_Element_Realization, Breakdown_Of, Certification, Characterized_Product_Concept_Feature, Characterized_Product_Concept_Feature_Category, Class, Class_System, Condition, Conditional_Concept_Feature, Conditional_Effectivity, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Date_And_Time_Assignment, Date_Assignment, Directed_Action_Assignment, Document_File, Drawing_Revision, Drawing_Sheet_Revision, Effectivity, Evaluated_Characteristic_Of_Product_As_Individual_Test_Result, Exclusive_Product_Concept_Feature_Category, Executed_Action, Frozen_Assignment, General_Property, General_Property_Relationship, Group, Group_Relationship, Identification_Assignment_Relationship, Inclusion_Product_Concept_Feature, Information_Usage_Right, Material_Designation, Material_Designation_Characterization, Measure_Representation_Item, Organization, Organizational_Address, Organizational_Project, Organization_Relationship, Package_Product_Concept_Feature, Person, Person_And_Organization, Person_And_Organization_Address, Presentation_Area, Process_Operation, Process_Plan, Product, Product_Class, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Group_Assignment, Product_Definition_Occurrence, Product_Definition_Occurrence_Reference, Product_Definition_Relationship, Product_Definition_Substitute, Product_Definition_Usage, Product_Design_To_Individual, Product_Design_Version_To_Individual, Product_Process_Plan, Product_Relationship, Property_Definition, Property_Definition_Representation, Representation, Representation_Item, Representation_Relationship, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Requirement_View_Definition_Relationship, Security_Classification, Shape_Representation, Value_Representation_Item, Versioned_Action_Request); END_TYPE;
TYPE Generalized_Surface_Select = SELECT (Face_Surface, Surface, Surfaced_Open_Shell); END_TYPE;
TYPE Generic_Property_Definition_Select = SELECT (Action_Property, Dimensional_Location, Dimensional_Size, Property_Definition, Resource_Property); END_TYPE;
TYPE Geometric_Constraint_Element = SELECT (Curve, Direction, Point, Surface, Vector); END_TYPE;
TYPE Geometric_Item_Specific_Usage_Select = SELECT (Shape_Aspect, Shape_Aspect_Relationship); END_TYPE;
TYPE Geometric_Model_Item = SELECT (Connected_Face_Set, Edge_Loop, Geometric_Representation_Item); END_TYPE;
TYPE Geometric_Set_Select = SELECT (Annotation_Text, Curve, Placement, Planar_Box, Point, Surface); END_TYPE;
TYPE Geometric_Tolerance_Auxiliary_Classification_Enum = ENUMERATION OF (All_Over, Unless_Otherwise_Specified); END_TYPE;
TYPE Geometric_Tolerance_Modifier = ENUMERATION OF (Any_Cross_Section, Associated_Least_Square_Feature, Associated_Maximum_Inscribed_Feature, Associated_Minimum_Inscribed_Feature, Associated_Minmax_Feature, Associated_Tangent_Feature, Circle_A, Common_Zone, Each_Radial_Element, Free_State, Least_Material_Requirement, Line_Element, Major_Diameter, Maximum_Material_Requirement, Minor_Diameter, Not_Convex, Peak_Height, Pitch_Diameter, Reciprocity_Requirement, Reference_Least_Square_Feature_With_External_Material_Constraint, Reference_Least_Square_Feature_With_Internal_Material_Constraint, Reference_Least_Square_Feature_Without_Constraint, Reference_Maximum_Inscribed_Feature, Reference_Minimax_Feature_With_External_Material_Constraint, Reference_Minimax_Feature_With_Internal_Material_Constraint, Reference_Minimax_Feature_Without_Constraint, Reference_Minimum_Circumscribed_Feature, Separate_Requirement, Standard_Deviation, Statistical_Tolerance, Tangent_Plane, Total_Range_Deviations, United_Feature, Valley_Depth); END_TYPE;
TYPE Geometric_Tolerance_Target = SELECT (Dimensional_Location, Dimensional_Size, Product_Definition_Shape, Shape_Aspect); END_TYPE;
TYPE Gps_Filtration_Specification_Target = SELECT (Geometric_Tolerance); END_TYPE;
TYPE Gps_Filtration_Type = SELECT (Geometric_Tolerance_Modifier); END_TYPE;
TYPE Groupable_Item = SELECT ( Address, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Attribute_Classification_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Description_Text_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_Group_Assignment, Applied_Identification_Assignment, Applied_Location_Assignment, Applied_Location_Representation_Assignment, Applied_Name_Assignment, Applied_Organization_Assignment, Applied_Organization_Type_Assignment, Applied_Organizational_Project_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Approval, Approval_Person_Organization, Approval_Relationship, Approval_Status, Ascribable_State, Ascribable_State_Relationship, Assembly_Component_Usage, Assembly_Component_Usage_Substitute, Attribute_Language_Assignment, Breakdown_Element_Group_Assignment, Calendar_Date, Certification, Component_Feature, Configuration_Design, Configuration_Item, Configuration_Item_Relationship, Context_Dependent_Shape_Representation, Contract, Contract_Relationship, Coordinated_Universal_Time_Offset, Date_And_Time, Date_And_Time_Assignment, Date_Assignment, Derived_Unit, Derived_Unit_Element, Description_Text, Document_File, Document_Relationship, Effectivity, Effectivity_Relationship, Event_Occurrence, Event_Occurrence_Relationship, Evidence, External_Source, General_Property, General_Property_Relationship, Geometric_Item_Specific_Usage, Geometric_Representation_Item, Group_Relationship, Instanced_Feature, Interface_Connector_Definition, Interface_Definition_Connection, Interface_Definition_For, Item_Defined_Transformation, Local_Time, Mapped_Item, Measure_Qualification, Measure_With_Unit, Multi_Language_Attribute_Assignment, Named_Unit, Organization, Organization_Relationship, Organization_Type, Organizational_Project, Organizational_Project_Relationship, Package_Product_Concept_Feature, Person, Person_And_Organization, Precision_Qualifier, Product, Product_Concept, Product_Concept_Context, Product_Concept_Feature, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Group_Assignment, Product_Definition_Relationship, Product_Group_Membership, Product_Group_Relationship, Product_Relationship, Property_Definition, Property_Definition_Representation, Replicate_Feature, Representation, Representation_Context, Representation_Item, Representation_Relationship, Representation_Relationship_With_Transformation, Security_Classification, Shape_Aspect, Shape_Aspect_Relationship, Shape_Representation_Relationship, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Observed_Role, State_Type, State_Type_Assignment, State_Type_Relationship, Styled_Item, Time_Interval, Time_Interval_Assignment, Time_Interval_Relationship, Time_Interval_Role, Topological_Representation_Item, Transition_Feature, Type_Qualifier, Uncertainty_Qualifier, Verification_Relationship, Versioned_Action_Request); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP' IN TYPEOF(SELF)); END_TYPE;
TYPE Hour_In_Day = INTEGER; WHERE WR1: { 0 <= SELF < 24 }; END_TYPE;
TYPE Id_Attribute_Select = SELECT (Action, Address, Application_Context, Ascribable_State_Relationship, Dimensional_Size, Geometric_Tolerance, Group, Organizational_Project, Product_Category, Property_Definition, Representation, Shape_Aspect, Shape_Aspect_Relationship, Topological_Representation_Item); END_TYPE;
TYPE Identification_Item = SELECT (Action, Action_Directive, Action_Directive_Relationship, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Relationship, Address, Alternate_Product_Relationship, Alternative_Solution_Relationship, Analysis_Assignment, Analysis_Representation_Context, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment_Relationship, Applied_Contract_Assignment, Applied_Description_Text_Assignment, Applied_Description_Text_Assignment_Relationship, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_External_Identification_Assignment_Relationship, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Approval, Approval_Relationship, Approval_Status, Ascribable_State, Ascribable_State_Relationship, Assembly_Component_Usage, Assembly_Component_Usage_Substitute, Assignment_Object_Relationship, Breakdown_Element_Realization, Breakdown_Of, Certification, Change_Group, Characterized_Class, Class, Class_System, Configuration_Effectivity, Configuration_Item, Configuration_Item_Relationship, Contract, Contract_Relationship, Date_And_Time_Assignment, Date_Assignment, Degenerate_Pcurve, Dimensional_Size, Dimensional_Size_With_Path, Directed_Action_Assignment, Document_File, Document_Relationship, Document_Type, Draughting_Model, Effectivity, Effectivity_Relationship, Envelope, Envelope_Relationship, Evaluated_Characteristic, Event_Occurrence, Event_Occurrence_Relationship, Evidence, Exclusive_Product_Concept_Feature_Category, Executed_Action, General_Property, General_Property_Relationship, Generic_Property_Relationship, Group, Group_Relationship, Identification_Assignment_Relationship, Information_Right, Information_Usage_Right, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Definition, Interface_Connector_Design, Interface_Connector_Occurrence, Interface_Connector_Version, Interface_Definition_Connection, Interface_Definition_For, Interface_Specification_Definition, Interface_Specification_Version, Link_Motion_Relationship, Material_Designation, Material_Designation_Characterization, Measure_Representation_Item, Mechanical_Design_Geometric_Presentation_Representation, Message_Relationship, Organization, Organizational_Address, Organizational_Project, Organizational_Project_Relationship, Organization_Relationship, Package_Product_Concept_Feature, Person, Person_And_Organization, Person_And_Organization_Address, Point_On_Surface, Presentation_Area, Process_Operation, Process_Plan, Product, Product_Category, Product_Class, Product_Concept, Product_Concept_Context, Product_Concept_Feature, Product_Concept_Feature_Category, Product_Concept_Relationship, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Occurrence, Product_Definition_Occurrence_Reference, Product_Definition_Relationship, Product_Definition_Usage, Product_Definition_Usage_Relationship, Product_Group, Product_Group_Membership, Product_Group_Relationship, Product_Identification, Product_Process_Plan, Product_Relationship, Property_Definition, Property_Definition_Relationship, Property_Definition_Representation, Representation, Representation_Context, Representation_Relationship, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Retention, Rule_Set, Satisfies_Requirement, Security_Classification, Security_Classification_Level, Shape_Aspect, Shape_Aspect_Relationship, Shape_Feature_Definition, Shape_Feature_Definition_Relationship, Shape_Representation, State_Definition_To_State_Assignment_Relationship, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Type, State_Type_Assignment, State_Type_Relationship, Structured_Message, Time_Interval, Time_Interval_Relationship, Usage_Association, Validation, Verification, Verification_Relationship, Versioned_Action_Request, Versioned_Action_Request_Relationship); END_TYPE;
TYPE Identifier = STRING; END_TYPE;
TYPE Idrm_Marked_Item = SELECT (Document_File, Product_Definition); END_TYPE;
TYPE Illuminance_Measure = REAL; END_TYPE;
TYPE Inductance_Measure = REAL; END_TYPE;
TYPE Input_Selector = Positive_Integer; END_TYPE;
TYPE Inspected_Ecdq_Element_Select = Inspected_Element_Select; WHERE wr1 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_COMPOSITE_CURVE_SELECT' IN TYPEOF(SELF)); wr2 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' IN TYPEOF(SELF)); wr3 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_OR_OPEN_SHELL_SELECT' IN TYPEOF(SELF)); wr4 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET' IN TYPEOF(SELF)); wr5 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF)); wr6 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' IN TYPEOF(SELF)); wr7 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(SELF)); wr8 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(SELF)); wr9 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(SELF)); wr10 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(SELF)); wr11 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(SELF)); wr12 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(SELF)); wr13 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(SELF)); wr14 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(SELF)); END_TYPE;
TYPE Inspected_Element_Select = SELECT (Assembly_Component_Usage, Axis2_Placement_3d, B_Spline_Or_Composite_Curve_Select, B_Spline_Or_Rectangular_Composite_Surface_Select, Cartesian_Transformation_Operator_3d, Closed_Or_Open_Shell_Select, Connected_Face_Set, Curve, Direction, Edge_Curve, Edge_Loop, Face_Surface, Global_Uncertainty_Assigned_Context, Global_Unit_Assigned_Context, Group, Manifold_Solid_Brep, Placement, Point, Presentation_Layer_Assignment, Representation_Item, Styled_Item, Surface, Vertex_Point); END_TYPE;
TYPE Inspected_Equivalence_Element_Select = SELECT (Connected_Edge_Set, Connected_Face_Set, Externally_Defined_Representation_Item, Manifold_Solid_Brep, Point_Cloud_Dataset, Product_Definition_Or_Reference, Shape_Representation, Shell_Based_Surface_Model, Shell_Based_Wireframe_Model, Vertex_Point); END_TYPE;
TYPE Inspected_Shape_Element_Select = Inspected_Element_Select; WHERE wr1 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(SELF)); wr2 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF)); wr3 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_TRANSFORMATION_OPERATOR_3D' IN TYPEOF(SELF)); wr4 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT' IN TYPEOF(SELF)); wr5 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(SELF)); wr6 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP' IN TYPEOF(SELF)); wr7 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT' IN TYPEOF(SELF)); wr8 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(SELF)); wr9 : NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(SELF)); END_TYPE;
TYPE Instance_Usage_Context_Select = SELECT (Process_Product_Association, Product_Definition_Group_Assignment, Product_Definition_Relationship, Product_Definition_Usage); END_TYPE;
TYPE Internal_Or_Reflected_Shape_Aspect = SELECT (Identifier, Shape_Aspect); END_TYPE;
TYPE Interpolation_Type = ENUMERATION OF (Undefined_Interpolation_Type, Discontinuous_Interpolation_Type, Synchronous_Interpolation_Type, Linear_Interpolation_Type); END_TYPE;
TYPE Invisibility_Context = SELECT (Draughting_Model, Presentation_Representation, Presentation_Set); END_TYPE;
TYPE Invisible_Item = SELECT (Draughting_Callout, Presentation_Layer_Assignment, Representation, Styled_Item); END_TYPE;
TYPE Ir_Usage_Item = Action_Items; END_TYPE;
TYPE Item_Identified_Representation_Usage_Definition = SELECT (Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Date_And_Time_Assignment, Applied_Date_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_Group_Assignment, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Name_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Characterized_Object, Dimensional_Size, Geometric_Tolerance, Product_Definition_Relationship, Property_Definition, Represented_Definition); END_TYPE;
TYPE Item_Identified_Representation_Usage_Select = SELECT (List_Representation_Item, Representation_Item, Set_Representation_Item); END_TYPE;
TYPE Kinematic_Analysis_Definition = SELECT (Interpolated_Configuration_Sequence, Prescribed_Path); END_TYPE;
TYPE Kinematic_Link_Representation_Items = SELECT (Curve, Point, Rigid_Placement, Surface); END_TYPE;
TYPE Kinematic_Result = SELECT (Interpolated_Configuration_Sequence, Resulting_Path); END_TYPE;
TYPE Kinematic_Topology_Representation_Select = SELECT (Kinematic_Topology_Directed_Structure, Kinematic_Topology_Network_Structure, Kinematic_Topology_Structure); END_TYPE;
TYPE Knot_Type = ENUMERATION OF (Uniform_Knots, Quasi_Uniform_Knots, Piecewise_Bezier_Knots, Unspecified); END_TYPE;
TYPE Label = STRING; END_TYPE;
TYPE Layered_Item = SELECT (Presentation_Representation, Representation_Item); END_TYPE;
TYPE Length_Measure = REAL; END_TYPE;
TYPE Length_Or_Plane_Angle_Measure_With_Unit_Select = SELECT (Length_Measure_With_Unit, Plane_Angle_Measure_With_Unit); END_TYPE;
TYPE Length_To_Height_Ratio = Ratio_Measure; END_TYPE;
TYPE Limit_Condition = ENUMERATION OF (Maximum_Material_Condition, Least_Material_Condition, Regardless_Of_Feature_Size); END_TYPE;
TYPE Linear_Geometry_Constraint_Element = SELECT (Direction, Line, Plane, Vector); END_TYPE;
TYPE Linearly_Independent_Enum = ENUMERATION OF (Independent, Not_Independent, Not_Tested); END_TYPE;
TYPE Link_Or_Shape_Representation = SELECT (Kinematic_Link_Representation, Shape_Representation); END_TYPE;
TYPE List_Item_Defined_Transformation = LIST [2 : ?] OF Item_Defined_Transformation; END_TYPE;
TYPE List_Of_Reversible_Topology_Item = LIST [0 : ?] OF Reversible_Topology_Item; END_TYPE;
TYPE List_Representation_Item = LIST [1 : ?] OF Representation_Item; END_TYPE;
TYPE Locally_Refined_Spline_Type_Enum = ENUMERATION OF (Analysis_Suitable_T_Spline, Hierarchical_B_Spline, Lr_B_Spline, Semi_Standard_T_Spline, Standard_T_Spline); END_TYPE;
TYPE Location_In_Aggregate_Item = LIST [1 : ?] OF Integer_Representation_Item; END_TYPE;
TYPE Location_Item = SELECT (Assembly_Component_Usage, Document_File, Interface_Connection, Interface_Connector_Occurrence, Interface_Definition_Connection, Organization, Organizational_Project, Organization_Type, Person, Person_And_Organization, Product, Product_Definition, Product_Definition_Formation, Product_Definition_Relationship, Product_Group); END_TYPE;
TYPE Location_Of_Extreme_Value_Select = SELECT (Boundary_Curve_Of_B_Spline_Or_Rectangular_Composite_Surface, B_Spline_Curve_Knot_Locator, B_Spline_Curve_Segment, B_Spline_Surface_Knot_Locator, B_Spline_Surface_Patch, B_Spline_Surface_Strip, Composite_Curve_Transition_Locator, Face_Bound, Inspected_Shape_Element_Select, Oriented_Edge, Point_On_Edge_Curve, Point_On_Face_Surface, Rectangular_Composite_Surface_Transition_Locator, Subedge, Subface); END_TYPE;
TYPE Location_Representation_Item = SELECT (Organizational_Address, Person_And_Organization_Address, Product, Product_Definition_Formation); END_TYPE;
TYPE Lower_Upper = ENUMERATION OF (Lower, Upper); END_TYPE;
TYPE Luminous_Flux_Measure = REAL; END_TYPE;
TYPE Luminous_Intensity_Measure = REAL; END_TYPE;
TYPE Machining_Feature_Definition = SELECT (Boss, Compound_Feature, Externally_Defined_Feature_Definition, Flat_Face, Gear, Marking, Outer_Round, Outside_Profile, Pocket, Protrusion, Removal_Volume, Replicate_Feature, Revolved_Profile, Rib_Top, Round_Hole, Rounded_End, Spherical_Cap, Step, Slot, Thread, Turned_Knurl); END_TYPE;
TYPE Magnetic_Flux_Density_Measure = REAL; END_TYPE;
TYPE Magnetic_Flux_Measure = REAL; END_TYPE;
TYPE Marker_Select = SELECT (Marker_Type, Pre_Defined_Marker); END_TYPE;
TYPE Marker_Type = ENUMERATION OF (Dot, X, Plus, Asterisk, Ring, Square, Triangle); END_TYPE;
TYPE Mass_Measure = REAL; END_TYPE;
TYPE Maths_Atom = SELECT (Maths_Enum_Atom, Maths_Simple_Atom); END_TYPE;
TYPE Maths_Binary = BINARY; END_TYPE;
TYPE Maths_Boolean = BOOLEAN; END_TYPE;
TYPE Maths_Enum_Atom = SELECT (Elementary_Function_Enumerators, Elementary_Space_Enumerators, Extension_Options, Lower_Upper, Open_Closed, Ordering_Type, Repackage_Options, Space_Constraint_Type, Symmetry_Type); END_TYPE;
TYPE Maths_Expression = SELECT (Atom_Based_Value, Generic_Expression, Maths_Tuple); END_TYPE;
TYPE Maths_Function_Select = SELECT (Elementary_Function_Enumerators, Maths_Function); END_TYPE;
TYPE Maths_Integer = INTEGER; END_TYPE;
TYPE Maths_Logical = LOGICAL; END_TYPE;
TYPE Maths_Number = NUMBER; END_TYPE;
TYPE Maths_Real = REAL; END_TYPE;
TYPE Maths_Simple_Atom = SELECT (Maths_Binary, Maths_Boolean, Maths_Integer, Maths_Logical, Maths_Number, Maths_Real, Maths_String); END_TYPE;
TYPE Maths_Space_Or_Function = SELECT (Maths_Function, Maths_Space); END_TYPE;
TYPE Maths_String = STRING; END_TYPE;
TYPE Maths_Tuple = LIST [0 : ?] OF Maths_Value; END_TYPE;
TYPE Maths_Value = SELECT (Atom_Based_Value, Maths_Tuple, Generic_Expression); WHERE constancy: NOT ('GENERIC_EXPRESSION' IN Stripped_Typeof(SELF)) OR Expression_Is_Constant(SELF); END_TYPE;
TYPE Maximum_Edge_Length = Positive_Length_Measure; END_TYPE;
TYPE Measure_Value = SELECT (Absorbed_Dose_Measure, Acceleration_Measure, Amount_Of_Substance_Measure, Area_Measure, Capacitance_Measure, Celsius_Temperature_Measure, Conductance_Measure, Context_Dependent_Measure, Count_Measure, Descriptive_Measure, Dose_Equivalent_Measure, Electric_Charge_Measure, Electric_Current_Measure, Electric_Potential_Measure, Energy_Measure, Force_Measure, Frequency_Measure, Illuminance_Measure, Inductance_Measure, Length_Measure, Luminous_Flux_Measure, Luminous_Intensity_Measure, Magnetic_Flux_Density_Measure, Magnetic_Flux_Measure, Mass_Measure, Non_Negative_Length_Measure, Numeric_Measure, Parameter_Value, Plane_Angle_Measure, Positive_Length_Measure, Positive_Plane_Angle_Measure, Positive_Ratio_Measure, Power_Measure, Pressure_Measure, Radioactivity_Measure, Ratio_Measure, Resistance_Measure, Solid_Angle_Measure, Thermodynamic_Temperature_Measure, Time_Measure, Velocity_Measure, Volume_Measure); END_TYPE;
TYPE Measured_Value_Select = SELECT (Boolean_Value, Measure_Value, Plane_Angle_And_Length_Pair, Plane_Angle_And_Ratio_Pair); END_TYPE;
TYPE Mechanical_Design_And_Draughting_Relationship_Select = SELECT (Draughting_Model, Mechanical_Design_Geometric_Presentation_Representation, Mechanical_Design_Presentation_Representation_With_Draughting, Mechanical_Design_Shaded_Presentation_Representation, Shape_Representation); END_TYPE;
TYPE Mechanical_Design_Geometric_Presentation_Area_Items = SELECT (Axis2_Placement, Mapped_Item); END_TYPE;
TYPE Mechanical_Design_Geometric_Presentation_Representation_Items = SELECT (Axis2_Placement, Camera_Model_D3, Mapped_Item, Styled_Item); END_TYPE;
TYPE Mechanical_Design_Shaded_Presentation_Area_Items = SELECT (Axis2_Placement, Mapped_Item); END_TYPE;
TYPE Mechanical_Design_Shaded_Presentation_Representation_Items = SELECT (Axis2_Placement, Camera_Model_D3, Mapped_Item, Styled_Item); END_TYPE;
TYPE Message = STRING; END_TYPE;
TYPE Minute_In_Hour = INTEGER; WHERE WR1: { 0 <= SELF <= 59 }; END_TYPE;
TYPE Month_In_Year_Number = INTEGER; WHERE WR1: { 1 <= SELF <= 12 }; END_TYPE;
TYPE Multi_Language_Attribute_Item = SELECT (Action, Action_Directive, Action_Directive_Relationship, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Action_Relationship, Actuated_Kinematic_Pair, Alternate_Product_Relationship, Alternative_Solution_Relationship, Analysis_Assignment, Analysis_Representation_Context, Application_Context, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment_Relationship, Applied_Contract_Assignment, Applied_Description_Text_Assignment, Applied_Description_Text_Assignment_Relationship, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_External_Identification_Assignment, Applied_External_Identification_Assignment_Relationship, Applied_Identification_Assignment, Applied_Ineffectivity_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Approval, Approval_Relationship, Approval_Status, Ascribable_State, Assembly_Component_Usage_Substitute, Assignment_Object_Relationship, Attribute_Value_Assignment, Breakdown_Context, Breakdown_Element_Realization, Breakdown_Of, Certification, Certification_Type, Change_Element_Sequence, Change_Group, Class, Colour, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configuration_Item_Relationship, Contract, Contract_Relationship, Data_Environment, Date_Role, Date_Time_Role, Descriptive_Representation_Item, Directed_Action_Assignment, Document_File, Document_Relationship, Document_Usage_Role, Draughting_Title, Effectivity, Effectivity_Relationship, Envelope, Envelope_Relationship, Evaluated_Characteristic, Event_Occurrence, Event_Occurrence_Relationship, Evidence, Exclusive_Product_Concept_Feature_Category, Executed_Action, Externally_Defined_Class, External_Source, General_Property, General_Property_Relationship, Generic_Property_Relationship, Geometric_Representation_Item, Geometric_Tolerance, Global_Uncertainty_Assigned_Context, Global_Unit_Assigned_Context, Group, Group_Relationship, Identification_Assignment_Relationship, Identification_Role, Information_Right, Information_Usage_Right, Interface_Connection, Interface_Connector_Occurrence, Interface_Definition_Connection, Interface_Definition_For, In_Zone, Kinematic_Pair, Link_Motion_Relationship, Make_From_Usage_Option, Mapped_Item, Material_Designation_Characterization, Measure_Qualification, Measure_With_Unit, Message_Relationship, Name_Assignment, Object_Role, Organization, Organizational_Address, Organizational_Project, Organizational_Project_Relationship, Organizational_Project_Role, Organization_Relationship, Organization_Role, Package_Product_Concept_Feature, Person, Person_And_Organization, Person_And_Organization_Address, Person_And_Organization_Role, Presentation_Layer_Assignment, Process_Operation, Process_Plan, Process_Product_Association, Product, Product_Concept, Product_Concept_Context, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Concept_Relationship, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Shape, Product_Definition_Substitute, Product_Definition_Usage, Product_Definition_Usage_Relationship, Product_Design_To_Individual, Product_Design_Version_To_Individual, Product_Group, Product_Group_Relationship, Product_Identification, Product_Process_Plan, Product_Related_Product_Category, Product_Relationship, Product_Specification, Property_Definition, Property_Definition_Relationship, Property_Definition_Representation, Qualitative_Uncertainty, Representation, Representation_Context, Representation_Item, Representation_Relationship, Representation_Relationship_With_Transformation, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Resource_Property, Resource_Requirement_Type, Retention, Satisfies_Requirement, Security_Classification, Security_Classification_Assignment, Shape_Aspect, Shape_Aspect_Relationship, Shape_Feature_Definition, Shape_Feature_Definition_Relationship, Shape_Representation, State_Definition_To_State_Assignment_Relationship, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Type, State_Type_Assignment, State_Type_Relationship, Structured_Message, Styled_Item, Time_Interval, Time_Interval_Relationship, Time_Interval_Role, Topological_Representation_Item, Uncertainty_Measure_With_Unit, Uncertainty_Qualifier, Usage_Association, Validation, Verification, Verification_Relationship, Versioned_Action_Request, Versioned_Action_Request_Relationship); END_TYPE;
TYPE Multi_Or_Next_Assembly_Usage_Occurrence = SELECT (Multi_Level_Reference_Designator, Next_Assembly_Usage_Occurrence); END_TYPE;
TYPE Name_Attribute_Select = SELECT (Action_Request_Solution, Address, Configuration_Design, Context_Dependent_Shape_Representation, Derived_Unit, Effectivity, Person_And_Organization, Product_Definition, Product_Definition_Substitute, Property_Definition_Representation); END_TYPE;
TYPE Name_Item = SELECT (Applied_Action_Assignment, Applied_Action_Method_Assignment, Assembly_Component_Usage, External_Class_Library, Group, Group_Relationship, Product, Product_Definition); END_TYPE;
TYPE Non_Negative_Length_Measure = Length_Measure; WHERE WR1: SELF >= 0.0; END_TYPE;
TYPE Non_Negative_Real = REAL; WHERE WR1: 0.0 <= SELF; END_TYPE;
TYPE Nonnegative_Integer = INTEGER; WHERE nonnegativity: SELF >= 0; END_TYPE;
TYPE Null_Style = ENUMERATION OF (Null); END_TYPE;
TYPE Numeric_Measure = NUMBER; END_TYPE;
TYPE One_Or_Two = Positive_Integer; WHERE in_range: (SELF = 1) OR (SELF = 2); END_TYPE;
TYPE Open_Closed = ENUMERATION OF (Open, Closed); END_TYPE;
TYPE Ordering_Type = ENUMERATION OF (By_Rows, By_Columns); END_TYPE;
TYPE Organization_Item = SELECT (Action, Action_Directive, Action_Method, Action_Property, Action_Relationship, Action_Request_Solution, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_Identification_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Approval, Approval_Status, Ascribable_State, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Data_Equivalence_Definition, Data_Quality_Definition, Date_And_Time_Assignment, Date_Assignment, Document_File, Document_Type, Draughting_Model, Drawing_Revision, Effectivity, Envelope, Event_Occurrence, Evidence, Executed_Action, General_Property, General_Property_Relationship, Information_Right, Information_Usage_Right, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Occurrence, Interface_Definition_Connection, Interface_Definition_For, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organization, Organizational_Address, Organizational_Project, Organization_Relationship, Person_And_Organization, Presentation_Area, Product, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Substitute, Product_Group, Product_Group_Membership, Product_Group_Relationship, Property_Definition, Property_Definition_Representation, Representation, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Resource_Property, Rule_Action, Satisfies_Requirement, Security_Classification, Security_Classification_Level, Shape_Representation, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Type, State_Type_Assignment, State_Type_Relationship, Structured_Message, Validation, Verification, Versioned_Action_Request); END_TYPE;
TYPE Organization_Type_Item = SELECT (Organization); END_TYPE;
TYPE Orientation_Basis_Select = SELECT (Axis2_Placement_3d, Min_And_Major_Ply_Orientation_Basis); END_TYPE;
TYPE Oriented_Tolerance_Zone_Type = ENUMERATION OF (Perpendicular, Parallel, Angular); END_TYPE;
TYPE Parallel_Offset_Type = ENUMERATION OF (Curve_2d_Offset, Curve_3d_Offset, Surface_Offset); END_TYPE;
TYPE Parameter_Value = REAL; END_TYPE;
TYPE Path_Or_Composite_Curve = SELECT (Composite_Curve, Path); END_TYPE;
TYPE Pcurve_Or_Surface = SELECT (Pcurve, Surface); END_TYPE;
TYPE Person_And_Organization_Item = SELECT (Action, Action_Directive, Action_Method, Action_Property, Action_Relationship, Action_Request_Solution, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Certification_Assignment, Applied_Classification_Assignment, Applied_Contract_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_Effectivity_Assignment, Applied_Event_Occurrence_Assignment, Applied_Identification_Assignment, Applied_Organizational_Project_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Approval, Approval_Status, Ascribable_State, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Data_Equivalence_Definition, Data_Quality_Definition, Date_And_Time_Assignment, Date_Assignment, Document_File, Document_Type, Draughting_Model, Drawing_Revision, Effectivity, Envelope, Event_Occurrence, Evidence, Executed_Action, General_Property, General_Property_Relationship, Information_Usage_Right, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Occurrence, Interface_Definition_Connection, Interface_Definition_For, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organization, Organizational_Address, Organizational_Project, Organization_Relationship, Person_And_Organization, Presentation_Area, Product, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Substitute, Product_Group, Product_Group_Membership, Product_Group_Relationship, Property_Definition, Property_Definition_Representation, Representation, Requirement_Assignment, Requirement_For_Action_Resource, Requirement_Source, Resource_Property, Rule_Action, Security_Classification, Security_Classification_Level, Shape_Representation, State_Observed, State_Observed_Assignment, State_Observed_Relationship, State_Type, State_Type_Assignment, State_Type_Relationship, Structured_Message, Validation, Verification, Versioned_Action_Request); END_TYPE;
TYPE Person_Organization_Select = SELECT (Organization, Person, Person_And_Organization); END_TYPE;
TYPE Picture_Representation_Item_Select = SELECT (Axis2_Placement_2d, Planar_Box, Styled_Item); END_TYPE;
TYPE Planar_Curve_Select = SELECT (Line, Conic, Trimmed_Curve, Pcurve, Surface_Curve); WHERE WR1: SELF\Geometric_Representation_Item.dim = 3; WR2: Check_Curve_Planarity(SELF); END_TYPE;
TYPE Plane_Angle_Measure = REAL; END_TYPE;
TYPE Plane_Or_Planar_Box = SELECT (Planar_Box, Plane); END_TYPE;
TYPE Point_And_Vector_Member = SELECT (Direction, Point); END_TYPE;
TYPE Point_And_Vector_Members = LIST [2 : 3] OF Point_And_Vector_Member; END_TYPE;
TYPE Point_Array_Members = LIST [1 : ?] OF Point_And_Vector; END_TYPE;
TYPE Point_Cloud_Set_Or_Superset = SELECT (Point_Cloud_Dataset, Point_Cloud_Superdataset); END_TYPE;
TYPE Point_Curve_Or_Surface_Constraint_Element = SELECT (Curve, Point, Surface); END_TYPE;
TYPE Point_Path_Members = LIST [1 : ?] OF Point_And_Vector; END_TYPE;
TYPE Point_Placement_Shape_Representation_Item = SELECT (Axis2_Placement_3d, Compound_Representation_Item, Mapped_Item); END_TYPE;
TYPE Positive_Integer = Nonnegative_Integer; WHERE positivity: SELF > 0; END_TYPE;
TYPE Positive_Length_Measure = Non_Negative_Length_Measure; WHERE WR1: SELF > 0.0; END_TYPE;
TYPE Positive_Plane_Angle_Measure = Plane_Angle_Measure; WHERE WR1: SELF > 0.0; END_TYPE;
TYPE Positive_Ratio_Measure = Ratio_Measure; WHERE WR1: SELF > 0.0; END_TYPE;
TYPE Power_Measure = REAL; END_TYPE;
TYPE Preferred_Ordering = ENUMERATION OF (Extremity_Order, Detected_Order); END_TYPE;
TYPE Preferred_Report_Ordering = ENUMERATION OF (In_Notable_Order, In_Detected_Order); END_TYPE;
TYPE Preferred_Surface_Curve_Representation = ENUMERATION OF (Curve_3d, Pcurve_S1, Pcurve_S2); END_TYPE;
TYPE Presentable_Text = STRING; WHERE WR1: Control_Characters_Free(SELF); END_TYPE;
TYPE Presentation_Representation_Select = SELECT (Presentation_Representation, Presentation_Set); END_TYPE;
TYPE Presentation_Size_Assignment_Select = SELECT (Area_In_Set, Presentation_Area, Presentation_View); END_TYPE;
TYPE Presentation_Style_Select = SELECT (Curve_Style, Externally_Defined_Style, Fill_Area_Style, Null_Style, Point_Style, Surface_Style_Usage, Symbol_Style, Texture_Style_Tessellation_Specification, Text_Style); END_TYPE;
TYPE Presented_Item_Select = SELECT (Action, Action_Method, Action_Relationship, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Category, Product_Definition, Product_Definition_Formation, Product_Definition_Relationship); END_TYPE;
TYPE Pressure_Measure = REAL; END_TYPE;
TYPE Previous_Element_Assignment_Select = SELECT (Delete_Element, Modify_Element); END_TYPE;
TYPE Product_Definition_Occurrence_Or_Reference = SELECT (Product_Definition_Occurrence, Product_Definition_Occurrence_Reference); END_TYPE;
TYPE Product_Definition_Or_Assembly_Relationship = SELECT (Assembly_Component_Usage, Product_Definition); END_TYPE;
TYPE Product_Definition_Or_Breakdown_Element_Usage = SELECT (Product, Product_Definition, Product_Definition_Formation, Product_Definition_Usage); END_TYPE;
TYPE Product_Definition_Or_Product_Definition_Relationship = SELECT (Interface_Connector_Occurrence, Product, Product_Definition, Product_Definition_Usage, Product_Group); END_TYPE;
TYPE Product_Definition_Or_Reference = SELECT (Generic_Product_Definition_Reference, Product_Definition, Product_Definition_Occurrence); END_TYPE;
TYPE Product_Definition_Or_Reference_Or_Occurrence = Product_Definition_Or_Reference; END_TYPE;
TYPE Product_Or_Formation_Or_Definition = SELECT (Product, Product_Definition, Product_Definition_Formation); END_TYPE;
TYPE Product_Select = SELECT (Product, Product_Concept, Product_Definition_Formation, Product_Group); END_TYPE;
TYPE Product_Space = SELECT (Listed_Product_Space, Uniform_Product_Space); END_TYPE;
TYPE Project_Item = SELECT (Action_Method, Action_Method_Relationship, Applied_Action_Assignment, Applied_Action_Method_Assignment, Assembly_Component_Usage, Configuration_Item, Executed_Action, Measure_Representation_Item, Product, Product_Concept, Product_Definition, Product_Definition_Formation, Product_Definition_Occurrence, Product_Definition_Occurrence_Reference, Product_Group, Product_Group_Membership, Product_Group_Relationship, Product_Identification, Property_Definition_Representation, Representation, Representation_Item, Value_Representation_Item); END_TYPE;
TYPE Property_Or_Shape_Select = SELECT (Property_Definition, Shape_Definition); END_TYPE;
TYPE Property_Variable_Rep_Select = SELECT (Dimensional_Size, Representation); END_TYPE;
TYPE Radial_Geometry_Constraint_Element = SELECT (Circle, Conical_Surface, Cylindrical_Surface, Right_Circular_Cone, Right_Circular_Cylinder, Sphere, Spherical_Surface); END_TYPE;
TYPE Radioactivity_Measure = REAL; END_TYPE;
TYPE Ratio_Measure = REAL; END_TYPE;
TYPE Real_Interval = SELECT (Real_Interval_From_Min, Real_Interval_To_Max, Finite_Real_Interval, Elementary_Space); WHERE WR1: NOT ('ELEMENTARY_SPACE' IN Stripped_Typeof(SELF)) OR (SELF\Elementary_Space.space_id = es_reals); END_TYPE;
TYPE Rendering_Properties_Select = SELECT (Surface_Style_Reflectance_Ambient, Surface_Style_Transparent); END_TYPE;
TYPE Repackage_Options = ENUMERATION OF (Ro_Nochange, Ro_Wrap_As_Tuple, Ro_Unwrap_Tuple); END_TYPE;
TYPE Representation_Or_Representation_Reference = SELECT (Representation, Representation_Reference); END_TYPE;
TYPE Representation_Proxy_Select = SELECT (Product_Definition_Formation); END_TYPE;
TYPE Representative_Value_Type = ENUMERATION OF (Average_Value, Max_Value, Min_Value, Min_Max_Value); END_TYPE;
TYPE Represented_Definition = SELECT (General_Property, Property_Definition, Property_Definition_Relationship, Shape_Aspect, Shape_Aspect_Relationship); END_TYPE;
TYPE Requirement_Assigned_Item = SELECT (Action_Method, Alternate_Product_Relationship, Applied_Action_Method_Assignment, Applied_State_Observed_Assignment, Applied_State_Type_Assignment, Assembly_Component_Usage, Assembly_Component_Usage_Substitute, Characterized_Object, Configuration_Item, Descriptive_Representation_Item, Dimensional_Location, Dimensional_Size, Geometric_Tolerance, Interface_Connector_Occurrence, Organizational_Project, Product, Product_Class, Product_Definition, Product_Definition_Formation, Product_Definition_Group_Assignment, Product_Definition_Relationship, Product_Group, Product_Group_Membership, Quantified_Assembly_Component_Usage, Representation, Shape_Aspect, State_Observed, State_Type, Validation, Verification, Versioned_Action_Request); END_TYPE;
TYPE Requirement_Satisfaction_Item = SELECT (Requirement_Assigned_Item); END_TYPE;
TYPE Requirement_Source_Item = SELECT (Action_Method, Applied_Action_Method_Assignment, Applied_State_Observed_Assignment, Applied_State_Type_Assignment, Characterized_Object, Contract, Dimensional_Location, Dimensional_Size, Executed_Action, Geometric_Tolerance, Group, Group_Relationship, Interface_Connector_Occurrence, Organization, Organizational_Project, Person_And_Organization, Product, Product_Definition, Product_Definition_Formation, Product_Definition_Relationship, Shape_Aspect, State_Observed, State_Type, Validation, Verification); END_TYPE;
TYPE Resistance_Measure = REAL; END_TYPE;
TYPE Reversible_Topology = SELECT (List_Of_Reversible_Topology_Item, Reversible_Topology_Item, Set_Of_Reversible_Topology_Item); END_TYPE;
TYPE Reversible_Topology_Item = SELECT (Closed_Shell, Edge, Face, Face_Bound, Open_Shell, Path); END_TYPE;
TYPE Rigid_Placement = SELECT (Axis2_Placement_3d, Su_Parameters); END_TYPE;
TYPE Role_Select = SELECT (Action_Assignment, Action_Request_Assignment, Approval_Assignment, Approval_Date_Time, Certification_Assignment, Contract_Assignment, Directed_Action_Assignment, Document_Reference, Effectivity_Assignment, Group_Assignment, Name_Assignment, Security_Classification_Assignment); END_TYPE;
TYPE Rule_Superseded_Item = SELECT (Product_Definition_Formation); END_TYPE;
TYPE Same_As_Item = SELECT (Address, Applied_External_Identification_Assignment, Approval, Approval_Status, Attribute_Language_Assignment, Calendar_Date, Certification, Contract, Coordinated_Universal_Time_Offset, Date_And_Time, Derived_Unit, Derived_Unit_Element, Event_Occurrence, External_Source, General_Property, Information_Right, Information_Usage_Right, Language, Local_Time, Measure_With_Unit, Named_Unit, Organization, Person, Product_Definition_Context, Representation_Context, Requirement_Source, Security_Classification, Time_Interval, Usage_Association); END_TYPE;
TYPE Second_In_Minute = REAL; WHERE WR1: { 0 <= SELF < 60.0 }; END_TYPE;
TYPE Security_Classification_Item = SELECT (Action, Action_Directive, Action_Method, Action_Method_Relationship, Action_Property, Action_Property_Representation, Applied_Action_Assignment, Applied_Action_Method_Assignment, Applied_Classification_Assignment, Applied_Description_Text_Assignment, Applied_Description_Text_Assignment_Relationship, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_External_Identification_Assignment, Applied_Identification_Assignment, Assembly_Component_Usage, Assembly_Component_Usage_Substitute, Class_System, Conditional_Effectivity, Configuration_Design, Configuration_Effectivity, Configured_Effectivity_Assignment, Document, Document_File, Draughting_Model, Drawing_Revision, Envelope, Evaluated_Characteristic_Of_Product_As_Individual_Test_Result, Evidence, Exclusive_Product_Concept_Feature_Category, Executed_Action, Externally_Defined_General_Property, General_Property, Group, Identification_Assignment_Relationship, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Design, Interface_Connector_Occurrence, Interface_Definition_Connection, Interface_Definition_For, Make_From_Usage_Option, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organizational_Project, Package_Product_Concept_Feature, Presentation_Area, Process_Plan, Product, Product_Class, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Category, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Group_Assignment, Product_Definition_Relationship, Product_Definition_Usage, Product_Design_To_Individual, Product_Design_Version_To_Individual, Product_Group, Product_Group_Membership, Product_Group_Relationship, Product_Identification, Product_Process_Plan, Product_Relationship, Property_Definition, Property_Definition_Representation, Representation, Requirement_Assignment, Requirement_Source, Requirement_View_Definition_Relationship, Resource_Property, Shape_Representation, Structured_Message, Validation, Verification, Versioned_Action_Request); END_TYPE;
TYPE Set_Inner_Area_Boundary = SET [1 : ?] OF Bounded_Primitive_2d; END_TYPE;
TYPE Set_Item_Defined_Transformation = SET [2 : ?] OF Item_Defined_Transformation; END_TYPE;
TYPE Set_Of_Reversible_Topology_Item = SET [0 : ?] OF Reversible_Topology_Item; END_TYPE;
TYPE Set_Representation_Item = SET [1 : ?] OF Representation_Item; END_TYPE;
TYPE Shading_Curve_Method = ENUMERATION OF (Constant_Colour, Linear_Colour); END_TYPE;
TYPE Shading_Surface_Method = ENUMERATION OF (Constant_Shading, Colour_Shading, Dot_Shading, Normal_Shading); END_TYPE;
TYPE Shape_Aspect_Or_Characterized_Object = SELECT (Characterized_Object, Shape_Aspect); END_TYPE;
TYPE Shape_Data_Quality_Assessment_Specification_Select = SELECT (Shape_Data_Quality_Assessment_By_Logical_Test, Shape_Data_Quality_Assessment_By_Numerical_Test); END_TYPE;
TYPE Shape_Data_Quality_Value_Limit_Type_Select = SELECT (Shape_Data_Quality_Value_Limit, Shape_Data_Quality_Value_Range); END_TYPE;
TYPE Shape_Definition = SELECT (Product_Definition_Shape, Shape_Aspect, Shape_Aspect_Relationship); END_TYPE;
TYPE Shape_Dimension_Representation_Item = SELECT (Compound_Representation_Item, Descriptive_Representation_Item, Measure_Representation_Item, Placement); END_TYPE;
TYPE Shape_Model = SELECT (Constructive_Geometry_Representation, Shape_Representation); END_TYPE;
TYPE Shape_Representation_Item = SELECT (Geometric_Representation_Item, Topological_Representation_Item); END_TYPE;
TYPE Shape_Representation_With_Parameters_Items = SELECT (Descriptive_Representation_Item, Direction, Measure_Representation_Item, Placement); END_TYPE;
TYPE Shell = SELECT (Closed_Shell, Open_Shell, Vertex_Shell, Wire_Shell); END_TYPE;
TYPE Si_Prefix = ENUMERATION OF (Exa, Peta, Tera, Giga, Mega, Kilo, Hecto, Deca, Deci, Centi, Milli, Micro, Nano, Pico, Femto, Atto); END_TYPE;
TYPE Si_Unit_Name = ENUMERATION OF (Metre, Gram, Second, Ampere, Kelvin, Mole, Candela, Radian, Steradian, Hertz, Newton, Pascal, Joule, Watt, Coulomb, Volt, Farad, Ohm, Siemens, Weber, Tesla, Henry, Degree_Celsius, Lumen, Lux, Becquerel, Gray, Sievert); END_TYPE;
TYPE Simple_Datum_Reference_Modifier = ENUMERATION OF (Any_Cross_Section, Any_Longitudinal_Section, Basic, Contacting_Feature, Degree_Of_Freedom_Constraint_U, Degree_Of_Freedom_Constraint_V, Degree_Of_Freedom_Constraint_W, Degree_Of_Freedom_Constraint_X, Degree_Of_Freedom_Constraint_Y, Degree_Of_Freedom_Constraint_Z, Distance_Variable, Free_State, Least_Material_Requirement, Line, Major_Diameter, Maximum_Material_Requirement, Minor_Diameter, Orientation, Pitch_Diameter, Plane, Point, Translation); END_TYPE;
TYPE Size_Select = SELECT (Descriptive_Measure, Measure_With_Unit, Positive_Length_Measure); END_TYPE;
TYPE Sketch_Basis_Select = SELECT (Curve_Bounded_Surface, Face_Surface, Planar_Curve_Select); END_TYPE;
TYPE Sketch_Element_Select = SELECT ( Curve, Point); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_TYPE;
TYPE Sketch_Type_Select = SELECT (Neutral_Sketch_Representation, Positioned_Sketch, Subsketch); END_TYPE;
TYPE Solid_Angle_Measure = REAL; END_TYPE;
TYPE Source = ENUMERATION OF (Made, Bought, Not_Known); END_TYPE;
TYPE Source_Item = SELECT (Identifier, Message); END_TYPE;
TYPE Space_Constraint_Type = ENUMERATION OF (Sc_Equal, Sc_Subspace, Sc_Member); END_TYPE;
TYPE Spatial_Rotation = SELECT (Rotation_About_Direction, Ypr_Rotation); END_TYPE;
TYPE Specified_Item = SELECT (Drawing_Revision); END_TYPE;
TYPE Spherical_Pair_Select = SELECT (Spherical_Pair, Spherical_Pair_With_Pin); END_TYPE;
TYPE Spline_Knot_Values = LIST [2: ?] OF REAL; WHERE WR1 : Increasing_Values_In_List(SELF); END_TYPE;
TYPE Start_Request_Item = SELECT (Product_Definition_Formation); END_TYPE;
TYPE State_Observed_Of_Item = SELECT (Alternate_Product_Relationship, Applied_Action_Method_Assignment, Applied_External_Identification_Assignment, Approval, Assembly_Component_Usage, Assembly_Component_Usage_Substitute, Attachment_Slot_Design_To_Planned, Attachment_Slot_Design_To_Realized, Attachment_Slot_On_Product, Attachment_Slot_Planned_To_Realized, Breakdown_Element_Group_Assignment, Breakdown_Element_Usage, Certification, Configuration_Item, Contract, Document_File, Evidence, Final_Solution, Group, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Definition, Interface_Connector_Design, Interface_Connector_Occurrence, Interface_Connector_Version, Interface_Definition_Connection, Interface_Specification_Definition, Interface_Specification_Version, Organization, Organizational_Project, Person_And_Organization, Product, Product_Category, Product_Concept, Product_Definition, Product_Definition_Formation, Product_Definition_Group_Assignment, Product_Definition_Relationship, Product_In_Attachment_Slot, Security_Classification, Structured_Message, Validation, Verification); END_TYPE;
TYPE State_Type_Of_Item = SELECT (Action_Method, Alternate_Product_Relationship, Applied_Action_Method_Assignment, Applied_External_Identification_Assignment, Approval, Assembly_Component_Usage, Assembly_Component_Usage_Substitute, Attachment_Slot_Design_To_Planned, Attachment_Slot_Design_To_Realized, Attachment_Slot_On_Product, Attachment_Slot_Planned_To_Realized, Breakdown_Element_Group_Assignment, Breakdown_Element_Usage, Certification, Configuration_Item, Contract, Document_File, Evidence, Final_Solution, Interface_Connection, Interface_Connector_As_Planned, Interface_Connector_As_Realized, Interface_Connector_Definition, Interface_Connector_Design, Interface_Connector_Occurrence, Interface_Connector_Version, Interface_Definition_Connection, Interface_Specification_Definition, Interface_Specification_Version, Organization, Organizational_Project, Person_And_Organization, Product, Product_Category, Product_Concept, Product_Definition, Product_Definition_Formation, Product_Definition_Group_Assignment, Product_Definition_Relationship, Product_Group, Product_In_Attachment_Slot, Security_Classification, Validation, Verification); END_TYPE;
TYPE Statistical_Value_Type = ENUMERATION OF (Number_Of_Inspected_Instances, Number_Of_Quality_Defects_Detected); END_TYPE;
TYPE String_Representation_Item_Select = SELECT (Descriptive_Representation_Item, Included_Text_Block, Structured_Text_Composition); END_TYPE;
TYPE Style_Context_Select = SELECT (Context_Dependent_Shape_Representation, Group, Presentation_Layer_Assignment, Presentation_Set, Representation, Representation_Item, Representation_Relationship); END_TYPE;
TYPE Styled_Item_Target = SELECT (Geometric_Representation_Item, Mapped_Item, Representation_Or_Representation_Reference, Topological_Representation_Item); END_TYPE;
TYPE Summary_Report_Style_Type = ENUMERATION OF (Conclusion, Number_Of_Defects, Number_Of_Inspections); END_TYPE;
TYPE Summary_Report_Type = ENUMERATION OF (Unspecified, Conclusion_Only, Number_Of_Quality_Defects, Number_Of_Inspections_And_Conclusion, Full_Statistics); END_TYPE;
TYPE Supported_Item = SELECT (Action, Action_Directive, Action_Method); END_TYPE;
TYPE Surface_Boundary_Type = ENUMERATION OF (U_Parameter_Min, V_Parameter_Min, U_Parameter_Max, V_Parameter_Max); END_TYPE;
TYPE Surface_Model = SELECT (Face_Based_Surface_Model, Shell_Based_Surface_Model); END_TYPE;
TYPE Surface_Or_Solid_Model = SELECT (Solid_Model, Surface_Model); END_TYPE;
TYPE Surface_Side = ENUMERATION OF (Positive, Negative, Both); END_TYPE;
TYPE Surface_Side_Style_Select = SELECT (Pre_Defined_Surface_Side_Style, Surface_Side_Style); END_TYPE;
TYPE Surface_Style_Element_Select = SELECT (Surface_Style_Boundary, Surface_Style_Control_Grid, Surface_Style_Fill_Area, Surface_Style_Parameter_Line, Surface_Style_Rendering, Surface_Style_Segmentation_Curve, Surface_Style_Silhouette); END_TYPE;
TYPE Swept_Surface_Or_Solid = SELECT (Swept_Area_Solid, Swept_Face_Solid, Swept_Surface); END_TYPE;
TYPE Symbol_Style_Select = SELECT (Symbol_Colour); END_TYPE;
TYPE Symmetry_Type = ENUMERATION OF (Identity, Skew, Hermitian, Skew_Hermitian); END_TYPE;
TYPE Tangent_Contact_Type = ENUMERATION OF (Point_Contact, Curve_Contact, Surface_Contact); END_TYPE;
TYPE Target_Annotated_3d_Model_Select = SELECT (Shape_Representation_Relationship); END_TYPE;
TYPE Tessellated_Edge_Or_Vertex = SELECT (Tessellated_Edge, Tessellated_Vertex); END_TYPE;
TYPE Tessellated_Facet_Long_Short_Edge_Ratio = Ratio_Measure; END_TYPE;
TYPE Tessellated_Surface_Item = SELECT (Tessellated_Face, Tessellated_Shell, Tessellated_Solid, Tessellated_Surface_Set); END_TYPE;
TYPE Tessellation_Accuracy_Parameter_Item = SELECT (Angular_Deviation, Chordal_Deviation, Length_To_Height_Ratio, Maximum_Edge_Length, Tessellated_Facet_Long_Short_Edge_Ratio); END_TYPE;
TYPE Text = STRING; END_TYPE;
TYPE Text_Alignment = Label; END_TYPE;
TYPE Text_Delineation = Label; END_TYPE;
TYPE Text_Or_Character = SELECT (Annotation_Text, Annotation_Text_Character, Composite_Text, Defined_Character_Glyph, Text_Literal); END_TYPE;
TYPE Text_Path = ENUMERATION OF (Left, Right, Up, Down); END_TYPE;
TYPE Text_String_Representation_Item = SELECT (Annotation_Text, Annotation_Text_Character, Axis2_Placement, Composite_Text, Defined_Character_Glyph, Text_Literal); END_TYPE;
TYPE Texture_File_Type = ENUMERATION OF (Jpeg, Png, Gif, Tiff, Bmp, Dds, Tga, Other); END_TYPE;
TYPE Thermodynamic_Temperature_Measure = REAL; END_TYPE;
TYPE Time_Interval_Item = SELECT (Action, Action_Directive, Action_Method, Action_Property, Action_Relationship, Action_Request_Solution, Alternate_Product_Relationship, Analysis_Assignment, Applied_Action_Assignment, Applied_Classification_Assignment, Applied_Person_And_Organization_Assignment, Approval_Status, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Document_File, Draughting_Model, Drawing_Revision, Evidence, Executed_Action, General_Property, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organizational_Project, Organization_Relationship, Person_And_Organization, Presentation_Area, Product, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Association, Product_Concept_Feature_Category, Product_Concept_Feature_Category_Usage, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Product_Definition_Substitute, Property_Definition, Requirement_For_Action_Resource, Resource_Property, Security_Classification, Security_Classification_Level, Shape_Representation, Time_Interval_Based_Effectivity, Validation, Verification, Verification_Relationship, Versioned_Action_Request); END_TYPE;
TYPE Time_Measure = REAL; END_TYPE;
TYPE Tolerance_Method_Definition = SELECT (Limits_And_Fits, Tolerance_Value); END_TYPE;
TYPE Tolerance_Value_Or_Limits_And_Fits = SELECT (Limits_And_Fits, Tolerance_Value); END_TYPE;
TYPE Tolerance_Zone_Target = SELECT (Dimensional_Location, Dimensional_Size, General_Datum_Reference, Geometric_Tolerance); END_TYPE;
TYPE Transformation = SELECT (Functionally_Defined_Transformation, Item_Defined_Transformation, List_Item_Defined_Transformation, Set_Item_Defined_Transformation); END_TYPE;
TYPE Transition_Code = ENUMERATION OF (Discontinuous, Continuous, Cont_Same_Gradient, Cont_Same_Gradient_Same_Curvature); END_TYPE;
TYPE Trim_Condition_Select = SELECT (Generalized_Surface_Select, Length_Measure, Plane_Angle_Measure, Solid_Model); END_TYPE;
TYPE Trim_Intent = ENUMERATION OF (Blind, Offset, Through_All, Unspecified, Up_To_Next); END_TYPE;
TYPE Trimming_Preference = ENUMERATION OF (Cartesian, Parameter, Unspecified); END_TYPE;
TYPE Trimming_Select = SELECT (Cartesian_Point, Parameter_Value); END_TYPE;
TYPE Tuple_Space = SELECT (Extended_Tuple_Space, Product_Space); END_TYPE;
TYPE U_Direction_Count = INTEGER; WHERE WR1: SELF > 1; END_TYPE;
TYPE U_Or_V_Parameter = ENUMERATION OF (U_Parameter, V_Parameter); END_TYPE;
TYPE Unit = SELECT (Derived_Unit, Named_Unit); END_TYPE;
TYPE Unsigned_8_Bit_Integer = INTEGER; WHERE WR1: {0 <= SELF <= 255}; END_TYPE;
TYPE Used_Equivalence_Representation_Select = SELECT (Data_Equivalence_Criteria_Representation, Data_Equivalence_Inspection_Result_Representation); END_TYPE;
TYPE Used_Quality_Representation_Select = SELECT (Data_Quality_Criteria_Representation, Data_Quality_Inspection_Result_Representation); END_TYPE;
TYPE V_Direction_Count = INTEGER; WHERE WR1: SELF > 1; END_TYPE;
TYPE Validation_Criteria_Or_Results_Select = SELECT (Data_Equivalence_Definition_Representation_Relationship); END_TYPE;
TYPE Value_Format_Type = Identifier; WHERE WR1: LENGTH(SELF) <= 80; END_TYPE; -- value_format_type
TYPE Value_Qualifier = SELECT (Maths_Value_Precision_Qualifier, Precision_Qualifier, Type_Qualifier, Uncertainty_Qualifier, Value_Format_Type_Qualifier); END_TYPE;
TYPE Vector_Or_Direction = SELECT (Direction, Vector); END_TYPE;
TYPE Velocity_Measure = REAL; END_TYPE;
TYPE Volume_Measure = REAL; END_TYPE;
TYPE Week_In_Year_Number = INTEGER; WHERE WR1: { 1 <= SELF <= 53 }; END_TYPE;
TYPE Work_Item = SELECT (Product_Definition_Formation); END_TYPE;
TYPE Year_Number = INTEGER; WHERE WR1: (SELF > 1581); END_TYPE;
TYPE Ypr_Enumeration = ENUMERATION OF (Yaw, Pitch, Roll); END_TYPE;
TYPE Ypr_Rotation = ARRAY [Ypr_Index(yaw) : Ypr_Index(roll)] OF Plane_Angle_Measure; END_TYPE;
TYPE Zero_Or_One = Nonnegative_Integer; WHERE in_range: (SELF = 0) OR (SELF = 1); END_TYPE;
ENTITY A3m_Equivalence_Accuracy_Association; id : Identifier; name : Label; description : OPTIONAL Text; specific_accuracy : Shape_Measurement_Accuracy; equivalence_target : Accuracy_Associated_Target_Select; END_ENTITY;
ENTITY A3m_Equivalence_Assessment_By_Logical_Test SUBTYPE OF (Data_Equivalence_Assessment_Specification); END_ENTITY;
ENTITY A3m_Equivalence_Assessment_By_Numerical_Test SUBTYPE OF (Data_Equivalence_Assessment_Specification); threshold : Shape_Data_Quality_Value_Limit_Type_Select; END_ENTITY;
ENTITY A3m_Equivalence_Criteria_Representation SUBTYPE OF (Data_Equivalence_Criteria_Representation); WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_CRITERION' IN TYPEOF(q))) > 0; END_ENTITY;
ENTITY A3m_Equivalence_Criterion ABSTRACT SUPERTYPE OF (A3m_Equivalence_Criterion_With_Specified_Elements) SUBTYPE OF (Data_Equivalence_Criterion, Data_Equivalence_Inspection_Requirement); assessment_specification : A3m_Equivalence_Assessment_Specification_Select; comparing_element_types : LIST [1 : ?] OF A3m_Element_Type_Name; compared_element_types : LIST [1 : ?] OF A3m_Element_Type_Name; measured_data_type : A3m_Measured_Data_Type_Name; detected_difference_types : LIST [0 : ?] OF A3m_Detected_Difference_Type_Name; accuracy_types : LIST [0 : ?] OF A3m_Accuracy_Type_Name; WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERION_ASSESSMENT_ASSOCIATION.CRITERION')) = 0; WR2: SIZEOF(QUERY(i1 <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATED_REPRESENTATION_ITEM')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERION_INSPECTION_ASSOCIATION' IN TYPEOF(i1))) = 0; WR3: SIZEOF(QUERY(i1 <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATING_REPRESENTATION_ITEM')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERION_INSPECTION_ASSOCIATION' IN TYPEOF(i1))) = 0; END_ENTITY;
ENTITY A3m_Equivalence_Criterion_For_Assembly ABSTRACT SUPERTYPE OF (ONEOF(A3m_Equivalence_Criterion_Of_Assembly_Data_Structure, A3m_Equivalence_Criterion_Of_Detailed_Assembly_Data_Content, A3m_Equivalence_Criterion_Of_Component_Property_Difference, A3m_Equivalence_Criterion_Of_Representative_Assembly_Property_Value)) SUBTYPE OF (A3m_Equivalence_Criterion); SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF A3ma_Element_Type_Name; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : ?] OF A3ma_Element_Type_Name; SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : ?] OF A3ma_Detected_Difference_Type_Name; DERIVE SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ma_Accuracy_Type_Name := []; WHERE WR1: A3ma_Validate_Accuracy_Types(SELF, SELF); END_ENTITY;
ENTITY A3m_Equivalence_Criterion_For_Shape ABSTRACT SUPERTYPE OF (ONEOF(A3m_Equivalence_Criterion_Of_Detailed_Shape_Data_Content, A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value, A3m_Equivalence_Criterion_Of_Shape_Data_Structure)) SUBTYPE OF (A3m_Equivalence_Criterion); SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF A3ms_Element_Type_Name; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : ?] OF A3ms_Element_Type_Name; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : ?] OF A3ms_Detected_Difference_Type_Name; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : ?] OF A3ms_Accuracy_Type_Name; WHERE WR1: A3ms_Validate_Accuracy_Types(SELF, SELF); END_ENTITY;
ENTITY A3m_Equivalence_Criterion_Of_Assembly_Data_Structure ABSTRACT SUPERTYPE OF (ONEOF(Different_Component_Identification_Via_Multi_Level_Reference, Mismatch_Of_Component, Missing_Assembly_Constraint, Missing_Component)) SUBTYPE OF (A3m_Equivalence_Criterion_For_Assembly); DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ma_Element_Type_Name := [Etna_Product_Definition_Or_Reference]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ma_Element_Type_Name := [Etna_Product_Definition_Or_Reference]; END_ENTITY;
ENTITY A3m_Equivalence_Criterion_Of_Component_Property_Difference ABSTRACT SUPERTYPE OF (Different_Component_Shape) SUBTYPE OF (A3m_Equivalence_Criterion_For_Assembly); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Boolean_Value; END_ENTITY;
ENTITY A3m_Equivalence_Criterion_Of_Detailed_Assembly_Data_Content ABSTRACT SUPERTYPE OF (ONEOF(Different_Angle_Of_Assembly_Constraint, Different_Assembly_Constraint_Type, Different_Component_Type, Different_Length_Of_Assembly_Constraint, Different_Placement_Of_Component)) SUBTYPE OF (A3m_Equivalence_Criterion_For_Assembly); DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ma_Element_Type_Name := [Etna_Product_Definition_Or_Reference]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ma_Element_Type_Name := [Etna_Product_Definition_Or_Reference]; END_ENTITY;
ENTITY A3m_Equivalence_Criterion_Of_Detailed_Shape_Data_Content ABSTRACT SUPERTYPE OF (ONEOF(Different_Surface_Normal, Mismatch_Of_Arcwise_Connected_Curves, Mismatch_Of_Arcwise_Connected_Surfaces, Mismatch_Of_Arcwise_Connected_Surfaces_Boundary, Mismatch_Of_Points, Mismatch_Of_Point_Cloud_And_Related_Geometry, Mismatch_Of_Underlying_Edge_Geometry, Mismatch_Of_Underlying_Face_Geometry)) SUBTYPE OF (A3m_Equivalence_Criterion_For_Shape); END_ENTITY;
ENTITY A3m_Equivalence_Criterion_Of_Representative_Assembly_Property_Value ABSTRACT SUPERTYPE OF (ONEOF(Different_Assembly_Centroid, Different_Assembly_Centroid_Using_Notional_Solid, Different_Assembly_Volume, Different_Number_Of_Components)) SUBTYPE OF (A3m_Equivalence_Criterion_For_Assembly); DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ma_Element_Type_Name := [Etna_Product_Definition_Or_Reference]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ma_Element_Type_Name := [Etna_Product_Definition_Or_Reference]; END_ENTITY;
ENTITY A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value ABSTRACT SUPERTYPE OF (ONEOF(Different_Bounding_Box, Different_Centroid, Different_Curve_Length, Different_Number_Of_Closed_Shell, Different_Number_Of_Geometric_Elements, Different_Number_Of_Geometric_Elements_Wireframe_Model, Different_Number_Of_Topological_Elements, Different_Number_Of_Topological_Elements_Wireframe_Model, Different_Surface_Area, Different_Volume)) SUBTYPE OF (A3m_Equivalence_Criterion_For_Shape); DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF A3m_Element_Type_Name := SELF\A3m_Equivalence_Criterion.compared_element_types; END_ENTITY;
ENTITY A3m_Equivalence_Criterion_Of_Shape_Data_Structure ABSTRACT SUPERTYPE OF (ONEOF(Mismatch_Of_Edges, Mismatch_Of_Faces, Missing_Edge, Missing_Face)) SUBTYPE OF (A3m_Equivalence_Criterion_For_Shape); DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : ?] OF A3m_Element_Type_Name := SELF\A3m_Equivalence_Criterion.compared_element_types; END_ENTITY;
ENTITY A3m_Equivalence_Criterion_Report_Item_With_Measured_Value SUBTYPE OF (Data_Equivalence_Inspection_Criterion_Report_Item); representative_measured_value : Equivalence_Measured_Value_Select; value_type : Representative_Value_Type; UNIQUE UR1: SELF\Data_Equivalence_Inspection_Criterion_Report_Item.criterion_report, value_type; END_ENTITY;
ENTITY A3m_Equivalence_Criterion_With_Specified_Elements SUBTYPE OF (A3m_Equivalence_Criterion); comparing_specified_elements : SET [1 : ?] OF Inspected_Equivalence_Element_Select; compared_specified_elements : SET [1 : ?] OF Inspected_Equivalence_Element_Select; END_ENTITY;
ENTITY A3m_Equivalence_Inspection_Instance_Report_Item SUBTYPE OF (Data_Equivalence_Inspection_Instance_Report_Item); measured_value_for_inspected_element : Equivalence_Measured_Value_Select; END_ENTITY;
ENTITY A3m_Equivalence_Inspection_Requirement_With_Values ABSTRACT SUPERTYPE SUBTYPE OF (Data_Equivalence_Inspection_Requirement); applied_values : SET [1 : ?] OF Measure_Representation_Item; END_ENTITY;
ENTITY A3m_Equivalence_Inspection_Result_Representation SUBTYPE OF (Data_Equivalence_Inspection_Result_Representation); END_ENTITY;
ENTITY A3m_Equivalence_Inspection_Result_Representation_For_Assembly SUBTYPE OF (A3m_Equivalence_Inspection_Result_Representation); WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MS_EQUIVALENCE_INSPECTION_RESULT' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY A3m_Equivalence_Inspection_Result_Representation_For_Shape SUBTYPE OF (A3m_Equivalence_Inspection_Result_Representation); WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MA_EQUIVALENCE_INSPECTION_RESULT' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY A3m_Equivalence_Summary_Report_Request_With_Representative_Value SUBTYPE OF (Data_Equivalence_Report_Request); report_request_type : Representative_Value_Type; END_ENTITY;
ENTITY A3m_Inspected_Model_And_Inspection_Result_Relationship; inspected_model : Target_Annotated_3d_Model_Select; equivalence_result : A3m_Equivalence_Inspection_Result_Representation; END_ENTITY;
ENTITY A3ma_Assembly_And_Shape_Criteria_Relationship SUBTYPE OF (Representation_Item_Relationship); SELF\representation_item_relationship.relating_representation_item : Different_Component_Shape; SELF\representation_item_relationship.related_representation_item : A3m_Equivalence_Criterion_For_Shape; END_ENTITY;
ENTITY A3ma_Equivalence_Criterion_Assessment_Threshold_Relationship SUBTYPE OF (Representation_Item_Relationship); SELF\representation_item_relationship.relating_representation_item : Different_Placement_Of_Component; SELF\representation_item_relationship.related_representation_item : Shape_Data_Quality_Lower_Value_Limit; END_ENTITY;
ENTITY A3ma_Equivalence_Inspection_Result SUBTYPE OF (Data_Equivalence_Inspection_Result); SELF\data_equivalence_inspection_result.criterion_inspected : A3m_Equivalence_Criterion_For_Assembly; WHERE WR1: A3ma_Validate_Accuracy_Types(SELF, SELF\Data_Equivalence_Inspection_Result.criterion_inspected); WR2: SIZEOF(QUERY(re <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) | NOT (A3ma_Validate_Element_Types(re, SELF\Data_Equivalence_Inspection_Result.criterion_inspected)))) = 0; WR3: SIZEOF(QUERY(re <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) | NOT (A3ma_Validate_Detected_Difference_Types(re, SELF\Data_Equivalence_Inspection_Result.criterion_inspected)))) = 0; WR4: SIZEOF(QUERY(re <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) | NOT (A3ma_Validate_Measured_Type(re, SELF\Data_Equivalence_Inspection_Result.criterion_inspected)))) = 0; END_ENTITY;
ENTITY A3ma_Length_Measure_And_Context_Dependent_Measure_Pair SUBTYPE OF (Compound_Representation_Item); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LIST_REPRESENTATION_ITEM' IN TYPEOF(SELF\Compound_Representation_Item.item_element); WR2: SIZEOF(SELF\Compound_Representation_Item.item_element) = 2; WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF(SELF\Compound_Representation_Item.item_element[1]); WR4: SIZEOF(QUERY(vri <* [SELF\Compound_Representation_Item.item_element[1]] | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(vri.value_component))) = 1; WR5: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF(SELF\Compound_Representation_Item.item_element[2]); WR6: SIZEOF(QUERY(vri <* [SELF\Compound_Representation_Item.item_element[2]] | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_MEASURE' IN TYPEOF(vri.value_component))) = 1; END_ENTITY;
ENTITY A3ms_Equivalence_Criterion_With_Specified_Elements SUBTYPE OF (A3m_Equivalence_Criterion_For_Shape, A3m_Equivalence_Criterion_With_Specified_Elements); SELF\a3m_equivalence_criterion_with_specified_elements.comparing_specified_elements : SET [1 : ?] OF A3ms_Inspected_Equivalence_Element_Select; SELF\a3m_equivalence_criterion_with_specified_elements.compared_specified_elements : SET [1 : ?] OF A3ms_Inspected_Equivalence_Element_Select; WHERE WR1: (A3ms_Get_Element_Type(SELF.comparing_specified_elements) = Etns_External_Representation_Item) OR (A3ms_Get_Element_Type(SELF.comparing_specified_elements) IN SELF\A3m_Equivalence_Criterion_For_Shape.comparing_element_types); WR2: (A3ms_Get_Element_Type(SELF.compared_specified_elements) = Etns_External_Representation_Item) OR (A3ms_Get_Element_Type(SELF.compared_specified_elements) IN SELF\A3m_Equivalence_Criterion_For_Shape.compared_element_types); END_ENTITY;
ENTITY A3ms_Equivalence_Inspection_Result SUBTYPE OF (Data_Equivalence_Inspection_Result); SELF\data_equivalence_inspection_result.criterion_inspected : A3m_Equivalence_Criterion_For_Shape; WHERE WR1: A3ms_Validate_Accuracy_Types(SELF, SELF\Data_Equivalence_Inspection_Result.criterion_inspected); WR2: SIZEOF(QUERY(re <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) | NOT (A3ms_Validate_Element_Types(re, SELF\Data_Equivalence_Inspection_Result.criterion_inspected)))) = 0; WR3: SIZEOF(QUERY(re <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) | NOT (A3ms_Validate_Detected_Difference_Types(re, SELF\Data_Equivalence_Inspection_Result.criterion_inspected)))) = 0; WR4: SIZEOF(QUERY(re <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_REPORT.INSPECTION_RESULT')) | NOT (A3ms_Validate_Measured_Type(re, SELF\Data_Equivalence_Inspection_Result.criterion_inspected)))) = 0; END_ENTITY;
ENTITY Abrupt_Change_Of_Surface_Normal SUBTYPE OF (Geometry_With_Local_Irregularity); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; small_vector_tolerance : Length_Measure; test_point_distance_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Abs_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Absorbed_Dose_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABSORBED_DOSE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Absorbed_Dose_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Gray); END_ENTITY;
ENTITY Abstract_Variable SUBTYPE OF (Property_Definition, Property_Definition_Representation, Representation, Representation_Item); END_ENTITY;
ENTITY Abstracted_Expression_Function SUBTYPE OF (Maths_Function, Quantifier_Expression); DERIVE SELF\quantifier_expression.variables : LIST [1 : ?] OF UNIQUE Generic_Variable := Remove_First(SELF\Multiple_Arity_Generic_Expression.operands); expr : Generic_Expression := SELF\Multiple_Arity_Generic_Expression.operands[1]; WHERE WR1: SIZEOF(QUERY(operand <* SELF\Multiple_Arity_Generic_Expression.operands | NOT (Has_Values_Space(operand)))) = 0; END_ENTITY;
ENTITY Acceleration_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACCELERATION_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Acceleration_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensional_Exponents(1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0); END_ENTITY;
ENTITY Acos_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Action; name : Label; description : OPTIONAL Text; chosen_method : Action_Method; DERIVE id : Identifier := Get_Id_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Action_Actual SUBTYPE OF (Executed_Action); END_ENTITY;
ENTITY Action_Assignment ABSTRACT SUPERTYPE OF ((ONEOF(Applied_Usage_Right, Applied_Action_Assignment))); assigned_action : Action; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Action_Directive; name : Label; description : OPTIONAL Text; analysis : Text; comment : Text; requests : SET [1 : ?] OF Versioned_Action_Request; END_ENTITY;
ENTITY Action_Directive_Relationship; name : Label; description : OPTIONAL STRING; relating : Action_Directive; related : Action_Directive; relation_type : STRING; WHERE WR1: Acyclic_Action_Directive_Relationship(SELF, [related], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_DIRECTIVE_RELATIONSHIP'); END_ENTITY;
ENTITY Action_Happening SUBTYPE OF (Action_Relationship); END_ENTITY;
ENTITY Action_Method; name : Label; description : OPTIONAL Text; consequence : Text; purpose : Text; END_ENTITY;
ENTITY Action_Method_Assignment ABSTRACT SUPERTYPE; assigned_action_method : Action_Method; role : Action_Method_Role; END_ENTITY;
ENTITY Action_Method_Relationship; name : Label; description : OPTIONAL Text; relating_method : Action_Method; related_method : Action_Method; END_ENTITY;
ENTITY Action_Method_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Action_Property; name : Label; description : Text; definition : Characterized_Action_Definition; END_ENTITY;
ENTITY Action_Property_Representation; name : Label; description : Text; property : Action_Property; representation : Representation; END_ENTITY;
ENTITY Action_Relationship; name : Label; description : OPTIONAL Text; relating_action : Action; related_action : Action; END_ENTITY;
ENTITY Action_Request_Assignment ABSTRACT SUPERTYPE; assigned_action_request : Versioned_Action_Request; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Action_Request_Solution; method : Action_Method; request : Versioned_Action_Request; DERIVE description : Text := Get_Description_Value(SELF); name : Label := Get_Name_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY;
ENTITY Action_Request_Status; status : Label; assigned_request : Versioned_Action_Request; END_ENTITY;
ENTITY Action_Resource; name : Label; description : OPTIONAL Text; usage : SET [1 : ?] OF Supported_Item; kind : Action_Resource_Type; END_ENTITY;
ENTITY Action_Resource_Relationship; name : Label; description : OPTIONAL Text; relating_resource : Action_Resource; related_resource : Action_Resource; END_ENTITY;
ENTITY Action_Resource_Requirement; name : Label; description : Text; kind : Resource_Requirement_Type; operations : SET [1 : ?] OF Characterized_Action_Definition; END_ENTITY;
ENTITY Action_Resource_Type; name : Label; END_ENTITY;
ENTITY Action_Status; status : Label; assigned_action : Executed_Action; END_ENTITY;
ENTITY Actuated_Kinematic_Pair SUBTYPE OF (Kinematic_Pair); t_x : OPTIONAL Actuated_Direction; t_y : OPTIONAL Actuated_Direction; t_z : OPTIONAL Actuated_Direction; r_x : OPTIONAL Actuated_Direction; r_y : OPTIONAL Actuated_Direction; r_z : OPTIONAL Actuated_Direction; END_ENTITY;
ENTITY Add_Element SUBTYPE OF (Change_Element); END_ENTITY;
ENTITY Additive_Manufacturing_Build_Plate_Relationship SUBTYPE OF (Additive_Manufacturing_Setup_Relationship); END_ENTITY;
ENTITY Additive_Manufacturing_Setup SUBTYPE OF (Product); END_ENTITY;
ENTITY Additive_Manufacturing_Setup_Relationship ABSTRACT SUPERTYPE OF (ONEOF(Additive_Manufacturing_Build_Plate_Relationship, Additive_Manufacturing_Support_Structure_Geometry_Relationship, Additive_Manufacturing_Setup_Workpiece_Relationship)) SUBTYPE OF (Next_Assembly_Usage_Occurrence); END_ENTITY;
ENTITY Additive_Manufacturing_Setup_Workpiece_Relationship SUBTYPE OF (Additive_Manufacturing_Setup_Relationship); END_ENTITY;
ENTITY Additive_Manufacturing_Support_Structure_Geometry_Relationship SUBTYPE OF (Additive_Manufacturing_Setup_Relationship); END_ENTITY;
ENTITY Address; internal_location : OPTIONAL Label; street_number : OPTIONAL Label; street : OPTIONAL Label; postal_box : OPTIONAL Label; town : OPTIONAL Label; region : OPTIONAL Label; postal_code : OPTIONAL Label; country : OPTIONAL Label; facsimile_number : OPTIONAL Label; telephone_number : OPTIONAL Label; electronic_mail_address : OPTIONAL Label; telex_number : OPTIONAL Label; DERIVE name : Label := Get_Name_Value(SELF); url : Identifier := Get_Id_Value(SELF); WHERE WR1: EXISTS(internal_location) OR EXISTS(street_number) OR EXISTS(street) OR EXISTS(postal_box) OR EXISTS(town) OR EXISTS(region) OR EXISTS(postal_code) OR EXISTS(country) OR EXISTS(facsimile_number) OR EXISTS(telephone_number) OR EXISTS(electronic_mail_address) OR EXISTS(telex_number); END_ENTITY;
ENTITY Advanced_Brep_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1))) > 0; WR3: SIZEOF(QUERY(msb <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(csh <* Msb_Shells(msb) | NOT (SIZEOF(QUERY(fcs <* csh\Connected_Face_Set.cfs_faces | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fcs)))) = 0))) = 0))) = 0; WR4: SIZEOF(QUERY(msb <* QUERY(it <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\Manifold_Solid_Brep.outer)))) = 0; WR5: SIZEOF(QUERY(brv <* QUERY(it <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(csh <* brv\Brep_With_Voids.voids | csh\Oriented_Closed_Shell.Orientation)) = 0))) = 0; WR6: SIZEOF(QUERY(mi <* QUERY(it <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)))) = 0; END_ENTITY;
ENTITY Advanced_Face SUBTYPE OF (Face_Surface); WHERE WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE'] * TYPEOF(face_geometry)) = 1; WR2: SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(oe\Oriented_Edge.edge_element)))) = 0))) = 0; WR3: SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE'] * TYPEOF(oe.edge_element\Edge_Curve.edge_geometry)) = 1))) = 0))) = 0; WR4: SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(oe\Edge.edge_start)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(oe\Edge.edge_start\Vertex_Point.vertex_geometry))) AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(oe\Edge.edge_end)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(oe\Edge.edge_end\Vertex_Point.vertex_geometry)))))) = 0))) = 0; WR5: SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_PATH' IN TYPEOF(elp_fbnds.bound)))) = 0; WR6: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE'] * TYPEOF(face_geometry\Swept_Surface.swept_curve)) = 1); WR7: SIZEOF(QUERY(vlp_fbnds <* QUERY(bnds <* bounds | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound))) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(vlp_fbnds\Face_Bound.bound\Vertex_Loop.loop_vertex)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(vlp_fbnds\Face_Bound.bound\Vertex_Loop.loop_vertex\Vertex_Point.vertex_geometry))))) = 0; WR8: SIZEOF(QUERY(bnd <* bounds | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP'] * TYPEOF(bnd.bound)) = 1))) = 0; WR9: SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(oe\Oriented_Edge.edge_element\Edge_Curve.edge_geometry)) AND NOT (SIZEOF(QUERY(sc_ag <* oe.edge_element\Edge_Curve.edge_geometry\Surface_Curve.associated_geometry | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(sc_ag)))) = 0))) = 0))) = 0; WR10: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF(face_geometry)) OR (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(face_geometry\Swept_Surface.swept_curve)) OR (SIZEOF(face_geometry\Swept_Surface.swept_curve\Polyline.points) >= 3))) AND (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* bounds | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound))) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(oe\Oriented_Edge.edge_element\Edge_Curve.edge_geometry)) AND NOT (SIZEOF(oe\Oriented_Edge.edge_element\Edge_Curve.edge_geometry\Polyline.points) >= 3))) = 0))) = 0); END_ENTITY;
ENTITY Agc_With_Dimension SUBTYPE OF (Angle_Geometric_Constraint); angle_value : Plane_Angle_Measure; END_ENTITY;
ENTITY Aggregate_Id_Attribute; attribute_value : Identifier; identified_item : SET [1 : ?] OF Id_Attribute_Select; END_ENTITY;
ENTITY All_Around_Shape_Aspect SUBTYPE OF (Continuous_Shape_Aspect); END_ENTITY;
ENTITY Alternate_Product_Relationship; name : Label; definition : OPTIONAL Text; alternate : Product; base : Product; basis : Text; UNIQUE UR1: alternate, base; WHERE WR1: alternate :<>: base; END_ENTITY;
ENTITY Alternative_Solution_Relationship SUBTYPE OF (Product_Definition_Formation_Relationship); relation_type : STRING; WHERE WR1: Acyclic_Alternative_Solution_Relationship(SELF, [SELF\Product_Definition_Formation_Relationship.related_product_definition_formation], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ALTERNATIVE_SOLUTION_RELATIONSHIP'); END_ENTITY;
ENTITY Amount_Of_Substance_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AMOUNT_OF_SUBSTANCE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Amount_Of_Substance_Unit SUBTYPE OF (Named_Unit); WHERE WR1: (SELF\Named_Unit.dimensions.length_exponent = 0.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 0.0) AND (SELF\Named_Unit.dimensions.time_exponent = 0.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 0.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 1.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY;
ENTITY Analysis_Assignment SUBTYPE OF (Group); END_ENTITY;
ENTITY Analysis_Item SUBTYPE OF (Group_Assignment); items : SET [1 : 1] OF Analysed_Item; SELF\group_assignment.assigned_group : Analysis_Assignment; END_ENTITY;
ENTITY Analysis_Model SUBTYPE OF (Representation); SELF\representation.context_of_items : Analysis_Representation_Context; END_ENTITY;
ENTITY Analysis_Representation_Context SUBTYPE OF (Representation_Context); END_ENTITY;
ENTITY And_Expression SUBTYPE OF (Multiple_Arity_Boolean_Expression); END_ENTITY;
ENTITY Angle_Assembly_Constraint_With_Dimension SUBTYPE OF (Binary_Assembly_Constraint, Agc_With_Dimension); END_ENTITY;
ENTITY Angle_Direction_Reference SUBTYPE OF (Representation_Item_Relationship, Geometric_Representation_Item); SELF\representation_item_relationship.relating_representation_item : Orientation_Basis_Select; SELF\representation_item_relationship.related_representation_item : Angle_Direction_Reference_Select; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF(relating_representation_item)) OR NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_PATH' IN TYPEOF(related_representation_item)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(relating_representation_item)); END_ENTITY;
ENTITY Angle_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Linear_Geometry_Constraint_Element; SELF\explicit_constraint.reference_elements : SET [0 : 1] OF Linear_Geometry_Constraint_Element; WHERE WR1: (SIZEOF(SELF\Explicit_Constraint.reference_elements) = 1) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 2)); END_ENTITY;
ENTITY Angular_Dimension SUBTYPE OF (Dimension_Curve_Directed_Callout); END_ENTITY;
ENTITY Angular_Location SUBTYPE OF (Dimensional_Location); angle_selection : Angle_Relator; END_ENTITY;
ENTITY Angular_Size SUBTYPE OF (Dimensional_Size); angle_selection : Angle_Relator; END_ENTITY;
ENTITY Angularity_Tolerance SUBTYPE OF (Geometric_Tolerance_With_Datum_Reference); END_ENTITY;
ENTITY Annotation_Curve_Occurrence SUPERTYPE OF ((ONEOF(Leader_Curve, Projection_Curve))) SUBTYPE OF (Annotation_Occurrence); SELF\styled_item.item : Curve_Or_Curve_Set; END_ENTITY;
ENTITY Annotation_Fill_Area SUBTYPE OF (Geometric_Representation_Item); boundaries : SET [1 : ?] OF Curve; WHERE WR1: (SELF\Geometric_Representation_Item.dim = 3) OR (SIZEOF(QUERY(Curve <* boundaries | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN TYPEOF(Curve)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE' IN TYPEOF(Curve)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(Curve)) AND (Curve\B_Spline_Curve.closed_curve = TRUE)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(Curve)) AND (Curve\Composite_Curve.closed_curve = TRUE)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(Curve)) AND (Curve\Polyline.points[LOINDEX(Curve\Polyline.points)] = Curve\Polyline.points[HIINDEX(Curve\Polyline.points)]))))) = 0); END_ENTITY;
ENTITY Annotation_Fill_Area_Occurrence SUBTYPE OF (Annotation_Occurrence); fill_style_target : Point; SELF\styled_item.item : Annotation_Fill_Area; END_ENTITY;
ENTITY Annotation_Occurrence SUPERTYPE OF ((ONEOF(Annotation_Point_Occurrence, Annotation_Curve_Occurrence, Annotation_Fill_Area_Occurrence, Annotation_Text_Occurrence, Annotation_Symbol_Occurrence)) ANDOR (ONEOF(Annotation_Curve_Occurrence, Annotation_Fill_Area_Occurrence, Annotation_Plane, Annotation_Symbol_Occurrence, Annotation_Text_Occurrence))) SUBTYPE OF (Styled_Item); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); WR2: SIZEOF(QUERY(reps <* Using_Representations(SELF) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_REPRESENTATION_SELECT' IN TYPEOF(reps)))) = 0; END_ENTITY;
ENTITY Annotation_Occurrence_Associativity SUBTYPE OF (Annotation_Occurrence_Relationship); WHERE WR1: SIZEOF(TYPEOF(SELF.related_annotation_occurrence) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE']) = 1; END_ENTITY;
ENTITY Annotation_Occurrence_Relationship; name : Label; description : Text; relating_annotation_occurrence : Annotation_Occurrence; related_annotation_occurrence : Annotation_Occurrence; END_ENTITY;
ENTITY Annotation_Placeholder_Occurrence SUBTYPE OF (Annotation_Occurrence, Geometric_Representation_Item); SELF\styled_item.item : Geometric_Set; role : Annotation_Placeholder_Occurrence_Role; line_spacing : Positive_Length_Measure; INVERSE the_callout : Draughting_Callout FOR contents; the_draughting_model_item_association_with_placeholders : SET [0:1] OF Draughting_Model_Item_Association_With_Placeholder FOR annotation_placeholder; WHERE WR1: Md_Valid_Content_In_Geometric_Set_For_Placeholder(item); WR2: NOT (role = Annotation_Placeholder_Occurrence_Role.Gps_Data) OR ((SIZEOF(the_draughting_model_item_association_with_placeholders) = 1) AND Md_Pmi_Name_And_Type_Correlation(SELF)); END_ENTITY;
ENTITY Annotation_Plane SUBTYPE OF (Annotation_Occurrence, Geometric_Representation_Item); elements : OPTIONAL SET [1 : ?] OF Annotation_Plane_Element; SELF\styled_item.item : Plane_Or_Planar_Box; WHERE WR1: SELF\Geometric_Representation_Item.dim = 3; WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_BOX' IN TYPEOF(SELF\Styled_Item.item)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\Styled_Item.item\Planar_Box.Placement)); WR3: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_BOX' IN TYPEOF(SELF\Styled_Item.item)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(SELF\Styled_Item.styles[1]\Presentation_Style_Assignment.styles[1]))) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(SELF\Styled_Item.item)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE' IN TYPEOF(SELF\Styled_Item.styles[1]\Presentation_Style_Assignment.styles[1]))); WR4: (SIZEOF(SELF\Styled_Item.styles) = 1) AND (SIZEOF(SELF\Styled_Item.styles[1]\Presentation_Style_Assignment.styles) = 1); END_ENTITY;
ENTITY Annotation_Point_Occurrence SUBTYPE OF (Annotation_Occurrence); SELF\styled_item.item : Point; END_ENTITY;
ENTITY Annotation_Subfigure_Occurrence SUBTYPE OF (Annotation_Symbol_Occurrence); WHERE WR1: SIZEOF(QUERY(sty <* SELF.styles | NOT (SIZEOF(sty.styles) = 1))) = 0; WR2: SIZEOF(QUERY(sty <* SELF.styles | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NULL_STYLE' IN TYPEOF(sty.styles[1])))) = 0; WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item)); WR4: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION' IN TYPEOF(SELF.item\Mapped_Item.mapping_source.mapped_representation)); END_ENTITY;
ENTITY Annotation_Symbol SUBTYPE OF (Mapped_Item); SELF\mapped_item.mapping_source : Symbol_Representation_Map; SELF\mapped_item.mapping_target : Symbol_Target; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY;
ENTITY Annotation_Symbol_Occurrence SUBTYPE OF (Annotation_Occurrence); SELF\styled_item.item : Annotation_Symbol_Occurrence_Item; END_ENTITY;
ENTITY Annotation_Text SUBTYPE OF (Mapped_Item); SELF\mapped_item.mapping_target : Axis2_Placement; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STRING_REPRESENTATION' IN TYPEOF(SELF\Mapped_Item.mapping_source.mapped_representation); WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY;
ENTITY Annotation_Text_Character SUBTYPE OF (Mapped_Item); alignment : Text_Alignment; SELF\mapped_item.mapping_target : Axis2_Placement; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN TYPEOF(SELF\Mapped_Item.mapping_source.mapped_representation); WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY;
ENTITY Annotation_Text_Occurrence SUBTYPE OF (Annotation_Occurrence); SELF\styled_item.item : Annotation_Text_Occurrence_Item; END_ENTITY;
ENTITY Ap242_Assignment_Object_Relationship SUBTYPE OF (Assignment_Object_Relationship); SELF\assignment_object_relationship.related : Ap242_Assignment_Object_Select; SELF\assignment_object_relationship.relating : Ap242_Assignment_Object_Select; END_ENTITY;
ENTITY Apex SUBTYPE OF (Derived_Shape_Aspect); END_ENTITY;
ENTITY Application_Context; application : Label; DERIVE description : Text := Get_Description_Value(SELF); id : Identifier := Get_Id_Value(SELF); INVERSE context_elements : SET [1:?] OF Application_Context_Element FOR frame_of_reference; WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Application_Context_Element SUPERTYPE OF (ONEOF(Product_Concept_Context, Product_Context, Product_Definition_Context)); name : Label; frame_of_reference : Application_Context; END_ENTITY;
ENTITY Application_Defined_Function SUBTYPE OF (Maths_Function); explicit_domain : Tuple_Space; explicit_range : Tuple_Space; parameters : LIST OF Maths_Value; WHERE WR1: Expression_Is_Constant(explicit_domain); WR2: Expression_Is_Constant(explicit_range); END_ENTITY;
ENTITY Application_Protocol_Definition; status : Label; application_interpreted_model_schema_name : Label; application_protocol_year : Year_Number; application : Application_Context; END_ENTITY;
ENTITY Applied_Action_Assignment SUBTYPE OF (Action_Assignment); items : SET [1 : ?] OF Action_Items; END_ENTITY;
ENTITY Applied_Action_Method_Assignment SUBTYPE OF (Action_Method_Assignment); items : SET [1 : ?] OF Action_Method_Items; END_ENTITY;
ENTITY Applied_Action_Request_Assignment SUBTYPE OF (Action_Request_Assignment); items : SET [1 : ?] OF Action_Request_Item; END_ENTITY;
ENTITY Applied_Approval_Assignment SUBTYPE OF (Approval_Assignment); items : SET [1 : ?] OF Approval_Item; END_ENTITY;
ENTITY Applied_Area SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.of_shape)); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT ({2 <= SIZEOF(impl_rep.used_representation.items) <= 3})))) = 0)))) = 0); WR4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | NOT (srwp_i.name IN ['orientation','effective length','maximum length']))) > 0))) = 0))) = 0; WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'effective length')))) = 1)))) = 0)))) <= 1); WR6: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'maximum length')))) <= 1)))) = 0)))) = 0); WR7: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) = 1)))) = 0)))) = 0); END_ENTITY;
ENTITY Applied_Attribute_Classification_Assignment SUBTYPE OF (Attribute_Classification_Assignment); SELF\attribute_classification_assignment.assigned_class : Class; items : SET [1 : ?] OF Attribute_Classification_Item; END_ENTITY;
ENTITY Applied_Certification_Assignment SUBTYPE OF (Certification_Assignment); items : SET [1 : ?] OF Certification_Item; END_ENTITY;
ENTITY Applied_Classification_Assignment SUBTYPE OF (Classification_Assignment); items : SET [1 : ?] OF Classification_Item; END_ENTITY;
ENTITY Applied_Classification_Assignment_Relationship SUBTYPE OF (Classification_Assignment_Relationship); SELF\classification_assignment_relationship.related : Applied_Classification_Assignment; SELF\classification_assignment_relationship.relating : Applied_Classification_Assignment; END_ENTITY;
ENTITY Applied_Contract_Assignment SUBTYPE OF (Contract_Assignment); items : SET [1 : ?] OF Contract_Item; END_ENTITY;
ENTITY Applied_Date_And_Time_Assignment SUBTYPE OF (Date_And_Time_Assignment); items : SET [1 : ?] OF Date_And_Time_Item; END_ENTITY;
ENTITY Applied_Date_Assignment SUBTYPE OF (Date_Assignment); items : SET [1 : ?] OF Date_Item; END_ENTITY;
ENTITY Applied_Description_Text_Assignment SUBTYPE OF (Description_Text_Assignment); items : SET [1 : ?] OF Description_Item; END_ENTITY;
ENTITY Applied_Description_Text_Assignment_Relationship SUBTYPE OF (Description_Text_Assignment_Relationship); SELF\description_text_assignment_relationship.related : Applied_Description_Text_Assignment; SELF\description_text_assignment_relationship.relating : Applied_Description_Text_Assignment; END_ENTITY;
ENTITY Applied_Directed_Action_Assignment SUBTYPE OF (Directed_Action_Assignment); items : SET [1 : ?] OF Action_Request_Item; END_ENTITY;
ENTITY Applied_Document_Reference SUBTYPE OF (Document_Reference); items : SET [1 : ?] OF Document_Reference_Item; END_ENTITY;
ENTITY Applied_Document_Usage_Constraint_Assignment SUBTYPE OF (Document_Usage_Constraint_Assignment); items : SET [1 : ?] OF Document_Reference_Item; END_ENTITY;
ENTITY Applied_Effectivity_Assignment SUBTYPE OF (Effectivity_Assignment); items : SET [1 : ?] OF Effectivity_Item; END_ENTITY;
ENTITY Applied_Event_Occurrence_Assignment SUBTYPE OF (Event_Occurrence_Assignment); items : SET [1 : ?] OF Event_Occurrence_Item; END_ENTITY;
ENTITY Applied_External_Identification_Assignment SUBTYPE OF (External_Identification_Assignment); items : SET [1 : ?] OF External_Identification_Item; END_ENTITY;
ENTITY Applied_External_Identification_Assignment_Relationship SUBTYPE OF (External_Identification_Assignment_Relationship); SELF\external_identification_assignment_relationship.related : Applied_External_Identification_Assignment; SELF\external_identification_assignment_relationship.relating : Applied_External_Identification_Assignment; END_ENTITY;
ENTITY Applied_Group_Assignment SUBTYPE OF (Group_Assignment); items : SET [1 : ?] OF Groupable_Item; END_ENTITY;
ENTITY Applied_Identification_Assignment SUBTYPE OF (Identification_Assignment); items : SET [1 : ?] OF Identification_Item; END_ENTITY;
ENTITY Applied_Ineffectivity_Assignment SUBTYPE OF (Effectivity_Assignment); items : SET [1 : ?] OF Effectivity_Item; WHERE WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOT_EFFECTIVITY', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SERIAL_NUMBERED_EFFECTIVITY', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_EFFECTIVITY'] * TYPEOF(SELF.assigned_effectivity)) = 0; END_ENTITY;
ENTITY Applied_Location_Assignment SUBTYPE OF (Location_Assignment); items : SET [1 : ?] OF Location_Item; END_ENTITY;
ENTITY Applied_Location_Representation_Assignment SUBTYPE OF (Location_Representation_Assignment); items : SET [1 : ?] OF Location_Representation_Item; END_ENTITY;
ENTITY Applied_Name_Assignment SUBTYPE OF (Name_Assignment); item : Name_Item; END_ENTITY;
ENTITY Applied_Organization_Assignment SUBTYPE OF (Organization_Assignment); items : SET [1 : ?] OF Organization_Item; END_ENTITY;
ENTITY Applied_Organization_Type_Assignment SUBTYPE OF (Organization_Type_Assignment); items : SET [1 : ?] OF Organization_Type_Item; END_ENTITY;
ENTITY Applied_Organizational_Project_Assignment SUBTYPE OF (Organizational_Project_Assignment); items : SET [1 : ?] OF Project_Item; END_ENTITY;
ENTITY Applied_Person_And_Organization_Assignment SUBTYPE OF (Person_And_Organization_Assignment); items : SET [1 : ?] OF Person_And_Organization_Item; END_ENTITY;
ENTITY Applied_Presented_Item SUBTYPE OF (Presented_Item); items : SET [1 : ?] OF Presented_Item_Select; END_ENTITY;
ENTITY Applied_Security_Classification_Assignment SUBTYPE OF (Security_Classification_Assignment); items : SET [1 : ?] OF Security_Classification_Item; END_ENTITY;
ENTITY Applied_State_Observed_Assignment SUBTYPE OF (State_Observed_Assignment); items : SET [1 : ?] OF State_Observed_Of_Item; END_ENTITY;
ENTITY Applied_State_Type_Assignment SUBTYPE OF (State_Type_Assignment); items : SET [1 : ?] OF State_Type_Of_Item; END_ENTITY;
ENTITY Applied_Time_Interval_Assignment SUBTYPE OF (Time_Interval_Assignment); items : SET [0 : ?] OF Time_Interval_Item; END_ENTITY;
ENTITY Applied_Usage_Right SUBTYPE OF (Action_Assignment); items : SET [1 : ?] OF Ir_Usage_Item; END_ENTITY;
ENTITY Approval; status : Approval_Status; level : Label; END_ENTITY;
ENTITY Approval_Assignment ABSTRACT SUPERTYPE; assigned_approval : Approval; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Approval_Date_Time; date_time : Date_Time_Select; dated_approval : Approval; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Approval_Person_Organization; person_organization : Person_Organization_Select; authorized_approval : Approval; role : Approval_Role; END_ENTITY;
ENTITY Approval_Relationship; name : Label; description : OPTIONAL Text; relating_approval : Approval; related_approval : Approval; END_ENTITY;
ENTITY Approval_Role; role : Label; DERIVE description : Text := Get_Description_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY;
ENTITY Approval_Status; name : Label; END_ENTITY;
ENTITY Area_In_Set; area : Presentation_Area; in_set : Presentation_Set; END_ENTITY;
ENTITY Area_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Area_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensional_Exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); END_ENTITY;
ENTITY Area_With_Outer_Boundary SUBTYPE OF (Half_Space_2d); SELF\half_space_2d.base_curve : Composite_Curve; WHERE WR1: base_curve\Composite_Curve.closed_curve = TRUE; END_ENTITY;
ENTITY Array_Placement_Group SUPERTYPE OF (ONEOF(Linear_Array_Placement_Group_Component, Rectangular_Array_Placement_Group_Component)) SUBTYPE OF (Assembly_Group_Component); END_ENTITY;
ENTITY Ascribable_State; name : Label; description : OPTIONAL Text; pertaining_state_type : State_Type; ascribed_state_observed : State_Observed; END_ENTITY;
ENTITY Ascribable_State_Relationship; name : Label; description : OPTIONAL Text; relating_ascribable_state : Ascribable_State; related_ascribable_state : Ascribable_State; DERIVE id : Identifier := Get_Id_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Asin_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Assembly_Bond_Definition SUBTYPE OF ( Shape_Aspect ); UNIQUE ur1 : SELF\Shape_Aspect.name; END_ENTITY;
ENTITY Assembly_Joint SUBTYPE OF (Component_Feature_Joint); WHERE WR1: Acyclic_Shape_Aspect_Relationship(SELF, [SELF\Shape_Aspect_Relationship.related_shape_aspect], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_JOINT'); END_ENTITY;
ENTITY Component_Mating_Constraint_Condition SUBTYPE OF ( Shape_Aspect ); UNIQUE ur1 : SELF\Shape_Aspect.name, SELF\Shape_Aspect.of_shape; END_ENTITY;
ENTITY Connection_Zone_Based_Assembly_Joint SUBTYPE OF ( Assembly_Joint ); END_ENTITY;
ENTITY Assembly_Component SUBTYPE OF (Component_Definition, Product_Definition_Shape); DERIVE SELF\property_definition.definition : Assembly_Component := SELF; WHERE WR1: NOT EXISTS(SELF\Property_Definition.description); END_ENTITY;
ENTITY Assembly_Component_Usage SUPERTYPE OF (Quantified_Assembly_Component_Usage ANDOR ONEOF(Multi_Level_Reference_Designator, Next_Assembly_Usage_Occurrence, Promissory_Usage_Occurrence, Specified_Higher_Usage_Occurrence)) SUBTYPE OF (Product_Definition_Usage); reference_designator : OPTIONAL Identifier; END_ENTITY;
ENTITY Assembly_Component_Usage_Substitute; name : Label; definition : OPTIONAL Text; base : Assembly_Component_Usage; substitute : Assembly_Component_Usage; UNIQUE UR1: base, Substitute; WHERE WR1: base.relating_product_definition :=: Substitute.relating_product_definition; WR2: base :<>: Substitute; END_ENTITY;
ENTITY Assembly_Geometric_Constraint ABSTRACT SUPERTYPE OF (ONEOF(Binary_Assembly_Constraint, Fixed_Constituent_Assembly_Constraint)) SUBTYPE OF (Explicit_Constraint); END_ENTITY;
ENTITY Assembly_Group_Component SUBTYPE OF (Assembly_Component); END_ENTITY;
ENTITY Assembly_Group_Component_Definition_Placement_Link SUBTYPE OF (Product_Definition, Product_Definition_Relationship); SELF\product_definition_relationship.relating_product_definition : Assembly_Component; SELF\product_definition_relationship.related_product_definition : Assembly_Component; WHERE WR1: SELF\Product_Definition_Relationship.related_product_definition :<>: SELF\Product_Definition_Relationship.relating_product_definition; WR2: Acyclic_Product_Definition_Relationship(SELF, [SELF\Product_Definition_Relationship.related_product_definition], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK'); END_ENTITY;
ENTITY Assembly_Shape_Constraint SUBTYPE OF (Shape_Aspect); END_ENTITY;
ENTITY Assembly_Shape_Constraint_Item_Relationship SUBTYPE OF (Shape_Aspect_Relationship); SELF\shape_aspect_relationship.relating_shape_aspect : Assembly_Shape_Constraint; END_ENTITY;
ENTITY Assembly_Shape_Joint SUBTYPE OF (Shape_Aspect); END_ENTITY;
ENTITY Assembly_Shape_Joint_Item_Relationship SUBTYPE OF (Shape_Aspect_Relationship); SELF\shape_aspect_relationship.relating_shape_aspect : Assembly_Shape_Joint; END_ENTITY;
ENTITY Assigned_Analysis SUBTYPE OF (Group_Assignment); items : SET [1 : 1] OF Product_Definition_Formation; SELF\group_assignment.assigned_group : Analysis_Assignment; END_ENTITY;
ENTITY Assigned_Requirement SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Requirement_Assignment; items : SET [1 : 1] OF Product_Definition; END_ENTITY;
ENTITY Assignment_Object_Relationship; id : OPTIONAL Identifier; description : OPTIONAL Text; relating : Assignment_Object_Select; related : Assignment_Object_Select; relation_type : STRING; WHERE WR1: Acyclic_Assignment_Object_Relationship(SELF, [related], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSIGNMENT_OBJECT_RELATIONSHIP'); END_ENTITY;
ENTITY Atan_Function SUBTYPE OF (Binary_Function_Call); END_ENTITY;
ENTITY Atom_Based_Literal SUBTYPE OF (Generic_Literal); lit_value : Atom_Based_Value; END_ENTITY;
ENTITY Atomic_Formula SUBTYPE OF (Compound_Representation_Item); END_ENTITY;
ENTITY Attachment_Slot_As_Planned SUBTYPE OF (Product_Definition_Formation); END_ENTITY;
ENTITY Attachment_Slot_As_Realized SUBTYPE OF (Product_Definition_Formation); END_ENTITY;
ENTITY Attachment_Slot_Design SUBTYPE OF (Product_Definition_Formation); END_ENTITY;
ENTITY Attachment_Slot_Design_To_Planned SUBTYPE OF (Product_Definition_Formation_Relationship); SELF\product_definition_formation_relationship.relating_product_definition_formation : Attachment_Slot_Design; SELF\product_definition_formation_relationship.related_product_definition_formation : Attachment_Slot_As_Planned; WHERE WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; END_ENTITY;
ENTITY Attachment_Slot_Design_To_Realized SUBTYPE OF (Product_Definition_Formation_Relationship); SELF\product_definition_formation_relationship.relating_product_definition_formation : Attachment_Slot_Design; SELF\product_definition_formation_relationship.related_product_definition_formation : Attachment_Slot_As_Realized; WHERE WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; END_ENTITY;
ENTITY Attachment_Slot_On_Product SUBTYPE OF (Product_Definition_Relationship); END_ENTITY;
ENTITY Attachment_Slot_Planned_To_Realized SUBTYPE OF (Product_Definition_Formation_Relationship); SELF\product_definition_formation_relationship.relating_product_definition_formation : Attachment_Slot_As_Planned; SELF\product_definition_formation_relationship.related_product_definition_formation : Attachment_Slot_As_Realized; WHERE WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; END_ENTITY;
ENTITY Attribute_Assertion SUBTYPE OF (Fact_Type, Property_Definition_Representation, Representation); END_ENTITY;
ENTITY Attribute_Classification_Assignment ABSTRACT SUPERTYPE; assigned_class : Group; attribute_name : Label; role : Classification_Role; END_ENTITY;
ENTITY Attribute_Language_Assignment SUBTYPE OF (Attribute_Classification_Assignment); SELF\attribute_classification_assignment.assigned_class : Language; items : SET [1 : ?] OF Attribute_Language_Item; WHERE WR1: SELF\Attribute_Classification_Assignment.role.name IN ['primary','translated']; WR2: SELF\Attribute_Classification_Assignment.attribute_name <> ''; END_ENTITY;
ENTITY Attribute_Value_Assignment ABSTRACT SUPERTYPE; attribute_name : Label; attribute_value : Attribute_Type; role : Attribute_Value_Role; END_ENTITY;
ENTITY Attribute_Value_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Auxiliary_Geometric_Representation_Item SUBTYPE OF (Geometric_Representation_Item, Variational_Representation_Item); END_ENTITY;
ENTITY Axis1_Placement SUBTYPE OF (Placement); axis : OPTIONAL Direction; DERIVE z : Direction := NVL(Normalise(axis), Dummy_Gri || Direction([0.0,0.0,1.0])); WHERE WR1: SELF\Geometric_Representation_Item.dim = 3; END_ENTITY;
ENTITY Axis2_Placement_2d SUBTYPE OF (Placement); ref_direction : OPTIONAL Direction; DERIVE p : LIST [2 : 2] OF Direction := Build_2axes(ref_direction); WHERE WR1: SELF\Geometric_Representation_Item.dim = 2; END_ENTITY;
ENTITY Axis2_Placement_3d SUBTYPE OF (Placement); axis : OPTIONAL Direction; ref_direction : OPTIONAL Direction; DERIVE p : LIST [3 : 3] OF Direction := Build_Axes(axis, ref_direction); WHERE WR1: SELF\Placement.Location.dim = 3; WR2: (NOT (EXISTS(axis))) OR (axis.dim = 3); WR3: (NOT (EXISTS(ref_direction))) OR (ref_direction.dim = 3); WR4: (NOT (EXISTS(axis))) OR (NOT (EXISTS(ref_direction))) OR (Cross_Product(axis, ref_direction).magnitude > 0.0); END_ENTITY;
ENTITY B_Spline_Basis SUBTYPE OF (Maths_Function, Generic_Literal); degree : Nonnegative_Integer; repeated_knots : LIST [2 : ?] OF REAL; DERIVE order : Positive_Integer := degree + 1; num_basis : Positive_Integer := SIZEOF(repeated_knots) - order; WHERE WR1: num_basis >= order; WR2: Nondecreasing(repeated_knots); WR3: repeated_knots[order] < repeated_knots[num_basis + 1]; END_ENTITY;
ENTITY B_Spline_Curve SUPERTYPE OF (ONEOF(Uniform_Curve, B_Spline_Curve_With_Knots, Quasi_Uniform_Curve, Bezier_Curve) ANDOR Rational_B_Spline_Curve) SUBTYPE OF (Bounded_Curve); degree : INTEGER; control_points_list : LIST [2 : ?] OF Cartesian_Point; curve_form : B_Spline_Curve_Form; closed_curve : LOGICAL; self_intersect : LOGICAL; DERIVE upper_index_on_control_points : INTEGER := (SIZEOF(control_points_list) - 1); control_points : ARRAY [0 : upper_index_on_control_points] OF Cartesian_Point := List_To_Array(control_points_list, 0, upper_index_on_control_points); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_CURVE' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_CURVE' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY;
ENTITY B_Spline_Curve_Knot_Locator SUBTYPE OF (Founded_Item); basis_curve : B_Spline_Curve; knot_index : INTEGER; WHERE WR1: SIZEOF(Using_Representations(SELF.basis_curve) * Relating_Shape_Representations_Of_Extreme_Values(SELF)) > 0; END_ENTITY;
ENTITY B_Spline_Curve_Segment SUBTYPE OF (Founded_Item); basis_curve : B_Spline_Curve; start_knot_index : INTEGER; WHERE WR1: SIZEOF(Using_Representations(SELF.basis_curve) * Relating_Shape_Representations_Of_Extreme_Values(SELF)) > 0; END_ENTITY;
ENTITY B_Spline_Curve_With_Knots SUBTYPE OF (B_Spline_Curve); knot_multiplicities : LIST [2 : ?] OF INTEGER; knots : LIST [2 : ?] OF Parameter_Value; knot_spec : Knot_Type; DERIVE upper_index_on_knots : INTEGER := SIZEOF(knots); WHERE WR1: Constraints_Param_B_Spline(degree, upper_index_on_knots, upper_index_on_control_points, knot_multiplicities, knots); WR2: SIZEOF(knot_multiplicities) = upper_index_on_knots; END_ENTITY;
ENTITY B_Spline_Function SUBTYPE OF (Maths_Function, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Maths_Function; basis : LIST [1 : ?] OF B_Spline_Basis; DERIVE coef : Maths_Function := SELF\Unary_Generic_Expression.operand; WHERE WR1: Function_Is_Table(coef); WR2: (Space_Dimension(coef.range) = 1) AND (Number_Superspace_Of(Factor1(coef.range)) = The_Reals); WR3: SIZEOF(basis) <= SIZEOF(Shape_Of_Array(coef)); WR4: Compare_Basis_And_Coef(basis, coef); END_ENTITY;
ENTITY B_Spline_Surface SUPERTYPE OF (ONEOF(B_Spline_Surface_With_Knots, Uniform_Surface, Quasi_Uniform_Surface, Bezier_Surface) ANDOR Rational_B_Spline_Surface) SUBTYPE OF (Bounded_Surface); u_degree : INTEGER; v_degree : INTEGER; control_points_list : LIST [2 : ?] OF LIST [2 : ?] OF Cartesian_Point; surface_form : B_Spline_Surface_Form; u_closed : LOGICAL; v_closed : LOGICAL; self_intersect : LOGICAL; DERIVE u_upper : INTEGER := SIZEOF(control_points_list) - 1; v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1; control_points : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF Cartesian_Point := Make_Array_Of_Array(control_points_list, 0, u_upper, 0, v_upper); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_SURFACE' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY;
ENTITY B_Spline_Surface_Knot_Locator SUBTYPE OF (Founded_Item); basis_surface : B_Spline_Surface; knot_index : INTEGER; surface_parameter : U_Or_V_Parameter; WHERE WR1: SIZEOF(Using_Representations(SELF.basis_surface) * Relating_Shape_Representations_Of_Extreme_Values(SELF)) > 0; END_ENTITY;
ENTITY B_Spline_Surface_Patch SUBTYPE OF (Founded_Item); basis_surface : B_Spline_Surface; u_start_knot_index : INTEGER; v_start_knot_index : INTEGER; WHERE WR1: SIZEOF(Using_Representations(SELF.basis_surface) * Relating_Shape_Representations_Of_Extreme_Values(SELF)) > 0; END_ENTITY;
ENTITY B_Spline_Surface_Strip SUBTYPE OF (Founded_Item); basis_surface : B_Spline_Surface; start_knot_index : INTEGER; surface_parameter : U_Or_V_Parameter; WHERE WR1: SIZEOF(Using_Representations(SELF.basis_surface) * Relating_Shape_Representations_Of_Extreme_Values(SELF)) > 0; END_ENTITY;
ENTITY B_Spline_Surface_With_Knots SUBTYPE OF (B_Spline_Surface); u_multiplicities : LIST [2 : ?] OF INTEGER; v_multiplicities : LIST [2 : ?] OF INTEGER; u_knots : LIST [2 : ?] OF Parameter_Value; v_knots : LIST [2 : ?] OF Parameter_Value; knot_spec : Knot_Type; DERIVE knot_u_upper : INTEGER := SIZEOF(u_knots); knot_v_upper : INTEGER := SIZEOF(v_knots); WHERE WR1: Constraints_Param_B_Spline(SELF\B_Spline_Surface.u_degree, knot_u_upper, SELF\B_Spline_Surface.u_upper, u_multiplicities, u_knots); WR2: Constraints_Param_B_Spline(SELF\B_Spline_Surface.v_degree, knot_v_upper, SELF\B_Spline_Surface.v_upper, v_multiplicities, v_knots); WR3: SIZEOF(u_multiplicities) = knot_u_upper; WR4: SIZEOF(v_multiplicities) = knot_v_upper; END_ENTITY;
ENTITY B_Spline_Volume SUPERTYPE OF (ONEOF(B_Spline_Volume_With_Knots, Uniform_Volume, Quasi_Uniform_Volume, Bezier_Volume) ANDOR Rational_B_Spline_Volume) SUBTYPE OF (Volume); u_degree : INTEGER; v_degree : INTEGER; w_degree : INTEGER; control_points_list : LIST [2 : ?] OF LIST [2 : ?] OF LIST [2 : ?] OF Cartesian_Point; DERIVE u_upper : INTEGER := SIZEOF(control_points_list) - 1; v_upper : INTEGER := SIZEOF(control_points_list[1]) - 1; w_upper : INTEGER := SIZEOF(control_points_list[1][1]) - 1; control_points : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF ARRAY [0 : w_upper] OF Cartesian_Point := Make_Array_Of_Array_Of_Array(control_points_list, 0, u_upper, 0, v_upper, 0, w_upper); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEZIER_VOLUME' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNIFORM_VOLUME' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUASI_UNIFORM_VOLUME' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_VOLUME_WITH_KNOTS' IN TYPEOF(SELF)); END_ENTITY;
ENTITY B_Spline_Volume_With_Knots SUBTYPE OF (B_Spline_Volume); u_multiplicities : LIST [2 : ?] OF INTEGER; v_multiplicities : LIST [2 : ?] OF INTEGER; w_multiplicities : LIST [2 : ?] OF INTEGER; u_knots : LIST [2 : ?] OF Parameter_Value; v_knots : LIST [2 : ?] OF Parameter_Value; w_knots : LIST [2 : ?] OF Parameter_Value; DERIVE knot_u_upper : INTEGER := SIZEOF(u_knots); knot_v_upper : INTEGER := SIZEOF(v_knots); knot_w_upper : INTEGER := SIZEOF(w_knots); WHERE WR1: Constraints_Param_B_Spline(SELF\B_Spline_Volume.u_degree, knot_u_upper, SELF\B_Spline_Volume.u_upper, u_multiplicities, u_knots); WR2: Constraints_Param_B_Spline(SELF\B_Spline_Volume.v_degree, knot_v_upper, SELF\B_Spline_Volume.v_upper, v_multiplicities, v_knots); WR3: Constraints_Param_B_Spline(SELF\B_Spline_Volume.w_degree, knot_w_upper, SELF\B_Spline_Volume.w_upper, w_multiplicities, w_knots); WR4: SIZEOF(u_multiplicities) = knot_u_upper; WR5: SIZEOF(v_multiplicities) = knot_v_upper; WR6: SIZEOF(w_multiplicities) = knot_w_upper; END_ENTITY;
ENTITY Back_Chaining_Rule SUBTYPE OF (Rule_Definition); END_ENTITY;
ENTITY Back_Chaining_Rule_Body SUBTYPE OF (Property_Definition, Property_Definition_Representation, Representation); END_ENTITY;
ENTITY Background_Colour SUBTYPE OF (Colour); presentation : Area_Or_View; UNIQUE UR1: presentation; END_ENTITY;
ENTITY Banded_Matrix SUBTYPE OF (Linearized_Table_Function); default_entry : Maths_Value; below : INTEGER; above : INTEGER; order : Ordering_Type; WHERE WR1: SIZEOF(SELF\Explicit_Table_Function.shape) = 2; WR2: -below <= above; WR3: Member_Of(default_entry, Factor1(SELF\Linearized_Table_Function.Source.range)); END_ENTITY;
ENTITY Barring_Hole SUBTYPE OF (Feature_Definition); WHERE WR1: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'hole profile') AND (sa.description = 'closed profile occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * TYPEOF(sar.relating_shape_aspect)) = 1))) = 1))) = 1; WR2: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'barring profile') AND (sa.description = 'closed profile occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage'))) = 1))) = 1; WR3: (SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1) AND (SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND {1 <= SIZEOF(pdr.used_representation.items) <= 2})) = 1); WR4: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | NOT (i.name IN ['orientation','base radius']))) > 0))) = 0; WR5: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'base radius') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) <> 1))) = 0; END_ENTITY;
ENTITY Basic_Sparse_Matrix SUBTYPE OF (Explicit_Table_Function, Multiple_Arity_Generic_Expression); SELF\multiple_arity_generic_expression.operands : LIST [3 : 3] OF Maths_Function; default_entry : Maths_Value; order : Ordering_Type; DERIVE index : Maths_Function := SELF\Multiple_Arity_Generic_Expression.operands[1]; loc : Maths_Function := SELF\Multiple_Arity_Generic_Expression.operands[2]; val : Maths_Function := SELF\Multiple_Arity_Generic_Expression.operands[3]; WHERE WR1: Function_Is_1d_Table(index); WR2: Function_Is_1d_Table(loc); WR3: Function_Is_1d_Table(val); WR4: Check_Sparse_Index_Domain(index.domain, index_base, shape, order); WR5: Check_Sparse_Index_To_Loc(index.range, loc.domain); WR6: loc.domain = val.domain; WR7: Check_Sparse_Loc_Range(loc.range, index_base, shape, order); WR8: Member_Of(default_entry, val.range); END_ENTITY;
ENTITY Bead SUBTYPE OF (Feature_Definition); WHERE WR1: (SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) > 2))) = 0); WR2: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | NOT (i.name IN ['orientation','base radius']))) > 0))) = 0; WR3: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'base radius') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) > 1))) = 0; WR4: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'sweep path') AND (sa.description = 'path feature component occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'path feature component usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1; WR5: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'bead profile') AND (sa.description = 'open profile occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE'] * TYPEOF(sar.relating_shape_aspect)) = 1))) = 1))) = 1; WR6: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'end condition') AND (sa.description = 'bead end occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage') AND (sar.description = 'starting') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD_END' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1; WR7: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'end condition') AND (sa.description = 'bead end occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage') AND (sar.description = 'ending') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD_END' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1; END_ENTITY;
ENTITY Bead_End SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['linear','open','radiused']; WR3: (SELF.description <> 'linear') XOR (SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) > 0); WR4: (SELF.description <> 'linear') OR (SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1); WR5: (SELF.description <> 'linear') OR (SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'end length') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); WR6: (SELF.description <> 'linear') OR (SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'end shape') AND (i\Descriptive_Representation_Item.description IN ['straight','tapered']) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = 1))) = 1); WR7: SIZEOF(QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'bead end usage') AND (sar.description IN ['starting','ending']) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEAD' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND (sar.related_shape_aspect.of_shape.definition\Characterized_Object.name = 'end condition') AND (sar.related_shape_aspect.of_shape.definition\Characterized_Object.description = 'bead end occurrence'))) = 1; END_ENTITY;
ENTITY Between_Shape_Aspect SUBTYPE OF (Continuous_Shape_Aspect); WHERE WR1: SIZEOF(QUERY(sar <* SELF\Composite_Shape_Aspect.component_relationships | sar\Shape_Aspect_Relationship.name = 'start feature')) = 1; WR2: SIZEOF(QUERY(sar <* SELF\Composite_Shape_Aspect.component_relationships | sar\Shape_Aspect_Relationship.name = 'end feature')) = 1; END_ENTITY;
ENTITY Beveled_Sheet_Representation SUBTYPE OF (Shape_Representation); END_ENTITY;
ENTITY Bezier_Curve SUBTYPE OF (B_Spline_Curve); END_ENTITY;
ENTITY Bezier_Surface SUBTYPE OF (B_Spline_Surface); END_ENTITY;
ENTITY Bezier_Volume SUBTYPE OF (B_Spline_Volume); END_ENTITY;
ENTITY Binary_Assembly_Constraint ABSTRACT SUPERTYPE OF (ONEOF(Parallel_Assembly_Constraint, Surface_Distance_Assembly_Constraint_With_Dimension, Angle_Assembly_Constraint_With_Dimension, Perpendicular_Assembly_Constraint, Incidence_Assembly_Constraint, Coaxial_Assembly_Constraint, Tangent_Assembly_Constraint)) SUBTYPE OF (Assembly_Geometric_Constraint, Representation_Relationship_With_Transformation); SELF\representation_relationship.rep_1 : Representative_Shape_Representation; SELF\representation_relationship.rep_2 : Representative_Shape_Representation; WHERE WR1: (SELF\Explicit_Constraint.constrained_elements[1]\Geometric_Representation_Item.dim = 3) AND (SELF\Explicit_Constraint.reference_elements[1]\Geometric_Representation_Item.dim = 3); WR2: (SELF\Representation_Relationship.rep_1 IN (Using_Representations(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1) + Using_Representation_With_Mapping(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1))) AND (SELF\Representation_Relationship.rep_2 IN (Using_Representations(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2) + Using_Representation_With_Mapping(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2))); WR3: (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 1) AND (SIZEOF(SELF\Explicit_Constraint.reference_elements) = 1); WR4: (SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1 = SELF\Explicit_Constraint.reference_elements[1]) AND (SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2 = SELF\Explicit_Constraint.constrained_elements[1]); END_ENTITY;
ENTITY Binary_Boolean_Expression ABSTRACT SUPERTYPE OF (ONEOF(Xor_Expression, Equals_Expression)) SUBTYPE OF (Boolean_Expression, Binary_Generic_Expression); END_ENTITY;
ENTITY Binary_Function_Call ABSTRACT SUPERTYPE SUBTYPE OF (Binary_Numeric_Expression); END_ENTITY;
ENTITY Binary_Generic_Expression ABSTRACT SUPERTYPE SUBTYPE OF (Generic_Expression); operands : LIST [2 : 2] OF Generic_Expression; END_ENTITY;
ENTITY Binary_Literal SUBTYPE OF (Generic_Literal); lit_value : BINARY; END_ENTITY;
ENTITY Binary_Numeric_Expression ABSTRACT SUPERTYPE OF (ONEOF(Minus_Expression, Div_Expression, Mod_Expression, Slash_Expression, Power_Expression, Binary_Function_Call)) SUBTYPE OF (Numeric_Expression, Binary_Generic_Expression); SELF\binary_generic_expression.operands : LIST [2 : 2] OF Numeric_Expression; END_ENTITY;
ENTITY Binary_Representation_Item SUBTYPE OF (Representation_Item); binary_value : BINARY; END_ENTITY;
ENTITY Block SUBTYPE OF (Geometric_Representation_Item); position : Axis2_Placement_3d; x : Positive_Length_Measure; y : Positive_Length_Measure; z : Positive_Length_Measure; END_ENTITY;
ENTITY Block_Volume SUBTYPE OF (Volume); position : Axis2_Placement_3d; x : Positive_Length_Measure; y : Positive_Length_Measure; z : Positive_Length_Measure; END_ENTITY;
ENTITY Boolean_Defined_Function ABSTRACT SUPERTYPE SUBTYPE OF (Defined_Function, Boolean_Expression); END_ENTITY;
ENTITY Boolean_Expression ABSTRACT SUPERTYPE OF (ONEOF(Simple_Boolean_Expression, Unary_Boolean_Expression, Binary_Boolean_Expression, Multiple_Arity_Boolean_Expression, Comparison_Expression, Interval_Expression, Boolean_Defined_Function)) SUBTYPE OF (Expression); END_ENTITY;
ENTITY Boolean_Literal SUBTYPE OF (Simple_Boolean_Expression, Generic_Literal); the_value : BOOLEAN; END_ENTITY;
ENTITY Boolean_Representation_Item SUBTYPE OF (Representation_Item, Boolean_Literal); END_ENTITY;
ENTITY Boolean_Result SUBTYPE OF (Geometric_Representation_Item); operator : Boolean_Operator; first_operand : Boolean_Operand; second_operand : Boolean_Operand; END_ENTITY;
ENTITY Boolean_Result_2d SUBTYPE OF (Boolean_Result); SELF\boolean_result.first_operand : Boolean_Operand_2d; SELF\boolean_result.second_operand : Boolean_Operand_2d; END_ENTITY;
ENTITY Boolean_Variable SUBTYPE OF (Simple_Boolean_Expression, Variable); END_ENTITY;
ENTITY Boss SUBTYPE OF (Feature_Definition); WHERE WR1: SELF\Characterized_Object.description IN ['circular','complex','rectangular']; WR2: SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'boss height occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'path feature component usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'linear') AND (sdr.name = 'boss height'))) = 1))) = 1))) = 0; WR3: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ({1 <= SIZEOF(pdr.used_representation.items) <= 2}))) = 1)) = 1; WR4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | (srwp_i.name = 'orientation') OR (srwp_i.name = 'fillet radius'))) = SIZEOF(pdr.used_representation.items)))) = 1)) = 1; WR5: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'fillet radius'))) <= 1))) = 0))) = 0; WR6: (NOT (SELF\Characterized_Object.description = 'circular')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'circular profile occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect))) = 1))) = 1))) = 0); WR7: SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'top condition occurrence') AND (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'boss top usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS_TOP' IN TYPEOF(fcr.relating_shape_aspect))))) = 1)))) = 1)))) = 0; WR8: (NOT (SELF\Characterized_Object.description = 'circular')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'change in diameter occurrence') AND (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'taper usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF(fcr.related_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS' IN TYPEOF(fcr.relating_shape_aspect))))) = 1))) <= 1))) = 0); WR9: (NOT (SELF\Characterized_Object.description = 'complex')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'enclosed boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * TYPEOF(sdr.relating_shape_aspect)) = 1)) = 1))) = 1))) = 0); WR10: (NOT (SELF\Characterized_Object.description IN ['complex','rectangular'])) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'change in boundary occurrence') AND (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (sar.description = 'taper usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF(fcr.related_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS' IN TYPEOF(fcr.relating_shape_aspect)) AND (fcr.related_shape_aspect.description IN ['angle taper','directed taper'])))) = 1))) <= 1))) = 0); WR11: (NOT (SELF\Characterized_Object.description = 'rectangular')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'rectangular profile occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect))) = 1))) = 1))) = 0); WR12: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0; END_ENTITY;
ENTITY Boss_Top SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition)); WR2: (SELF.description IN ['planar','complex']); WR3: ((NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0)); WR4: ((NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0)); WR5: (NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION') IN TYPEOF(pdr.used_representation))) = 1)))) = 0); WR6: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((sar.description = 'boss top usage') AND (sar.name IN ['boss height start','boss height end'])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | ((fcr.related_shape_aspect.description = 'top condition occurrence') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS_TOP' IN TYPEOF(fcr.relating_shape_aspect))))) >= 1); WR7: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) <= 1)))) = 0); WR8: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0); WR9: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'top radius'))) <= 1))) = 0))) = 0; END_ENTITY;
ENTITY Bound_Parameter_Environment SUBTYPE OF (Environment); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF(SELF\Environment.syntactic_representation)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' IN TYPEOF(SELF\Environment.semantics)); END_ENTITY;
ENTITY Bound_Variable_Semantics SUBTYPE OF (Variable_Semantics); END_ENTITY;
ENTITY Bound_Variational_Parameter SUBTYPE OF (Variational_Parameter); DERIVE SELF\variational_parameter.parameter_current_value : Maths_Value := ?; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUND_PARAMETER_ENVIRONMENT' IN TYPEOF(SELF\Generic_Variable.interpretation); END_ENTITY;
ENTITY Boundary_Curve SUBTYPE OF (Composite_Curve_On_Surface); WHERE WR1: SELF\Composite_Curve.closed_curve; END_ENTITY;
ENTITY Boundary_Curve_Of_B_Spline_Or_Rectangular_Composite_Surface SUBTYPE OF (Founded_Item); basis_surface : B_Spline_Or_Rectangular_Composite_Surface_Select; boundary_type : Surface_Boundary_Type; WHERE WR1: SIZEOF(Using_Representations(SELF.basis_surface) * Relating_Shape_Representations_Of_Extreme_Values(SELF)) > 0; END_ENTITY;
ENTITY Bounded_Curve SUPERTYPE OF (ONEOF(Polyline, B_Spline_Curve, Trimmed_Curve, Bounded_Pcurve, Bounded_Surface_Curve, Composite_Curve, Locally_Refined_Spline_Curve)) SUBTYPE OF (Curve); END_ENTITY;
ENTITY Bounded_Pcurve SUBTYPE OF (Pcurve, Bounded_Curve); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE' IN TYPEOF(SELF\Pcurve.reference_to_curve.items[1])); END_ENTITY;
ENTITY Bounded_Surface SUPERTYPE OF (ONEOF(B_Spline_Surface, Rectangular_Trimmed_Surface, Curve_Bounded_Surface, Rectangular_Composite_Surface, Locally_Refined_Spline_Surface)) SUBTYPE OF (Surface); END_ENTITY;
ENTITY Bounded_Surface_Curve SUBTYPE OF (Surface_Curve, Bounded_Curve); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE' IN TYPEOF(SELF\Surface_Curve.Curve_3d)); END_ENTITY;
ENTITY Box_Domain SUBTYPE OF (Founded_Item); corner : Cartesian_Point; xlength : Positive_Length_Measure; ylength : Positive_Length_Measure; zlength : Positive_Length_Measure; WHERE WR1: SIZEOF(QUERY(item <* USEDIN(SELF, '') | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOXED_HALF_SPACE' IN TYPEOF(item)))) = 0; END_ENTITY;
ENTITY Boxed_Half_Space SUBTYPE OF (Half_Space_Solid); enclosure : Box_Domain; END_ENTITY;
ENTITY Breakdown_Context SUBTYPE OF (Product_Definition_Relationship); END_ENTITY;
ENTITY Breakdown_Element_Group_Assignment SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Product_Definition_Element_Relationship; items : SET [1 : 1] OF Product_Definition_Or_Breakdown_Element_Usage; END_ENTITY;
ENTITY Breakdown_Element_Realization SUBTYPE OF (Characterized_Object, Product_Definition_Element_Relationship); END_ENTITY;
ENTITY Breakdown_Element_Usage SUBTYPE OF (Product_Definition_Relationship); END_ENTITY;
ENTITY Breakdown_Of SUBTYPE OF (Product_Definition_Relationship); END_ENTITY;
ENTITY Brep_With_Voids SUBTYPE OF (Manifold_Solid_Brep); voids : SET [1 : ?] OF Oriented_Closed_Shell; END_ENTITY;
ENTITY Bytes_Representation_Item SUBTYPE OF (Binary_Representation_Item); DERIVE no_of_bytes : INTEGER := BLENGTH(SELF\Binary_Representation_Item.binary_value) DIV 8; WHERE WR1: BLENGTH(SELF\Binary_Representation_Item.binary_value) MOD 8 = 0; END_ENTITY;
ENTITY Calendar_Date SUBTYPE OF (Date); day_component : Day_In_Month_Number; month_component : Month_In_Year_Number; WHERE WR1: Valid_Calendar_Date(SELF); END_ENTITY;
ENTITY Camera_Image SUPERTYPE OF (ONEOF(Camera_Image_2d_With_Scale, Camera_Image_3d_With_Scale)) SUBTYPE OF (Mapped_Item); SELF\mapped_item.mapping_source : Camera_Usage; SELF\mapped_item.mapping_target : Planar_Box; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF); END_ENTITY;
ENTITY Camera_Image_2d_With_Scale SUBTYPE OF (Camera_Image); DERIVE scale : Positive_Ratio_Measure := (SELF\Mapped_Item.mapping_target\Planar_Extent.size_in_x) / (SELF\Mapped_Item.mapping_source.mapping_origin\Camera_Model_D2.view_window\Planar_Extent.size_in_x); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D2' IN TYPEOF(SELF\Mapped_Item.mapping_source.mapping_origin)); WR2: Aspect_Ratio(SELF\Mapped_Item.mapping_target) = Aspect_Ratio(SELF\Mapped_Item.mapping_source.mapping_origin\Camera_Model_D2.view_window); WR3: SELF\Mapped_Item.mapping_source.mapping_origin\Camera_Model_D2.view_window_clipping; END_ENTITY;
ENTITY Camera_Image_3d_With_Scale SUBTYPE OF (Camera_Image); DERIVE scale : Positive_Ratio_Measure := ((SELF\Mapped_Item.mapping_target\Planar_Extent.size_in_x) / (SELF\Mapped_Item.mapping_source.mapping_origin\Camera_Model_D3.perspective_of_volume.view_window.size_in_x)); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D3' IN TYPEOF(SELF\Mapped_Item.mapping_source.mapping_origin)); WR2: Aspect_Ratio(SELF\Mapped_Item.mapping_target) = Aspect_Ratio(SELF\Mapped_Item.mapping_source.mapping_origin\Camera_Model_D3.perspective_of_volume.view_window); WR3: SELF\Mapped_Item.mapping_source.mapping_origin\Camera_Model_D3.perspective_of_volume.front_plane_clipping AND SELF\Mapped_Item.mapping_source.mapping_origin\Camera_Model_D3.perspective_of_volume.view_volume_sides_clipping; WR4: (SELF\Mapped_Item.mapping_target\Planar_Extent.size_in_x > 0) AND (SELF\Mapped_Item.mapping_target\Planar_Extent.size_in_y > 0); WR5: (SELF\Mapped_Item.mapping_source.mapping_origin\Camera_Model_D3.perspective_of_volume.view_window.size_in_x > 0) AND (SELF\Mapped_Item.mapping_source.mapping_origin\Camera_Model_D3.perspective_of_volume.view_window.size_in_y > 0); WR6: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\Mapped_Item.mapping_target\Planar_Box.Placement)) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\Mapped_Item.mapping_target\Planar_Box.Placement)); END_ENTITY;
ENTITY Camera_Model ABSTRACT SUPERTYPE OF (ONEOF(Camera_Model_D2, Camera_Model_D3)) SUBTYPE OF (Geometric_Representation_Item); WHERE WR1: (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ITEM_DEFINED_TRANSFORMATION.TRANSFORM_ITEM_1')) + SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPING_ORIGIN'))) > 0; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM')) = 0; END_ENTITY;
ENTITY Camera_Model_D2 SUBTYPE OF (Camera_Model); view_window : Planar_Box; view_window_clipping : BOOLEAN; WHERE WR1: SELF\Geometric_Representation_Item.dim = 2; END_ENTITY;
ENTITY Camera_Model_D3 SUBTYPE OF (Camera_Model); view_reference_system : Axis2_Placement_3d; perspective_of_volume : View_Volume; WHERE WR1: SELF\Geometric_Representation_Item.dim = 3; END_ENTITY;
ENTITY Camera_Model_D3_Multi_Clipping SUBTYPE OF (Camera_Model_D3); shape_clipping : SET [1 : ?] OF Camera_Model_D3_Multi_Clipping_Intersection_Select; END_ENTITY;
ENTITY Camera_Model_D3_Multi_Clipping_Intersection SUBTYPE OF (Geometric_Representation_Item); shape_clipping : SET [2 : ?] OF Camera_Model_D3_Multi_Clipping_Intersection_Select; END_ENTITY;
ENTITY Camera_Model_D3_Multi_Clipping_Union SUBTYPE OF (Geometric_Representation_Item); shape_clipping : SET [2 : ?] OF Camera_Model_D3_Multi_Clipping_Union_Select; END_ENTITY;
ENTITY Camera_Model_D3_With_Hlhsr SUBTYPE OF (Camera_Model_D3); hidden_line_surface_removal : BOOLEAN; END_ENTITY;
ENTITY Camera_Model_With_Light_Sources SUBTYPE OF (Camera_Model_D3); sources : SET [1 : ?] OF Light_Source; END_ENTITY;
ENTITY Camera_Usage SUBTYPE OF (Representation_Map); SELF\representation_map.mapping_origin : Camera_Model; WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF(SELF\Representation_Map.mapped_representation)); END_ENTITY;
ENTITY Capacitance_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAPACITANCE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Capacitance_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Farad); END_ENTITY;
ENTITY Cartesian_11 SUBTYPE OF (Geometric_Representation_Item); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF); END_ENTITY;
ENTITY Cartesian_Complex_Number_Region SUBTYPE OF (Maths_Space, Generic_Literal); real_constraint : Real_Interval; imag_constraint : Real_Interval; WHERE WR1: Min_Exists(real_constraint) OR Max_Exists(real_constraint) OR Min_Exists(imag_constraint) OR Max_Exists(imag_constraint); END_ENTITY;
ENTITY Cartesian_Point SUPERTYPE OF (ONEOF(Cylindrical_Point, Polar_Point, Spherical_Point)) SUBTYPE OF (Point); coordinates : LIST [1 : 3] OF Length_Measure; END_ENTITY;
ENTITY Cartesian_Transformation_Operator SUPERTYPE OF (ONEOF(Cartesian_Transformation_Operator_2d, Cartesian_Transformation_Operator_3d)) SUBTYPE OF (Geometric_Representation_Item, Functionally_Defined_Transformation); axis1 : OPTIONAL Direction; axis2 : OPTIONAL Direction; local_origin : Cartesian_Point; scale : OPTIONAL REAL; DERIVE scl : REAL := NVL(scale, 1.0); WHERE WR1: scl > 0.0; END_ENTITY;
ENTITY Cartesian_Transformation_Operator_2d SUBTYPE OF (Cartesian_Transformation_Operator); DERIVE u : LIST [2 : 2] OF Direction := Base_Axis(2, SELF\Cartesian_Transformation_Operator.axis1, SELF\Cartesian_Transformation_Operator.axis2, ?); WHERE WR1: SELF\Geometric_Representation_Item.dim = 2; END_ENTITY;
ENTITY Cartesian_Transformation_Operator_3d SUBTYPE OF (Cartesian_Transformation_Operator); axis3 : OPTIONAL Direction; DERIVE u : LIST [3 : 3] OF Direction := Base_Axis(3, SELF\Cartesian_Transformation_Operator.axis1, SELF\Cartesian_Transformation_Operator.axis2, axis3); WHERE WR1: SELF\Geometric_Representation_Item.dim = 3; END_ENTITY;
ENTITY Cc_Design_Approval SUBTYPE OF (Approval_Assignment); items : SET [1 : ?] OF Approved_Item; END_ENTITY;
ENTITY Cc_Design_Certification SUBTYPE OF (Certification_Assignment); items : SET [1 : ?] OF Certified_Item; END_ENTITY;
ENTITY Cc_Design_Contract SUBTYPE OF (Contract_Assignment); items : SET [1 : ?] OF Contracted_Item; END_ENTITY;
ENTITY Cc_Design_Date_And_Time_Assignment SUBTYPE OF (Date_And_Time_Assignment); items : SET [1 : ?] OF Date_Time_Item; END_ENTITY;
ENTITY Cc_Design_Person_And_Organization_Assignment SUBTYPE OF (Person_And_Organization_Assignment); items : SET [1 : ?] OF Cc_Person_Organization_Item; WHERE WR1: Cc_Design_Person_And_Organization_Correlation(SELF); END_ENTITY;
ENTITY Cc_Design_Security_Classification SUBTYPE OF (Security_Classification_Assignment); items : SET [1 : ?] OF Cc_Classified_Item; END_ENTITY;
ENTITY Cc_Design_Specification_Reference SUBTYPE OF (Document_Reference); items : SET [1 : ?] OF Cc_Specified_Item; END_ENTITY;
ENTITY Cdgc_With_Dimension SUBTYPE OF (Curve_Distance_Geometric_Constraint); distance_value : Non_Negative_Length_Measure; END_ENTITY;
ENTITY Celsius_Temperature_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Centre_Of_Symmetry SUBTYPE OF (Derived_Shape_Aspect); END_ENTITY;
ENTITY Certification; name : Label; purpose : Text; kind : Certification_Type; END_ENTITY;
ENTITY Certification_Assignment ABSTRACT SUPERTYPE; assigned_certification : Certification; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Certification_Type; description : Label; END_ENTITY;
ENTITY Chain_Based_Geometric_Item_Specific_Usage SUBTYPE OF (Geometric_Item_Specific_Usage, Chain_Based_Item_Identified_Representation_Usage); END_ENTITY;
ENTITY Chain_Based_Item_Identified_Representation_Usage SUBTYPE OF (Item_Identified_Representation_Usage); nodes : LIST [2 : ?] OF UNIQUE Representation; undirected_link : LIST [1 : ?] OF Chained_Representation_Link; DERIVE root : Representation := nodes[1]; directed_link : LIST [1 : ?] OF Representation_Relationship := Get_Directed_Link(nodes, undirected_link); leaf : Representation := SELF\Item_Identified_Representation_Usage.used_representation; WHERE WR1: EXISTS(directed_link); END_ENTITY;
ENTITY Chamfer SUBTYPE OF (Transition_Feature); WHERE WR1: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'chamfer face')))) <= 1)))) = 0); WR2: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER_OFFSET' IN TYPEOF(fcr.related_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER' IN TYPEOF(fcr.relating_shape_aspect)) AND (fcr.related_shape_aspect.description = 'first offset')))) = 1); WR3: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER_OFFSET' IN TYPEOF(fcr.related_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER' IN TYPEOF(fcr.relating_shape_aspect)) AND (fcr.related_shape_aspect.description = 'second offset')))) = 1); END_ENTITY;
ENTITY Chamfer_Offset SUBTYPE OF (Shape_Aspect); WHERE WR1: (SELF.description IN ['first offset','second offset']); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0); WR4: ((NOT (SELF.description = 'first offset')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'offset amount')))) = 1)))) = 0)))) = 0)); WR5: ((NOT (SELF.description = 'first offset')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape')))) <= 1)))) = 0)); WR6: ((NOT (SELF.description = 'second offset')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'offset amount')) OR ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'offset angle'))))) = 1)))) = 0)))) = 0)); WR7: ((NOT (SELF.description = 'second offset')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape')))) <= 1)))) = 0)); WR8: (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER' IN TYPEOF(sdr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER_OFFSET' IN TYPEOF(sdr.related_shape_aspect))))) = 1); END_ENTITY;
ENTITY Change SUBTYPE OF (Action_Assignment); items : SET [1 : ?] OF Work_Item; END_ENTITY;
ENTITY Change_Composition_Relationship SUBTYPE OF (Group_Relationship); SELF\group_relationship.relating_group : Change_Group; SELF\group_relationship.related_group : Change_Element; DERIVE composition : Change_Group := SELF\Group_Relationship.relating_group; element : Change_Element := SELF\Group_Relationship.related_group; END_ENTITY;
ENTITY Change_Element ABSTRACT SUPERTYPE OF (ONEOF(Modify_Element, Delete_Element, Add_Element)) SUBTYPE OF (Group, Characterized_Object); END_ENTITY;
ENTITY Change_Element_Sequence SUBTYPE OF (Group_Relationship); SELF\group_relationship.relating_group : Change_Element; SELF\group_relationship.related_group : Change_Element; DERIVE next : Change_Element := SELF\Group_Relationship.related_group; previous : Change_Element := SELF\Group_Relationship.relating_group; END_ENTITY;
ENTITY Change_Group SUBTYPE OF (Group); END_ENTITY;
ENTITY Change_Group_Assignment SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Change_Group; item : Change_Relationship_Select; END_ENTITY;
ENTITY Change_Request SUBTYPE OF (Action_Request_Assignment); items : SET [1 : ?] OF Change_Request_Item; END_ENTITY;
ENTITY Character_Glyph_Font_Usage; character : Generic_Character_Glyph_Symbol; font : Text_Font; END_ENTITY;
ENTITY Character_Glyph_Style_Outline SUBTYPE OF (Founded_Item); outline_style : Curve_Style; END_ENTITY;
ENTITY Character_Glyph_Style_Stroke SUBTYPE OF (Founded_Item); stroke_style : Curve_Style; END_ENTITY;
ENTITY Character_Glyph_Symbol SUBTYPE OF (Generic_Character_Glyph_Symbol); character_box : Planar_Extent; baseline_ratio : Ratio_Measure; DERIVE box_height : Length_Measure := character_box.size_in_y; WHERE WR1: {0.0 <= baseline_ratio <= 1.0}; WR2: Item_In_Context(character_box, SELF\Representation.context_of_items); WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(Box_Height); END_ENTITY;
ENTITY Character_Glyph_Symbol_Outline SUBTYPE OF (Character_Glyph_Symbol); outlines : SET [1 : ?] OF Annotation_Fill_Area; WHERE WR1: outlines <= SELF\Representation.items; END_ENTITY;
ENTITY Character_Glyph_Symbol_Stroke SUBTYPE OF (Character_Glyph_Symbol); strokes : SET [1 : ?] OF Curve; WHERE WR1: strokes <= SELF\Representation.items; END_ENTITY;
ENTITY Characteristic_Data_Column_Header SUBTYPE OF (General_Property); END_ENTITY;
ENTITY Characteristic_Data_Column_Header_Link SUBTYPE OF (General_Property_Relationship); END_ENTITY;
ENTITY Characteristic_Data_Table_Header SUBTYPE OF (General_Property); END_ENTITY;
ENTITY Characteristic_Data_Table_Header_Decomposition SUBTYPE OF (General_Property_Relationship); END_ENTITY;
ENTITY Characteristic_Type SUBTYPE OF (Group); END_ENTITY;
ENTITY Characterized_Chain_Based_Item_Within_Representation SUBTYPE OF (Characterized_Item_Within_Representation); nodes : LIST [2 : ?] OF UNIQUE Representation; undirected_link : LIST [1 : ?] OF Chained_Representation_Link; DERIVE root : Representation := nodes[1]; directed_link : LIST [1 : ?] OF Representation_Relationship := Get_Directed_Link(nodes, undirected_link); leaf : Representation := SELF\Characterized_Item_Within_Representation.rep; WHERE WR1: EXISTS(directed_link); END_ENTITY;
ENTITY Characterized_Class SUBTYPE OF (Characterized_Object, Class); END_ENTITY;
ENTITY Characterized_Item_Within_Representation SUBTYPE OF (Characterized_Object); item : Representation_Item; rep : Representation; UNIQUE UR1: item, rep; WHERE WR1: rep IN Using_Representations(item); END_ENTITY;
ENTITY Characterized_Location_Object SUBTYPE OF (Characterized_Object, Location); END_ENTITY;
ENTITY Characterized_Object; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Characterized_Object_Relationship; name : Label; description : OPTIONAL Text; relating_object : Characterized_Object; related_object : Characterized_Object; END_ENTITY;
ENTITY Characterized_Product_Concept_Feature SUBTYPE OF (Product_Concept_Feature, Characterized_Object); END_ENTITY;
ENTITY Characterized_Product_Concept_Feature_Category SUBTYPE OF (Product_Concept_Feature_Category, Characterized_Object); END_ENTITY;
ENTITY Characterized_Representation SUBTYPE OF (Representation, Characterized_Object); DERIVE SELF\characterized_object.name : Label := SELF\Representation.name; SELF\characterized_object.description : Text := SELF\Representation.description; END_ENTITY;
ENTITY Circle SUBTYPE OF (Conic); radius : Positive_Length_Measure; END_ENTITY;
ENTITY Circular_Area SUBTYPE OF (Primitive_2d); centre : Cartesian_Point; radius : Positive_Length_Measure; END_ENTITY;
ENTITY Circular_Closed_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition)); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = 0)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) = 1))) = 0)))) = 0); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'diameter')))) = 1)))) = 0)))) = 0); END_ENTITY;
ENTITY Circular_Involute SUBTYPE OF (Curve); position : Axis2_Placement; base_radius : Positive_Length_Measure; END_ENTITY;
ENTITY Circular_Path SUBTYPE OF (Path_Node); via_point : Cartesian_Point; END_ENTITY;
ENTITY Circular_Pattern SUBTYPE OF (Replicate_Feature); WHERE WR1: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(sdr.related_shape_aspect)))) = 1)))) <= 3)))) = 0); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT ((SIZEOF(impl_rep.used_representation.items) >= 3) AND (SIZEOF(impl_rep.used_representation.items) <= 5))))) = 0)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'diameter')))) <= 1)))) = 0)))) = 0); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'base feature rotation')))) <= 1)))) = 0)))) = 0); WR6: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'number of features')))) = 1)))) = 0)))) = 0); WR7: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'angular spacing')))) = 1)))) = 0)))) = 0); WR8: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) = 1)))) = 0)))) = 0); END_ENTITY;
ENTITY Circular_Runout_Tolerance SUBTYPE OF (Geometric_Tolerance_With_Datum_Reference); END_ENTITY;
ENTITY Class SUBTYPE OF (Group); END_ENTITY;
ENTITY Class_By_Extension SUBTYPE OF (Class); END_ENTITY;
ENTITY Class_By_Intension SUBTYPE OF (Class); END_ENTITY;
ENTITY Class_System SUBTYPE OF (Group); END_ENTITY;
ENTITY Class_Usage_Effectivity_Context_Assignment SUBTYPE OF (Effectivity_Context_Assignment); items : SET [1 : ?] OF Class_Usage_Effectivity_Context_Item; WHERE WR1: SELF.role.name = 'class usage influence'; WR2: SIZEOF(QUERY(i <* SELF.items | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)))) = 0; WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT' IN TYPEOF(SELF.assigned_effectivity_assignment)) AND (SIZEOF(TYPEOF(SELF.assigned_effectivity_assignment.assigned_effectivity)) = 1) AND (SELF.assigned_effectivity_assignment.assigned_effectivity.id = 'class usage') AND (SIZEOF(QUERY(i <* SELF.assigned_effectivity_assignment\Applied_Effectivity_Assignment.items | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY_USAGE' IN TYPEOF(i)))) = 0); END_ENTITY;
ENTITY Classification_Assignment ABSTRACT SUPERTYPE; assigned_class : Group; role : Classification_Role; END_ENTITY;
ENTITY Classification_Assignment_Relationship; id : OPTIONAL Identifier; description : OPTIONAL Text; relating : Classification_Assignment; related : Classification_Assignment; relation_type : STRING; WHERE WR1: Acyclic_Classification_Assignment_Relationship(SELF, [related], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASSIFICATION_ASSIGNMENT_RELATIONSHIP'); END_ENTITY;
ENTITY Classification_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Clgc_With_Dimension SUBTYPE OF (Curve_Length_Geometric_Constraint); length_value : Positive_Length_Measure; END_ENTITY;
ENTITY Closed_Curve_Style_Parameters SUBTYPE OF (Curve_Style_Parameters_Representation); END_ENTITY;
ENTITY Closed_Path_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition)); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) = 1)))) = 0)))) = 0); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); END_ENTITY;
ENTITY Closed_Shell SUBTYPE OF (Connected_Face_Set); END_ENTITY;
ENTITY Clothoid SUBTYPE OF (Curve); position : Axis2_Placement; clothoid_constant : Length_Measure; END_ENTITY;
ENTITY Coaxial_Assembly_Constraint SUBTYPE OF (Binary_Assembly_Constraint, Coaxial_Geometric_Constraint); END_ENTITY;
ENTITY Coaxial_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Axial_Geometry_Constraint_Element; SELF\explicit_constraint.reference_elements : SET [0 : 1] OF Axial_Geometry_Constraint_Element; WHERE WR1: SIZEOF(QUERY(q <* SELF\Explicit_Constraint.reference_elements | SIZEOF(TYPEOF(q) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERE']) > 0)) = 0; END_ENTITY;
ENTITY Coaxiality_Tolerance SUBTYPE OF (Geometric_Tolerance_With_Datum_Reference); END_ENTITY;
ENTITY Collection SUBTYPE OF (Product); END_ENTITY;
ENTITY Collection_Assignment SUBTYPE OF (Applied_Group_Assignment); END_ENTITY;
ENTITY Collection_Membership SUBTYPE OF (Applied_Group_Assignment); END_ENTITY;
ENTITY Collection_Relationship SUBTYPE OF (Product_Relationship); SELF\product_relationship.relating_product : Collection; SELF\product_relationship.related_product : Collection; DERIVE related_collection : Collection := SELF\Product_Relationship.related_product; relating_collection : Collection := SELF\Product_Relationship.relating_product; END_ENTITY;
ENTITY Collection_Version SUBTYPE OF (Product_Definition_Formation); SELF\product_definition_formation.of_product : Collection; DERIVE of_collection : Collection := SELF\Product_Definition_Formation.of_product; END_ENTITY;
ENTITY Collection_Version_Relationship SUBTYPE OF (Product_Definition_Formation_Relationship); SELF\product_definition_formation_relationship.relating_product_definition_formation : Collection_Version; SELF\product_definition_formation_relationship.related_product_definition_formation : Collection_Version; DERIVE related_version : Collection_Version := SELF\Product_Definition_Formation_Relationship.related_product_definition_formation; relating_version : Collection_Version := SELF\Product_Definition_Formation_Relationship.relating_product_definition_formation; END_ENTITY;
ENTITY Collection_Version_Sequence_Relationship SUBTYPE OF (Product_Definition_Formation_Relationship); SELF\product_definition_formation_relationship.relating_product_definition_formation : Collection_Version; SELF\product_definition_formation_relationship.related_product_definition_formation : Collection_Version; DERIVE predecessor : Collection_Version := SELF\Product_Definition_Formation_Relationship.relating_product_definition_formation; successor : Collection_Version := SELF\Product_Definition_Formation_Relationship.related_product_definition_formation; END_ENTITY;
ENTITY Collection_View_Definition SUBTYPE OF (Product_Definition); SELF\product_definition.formation : Collection_Version; DERIVE defined_version : Collection_Version := SELF\Product_Definition.formation; END_ENTITY;
ENTITY Colour; END_ENTITY;
ENTITY Colour_Rgb SUBTYPE OF (Colour_Specification); red : REAL; green : REAL; blue : REAL; WHERE WR1: {0.0 <= red <= 1.0}; WR2: {0.0 <= green <= 1.0}; WR3: {0.0 <= blue <= 1.0}; END_ENTITY;
ENTITY Colour_Specification SUBTYPE OF (Colour); name : Label; END_ENTITY;
ENTITY Common_Datum SUBTYPE OF (Composite_Shape_Aspect, Datum); WHERE WR1: SIZEOF(SELF\Composite_Shape_Aspect.component_relationships) = 2; WR2: SIZEOF(QUERY(sar <* SELF\Composite_Shape_Aspect.component_relationships | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN TYPEOF(sar.related_shape_aspect)) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMMON_DATUM' IN TYPEOF(sar.related_shape_aspect))))) = 0; END_ENTITY;
ENTITY Comparison_Equal SUBTYPE OF (Comparison_Expression); END_ENTITY;
ENTITY Comparison_Expression ABSTRACT SUPERTYPE OF (ONEOF(Comparison_Equal, Comparison_Greater, Comparison_Greater_Equal, Comparison_Less, Comparison_Less_Equal, Comparison_Not_Equal, Like_Expression)) SUBTYPE OF (Boolean_Expression, Binary_Generic_Expression); SELF\binary_generic_expression.operands : LIST [2 : 2] OF Expression; WHERE WR1: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF\Binary_Generic_Expression.operands[1])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF\Binary_Generic_Expression.operands[2]))) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\Binary_Generic_Expression.operands[1])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\Binary_Generic_Expression.operands[2]))) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\Binary_Generic_Expression.operands[1])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\Binary_Generic_Expression.operands[2]))); END_ENTITY;
ENTITY Comparison_Greater SUBTYPE OF (Comparison_Expression); END_ENTITY;
ENTITY Comparison_Greater_Equal SUBTYPE OF (Comparison_Expression); END_ENTITY;
ENTITY Comparison_Less SUBTYPE OF (Comparison_Expression); END_ENTITY;
ENTITY Comparison_Less_Equal SUBTYPE OF (Comparison_Expression); END_ENTITY;
ENTITY Comparison_Not_Equal SUBTYPE OF (Comparison_Expression); END_ENTITY;
ENTITY Complex_Area ABSTRACT SUPERTYPE OF (Path_Area_With_Parameters ANDOR Primitive_2d_With_Inner_Boundary) SUBTYPE OF (Primitive_2d); END_ENTITY;
ENTITY Complex_Clause SUBTYPE OF (Compound_Representation_Item); END_ENTITY;
ENTITY Complex_Conjunctive_Clause SUBTYPE OF (Complex_Clause); END_ENTITY;
ENTITY Complex_Disjunctive_Clause SUBTYPE OF (Complex_Clause); END_ENTITY;
ENTITY Complex_Number_Literal SUBTYPE OF (Generic_Literal); real_part : REAL; imag_part : REAL; END_ENTITY;
ENTITY Complex_Number_Literal_Polar SUBTYPE OF (Complex_Number_Literal); modulus : REAL; argument : REAL; DERIVE SELF\complex_number_literal.real_part : REAL := modulus * COS(argument); SELF\complex_number_literal.imag_part : REAL := modulus * SIN(argument); WHERE WR1: modulus >= 0; WR2: {0 <= argument <= 2 * PI}; END_ENTITY;
ENTITY Complex_Shelled_Solid SUBTYPE OF (Shelled_Solid); thickened_face_list : LIST [1 : ?] OF SET [1 : ?] OF Face_Surface; thickness_list : LIST [1 : ?] OF Length_Measure; WHERE WR1: SIZEOF(thickened_face_list) = SIZEOF(thickness_list); WR2: SIZEOF(QUERY(q <* thickness_list | (q = 0))) = 0; END_ENTITY;
ENTITY Complex_Triangulated_Face SUBTYPE OF (Tessellated_Face); pnindex : LIST [0 : ?] OF INTEGER; triangle_strips : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; triangle_fans : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; WHERE WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\Tessellated_Face.pnmax)); WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\Tessellated_Face.pnmax <> coordinates.npoints)); WR3: NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0)); END_ENTITY;
ENTITY Complex_Triangulated_Surface_Set SUBTYPE OF (Tessellated_Surface_Set); pnindex : LIST [0 : ?] OF INTEGER; triangle_strips : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; triangle_fans : LIST [0 : ?] OF LIST [3 : ?] OF INTEGER; WHERE WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\Tessellated_Surface_Set.pnmax)); WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\Tessellated_Surface_Set.pnmax <> coordinates.npoints)); WR3: NOT ((SIZEOF(triangle_strips) = 0) AND (SIZEOF(triangle_fans) = 0)); END_ENTITY;
ENTITY Component_Definition SUBTYPE OF (Product_Definition, Product_Definition_Relationship); DERIVE SELF\product_definition_relationship.related_product_definition : Component_Definition := SELF; WHERE WR1: NOT EXISTS(SELF\Product_Definition_Relationship.description); WR2: NOT EXISTS(SELF\Property_Definition.description); WR3: SELF\Product_Definition_Relationship.id = SELF\Product_Definition.id; WR4: SELF\Product_Definition_Relationship.name = 'definition usage'; WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Component_Feature SUBTYPE OF (Shape_Aspect); SELF\shape_aspect.of_shape : Assembly_Component; END_ENTITY;
ENTITY Component_Feature_Joint SUBTYPE OF (Shape_Aspect_Relationship, Shape_Aspect); SELF\shape_aspect_relationship.relating_shape_aspect : Component_Feature; SELF\shape_aspect_relationship.related_shape_aspect : Component_Feature; END_ENTITY;
ENTITY Component_Feature_Relationship SUBTYPE OF (Shape_Aspect_Relationship); SELF\shape_aspect_relationship.relating_shape_aspect : Component_Feature; SELF\shape_aspect_relationship.related_shape_aspect : Component_Feature; WHERE WR1: SELF\Shape_Aspect_Relationship.related_shape_aspect :<>: SELF\Shape_Aspect_Relationship.relating_shape_aspect; END_ENTITY;
ENTITY Component_Path_Shape_Aspect SUBTYPE OF (Shape_Aspect); location : Multi_Or_Next_Assembly_Usage_Occurrence; component_shape_aspect : Internal_Or_Reflected_Shape_Aspect; UNIQUE UR1: Location, component_shape_aspect; END_ENTITY;
ENTITY Component_Terminal SUBTYPE OF (Component_Feature); END_ENTITY;
ENTITY Composite_Assembly_Sequence_Definition SUBTYPE OF (Product_Definition); WHERE WR1: SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF(pdr))) > 0; END_ENTITY;
ENTITY Composite_Assembly_Table SUBTYPE OF (Part_Laminate_Table); END_ENTITY;
ENTITY Composite_Curve SUBTYPE OF (Bounded_Curve); segments : LIST [1 : ?] OF Composite_Curve_Segment; self_intersect : LOGICAL; DERIVE n_segments : INTEGER := SIZEOF(segments); closed_curve : LOGICAL := segments[n_segments].transition <> Discontinuous; WHERE WR1: ((NOT closed_curve) AND (SIZEOF(QUERY(temp <* segments | temp.transition = Discontinuous)) = 1)) OR ((closed_curve) AND (SIZEOF(QUERY(temp <* segments | temp.transition = Discontinuous)) = 0)); END_ENTITY;
ENTITY Composite_Curve_On_Surface SUPERTYPE OF (Boundary_Curve) SUBTYPE OF (Composite_Curve); DERIVE basis_surface : SET [0 : 2] OF Surface := Get_Basis_Surface(SELF); WHERE WR1: SIZEOF(basis_surface) > 0; WR2: Constraints_Composite_Curve_On_Surface(SELF); END_ENTITY;
ENTITY Composite_Curve_Segment SUBTYPE OF (Founded_Item); transition : Transition_Code; same_sense : BOOLEAN; parent_curve : Curve; INVERSE using_curves : BAG [1:?] OF Composite_Curve FOR segments; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE' IN TYPEOF(parent_curve)); END_ENTITY;
ENTITY Composite_Curve_Transition_Locator SUBTYPE OF (Founded_Item); basis_curve : Composite_Curve; transition_index : INTEGER; WHERE WR1: SIZEOF(Using_Representations(SELF.basis_curve) * Relating_Shape_Representations_Of_Extreme_Values(SELF)) > 0; END_ENTITY;
ENTITY Composite_Group_Shape_Aspect SUBTYPE OF (Composite_Shape_Aspect); END_ENTITY;
ENTITY Composite_Hole SUBTYPE OF (Compound_Feature); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR (SELF\Characterized_Object.description IN ['counterbore','countersunk']); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY(sar <* csa.component_relationships | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN TYPEOF(sar.related_shape_aspect)))))) = 2)))) = 1)))) = 1); WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR ((NOT (SELF\Characterized_Object.description = 'countersunk')) OR (SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY(sar <* csa.component_relationships | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN TYPEOF(sar.related_shape_aspect)) AND (NOT (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(sar.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'change in diameter occurrence') AND (SIZEOF(QUERY(fcr2 <* QUERY(sar2 <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((sar2.description = 'taper usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar2)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF(fcr2.related_shape_aspect)))) = 1)))) = 0)))) = 0))))) = 1)))) = 1)))) = 1)); END_ENTITY;
ENTITY Composite_Material_Designation SUBTYPE OF (Material_Designation); END_ENTITY;
ENTITY Composite_Shape_Aspect SUPERTYPE OF (ONEOF(Continuous_Shape_Aspect, Common_Datum, Composite_Group_Shape_Aspect)) SUBTYPE OF (Shape_Aspect); INVERSE component_relationships : SET [2:?] OF Shape_Aspect_Relationship FOR relating_shape_aspect; END_ENTITY;
ENTITY Composite_Sheet_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF(SELF)) = 1; END_ENTITY;
ENTITY Composite_Text SUBTYPE OF (Geometric_Representation_Item); collected_text : SET [2 : ?] OF Text_Or_Character; WHERE WR1: Acyclic_Composite_Text(SELF, collected_text); END_ENTITY;
ENTITY Composite_Text_With_Associated_Curves SUBTYPE OF (Composite_Text); associated_curves : SET [1 : ?] OF Curve; END_ENTITY;
ENTITY Composite_Text_With_Blanking_Box SUBTYPE OF (Composite_Text); blanking : Planar_Box; END_ENTITY;
ENTITY Composite_Text_With_Delineation SUBTYPE OF (Composite_Text); delineation : Text_Delineation; END_ENTITY;
ENTITY Composite_Text_With_Extent SUBTYPE OF (Composite_Text); extent : Planar_Extent; END_ENTITY;
ENTITY Composite_Unit_Shape_Aspect SUBTYPE OF (Composite_Shape_Aspect); END_ENTITY;
ENTITY Compound_Feature SUBTYPE OF (Feature_Definition); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((csa.name = 'compound feature in solid') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa))))) = 1))) = 1); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa))) = 1))) = 1); WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY(fcr <* csa.component_relationships | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(fcr))))) = 0)))) = 1)))) = 1); WR4: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)))) = 1))) = 1); WR5: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY(sar <* csa.component_relationships | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THREAD' IN TYPEOF(sar.related_shape_aspect)))) = 0)))) = 1)))) = 1); WR6: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_COMPOSITE_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (SIZEOF(QUERY(sar <* csa.component_relationships | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_FEATURE' IN TYPEOF(sar.related_shape_aspect)) AND (sar.related_shape_aspect\Characterized_Object.name <> SELF\Characterized_Object.name)))) = 0))) = 1))) = 1); END_ENTITY;
ENTITY Compound_Representation_Item SUPERTYPE OF ((ONEOF(Point_And_Vector, Point_Array)) ANDOR ((ONEOF(Row_Representation_Item, Table_Representation_Item)))) SUBTYPE OF (Representation_Item); item_element : Compound_Item_Definition; END_ENTITY;
ENTITY Compound_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.context_of_items)) AND (SELF.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 3); WR2: SIZEOF(QUERY(cbsr_i <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(cbsr_i)) <> 1)) = 0; WR3: SIZEOF(QUERY(cbsr_i <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(cbsr_i)) = 1)) > 0; WR4: SIZEOF(QUERY(cbsr_i <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(cbsr_i)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION'] * TYPEOF(cbsr_i\Mapped_Item.mapping_source)) <> 1))) = 0; END_ENTITY;
ENTITY Concat_Expression SUBTYPE OF (String_Expression, Multiple_Arity_Generic_Expression); SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF String_Expression; END_ENTITY;
ENTITY Concentricity_Tolerance SUBTYPE OF (Geometric_Tolerance_With_Datum_Reference); END_ENTITY;
ENTITY Concept_Feature_Operator; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Concept_Feature_Relationship; name : Label; description : OPTIONAL Text; relating_product_concept_feature : Product_Concept_Feature; related_product_concept_feature : Product_Concept_Feature; END_ENTITY;
ENTITY Concept_Feature_Relationship_With_Condition SUBTYPE OF (Concept_Feature_Relationship); conditional_operator : Concept_Feature_Operator; END_ENTITY;
ENTITY Condition SUBTYPE OF (Action_Method); END_ENTITY;
ENTITY Conditional_Concept_Feature SUBTYPE OF (Product_Concept_Feature); condition : Concept_Feature_Relationship_With_Condition; END_ENTITY;
ENTITY Conditional_Effectivity SUBTYPE OF (Condition, Effectivity); END_ENTITY;
ENTITY Conductance_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDUCTANCE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Conductance_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Siemens); END_ENTITY;
ENTITY Configurable_Item SUBTYPE OF (Configuration_Item); item_concept_feature : SET [1 : ?] OF Product_Concept_Feature_Association; END_ENTITY;
ENTITY Configuration_Design; configuration : Configuration_Item; design : Configuration_Design_Item; DERIVE name : Label := Get_Name_Value(SELF); description : Text := Get_Description_Value(SELF); UNIQUE UR1: configuration, design; WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY;
ENTITY Configuration_Effectivity SUBTYPE OF (Product_Definition_Effectivity); configuration : Configuration_Design; UNIQUE UR1: configuration, SELF\Product_Definition_Effectivity.usage, SELF\Effectivity.id; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE' IN TYPEOF(SELF\Product_Definition_Effectivity.usage); END_ENTITY;
ENTITY Configuration_Item; id : Identifier; name : Label; description : OPTIONAL Text; item_concept : Product_Concept; purpose : OPTIONAL Label; END_ENTITY;
ENTITY Configuration_Item_Hierarchical_Relationship SUBTYPE OF (Configuration_Item_Relationship); END_ENTITY;
ENTITY Configuration_Item_Relationship; name : Label; description : OPTIONAL Text; relating_configuration_item : Configuration_Item; related_configuration_item : Configuration_Item; END_ENTITY;
ENTITY Configuration_Item_Revision_Sequence SUBTYPE OF (Configuration_Item_Relationship); END_ENTITY;
ENTITY Configured_Effectivity_Assignment SUBTYPE OF (Effectivity_Assignment); items : SET [1 : ?] OF Configured_Effectivity_Item; WHERE WR1: (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EFFECTIVITY'] * TYPEOF(SELF.assigned_effectivity)) = 1) AND (SELF.assigned_effectivity.id = 'configuration validity'); WR2: SIZEOF(SELF.items) = 1; WR3: SIZEOF(QUERY(i <* SELF.items | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) OR NOT (i\Product_Definition.frame_of_reference.name IN ['conceptual definition', 'part occurrence', 'functional definition', 'alternative definition']))) = 0; WR4: SELF.role.name IN ['design','usage']; WR5: (SELF.role.name <> 'design') OR (SIZEOF(QUERY(i <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) AND (i\Product_Definition.frame_of_reference.name = 'part occurrence'))) = 0); WR6: (SELF.role.name <> 'usage') OR (SIZEOF(QUERY(i <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(i)) AND (i\Product_Definition.frame_of_reference.name = 'conceptual definition'))) = 0); WR7: SELF.role.description IN ['exception','inherited','local']; WR8: SIZEOF(QUERY(X <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURED_EFFECTIVITY_CONTEXT_ASSIGNMENT' IN TYPEOF(X))) = 1; END_ENTITY;
ENTITY Configured_Effectivity_Context_Assignment SUBTYPE OF (Effectivity_Context_Assignment); SELF\effectivity_context_assignment.assigned_effectivity_assignment : Configured_Effectivity_Assignment; items : SET [1 : ?] OF Configured_Effectivity_Context_Item; WHERE WR1: SIZEOF(SELF.items) = 1; END_ENTITY;
ENTITY Conic SUPERTYPE OF (ONEOF(Circle, Ellipse, Hyperbola, Parabola)) SUBTYPE OF (Curve); position : Axis2_Placement; END_ENTITY;
ENTITY Conical_Stepped_Hole_Transition SUBTYPE OF (Geometric_Representation_Item); transition_number : Positive_Integer; cone_apex_angle : Plane_Angle_Measure; cone_base_radius : Positive_Length_Measure; END_ENTITY;
ENTITY Conical_Surface SUBTYPE OF (Elementary_Surface); radius : Length_Measure; semi_angle : Plane_Angle_Measure; WHERE WR1: radius >= 0.0; END_ENTITY;
ENTITY Connected_Edge_Set SUBTYPE OF (Topological_Representation_Item); ces_edges : SET [1 : ?] OF Edge; END_ENTITY;
ENTITY Connected_Edge_With_Length_Set_Representation SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Connected_Edge_With_Length_Set_Items; WHERE WR1: SIZEOF(QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_EDGE_SET' IN TYPEOF(it))) = 1; END_ENTITY;
ENTITY Connected_Face_Set SUPERTYPE OF (ONEOF(Closed_Shell, Open_Shell)) SUBTYPE OF (Topological_Representation_Item); cfs_faces : SET [1 : ?] OF Face; END_ENTITY;
ENTITY Connected_Face_Sub_Set SUBTYPE OF (Connected_Face_Set); parent_face_set : Connected_Face_Set; END_ENTITY;
ENTITY Connected_Volume_Set SUBTYPE OF (Topological_Representation_Item); cvs_volumes : SET [1 : ?] OF Volume_With_Faces; END_ENTITY;
ENTITY Connected_Volume_Sub_Set SUBTYPE OF (Connected_Volume_Set); parent_volume_set : Connected_Volume_Set; END_ENTITY;
ENTITY Connection_Zone_Interface_Plane_Relationship SUBTYPE OF (Shape_Aspect, Shape_Aspect_Relationship); UNIQUE UR1: SELF\Shape_Aspect_Relationship.name; END_ENTITY;
ENTITY Connectivity_Definition SUBTYPE OF (Shape_Aspect); END_ENTITY;
ENTITY Connectivity_Definition_Item_Relationship SUBTYPE OF (Shape_Aspect_Relationship); SELF\shape_aspect_relationship.relating_shape_aspect : Connectivity_Definition; END_ENTITY;
ENTITY Constant_Function SUBTYPE OF (Maths_Function, Generic_Literal); sole_output : Maths_Value; source_of_domain : Maths_Space_Or_Function; WHERE WR1: No_Cyclic_Domain_Reference(source_of_domain, [SELF]); WR2: Expression_Is_Constant(Domain_From(source_of_domain)); END_ENTITY;
ENTITY Constituent_Shape_Aspect SUBTYPE OF (Shape_Aspect); parent : Shape_Aspect; DERIVE SELF\shape_aspect.of_shape : Product_Definition_Shape := Get_Root_Shape_Aspect(SELF); END_ENTITY;
ENTITY Constrained_Kinematic_Motion_Representation SUBTYPE OF (Representation_Relationship_With_Transformation); SELF\representation_relationship.rep_1 : Representative_Shape_Representation; SELF\representation_relationship.rep_2 : Representative_Shape_Representation; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2)); WR2: ((Dimension_Of(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1) = 3) AND (Dimension_Of(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2) = 3)); WR3: (SELF\Representation_Relationship.rep_1 IN (Using_Representations(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1) + Using_Representation_With_Mapping(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1))) AND (SELF\Representation_Relationship.rep_2 IN (Using_Representations(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2) + Using_Representation_With_Mapping(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2))); WR4: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_PAIR' IN TYPEOF(SELF\Representation_Relationship_With_Transformation.transformation_operator); END_ENTITY;
ENTITY Constructive_Geometry_Representation SUBTYPE OF (Representation); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\Representation.context_of_items)) AND ({2 <= SELF\Representation.context_of_items\Geometric_Representation_Context.coordinate_space_dimension <= 3}); WR2: SIZEOF(QUERY(cgr_i <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_EDGE_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT'] * TYPEOF(cgr_i)) <> 1)) = 0; WR3: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2')) > 0; END_ENTITY;
ENTITY Constructive_Geometry_Representation_Relationship SUBTYPE OF (Representation_Relationship); SELF\representation_relationship.rep_1 : Constructive_Geometry_Representation_Or_Shape_Representation; SELF\representation_relationship.rep_2 : Constructive_Geometry_Representation; WHERE WR1: (SELF.rep_1.context_of_items :=: SELF.rep_2.context_of_items) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF.rep_1.context_of_items)); WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Contact_Feature SUBTYPE OF (Shape_Aspect); END_ENTITY;
ENTITY Contact_Feature_Definition SUBTYPE OF (Shape_Feature_Definition); END_ENTITY;
ENTITY Contact_Feature_Definition_Fit_Relationship SUBTYPE OF (Shape_Feature_Definition_Fit_Relationship); SELF\characterized_object_relationship.relating_object : Contact_Feature_Definition; SELF\characterized_object_relationship.related_object : Contact_Feature_Definition; END_ENTITY;
ENTITY Contact_Feature_Fit_Relationship SUBTYPE OF (Shape_Feature_Fit_Relationship); SELF\shape_aspect_relationship.relating_shape_aspect : Contact_Feature; SELF\shape_aspect_relationship.related_shape_aspect : Contact_Feature; END_ENTITY;
ENTITY Contact_Ratio_Representation SUBTYPE OF (Representation); WHERE WR1: (SIZEOF(SELF.items) = 1) AND (SIZEOF(QUERY(i <* SELF.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * TYPEOF(i)) = 1) AND (i.name = 'ratio value'))) = 1); WR2: (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | pdr\Property_Definition_Representation.name = 'contact ratio reference')) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | (pdr\Property_Definition_Representation.name = 'contact ratio reference') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(pdr\Property_Definition_Representation.definition\Property_Definition.definition)))) = 1); WR3: (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF(QUERY(gpa <* USEDIN(pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN TYPEOF(gpa\General_Property_Association.base_definition)) AND (gpa\General_Property_Association.base_definition\General_Property.name = 'surface_condition'))) = 1)) = 1); END_ENTITY;
ENTITY Contacting_Feature SUBTYPE OF (Shape_Aspect); WHERE WR1: SELF\Shape_Aspect.product_definitional = FALSE; END_ENTITY;
ENTITY Containing_Message SUBTYPE OF (Group_Assignment); items : SET [1 : 1] OF Structured_Message; SELF\group_assignment.assigned_group : Message_Contents_Group; DERIVE message_contents_group : Message_Contents_Group := SELF\Group_Assignment.assigned_group; END_ENTITY;
ENTITY Context_Dependent_Invisibility SUBTYPE OF (Invisibility); presentation_context : Invisibility_Context; END_ENTITY;
ENTITY Context_Dependent_Kinematic_Link_Representation; representation_relation : Kinematic_Link_Representation_Association; represented_product_relation : Product_Definition_Relationship_Kinematics; END_ENTITY;
ENTITY Context_Dependent_Over_Riding_Styled_Item SUBTYPE OF (Over_Riding_Styled_Item); style_context : LIST [1 : ?] OF Style_Context_Select; WHERE WR1: (SIZEOF(QUERY(sc <* style_context | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(sc))) = 1) OR (SIZEOF(QUERY(sc <* style_context | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(sc)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_SHAPE_REPRESENTATION' IN TYPEOF(sc)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF(sc)))) = SIZEOF(style_context)); END_ENTITY;
ENTITY Context_Dependent_Shape_Representation; representation_relation : Shape_Representation_Relationship; represented_product_relation : Product_Definition_Shape; DERIVE description : Text := Get_Description_Value(SELF); name : Label := Get_Name_Value(SELF); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF.represented_product_relation.definition); WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR3: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY;
ENTITY Context_Dependent_Unit SUBTYPE OF (Named_Unit); name : Label; END_ENTITY;
ENTITY Continuous_Shape_Aspect SUPERTYPE OF (ONEOF(Between_Shape_Aspect, All_Around_Shape_Aspect)) SUBTYPE OF (Composite_Shape_Aspect); END_ENTITY;
ENTITY Contract; name : Label; purpose : Text; kind : Contract_Type; END_ENTITY;
ENTITY Contract_Assignment ABSTRACT SUPERTYPE; assigned_contract : Contract; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Contract_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; relating_contract : Contract; related_contract : Contract; END_ENTITY;
ENTITY Contract_Type; description : Label; END_ENTITY;
ENTITY Conversion_Based_Unit SUBTYPE OF (Named_Unit); name : Label; conversion_factor : Measure_With_Unit; WHERE WR1: SELF\Named_Unit.dimensions = Derive_Dimensional_Exponents(conversion_factor\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Convex_Hexahedron SUBTYPE OF (Faceted_Primitive); WHERE WR1: SIZEOF(points) = 8; WR2: Above_Plane(points[1], points[2], points[3], points[4]) = 0.0; WR3: Above_Plane(points[5], points[8], points[7], points[6]) = 0.0; WR4: Above_Plane(points[1], points[4], points[8], points[5]) = 0.0; WR5: Above_Plane(points[4], points[3], points[7], points[8]) = 0.0; WR6: Above_Plane(points[3], points[2], points[6], points[7]) = 0.0; WR7: Above_Plane(points[1], points[5], points[6], points[2]) = 0.0; WR8: Same_Side([points[1],points[2],points[3]], [points[5],points[6],points[7],points[8]]); WR9: Same_Side([points[1],points[4],points[8]], [points[3],points[7],points[6],points[2]]); WR10: Same_Side([points[1],points[2],points[5]], [points[3],points[7],points[8],points[4]]); WR11: Same_Side([points[5],points[6],points[7]], [points[1],points[2],points[3],points[4]]); WR12: Same_Side([points[3],points[7],points[6]], [points[1],points[4],points[8],points[5]]); WR13: Same_Side([points[3],points[7],points[8]], [points[1],points[5],points[6],points[2]]); END_ENTITY;
ENTITY Coordinated_Universal_Time_Offset; hour_offset : INTEGER; minute_offset : OPTIONAL INTEGER; sense : Ahead_Or_Behind; DERIVE actual_minute_offset : INTEGER := NVL(minute_offset, 0); WHERE WR1: {0 <= hour_offset < 24}; WR2: {0 <= actual_minute_offset <= 59}; WR3: NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND (sense = Exact)); END_ENTITY;
ENTITY Coordinates_List SUBTYPE OF (Tessellated_Item); npoints : INTEGER; position_coords : LIST [1 : ?] OF LIST [3 : 3] OF REAL; WHERE WR1: npoints = SIZEOF(position_coords); WR2: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPOSITIONED_TESSELLATED_ITEM'] * TYPEOF(SELF)) = 0; END_ENTITY;
ENTITY Cos_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Counterbore_Hole_Definition SUBTYPE OF (Explicit_Composite_Hole); counterbore : LIST [1 : ?] OF UNIQUE Explicit_Round_Hole; drilled_hole_depth : OPTIONAL Positive_Length_Measure_With_Unit; drilled_hole_depth_tolerance : OPTIONAL Tolerance_Value; drilled_hole_diameter : Positive_Length_Measure_With_Unit; drilled_hole_diameter_tolerance : OPTIONAL Tolerance_Value_Or_Limits_And_Fits; through_hole : BOOLEAN; WHERE WR1: through_hole XOR EXISTS(drilled_hole_depth); WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\Tolerance_Value.lower_bound); WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\Tolerance_Value.upper_bound); WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\Tolerance_Value.lower_bound)); WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\Tolerance_Value.upper_bound)); END_ENTITY;
ENTITY Counterbore_Hole_Occurrence SUBTYPE OF (Shape_Aspect_Occurrence); SELF\shape_aspect_occurrence.definition : Counterbore_Hole_Definition; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF\Shape_Aspect.of_shape\Property_Definition.definition); WR2: SELF\Shape_Aspect.product_definitional = TRUE; END_ENTITY;
ENTITY Counterbore_Hole_Occurrence_In_Assembly SUBTYPE OF (Counterbore_Hole_Occurrence); modified_components : LIST [1 : ?] OF UNIQUE Multi_Level_Reference_Designator; END_ENTITY;
ENTITY Counterdrill_Hole_Definition SUBTYPE OF (Explicit_Composite_Hole); counterbore : Explicit_Round_Hole; counterdrill_angle : Positive_Plane_Angle_Measure_With_Unit; counterdrill_angle_tolerance : Tolerance_Value; drilled_hole_depth : OPTIONAL Positive_Length_Measure_With_Unit; drilled_hole_depth_tolerance : OPTIONAL Tolerance_Value; drilled_hole_diameter : Positive_Length_Measure_With_Unit; drilled_hole_diameter_tolerance : OPTIONAL Tolerance_Value_Or_Limits_And_Fits; through_hole : BOOLEAN; WHERE WR1: through_hole XOR EXISTS(drilled_hole_depth); WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(counterdrill_angle_tolerance\Tolerance_Value.lower_bound); WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(counterdrill_angle_tolerance\Tolerance_Value.upper_bound); WR4: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\Tolerance_Value.lower_bound); WR5: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\Tolerance_Value.upper_bound); WR6: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\Tolerance_Value.lower_bound)); WR7: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\Tolerance_Value.upper_bound)); END_ENTITY;
ENTITY Counterdrill_Hole_Occurrence SUBTYPE OF (Shape_Aspect_Occurrence); SELF\shape_aspect_occurrence.definition : Counterdrill_Hole_Definition; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF\Shape_Aspect.of_shape\Property_Definition.definition); WR2: SELF\Shape_Aspect.product_definitional = TRUE; END_ENTITY;
ENTITY Counterdrill_Hole_Occurrence_In_Assembly SUBTYPE OF (Counterdrill_Hole_Occurrence); modified_components : LIST [1 : ?] OF UNIQUE Multi_Level_Reference_Designator; END_ENTITY;
ENTITY Countersink_Hole_Definition SUBTYPE OF (Explicit_Composite_Hole); countersink_angle : Positive_Plane_Angle_Measure_With_Unit; countersink_angle_tolerance : Tolerance_Value; countersink_diameter : Positive_Length_Measure_With_Unit; countersink_diameter_tolerance : OPTIONAL Tolerance_Value_Or_Limits_And_Fits; drilled_hole_depth : OPTIONAL Positive_Length_Measure_With_Unit; drilled_hole_depth_tolerance : OPTIONAL Tolerance_Value; drilled_hole_diameter : Positive_Length_Measure_With_Unit; drilled_hole_diameter_tolerance : OPTIONAL Tolerance_Value_Or_Limits_And_Fits; through_hole : BOOLEAN; WHERE WR1: through_hole XOR EXISTS(drilled_hole_depth); WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(countersink_angle_tolerance\Tolerance_Value.lower_bound); WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(countersink_angle_tolerance\Tolerance_Value.upper_bound); WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(countersink_diameter_tolerance)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(countersink_diameter_tolerance\Tolerance_Value.lower_bound)); WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(countersink_diameter_tolerance)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(countersink_diameter_tolerance\Tolerance_Value.upper_bound)); WR6: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\Tolerance_Value.lower_bound); WR7: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_depth_tolerance\Tolerance_Value.upper_bound); WR8: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\Tolerance_Value.lower_bound)); WR9: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(drilled_hole_diameter_tolerance)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(drilled_hole_diameter_tolerance\Tolerance_Value.upper_bound)); END_ENTITY;
ENTITY Countersink_Hole_Occurrence SUBTYPE OF (Shape_Aspect_Occurrence); SELF\shape_aspect_occurrence.definition : Countersink_Hole_Definition; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF\Shape_Aspect.of_shape\Property_Definition.definition); WR2: SELF\Shape_Aspect.product_definitional = TRUE; END_ENTITY;
ENTITY Countersink_Hole_Occurrence_In_Assembly SUBTYPE OF (Countersink_Hole_Occurrence); modified_components : LIST [1 : ?] OF UNIQUE Multi_Level_Reference_Designator; END_ENTITY;
ENTITY Criterion_Report_Item_With_Number_Of_Instances SUBTYPE OF (Data_Equivalence_Inspection_Criterion_Report_Item); statistical_value : Count_Measure; value_type : Summary_Report_Style_Type; UNIQUE UR1: SELF\Data_Equivalence_Inspection_Criterion_Report_Item.criterion_report, value_type; END_ENTITY;
ENTITY Criterion_Report_Item_With_Value SUBTYPE OF (Data_Equivalence_Inspection_Criterion_Report_Item); report_value : Measure_With_Unit; value_type : Label; UNIQUE UR1: SELF\Data_Equivalence_Inspection_Criterion_Report_Item.criterion_report, value_type; END_ENTITY;
ENTITY Cross_Sectional_Alternative_Shape_Element SUBTYPE OF (Cross_Sectional_Part_Shape_Element); INVERSE items : SET [2:?] OF Shape_Aspect_Relationship FOR relating_shape_aspect; END_ENTITY;
ENTITY Cross_Sectional_Group_Shape_Element SUPERTYPE OF (ONEOF(Cross_Sectional_Group_Shape_Element_With_Tubular_Cover, Cross_Sectional_Group_Shape_Element_With_Lacing, Twisted_Cross_Sectional_Group_Shape_Element)) SUBTYPE OF (Cross_Sectional_Part_Shape_Element); INVERSE items : SET [1:?] OF Shape_Aspect_Relationship FOR relating_shape_aspect; END_ENTITY;
ENTITY Cross_Sectional_Group_Shape_Element_With_Lacing SUBTYPE OF (Cross_Sectional_Group_Shape_Element); END_ENTITY;
ENTITY Cross_Sectional_Group_Shape_Element_With_Tubular_Cover SUBTYPE OF (Cross_Sectional_Group_Shape_Element); END_ENTITY;
ENTITY Cross_Sectional_Occurrence_Shape_Element SUBTYPE OF (Shape_Aspect); END_ENTITY;
ENTITY Cross_Sectional_Part_Shape_Element SUPERTYPE OF (ONEOF(Cross_Sectional_Alternative_Shape_Element, Cross_Sectional_Group_Shape_Element)) SUBTYPE OF (Shape_Aspect); END_ENTITY;
ENTITY Csg_2d_Shape_Representation SUBTYPE OF (Shape_Representation); SELF\representation.items : SET [1 : ?] OF Csg_2d_Shape_Select; WHERE WR1: SELF.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 2; WR2: SIZEOF(QUERY(it <* SELF.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID'] * TYPEOF(it)) = 1) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_2D_SHAPE_REPRESENTATION' IN TYPEOF(it\Mapped_Item.mapping_source.mapped_representation))))) >= 1; WR3: SIZEOF(QUERY(it <* SELF.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) AND (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_2D_SHAPE_REPRESENTATION') IN TYPEOF(it\Mapped_Item.mapping_source.mapped_representation)))))) = 0; END_ENTITY;
ENTITY Csg_Primitive_Solid_2d SUBTYPE OF (Csg_Solid_2d); SELF\csg_solid.tree_root_expression : Bounded_Primitive_2d; END_ENTITY;
ENTITY Csg_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SELF.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 3; WR2: SIZEOF(QUERY(it <* SELF.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_REPLICA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REVOLVED_FACE_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTRUDED_FACE_SOLID'] * TYPEOF(it)) <> 1))) = 0; WR3: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)))) = 0; WR4: SIZEOF(QUERY(sr <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_REPLICA' IN TYPEOF(it))) | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REVOLVED_FACE_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTRUDED_FACE_SOLID'] * TYPEOF(sr\Solid_Replica.parent_solid)) = 0))) = 0; WR5: SIZEOF(QUERY(it <* SELF.items | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(it)))) > 0; END_ENTITY;
ENTITY Csg_Solid SUBTYPE OF (Solid_Model); tree_root_expression : Csg_Select; END_ENTITY;
ENTITY Csg_Solid_2d SUBTYPE OF (Csg_Solid); SELF\csg_solid.tree_root_expression : Csg_Select_2d; WHERE WR1: Valid_Csg_2d_Primitives(SELF); END_ENTITY;
ENTITY Cubic_Bezier_Tessellated_Edge SUBTYPE OF (Tessellated_Edge); SELF\tessellated_edge.line_strip : LIST [4 : ?] OF INTEGER; END_ENTITY;
ENTITY Cubic_Bezier_Triangulated_Face SUBTYPE OF (Tessellated_Face); ctriangles : LIST [1 : ?] OF LIST [10 : 10] OF INTEGER; WHERE WR1: SIZEOF(SELF\Tessellated_Face.normals) = 0; END_ENTITY;
ENTITY Cubic_Tessellated_Connecting_Edge SUBTYPE OF (Cubic_Bezier_Tessellated_Edge); smooth : LOGICAL; face1 : Cubic_Bezier_Triangulated_Face; face2 : Cubic_Bezier_Triangulated_Face; END_ENTITY;
ENTITY Currency ABSTRACT SUPERTYPE OF ((ONEOF(Externally_Defined_Currency, Iso4217_Currency))) SUBTYPE OF (Context_Dependent_Unit); WHERE WR1: ((SELF\Named_Unit.dimensions.length_exponent = 0.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 0.0) AND (SELF\Named_Unit.dimensions.time_exponent = 0.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 0.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0.0)); END_ENTITY;
ENTITY Currency_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); SELF\measure_with_unit.unit_component : Currency; END_ENTITY;
ENTITY Current_Change_Element_Assignment SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Current_Element_Assignment_Select; items : SET [1 : ?] OF Change_Management_Object; END_ENTITY;
ENTITY Curve SUPERTYPE OF (ONEOF(Line, Conic, Clothoid, Circular_Involute, Pcurve, Surface_Curve, Offset_Curve_2d, Offset_Curve_3d, Curve_Replica)) SUBTYPE OF (Geometric_Representation_Item); END_ENTITY;
ENTITY Curve_11 SUBTYPE OF (Geometric_Representation_Item); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Curve_Based_Path SUBTYPE OF (Path_Node); path_curve : Curve; END_ENTITY;
ENTITY Curve_Based_Path_With_Orientation SUBTYPE OF (Kinematic_Path_Segment); position_curve : Bounded_Curve; orientation_curve : Bounded_Curve; WHERE WR1: TYPEOF(position_curve) = TYPEOF(orientation_curve); END_ENTITY;
ENTITY Curve_Based_Path_With_Orientation_And_Parameters SUBTYPE OF (Curve_Based_Path_With_Orientation); parameters : Path_Parameter_Representation; END_ENTITY;
ENTITY Curve_Bounded_Surface SUBTYPE OF (Bounded_Surface); basis_surface : Surface; boundaries : SET [1 : ?] OF Boundary_Curve; implicit_outer : BOOLEAN; WHERE WR1: (NOT implicit_outer) OR (SIZEOF(QUERY(temp <* boundaries | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp))) = 0); WR2: (NOT (implicit_outer)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(basis_surface)); WR3: SIZEOF(QUERY(temp <* boundaries | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF(temp))) <= 1; WR4: SIZEOF(QUERY(temp <* boundaries | (temp\Composite_Curve_On_Surface.basis_surface[1] <> SELF.basis_surface))) = 0; END_ENTITY;
ENTITY Curve_Dimension SUBTYPE OF (Dimension_Curve_Directed_Callout); END_ENTITY;
ENTITY Curve_Distance_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF Curve; SELF\explicit_constraint.reference_elements : SET [0 : 4] OF Point_Curve_Or_Surface_Constraint_Element; near_points : SET [0 : 4] OF Near_Point_Relationship; WHERE WR1: (SIZEOF(SELF\Explicit_Constraint.reference_elements) > 0) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CDGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 2)); WR2: SIZEOF(near_points) <= SIZEOF(SELF\Explicit_Constraint.reference_elements); WR3: SIZEOF(QUERY(q <* near_points | NOT (q\Representation_Item_Relationship.relating_representation_item IN SELF\Explicit_Constraint.reference_elements))) = 0; END_ENTITY;
ENTITY Curve_Length_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Bounded_Curve; WHERE WR1: SIZEOF(SELF\Explicit_Constraint.reference_elements) = 0; END_ENTITY;
ENTITY Curve_Replica SUBTYPE OF (Curve); parent_curve : Curve; transformation : Cartesian_Transformation_Operator; WHERE WR1: Transformation.dim = parent_curve.dim; WR2: Acyclic_Curve_Replica(SELF, parent_curve); END_ENTITY;
ENTITY Curve_Segment_Set SUBTYPE OF (Geometric_Representation_Item); segments : SET [1 : ?] OF Composite_Curve_Segment; END_ENTITY;
ENTITY Curve_Smoothness_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : 1] OF Curve_Segment_Set; smoothness : Transition_Code; WHERE WR1: SIZEOF(SELF\Explicit_Constraint.reference_elements) = 0; END_ENTITY;
ENTITY Curve_Style SUBTYPE OF (Founded_Item); name : Label; curve_font : OPTIONAL Curve_Font_Or_Scaled_Curve_Font_Select; curve_width : OPTIONAL Size_Select; curve_colour : OPTIONAL Colour; WHERE WR1: EXISTS(curve_font) OR EXISTS(curve_width) OR EXISTS(curve_colour); END_ENTITY;
ENTITY Curve_Style_Font SUBTYPE OF (Founded_Item); name : Label; pattern_list : LIST [1 : ?] OF Curve_Style_Font_Pattern; END_ENTITY;
ENTITY Curve_Style_Font_And_Scaling SUBTYPE OF (Founded_Item); name : Label; curve_font : Curve_Style_Font_Select; curve_font_scaling : REAL; END_ENTITY;
ENTITY Curve_Style_Font_Pattern SUBTYPE OF (Founded_Item); visible_segment_length : Positive_Length_Measure; invisible_segment_length : Positive_Length_Measure; END_ENTITY;
ENTITY Curve_Style_Parameters_Representation SUBTYPE OF (Representation); END_ENTITY;
ENTITY Curve_Style_Parameters_With_Ends SUBTYPE OF (Curve_Style_Parameters_Representation); END_ENTITY;
ENTITY Curve_Style_Rendering; rendering_method : Shading_Curve_Method; rendering_properties : Surface_Rendering_Properties; END_ENTITY;
ENTITY Curve_Swept_Solid_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_AREA_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_DISK_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_AREA_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_DISK_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; WR3: SIZEOF(QUERY(mi <* QUERY(it <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)))) = 0; WR4: SIZEOF(QUERY(scsas <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF(it)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(scsas\Surface_Curve_Swept_Area_Solid.directrix)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(scsas\Surface_Curve_Swept_Area_Solid.directrix))))) = 0; END_ENTITY;
ENTITY Curve_With_Excessive_Segments SUBTYPE OF (Overcomplex_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_COMPOSITE_CURVE_SELECT']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Curve_With_Small_Curvature_Radius SUBTYPE OF (Geometry_With_Local_Near_Degeneracy); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Cyclide_Segment_Solid SUBTYPE OF (Geometric_Representation_Item); position : Axis2_Placement_3d; radius1 : Positive_Length_Measure; radius2 : Positive_Length_Measure; cone_angle1 : Plane_Angle_Measure; cone_angle2 : Plane_Angle_Measure; turn_angle : Plane_Angle_Measure; END_ENTITY;
ENTITY Cylindrical_11 SUBTYPE OF (Geometric_Representation_Item); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Cylindrical_Pair SUBTYPE OF (Low_Order_Kinematic_Pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY;
ENTITY Cylindrical_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Cylindrical_Pair; actual_translation : Length_Measure; actual_rotation : Plane_Angle_Measure; END_ENTITY;
ENTITY Cylindrical_Pair_With_Range SUBTYPE OF (Cylindrical_Pair); lower_limit_actual_translation : OPTIONAL Length_Measure; upper_limit_actual_translation : OPTIONAL Length_Measure; lower_limit_actual_rotation : OPTIONAL Plane_Angle_Measure; upper_limit_actual_rotation : OPTIONAL Plane_Angle_Measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_translation) OR NOT EXISTS(upper_limit_actual_translation)) XOR (lower_limit_actual_translation < upper_limit_actual_translation); WR2: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); END_ENTITY;
ENTITY Cylindrical_Point SUBTYPE OF (Cartesian_Point); r : Length_Measure; theta : Plane_Angle_Measure; z : Length_Measure; DERIVE SELF\cartesian_point.coordinates : LIST [3 : 3] OF Length_Measure := [r * COS(theta),r * SIN(theta),z]; WHERE WR1: r >= 0.0; END_ENTITY;
ENTITY Cylindrical_Surface SUBTYPE OF (Elementary_Surface); radius : Positive_Length_Measure; END_ENTITY;
ENTITY Cylindrical_Volume SUBTYPE OF (Volume); position : Axis2_Placement_3d; radius : Positive_Length_Measure; height : Positive_Length_Measure; END_ENTITY;
ENTITY Cylindricity_Tolerance SUBTYPE OF (Geometric_Tolerance); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Data_Environment; name : Label; description : Text; elements : SET [1 : ?] OF Characterized_Property_Representation; END_ENTITY;
ENTITY Data_Equivalence_Assessment_Specification; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Data_Equivalence_Criteria_Representation SUBTYPE OF (Representation); WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERION' IN TYPEOF(q))) > 0; END_ENTITY;
ENTITY Data_Equivalence_Criterion SUBTYPE OF (Representation_Item); WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_RESULT_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Equivalence_Definition; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Data_Equivalence_Definition_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; relating_data_equivalence_definition : Data_Equivalence_Definition; related_data_equivalence_definition : Data_Equivalence_Definition; END_ENTITY;
ENTITY Data_Equivalence_Definition_Representation_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; definition : Data_Equivalence_Definition; used_representation : Used_Equivalence_Representation_Select; END_ENTITY;
ENTITY Data_Equivalence_Inspected_Element_Pair SUBTYPE OF (Representation_Item); comparing_elements : SET [1 : ?] OF Inspected_Equivalence_Element_Select; compared_elements : SET [1 : ?] OF Inspected_Equivalence_Element_Select; WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERIA_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Equivalence_Inspection_Criterion_Report SUBTYPE OF (Data_Equivalence_Inspection_Report); statistical_values : SET [1 : ?] OF Data_Equivalence_Inspection_Criterion_Report_Item; END_ENTITY;
ENTITY Data_Equivalence_Inspection_Criterion_Report_Item ABSTRACT SUPERTYPE OF ((ONEOF(Criterion_Report_Item_With_Number_Of_Instances, Criterion_Report_Item_With_Value)) ANDOR (ONEOF(A3m_Equivalence_Criterion_Report_Item_With_Measured_Value, Criterion_Report_Item_With_Number_Of_Instances, Criterion_Report_Item_With_Value))) SUBTYPE OF (Representation_Item); INVERSE criterion_report : Data_Equivalence_Inspection_Criterion_Report FOR statistical_values; WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERIA_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Equivalence_Inspection_Instance_Report SUBTYPE OF (Data_Equivalence_Inspection_Report); inspected_instances : LIST [1 : ?] OF Data_Equivalence_Inspection_Instance_Report_Item; END_ENTITY;
ENTITY Data_Equivalence_Inspection_Instance_Report_Item SUBTYPE OF (Representation_Item); inspected_element : Data_Equivalence_Inspected_Element_Pair; WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERIA_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Equivalence_Inspection_Report ABSTRACT SUPERTYPE OF (ONEOF(Data_Equivalence_Inspection_Criterion_Report, Data_Equivalence_Inspection_Instance_Report)) SUBTYPE OF (Representation_Item); inspection_result : Data_Equivalence_Inspection_Result; WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERIA_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Equivalence_Inspection_Requirement SUBTYPE OF (Representation_Item); WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_RESULT_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Equivalence_Inspection_Result SUBTYPE OF (Representation_Item); criterion_inspected : Data_Equivalence_Criterion; WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_CRITERIA_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Equivalence_Inspection_Result_Representation SUBTYPE OF (Representation); criteria_inspected : Data_Equivalence_Criteria_Representation; WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_RESULT' IN TYPEOF(q))) > 0; END_ENTITY;
ENTITY Data_Equivalence_Inspection_Result_With_Judgement SUBTYPE OF (Data_Equivalence_Inspection_Result); judgement : BOOLEAN; END_ENTITY;
ENTITY Data_Equivalence_Report_Request; id : Identifier; name : Label; description : OPTIONAL Text; criterion_of_report_request : Data_Equivalence_Criterion; END_ENTITY;
ENTITY Data_Quality_Assessment_Measurement_Association; assessment_specification : Data_Quality_Criterion_Assessment_Association; measurement_requirement : Data_Quality_Criterion_Measurement_Association; WHERE WR1: SELF.measurement_requirement\Representation_Item_Relationship.relating_representation_item :=: SELF.assessment_specification.criterion; END_ENTITY;
ENTITY Data_Quality_Assessment_Specification; description : Text; END_ENTITY;
ENTITY Data_Quality_Criteria_Representation SUBTYPE OF (Representation); WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION' IN TYPEOF(q))) > 0; END_ENTITY;
ENTITY Data_Quality_Criterion SUBTYPE OF (Representation_Item); WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Quality_Criterion_Assessment_Association; criterion : Data_Quality_Criterion; assessment_specification : Data_Quality_Assessment_Specification; END_ENTITY;
ENTITY Data_Quality_Criterion_Measurement_Association SUBTYPE OF (Representation_Item_Relationship); SELF\representation_item_relationship.relating_representation_item : Data_Quality_Criterion; SELF\representation_item_relationship.related_representation_item : Data_Quality_Measurement_Requirement; END_ENTITY;
ENTITY Data_Quality_Definition; description : Text; END_ENTITY;
ENTITY Data_Quality_Definition_Relationship; description : Text; relating_data_quality_definition : Data_Quality_Definition; related_data_quality_definition : Data_Quality_Definition; END_ENTITY;
ENTITY Data_Quality_Definition_Representation_Relationship; description : Text; definition : Data_Quality_Definition; used_representation : Used_Quality_Representation_Select; END_ENTITY;
ENTITY Data_Quality_Inspection_Criterion_Report SUBTYPE OF (Data_Quality_Inspection_Report); statistical_values : SET [1 : 2] OF Data_Quality_Inspection_Criterion_Report_Item; WHERE WR1: SIZEOF(QUERY(i1 <* Bag_To_Set(USEDIN(SELF\Data_Quality_Inspection_Report.inspection_result.criterion_inspected, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUMMARY_REPORT_REQUEST' IN TYPEOF(i1))) > 0; WR2: (SIZEOF(SELF.statistical_values) = 1) OR (SELF.statistical_values[1].value_type <> SELF.statistical_values[2].value_type); END_ENTITY;
ENTITY Data_Quality_Inspection_Criterion_Report_Item SUBTYPE OF (Representation_Item); statistical_value : INTEGER; value_type : Statistical_Value_Type; WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERIA_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Quality_Inspection_Instance_Report SUBTYPE OF (Data_Quality_Inspection_Report); inspected_instances : LIST [1 : ?] OF Data_Quality_Inspection_Instance_Report_Item; WHERE WR1: SIZEOF(QUERY(i1 <* Bag_To_Set(USEDIN(SELF\Data_Quality_Inspection_Report.inspection_result.criterion_inspected, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DETAILED_REPORT_REQUEST' IN TYPEOF(i1))) > 0; END_ENTITY;
ENTITY Data_Quality_Inspection_Instance_Report_Item SUBTYPE OF (Representation_Item); inspected_elements : SET [1 : ?] OF Inspected_Element_Select; WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERIA_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Quality_Inspection_Report SUPERTYPE OF (ONEOF(Data_Quality_Inspection_Criterion_Report, Data_Quality_Inspection_Instance_Report)) SUBTYPE OF (Representation_Item); inspection_result : Data_Quality_Inspection_Result; WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERIA_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Quality_Inspection_Result SUBTYPE OF (Representation_Item); criterion_inspected : Data_Quality_Criterion; WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERIA_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Quality_Inspection_Result_Representation SUBTYPE OF (Representation); criteria_inspected : Data_Quality_Criteria_Representation; WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q))) > 0; WR2: SIZEOF(Inspected_Product_Definition(SELF)) > 0; END_ENTITY;
ENTITY Data_Quality_Inspection_Result_With_Judgement SUBTYPE OF (Data_Quality_Inspection_Result); judgement : BOOLEAN; END_ENTITY;
ENTITY Data_Quality_Measurement_Requirement SUBTYPE OF (Representation_Item); WHERE WR1: SIZEOF(QUERY(q <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' IN TYPEOF(q))) = 0; END_ENTITY;
ENTITY Data_Quality_Report_Measurement_Association SUBTYPE OF (Representation_Item_Relationship); SELF\representation_item_relationship.relating_representation_item : Data_Quality_Measurement_Requirement; SELF\representation_item_relationship.related_representation_item : Data_Quality_Inspection_Report; END_ENTITY;
ENTITY Data_Quality_Report_Request ABSTRACT SUPERTYPE OF (ONEOF(Summary_Report_Request, Detailed_Report_Request)); description : Text; criterion_of_report_request : Data_Quality_Criterion; END_ENTITY;
ENTITY Date SUPERTYPE OF (ONEOF(Calendar_Date, Ordinal_Date, Week_Of_Year_And_Day_Date, Year_Month)); year_component : Year_Number; END_ENTITY;
ENTITY Date_And_Time; date_component : Date; time_component : Local_Time; END_ENTITY;
ENTITY Date_And_Time_Assignment ABSTRACT SUPERTYPE; assigned_date_and_time : Date_And_Time; role : Date_Time_Role; END_ENTITY;
ENTITY Date_Assignment ABSTRACT SUPERTYPE; assigned_date : Date; role : Date_Role; END_ENTITY;
ENTITY Date_Representation_Item SUBTYPE OF (Representation_Item, Date); END_ENTITY;
ENTITY Date_Role; name : Label; DERIVE description : Text := Get_Description_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY;
ENTITY Date_Time_Representation_Item SUBTYPE OF (Representation_Item, Date_And_Time); END_ENTITY;
ENTITY Date_Time_Role; name : Label; DERIVE description : Text := Get_Description_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY;
ENTITY Dated_Effectivity SUBTYPE OF (Effectivity); effectivity_end_date : OPTIONAL Date_Time_Or_Event_Occurrence; effectivity_start_date : OPTIONAL Date_Time_Or_Event_Occurrence; WHERE WR1: EXISTS(effectivity_end_date) OR EXISTS(effectivity_start_date); END_ENTITY;
ENTITY Datum SUBTYPE OF (Shape_Aspect); identification : Identifier; INVERSE established_by_relationships : SET [1:?] OF Shape_Aspect_Relationship FOR related_shape_aspect; UNIQUE UR1: identification, SELF\Shape_Aspect.of_shape; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMMON_DATUM' IN TYPEOF(SELF)) XOR ((SIZEOF(QUERY(X <* SELF\Datum.established_by_relationships | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_FEATURE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_TARGET'] * TYPEOF(X\Shape_Aspect_Relationship.relating_shape_aspect)) = 1)) >= 1)); WR2: SIZEOF(QUERY(X <* SELF\Datum.established_by_relationships | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_FEATURE' IN TYPEOF(X\Shape_Aspect_Relationship.relating_shape_aspect)))) <= 1; WR3: SELF\Shape_Aspect.product_definitional = FALSE; WR4: SELF\Shape_Aspect.name = ''; END_ENTITY;
ENTITY Datum_Feature SUPERTYPE OF (ONEOF(Dimensional_Location_With_Datum_Feature, Dimensional_Size_With_Datum_Feature)) SUBTYPE OF (Shape_Aspect); INVERSE feature_basis_relationship : SET [1:?] OF Shape_Aspect_Relationship FOR relating_shape_aspect; WHERE WR1: SIZEOF(QUERY(sar <* SELF\Datum_Feature.feature_basis_relationship | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN TYPEOF(sar\Shape_Aspect_Relationship.related_shape_aspect)))) = 1; WR2: SELF\Shape_Aspect.product_definitional = TRUE; END_ENTITY;
ENTITY Datum_Feature_Callout SUBTYPE OF (Draughting_Callout); END_ENTITY;
ENTITY Datum_Reference; precedence : INTEGER; referenced_datum : Datum; WHERE WR1: precedence > 0; END_ENTITY;
ENTITY Datum_Reference_Compartment SUBTYPE OF (General_Datum_Reference); INVERSE owner : Datum_System FOR constituents; END_ENTITY;
ENTITY Datum_Reference_Element SUBTYPE OF (General_Datum_Reference); DERIVE owner : General_Datum_Reference := Sts_Get_General_Datum_Reference(SELF); WHERE WR1: SELF <> owner; WR2: EXISTS(owner); WR3: SELF\Shape_Aspect.of_shape = owner\Shape_Aspect.of_shape; END_ENTITY;
ENTITY Datum_Reference_Modifier_With_Value; modifier_type : Datum_Reference_Modifier_Type; modifier_value : Length_Measure_With_Unit; WHERE WR1: modifier_value\Measure_With_Unit.value_component > 0.0; END_ENTITY;
ENTITY Datum_System SUBTYPE OF (Shape_Aspect); constituents : LIST [1 : 3] OF UNIQUE Datum_Reference_Compartment; UNIQUE UR1: SELF\Shape_Aspect.of_shape, SELF\Shape_Aspect.name; WHERE WR1: SELF\Shape_Aspect.product_definitional = FALSE; END_ENTITY;
ENTITY Datum_Target SUBTYPE OF (Shape_Aspect); target_id : Identifier; INVERSE target_basis_relationship : SET [1:?] OF Shape_Aspect_Relationship FOR relating_shape_aspect; WHERE WR1: SIZEOF(QUERY(sar <* SELF\Datum_Target.target_basis_relationship | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN TYPEOF(sar\Shape_Aspect_Relationship.related_shape_aspect)))) = 1; WR2: SELF\Shape_Aspect.product_definitional = TRUE; END_ENTITY;
ENTITY Datum_Target_Callout SUBTYPE OF (Draughting_Callout); END_ENTITY;
ENTITY Default_Model_Geometric_View SUBTYPE OF (Model_Geometric_View, Shape_Aspect); DERIVE SELF\shape_aspect.product_definitional : LOGICAL := FALSE; UNIQUE UR1: of_shape; WHERE WR1: SELF\Characterized_Object.name = SELF\Shape_Aspect.name; WR2: NOT EXISTS(SELF\Characterized_Object.description); WR3: NOT EXISTS(SELF\Shape_Aspect.description); END_ENTITY;
ENTITY Default_Tolerance_Table SUBTYPE OF (Representation); WHERE WR1: SIZEOF(QUERY(i <* SELF.items | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF(i)))) = 0; WR2: (SIZEOF(QUERY(rr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1') | rr.name < 'general tolerance definition')) = 0) AND (SIZEOF(QUERY(rr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1') | (rr.name = 'general tolerance definition') AND (rr.rep_2.name < 'default tolerance'))) = 0) AND (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2')) = 0); END_ENTITY;
ENTITY Default_Tolerance_Table_Cell SUBTYPE OF (Compound_Representation_Item); WHERE WR1: SIZEOF(QUERY(X <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEFAULT_TOLERANCE_TABLE' IN TYPEOF(X))) = 1; WR2: Default_Tolerance_Table_Cell_Wr2(SELF\Compound_Representation_Item.item_element); WR3: Default_Tolerance_Table_Cell_Wr3(SELF\Compound_Representation_Item.item_element); WR4: Default_Tolerance_Table_Cell_Wr4(SELF\Compound_Representation_Item.item_element); WR5: Default_Tolerance_Table_Cell_Wr5(SELF\Compound_Representation_Item.item_element); END_ENTITY;
ENTITY Defined_Character_Glyph SUBTYPE OF (Geometric_Representation_Item); definition : Defined_Glyph_Select; placement : Axis2_Placement; END_ENTITY;
ENTITY Defined_Constraint ABSTRACT SUPERTYPE OF (Equal_Parameter_Constraint) SUBTYPE OF (Explicit_Constraint); END_ENTITY;
ENTITY Defined_Function ABSTRACT SUPERTYPE OF ((ONEOF(Numeric_Defined_Function, String_Defined_Function, Boolean_Defined_Function)) ANDOR Sql_Mappable_Defined_Function); END_ENTITY;
ENTITY Defined_Symbol SUBTYPE OF (Geometric_Representation_Item); definition : Defined_Symbol_Select; target : Symbol_Target; END_ENTITY;
ENTITY Definite_Integral_Expression SUBTYPE OF (Quantifier_Expression); lower_limit_neg_infinity : BOOLEAN; upper_limit_pos_infinity : BOOLEAN; DERIVE integrand : Generic_Expression := SELF\Multiple_Arity_Generic_Expression.operands[1]; variable_of_integration : Maths_Variable := SELF\Multiple_Arity_Generic_Expression.operands[2]; SELF\quantifier_expression.variables : LIST [1 : 1] OF UNIQUE Generic_Variable := [variable_of_integration]; WHERE WR1: Has_Values_Space(integrand); WR2: Space_Is_Continuum(Values_Space_Of(integrand)); WR3: Definite_Integral_Expr_Check(SELF\Multiple_Arity_Generic_Expression.operands, lower_limit_neg_infinity, upper_limit_pos_infinity); END_ENTITY;
ENTITY Definite_Integral_Function SUBTYPE OF (Maths_Function, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Maths_Function; variable_of_integration : Input_Selector; lower_limit_neg_infinity : BOOLEAN; upper_limit_pos_infinity : BOOLEAN; DERIVE integrand : Maths_Function := SELF\Unary_Generic_Expression.operand; WHERE WR1: Space_Is_Continuum(integrand.range); WR2: Definite_Integral_Check(integrand.domain, variable_of_integration, lower_limit_neg_infinity, upper_limit_pos_infinity); END_ENTITY;
ENTITY Definitional_Product_Definition_Usage SUBTYPE OF (Product_Definition_Usage); UNIQUE UR1: relating_product_definition, related_product_definition; END_ENTITY;
ENTITY Definitional_Representation SUBTYPE OF (Representation); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\Representation.context_of_items); END_ENTITY;
ENTITY Definitional_Representation_Relationship SUBTYPE OF (Representation_Relationship); WHERE WR1: Acyclic_Representation_Relationship(SELF, [SELF\Representation_Relationship.rep_2], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION'); END_ENTITY;
ENTITY Definitional_Representation_Relationship_With_Same_Context SUBTYPE OF (Definitional_Representation_Relationship); WHERE WR1: SELF\Representation_Relationship.rep_1.context_of_items :=: SELF\Representation_Relationship.rep_2.context_of_items; END_ENTITY;
ENTITY Degenerate_Pcurve SUBTYPE OF (Point); basis_surface : Surface; reference_to_curve : Definitional_Representation; WHERE WR1: SIZEOF(reference_to_curve\Representation.items) = 1; WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(reference_to_curve\Representation.items[1]); WR3: reference_to_curve\Representation.items[1]\Geometric_Representation_Item.dim = 2; END_ENTITY;
ENTITY Degenerate_Toroidal_Surface SUBTYPE OF (Toroidal_Surface); select_outer : BOOLEAN; WHERE WR1: major_radius < minor_radius; END_ENTITY;
ENTITY Delete_Element SUBTYPE OF (Change_Element); END_ENTITY;
ENTITY Dependent_Variable_Definition SUBTYPE OF (Unary_Generic_Expression); name : Label; description : Text; END_ENTITY;
ENTITY Derived_Shape_Aspect SUPERTYPE OF (ONEOF(Apex, Centre_Of_Symmetry, Geometric_Alignment, Geometric_Contact, Geometric_Intersection, Parallel_Offset, Perpendicular_To, Extension, Tangent)) SUBTYPE OF (Shape_Aspect); INVERSE deriving_relationships : SET [1:?] OF Shape_Aspect_Deriving_Relationship FOR relating_shape_aspect; END_ENTITY;
ENTITY Derived_Unit SUPERTYPE OF (ONEOF(Absorbed_Dose_Unit, Acceleration_Unit, Radioactivity_Unit, Area_Unit, Capacitance_Unit, Dose_Equivalent_Unit, Electric_Charge_Unit, Conductance_Unit, Electric_Potential_Unit, Energy_Unit, Magnetic_Flux_Density_Unit, Force_Unit, Frequency_Unit, Illuminance_Unit, Inductance_Unit, Magnetic_Flux_Unit, Power_Unit, Pressure_Unit, Resistance_Unit, Velocity_Unit, Volume_Unit)); elements : SET [1 : ?] OF Derived_Unit_Element; DERIVE name : Label := Get_Name_Value(SELF); WHERE WR1: (SIZEOF(elements) > 1) OR ((SIZEOF(elements) = 1) AND (elements[1].exponent <> 1.0)); WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY;
ENTITY Derived_Unit_Element; unit : Named_Unit; exponent : REAL; END_ENTITY;
ENTITY Description_Attribute; attribute_value : Text; described_item : Description_Attribute_Select; END_ENTITY;
ENTITY Description_Text; description : Text; END_ENTITY;
ENTITY Description_Text_Assignment ABSTRACT SUPERTYPE; description : Description_Text; END_ENTITY;
ENTITY Description_Text_Assignment_Relationship; id : OPTIONAL Identifier; description : OPTIONAL Text; relating : Description_Text_Assignment; related : Description_Text_Assignment; relation_type : STRING; WHERE WR1: Acyclic_Description_Text_Assignment_Relationship(SELF, [related], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_TEXT_ASSIGNMENT_RELATIONSHIP'); END_ENTITY;
ENTITY Descriptive_Representation_Item SUPERTYPE OF (ONEOF(Tagged_Text_Item, Uniform_Resource_Identifier)) SUBTYPE OF (Representation_Item); description : Text; END_ENTITY;
ENTITY Design_Context SUBTYPE OF (Product_Definition_Context); WHERE WR1: SELF.life_cycle_stage = 'design'; END_ENTITY;
ENTITY Design_Make_From_Relationship SUBTYPE OF (Product_Definition_Relationship); END_ENTITY;
ENTITY Detailed_Equivalence_Report_Request SUBTYPE OF (Data_Equivalence_Report_Request); report_request_type : Detailed_Report_Style_Type; report_sequence : Preferred_Report_Ordering; END_ENTITY;
ENTITY Detailed_Equivalence_Report_Request_With_Number_Of_Instances SUBTYPE OF (Detailed_Equivalence_Report_Request); number_of_instances : INTEGER; DERIVE SELF\detailed_equivalence_report_request.report_request_type : Detailed_Report_Style_Type := Inspected_Element; END_ENTITY;
ENTITY Detailed_Report_Request SUBTYPE OF (Data_Quality_Report_Request); detailed_report_request_type : Detailed_Report_Type; report_sequence : Preferred_Ordering; END_ENTITY;
ENTITY Detailed_Report_Request_With_Number_Of_Data SUBTYPE OF (Detailed_Report_Request); number_of_data : INTEGER; DERIVE SELF\detailed_report_request.detailed_report_request_type : Detailed_Report_Type := Measured_Element; END_ENTITY;
ENTITY Diameter_Dimension SUBTYPE OF (Dimension_Curve_Directed_Callout); END_ENTITY;
ENTITY Dielectric_Constant_Measure_With_Unit SUBTYPE OF (Ratio_Measure_With_Unit); END_ENTITY;
ENTITY Different_Angle_Of_Assembly_Constraint SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Assembly_Data_Content); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Plane_Angle_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Binary_Assembly_Constraint]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ma_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); END_ENTITY;
ENTITY Different_Assembly_Centroid SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Assembly_Property_Value); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Cartesian_Point]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ma_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); END_ENTITY;
ENTITY Different_Assembly_Centroid_Using_Notional_Solid SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Assembly_Property_Value); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Cartesian_Point]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ma_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); END_ENTITY;
ENTITY Different_Assembly_Constraint_Type SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Assembly_Data_Content); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Binary_Assembly_Constraint]; END_ENTITY;
ENTITY Different_Assembly_Volume SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Assembly_Property_Value); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Volume_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Volume_Measure]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ma_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); END_ENTITY;
ENTITY Different_Bounding_Box SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value, A3m_Equivalence_Inspection_Requirement_With_Values); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [3 : 3] OF A3ms_Element_Type_Name := [Etns_Manifold_Solid_Brep, Etns_Shell_Based_Surface_Model, Etns_Shell_Based_Wireframe_Model]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Two_Cartesian_Points]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1])) AND (SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1].name = 'approximation_tolerance'); END_ENTITY;
ENTITY Different_Centroid SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value, A3m_Equivalence_Inspection_Requirement_With_Values); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [3 : 3] OF A3ms_Element_Type_Name := [Etns_Manifold_Solid_Brep, Etns_Shell_Based_Surface_Model, Etns_Shell_Based_Wireframe_Model]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Cartesian_Point]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF A3ms_Accuracy_Type_Name := [Atns_Length_Measure]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1])) AND (SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1].name = 'approximation_tolerance'); END_ENTITY;
ENTITY Different_Component_Identification_Via_Multi_Level_Reference SUBTYPE OF (A3m_Equivalence_Criterion_Of_Assembly_Data_Structure); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Multi_Level_Reference_Designator]; END_ENTITY;
ENTITY Different_Component_Shape SUBTYPE OF (A3m_Equivalence_Criterion_Of_Component_Property_Difference); DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ma_Element_Type_Name := [Etna_Shape_Representation]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ma_Element_Type_Name := [Etna_Shape_Representation]; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_A3ms_Inspected_Equivalence_Element_Select]; INVERSE shape_criteria : SET [1:?] OF A3ma_Assembly_And_Shape_Criteria_Relationship FOR relating_representation_item; END_ENTITY;
ENTITY Different_Component_Type SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Assembly_Data_Content); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Assembly_Component_Usage]; END_ENTITY;
ENTITY Different_Curve_Length SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value, A3m_Equivalence_Inspection_Requirement_With_Values); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Edge_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Length_Measure]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF A3ms_Accuracy_Type_Name := [Atns_Length_Measure]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1])) AND (SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1].name = 'approximation_tolerance'); END_ENTITY;
ENTITY Different_Length_Of_Assembly_Constraint SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Assembly_Data_Content); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Binary_Assembly_Constraint]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ma_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); END_ENTITY;
ENTITY Different_Number_Of_Closed_Shell SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Manifold_Solid_Brep]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Count_Measure]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Different_Number_Of_Components SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Assembly_Property_Value); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Count_Measure]; END_ENTITY;
ENTITY Different_Number_Of_Geometric_Elements SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [2 : 2] OF A3ms_Element_Type_Name := [Etns_Manifold_Solid_Brep, Etns_Shell_Based_Surface_Model]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Three_Count_Measure]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Different_Number_Of_Geometric_Elements_Wireframe_Model SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Shell_Based_Wireframe_Model]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Two_Count_Measure]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Different_Number_Of_Topological_Elements SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [2 : 2] OF A3ms_Element_Type_Name := [Etns_Manifold_Solid_Brep, Etns_Shell_Based_Surface_Model]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Five_Count_Measure]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Different_Number_Of_Topological_Elements_Wireframe_Model SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Shell_Based_Wireframe_Model]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Four_Count_Measure]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Different_Placement_Of_Component SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Assembly_Data_Content); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Length_Measure_And_Context_Dependent_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Context_Dependent_Shape_Representation]; INVERSE assessment_threshold_2 : A3ma_Equivalence_Criterion_Assessment_Threshold_Relationship FOR relating_representation_item; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ma_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = Mdna_Length_Measure); WR2: (A3ma_Get_Value_Limit_Type(SELF.assessment_threshold_2\Representation_Item_Relationship.related_representation_item) = Mdna_Context_Dependent_Measure) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_UNIT' IN TYPEOF(SELF.assessment_threshold_2\Representation_Item_Relationship.related_representation_item\Measure_With_Unit.unit_component)); END_ENTITY;
ENTITY Different_Surface_Area SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value, A3m_Equivalence_Inspection_Requirement_With_Values); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Area_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Area_Measure]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF A3ms_Accuracy_Type_Name := [Atns_Area_Measure]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1])) AND (SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1].name = 'approximation_tolerance'); END_ENTITY;
ENTITY Different_Surface_Normal SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Shape_Data_Content, A3m_Equivalence_Inspection_Requirement_With_Values); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Plane_Angle_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF A3ms_Detected_Difference_Type_Name := [Ddns_Cartesian_Point, Ddns_Point_On_Surface]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF A3ms_Accuracy_Type_Name := [Atns_Plane_Angle_Measure]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1])) AND (SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1].name = 'discretization_distance_tolerance'); END_ENTITY;
ENTITY Different_Volume SUBTYPE OF (A3m_Equivalence_Criterion_Of_Representative_Shape_Property_Value, A3m_Equivalence_Inspection_Requirement_With_Values); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Manifold_Solid_Brep]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Volume_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Volume_Measure]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF A3ms_Accuracy_Type_Name := [Atns_Volume_Measure]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1])) AND (SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1].name = 'approximation_tolerance'); END_ENTITY;
ENTITY Dimension_Callout SUBTYPE OF (Draughting_Callout); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) XOR (SIZEOF(QUERY(dce_1 <* SELF\Draughting_Callout.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN (TYPEOF(dce_1))))) = 0); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) XOR (SIZEOF(QUERY(dce_1 <* SELF\Draughting_Callout.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(dce_1))))) = 0); WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) XOR (SIZEOF(QUERY(dce_1 <* SELF\Draughting_Callout.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(dce_1))))) = 0); END_ENTITY;
ENTITY Dimension_Callout_Component_Relationship SUBTYPE OF (Draughting_Callout_Relationship); WHERE WR1: SELF.name IN ['prefix','suffix']; WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF(SELF.relating_draughting_callout); WR3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRUCTURED_DIMENSION_CALLOUT']) = 0; WR4: SELF.related_draughting_callout.contents * SELF.relating_draughting_callout.contents = SELF.related_draughting_callout.contents; WR5: ((SELF.name = 'prefix') AND (SIZEOF(QUERY(ato <* QUERY(con <* SELF.related_draughting_callout.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) | NOT (ato.name = 'prefix text'))) = 0)); WR6: ((SELF.name = 'suffix') AND (SIZEOF(QUERY(ato <* QUERY(con <* SELF.related_draughting_callout.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) | NOT (ato.name = 'suffix text'))) = 0)); END_ENTITY;
ENTITY Dimension_Callout_Relationship SUBTYPE OF (Draughting_Callout_Relationship); WHERE WR1: SELF.name IN ['primary','secondary']; WR2: SIZEOF(TYPEOF(SELF.relating_draughting_callout) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULAR_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIUS_DIMENSION']) >= 1; WR3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT']) = 0; WR4: SELF.related_draughting_callout.contents * SELF.relating_draughting_callout.contents = SELF.related_draughting_callout.contents; END_ENTITY;
ENTITY Dimension_Curve SUBTYPE OF (Annotation_Curve_Occurrence); WHERE WR1: (SIZEOF(QUERY(dct <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TERMINATOR_SYMBOL.ANNOTATED_CURVE') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct))))) <= 2); WR2: SIZEOF(QUERY(dcdc <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(dcdc)))) >= 1; WR3: (SIZEOF(QUERY(dct1 <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TERMINATOR_SYMBOL.ANNOTATED_CURVE') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct1)) AND (dct1\Dimension_Curve_Terminator.role = Dimension_Extent_Usage.Origin)))) <= 1) AND (SIZEOF(QUERY(dct2 <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TERMINATOR_SYMBOL.ANNOTATED_CURVE') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_TERMINATOR' IN TYPEOF(dct2)) AND (dct2\Dimension_Curve_Terminator.role = Dimension_Extent_Usage.Target)))) <= 1); END_ENTITY;
ENTITY Dimension_Curve_Directed_Callout SUBTYPE OF (Draughting_Callout); WHERE WR1: SIZEOF(QUERY(d_c <* SELF\Draughting_Callout.contents | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(d_c)))) <= 2; WR2: SIZEOF(SELF\Draughting_Callout.contents) >= 2; END_ENTITY;
ENTITY Dimension_Curve_Terminator SUBTYPE OF (Terminator_Symbol); role : Dimension_Extent_Usage; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE' IN TYPEOF(SELF\Terminator_Symbol.annotated_curve); END_ENTITY;
ENTITY Dimension_Curve_Terminator_To_Projection_Curve_Associativity SUBTYPE OF (Annotation_Occurrence_Associativity); SELF\annotation_occurrence_relationship.relating_annotation_occurrence : Dimension_Curve_Terminator; SELF\annotation_occurrence_relationship.related_annotation_occurrence : Projection_Curve; END_ENTITY;
ENTITY Dimension_Pair SUBTYPE OF (Draughting_Callout_Relationship); WHERE WR1: SELF.name IN ['chained','parallel']; WR2: SIZEOF(TYPEOF(SELF.relating_draughting_callout) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULAR_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIUS_DIMENSION']) = 1; WR3: SIZEOF(TYPEOF(SELF.related_draughting_callout) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULAR_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIAMETER_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORDINATE_DIMENSION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIUS_DIMENSION']) = 1; END_ENTITY;
ENTITY Dimension_Related_Tolerance_Zone_Element; related_dimension : Dimensional_Location; related_element : Tolerance_Zone_Definition; END_ENTITY;
ENTITY Dimension_Text_Associativity SUBTYPE OF (Text_Literal, Mapped_Item); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF(SELF\Mapped_Item.mapping_source.mapped_representation)); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF(SELF\Mapped_Item.mapping_target)); WR3: SIZEOF(QUERY(ato <* QUERY(si <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(si))) | NOT (SIZEOF(QUERY(dc <* USEDIN(ato, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF(dc))) * [SELF\Mapped_Item.mapping_target]) = 1))) = 0; END_ENTITY;
ENTITY Dimensional_Characteristic_Representation; dimension : Dimensional_Characteristic; representation : Shape_Dimension_Representation; END_ENTITY;
ENTITY Dimensional_Exponents; length_exponent : REAL; mass_exponent : REAL; time_exponent : REAL; electric_current_exponent : REAL; thermodynamic_temperature_exponent : REAL; amount_of_substance_exponent : REAL; luminous_intensity_exponent : REAL; END_ENTITY;
ENTITY Dimensional_Location SUPERTYPE OF (ONEOF(Angular_Location, Dimensional_Location_With_Path)) SUBTYPE OF (Shape_Aspect_Relationship); WHERE WR1: SELF\Shape_Aspect_Relationship.relating_shape_aspect :<>: SELF\Shape_Aspect_Relationship.related_shape_aspect; WR2: SELF\Shape_Aspect_Relationship.relating_shape_aspect.of_shape :=: SELF\Shape_Aspect_Relationship.related_shape_aspect.of_shape; END_ENTITY;
ENTITY Dimensional_Location_With_Datum_Feature SUBTYPE OF (Datum_Feature, Dimensional_Location); END_ENTITY;
ENTITY Dimensional_Location_With_Path SUBTYPE OF (Dimensional_Location); path : Shape_Aspect; END_ENTITY;
ENTITY Dimensional_Size SUPERTYPE OF (ONEOF(Angular_Size, Dimensional_Size_With_Path)); applies_to : Shape_Aspect; name : Label; DERIVE id : Identifier := Get_Id_Value(SELF); UNIQUE UR1: id, applies_to; WHERE WR1: applies_to.product_definitional = TRUE; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Dimensional_Size_With_Datum_Feature SUBTYPE OF (Datum_Feature, Dimensional_Size); WHERE WR1: SELF\Dimensional_Size.applies_to :=: SELF; END_ENTITY;
ENTITY Dimensional_Size_With_Path SUBTYPE OF (Dimensional_Size); path : Shape_Aspect; END_ENTITY;
ENTITY Directed_Action SUBTYPE OF (Executed_Action); directive : Action_Directive; END_ENTITY;
ENTITY Directed_Action_Assignment ABSTRACT SUPERTYPE; assigned_directed_action : Directed_Action; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Directed_Angle SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1; WR3: SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1; WR4: SELF.description IN ['punch direction','profile normal','surface normal']; WR5: SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'angle') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; END_ENTITY;
ENTITY Directed_Dimensional_Location SUBTYPE OF (Dimensional_Location); END_ENTITY;
ENTITY Directed_Tolerance_Zone SUBTYPE OF (Tolerance_Zone_With_Datum); direction : Directed_Tolerance_Zone_Type; END_ENTITY;
ENTITY Direction SUBTYPE OF (Geometric_Representation_Item); direction_ratios : LIST [2 : 3] OF REAL; WHERE WR1: SIZEOF(QUERY(tmp <* direction_ratios | tmp <> 0.0)) > 0; END_ENTITY;
ENTITY Direction_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: (SIZEOF(SELF.items) = 1); WR2: (SIZEOF(QUERY(it <* SELF.items | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' IN TYPEOF(it))))) = 0); END_ENTITY;
ENTITY Disallowed_Assembly_Relationship_Usage SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE']); END_ENTITY;
ENTITY Disconnected_Face_Set SUBTYPE OF (Erroneous_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Discontinuous_Geometry ABSTRACT SUPERTYPE OF (ONEOF(G1_Discontinuous_Curve, G2_Discontinuous_Curve, G1_Discontinuous_Surface, G2_Discontinuous_Surface)) SUBTYPE OF (Inapt_Geometry); END_ENTITY;
ENTITY Div_Expression SUBTYPE OF (Binary_Numeric_Expression); END_ENTITY;
ENTITY Document; id : Identifier; name : Label; description : OPTIONAL Text; kind : Document_Type; INVERSE representation_types : SET [0:?] OF Document_Representation_Type FOR represented_document; END_ENTITY;
ENTITY Document_File SUBTYPE OF (Document, Characterized_Object); WHERE WR1: SELF\Characterized_Object.name = ''; WR2: NOT EXISTS(SELF\Characterized_Object.description); WR3: SIZEOF(QUERY(drt <* SELF\Document.representation_types | drt.name IN ['digital','physical'])) = 1; END_ENTITY;
ENTITY Document_Identifier SUBTYPE OF (Group); UNIQUE UR1: SELF\Group.name, SELF\Group.description; END_ENTITY;
ENTITY Document_Identifier_Assignment SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Document_Identifier; items : SET [1 : ?] OF Document_Identifier_Assigned_Item; END_ENTITY;
ENTITY Document_Product_Association; name : Label; description : OPTIONAL Text; relating_document : Document; related_product : Product_Or_Formation_Or_Definition; END_ENTITY;
ENTITY Document_Product_Equivalence SUBTYPE OF (Document_Product_Association); WHERE WR1: SELF\Document_Product_Association.name = 'equivalence'; WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT' IN TYPEOF(SELF\Document_Product_Association.related_product)) OR ((SELF\Document_Product_Association.relating_document.kind.product_data_type = 'configuration controlled document') AND (SIZEOF(QUERY(prpc <* USEDIN(SELF\Document_Product_Association.related_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); WR3: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(SELF.related_product)) OR ((SELF\Document_Product_Association.relating_document.kind.product_data_type = 'configuration controlled document version') AND (SIZEOF(QUERY(prpc <* USEDIN(SELF.related_product\Product_Definition_Formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF.related_product)) OR ((SELF\Document_Product_Association.relating_document.kind.product_data_type = 'configuration controlled document definition') AND (SIZEOF(QUERY(prpc <* USEDIN(SELF\Document_Product_Association.related_product\Product_Definition.formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'document')) = 1)); END_ENTITY;
ENTITY Document_Reference ABSTRACT SUPERTYPE; assigned_document : Document; source : Label; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Document_Relationship; name : Label; description : OPTIONAL Text; relating_document : Document; related_document : Document; END_ENTITY;
ENTITY Document_Representation_Type; name : Label; represented_document : Document; END_ENTITY;
ENTITY Document_Type; product_data_type : Label; END_ENTITY;
ENTITY Document_Usage_Constraint; source : Document; subject_element : Label; subject_element_value : Text; END_ENTITY;
ENTITY Document_Usage_Constraint_Assignment ABSTRACT SUPERTYPE; assigned_document_usage : Document_Usage_Constraint; role : Document_Usage_Role; END_ENTITY;
ENTITY Document_Usage_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Dose_Equivalent_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOSE_EQUIVALENT_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Dose_Equivalent_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Sievert); END_ENTITY;
ENTITY Double_Offset_Shelled_Solid SUBTYPE OF (Shelled_Solid); thickness2 : Length_Measure; WHERE WR1: thickness2 <> 0; WR2: SELF\Shelled_Solid.thickness <> thickness2; END_ENTITY;
ENTITY Draped_Defined_Transformation SUBTYPE OF (Transformation_With_Derived_Angle); END_ENTITY;
ENTITY Draped_Orientation_Angle SUBTYPE OF (Ply_Orientation_Angle); END_ENTITY;
ENTITY Draughting_Annotation_Occurrence SUBTYPE OF (Annotation_Occurrence); WHERE WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty.styles) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); WR2: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty.styles) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); WR3: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(QUERY(bound <* SELF.item\Annotation_Fill_Area.boundaries | NOT (SIZEOF(QUERY(si <* USEDIN(bound, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si)))) > 0))) = 0); WR4: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty.styles) = 1) AND (SIZEOF(TYPEOF(sty.styles[1]) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMBOL_STYLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NULL_STYLE']) = 1)))) = 0); WR5: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(SELF.item)))) OR (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_SYMBOL_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_SUBFIGURE_REPRESENTATION'] * TYPEOF(SELF.item\Mapped_Item.mapping_source.mapped_representation)) = 1); WR6: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(QUERY(sty <* SELF.styles | NOT ((SIZEOF(sty.styles) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE' IN TYPEOF(sty.styles[1]))))) = 0); WR7: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF))) OR (SIZEOF(TYPEOF(SELF.item) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL']) = 1); WR8: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY(tl <* SELF.item\Composite_Text.collected_text | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF(tl)))) = 0); WR9: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF(SELF.item)))) OR (SELF.item\Text_Literal.alignment IN ['baseline left','baseline centre','baseline right']); WR10: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY(tl <* QUERY(Text <* SELF.item\Composite_Text.collected_text | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF(Text))) | NOT (tl\Text_Literal.alignment IN ['baseline left','baseline centre','baseline right']))) = 0); WR11: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR Check_Text_Alignment(SELF.item); WR12: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item))) OR Check_Text_Font(SELF.item); WR13: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY(tl <* QUERY(Text <* SELF.item\Composite_Text.collected_text | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL' IN TYPEOF(Text))) | NOT (SIZEOF(TYPEOF(tl) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL_WITH_BLANKING_BOX', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL_WITH_ASSOCIATED_CURVES']) = 0))) = 0); WR14: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL_WITH_ASSOCIATED_CURVES' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY(crv <* SELF.item\Text_Literal_With_Associated_Curves.associated_curves | NOT (SIZEOF(QUERY(si <* USEDIN(crv, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si)))) > 0))) = 0); WR15: (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(SELF)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT_WITH_ASSOCIATED_CURVES' IN TYPEOF(SELF.item)))) OR (SIZEOF(QUERY(crv <* SELF.item\Composite_Text_With_Associated_Curves.associated_curves | NOT (SIZEOF(QUERY(si <* USEDIN(crv, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF(si)))) > 0))) = 0); WR16: SIZEOF(QUERY(cs <* QUERY(sty <* SELF.styles | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(sty.styles[1]))) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(cs.styles[1]\Curve_Style.curve_width)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs.styles[1]\Curve_Style.curve_width\Measure_With_Unit.value_component))))) = 0; WR17: SIZEOF(QUERY(fas <* QUERY(sty <* SELF.styles | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1]))) | NOT ((SIZEOF(QUERY(fs <* fas.styles[1]\Fill_Area_Style.fill_styles | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_TILES' IN TYPEOF(fs)))) <= 1) AND (SIZEOF(QUERY(fst <* QUERY(fs <* fas.styles[1]\Fill_Area_Style.fill_styles | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_TILES' IN TYPEOF(fs))) | NOT (SIZEOF(fst\Fill_Area_Style_Tiles.tiles) = 1))) = 0)))) = 0; WR18: SIZEOF(QUERY(fas <* QUERY(sty <* SELF.styles | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE' IN TYPEOF(sty.styles[1]))) | NOT (SIZEOF(QUERY(fsh <* QUERY(fs <* fas.styles[1]\Fill_Area_Style.fill_styles | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_HATCHING' IN TYPEOF(fs))) | NOT (fsh\Fill_Area_Style_Hatching.point_of_reference_hatch_line :=: fsh\Fill_Area_Style_Hatching.pattern_start))) = 0))) = 0; WR19: SIZEOF(QUERY(ts <* QUERY(sty <* SELF.styles | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE' IN TYPEOF(sty.styles[1]))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF(ts.styles[1])))) = 0; WR20: SIZEOF(QUERY(ts <* QUERY(sty <* SELF.styles | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_STYLE_WITH_BOX_CHARACTERISTICS' IN TYPEOF(sty.styles[1]))) | NOT (SIZEOF(ts.styles[1]\Text_Style_With_Box_Characteristics.characteristics) = 4))) = 0; END_ENTITY;
ENTITY Draughting_Callout SUBTYPE OF (Geometric_Representation_Item); contents : SET [1 : ?] OF Draughting_Callout_Element; WHERE WR1: (SIZEOF(QUERY(l_1 <* SELF\Draughting_Callout.contents | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) = 0) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND (SIZEOF(QUERY(l_1 <* SELF\Draughting_Callout.contents | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(l_1)))) = 0) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN (TYPEOF(SELF))) AND (SIZEOF(QUERY(l_1 <* SELF\Draughting_Callout.contents | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE' IN (TYPEOF(l_1)))) = 0) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN (TYPEOF(SELF))); END_ENTITY;
ENTITY Draughting_Callout_Relationship; name : Label; description : Text; relating_draughting_callout : Draughting_Callout; related_draughting_callout : Draughting_Callout; END_ENTITY;
ENTITY Draughting_Elements SUBTYPE OF (Draughting_Callout); WHERE WR1: SIZEOF(QUERY(l_c <* QUERY(con <* SELF.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN TYPEOF(con))) | NOT (SIZEOF(QUERY(ldc <* USEDIN(l_c, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc)))) <= 1))) = 0; WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(con <* SELF.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN TYPEOF(con)))) <= 2); WR3: SIZEOF(QUERY(rc <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'primary'))) <= 1; WR4: SIZEOF(QUERY(rc <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'secondary'))) <= 1; WR5: SIZEOF(QUERY(sec <* QUERY(rc <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(rc)) AND (rc.name = 'secondary')) | NOT (SIZEOF(QUERY(prim <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_RELATIONSHIP' IN TYPEOF(prim)) AND (prim.name = 'primary'))) = 1))) = 0; END_ENTITY;
ENTITY Draughting_Model SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Draughting_Model_Item_Select; UNIQUE UR1: SELF\Representation.name; WHERE WR1: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_MODEL'] * TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)) = 1))) = 0; WR2: SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(si\Styled_Item.item))) | (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(smi\Styled_Item.item\Mapped_Item.mapping_source.mapped_representation)) AND (SIZEOF(QUERY(sty <* smi\Styled_Item.styles | (NOT (SIZEOF(QUERY(psa <* sty.styles | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(psa))))) = 1)))) = 1))))) = 0; END_ENTITY;
ENTITY Draughting_Model_Item_Association SUBTYPE OF (Item_Identified_Representation_Usage); SELF\item_identified_representation_usage.definition : Draughting_Model_Item_Definition; SELF\item_identified_representation_usage.used_representation : Annotation_Representation_Select; SELF\item_identified_representation_usage.identified_item : Draughting_Model_Item_Association_Select; END_ENTITY;
ENTITY Draughting_Model_Item_Association_With_Placeholder SUBTYPE OF (Draughting_Model_Item_Association); SELF\draughting_model_item_association.definition : Draughting_Model_Item_Definition; SELF\draughting_model_item_association.used_representation : Draughting_Model; SELF\item_identified_representation_usage.identified_item : Draughting_Callout; annotation_placeholder : Annotation_Placeholder_Occurrence; END_ENTITY;
ENTITY Draughting_Pre_Defined_Colour SUBTYPE OF (Pre_Defined_Colour); WHERE WR1: SELF\Pre_Defined_Item.name IN ['red','green','blue','yellow','magenta','cyan','black','white']; END_ENTITY;
ENTITY Draughting_Pre_Defined_Curve_Font SUBTYPE OF (Pre_Defined_Curve_Font); WHERE WR1: SELF\Pre_Defined_Item.name IN ['continuous','chain','chain double dash','dashed','dotted']; END_ENTITY;
ENTITY Draughting_Pre_Defined_Text_Font SUBTYPE OF (Pre_Defined_Text_Font); WHERE WR1: SELF\Pre_Defined_Item.name[1:8] = 'ISO 3098'; END_ENTITY;
ENTITY Draughting_Specification_Reference SUBTYPE OF (Document_Reference); specified_items : SET [1 : ?] OF Specified_Item; WHERE WR1: (SELF.assigned_document.kind.product_data_type = 'draughting specification'); END_ENTITY;
ENTITY Draughting_Subfigure_Representation SUBTYPE OF (Symbol_Representation); SELF\representation.items : SET [1 : ?] OF Draughting_Subfigure_Representation_Item; WHERE WR1: SIZEOF(QUERY(item <* SELF\Representation.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_OCCURRENCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT'] * TYPEOF(item)) = 1)) >= 1; WR2: SIZEOF(QUERY(srm <* QUERY(rm <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm))) | NOT (SIZEOF(QUERY(a_s <* QUERY(mi <* srm.map_usage | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi))) | NOT (SIZEOF(QUERY(aso <* USEDIN(a_s, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM') | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(aso)))) = 0))) = 0))) > 0; WR3: SIZEOF(SELF.context_of_items.representations_in_context) = 1; END_ENTITY;
ENTITY Draughting_Symbol_Representation SUBTYPE OF (Symbol_Representation); SELF\representation.items : SET [1 : ?] OF Draughting_Symbol_Representation_Item; UNIQUE UR1: SELF\Representation.name; WHERE WR1: SIZEOF(QUERY(item <* SELF\Representation.items | (SIZEOF(TYPEOF(item) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE']) = 1))) >= 1; WR2: SIZEOF(QUERY(item <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF(item))) = 0; WR3: SIZEOF(QUERY(rm <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION') | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMBOL_REPRESENTATION_MAP' IN TYPEOF(rm)))) = 0; WR4: SIZEOF(SELF.context_of_items.representations_in_context) = 1; END_ENTITY;
ENTITY Draughting_Text_Literal_With_Delineation SUBTYPE OF (Text_Literal_With_Delineation); WHERE WR1: SELF.delineation IN ['underline','overline']; END_ENTITY;
ENTITY Draughting_Title; items : SET [1 : ?] OF Draughting_Titled_Item; language : Label; contents : Text; END_ENTITY;
ENTITY Drawing_Definition; drawing_number : Identifier; drawing_type : OPTIONAL Label; END_ENTITY;
ENTITY Drawing_Revision SUBTYPE OF (Presentation_Set); revision_identifier : Identifier; drawing_identifier : Drawing_Definition; intended_scale : OPTIONAL Text; UNIQUE UR1: revision_identifier, drawing_identifier; END_ENTITY;
ENTITY Drawing_Revision_Sequence; predecessor : Drawing_Revision; successor : Drawing_Revision; WHERE WR1: predecessor :<>: successor; END_ENTITY;
ENTITY Drawing_Sheet_Layout SUBTYPE OF (Draughting_Symbol_Representation); END_ENTITY;
ENTITY Drawing_Sheet_Revision SUBTYPE OF (Presentation_Area); revision_identifier : Identifier; WHERE WR1: SIZEOF(QUERY(item <* SELF\Representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN (TYPEOF(item))) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN (TYPEOF(item\Mapped_Item.mapping_source.mapped_representation))))) = 0; END_ENTITY;
ENTITY Drawing_Sheet_Revision_Sequence SUBTYPE OF (Representation_Relationship); WHERE WR1: SELF\Representation_Relationship.rep_1 :<>: SELF\Representation_Relationship.rep_2; WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\Representation_Relationship.rep_1); WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\Representation_Relationship.rep_2); END_ENTITY;
ENTITY Drawing_Sheet_Revision_Usage SUBTYPE OF (Area_In_Set); sheet_number : Identifier; UNIQUE UR1: sheet_number, SELF\Area_In_Set.in_set; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF(SELF\Area_In_Set.Area)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAWING_REVISION' IN TYPEOF(SELF\Area_In_Set.in_set)); END_ENTITY;
ENTITY Dupin_Cyclide_Surface SUBTYPE OF (Elementary_Surface); generalised_major_radius : Positive_Length_Measure; generalised_minor_radius : Positive_Length_Measure; skewness : Length_Measure; WHERE WR1: skewness >= 0.0; END_ENTITY;
ENTITY Eccentric_Cone SUBTYPE OF (Geometric_Representation_Item); position : Axis2_Placement_3d; semi_axis_1 : Positive_Length_Measure; semi_axis_2 : Positive_Length_Measure; height : Positive_Length_Measure; x_offset : Length_Measure; y_offset : Length_Measure; ratio : REAL; WHERE WR1: ratio >= 0.0; END_ENTITY;
ENTITY Eccentric_Conical_Volume SUBTYPE OF (Volume); position : Axis2_Placement_3d; semi_axis_1 : Positive_Length_Measure; semi_axis_2 : Positive_Length_Measure; height : Positive_Length_Measure; x_offset : Length_Measure; y_offset : Length_Measure; ratio : REAL; WHERE WR1: ratio >= 0.0; END_ENTITY;
ENTITY Edge SUPERTYPE OF (ONEOF(Edge_Curve, Edge_With_Length, Oriented_Edge, Subedge)) SUBTYPE OF (Topological_Representation_Item); edge_start : Vertex; edge_end : Vertex; END_ENTITY;
ENTITY Edge_Based_Wireframe_Model SUBTYPE OF (Geometric_Representation_Item); ebwm_boundary : SET [1 : ?] OF Connected_Edge_Set; END_ENTITY;
ENTITY Edge_Based_Wireframe_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1))) >= 1; WR3: SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(eb <* ebwm\Edge_Based_Wireframe_Model.ebwm_boundary | NOT (SIZEOF(QUERY(edges <* eb.ces_edges | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(edges)))) = 0))) = 0))) = 0; WR4: SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(eb <* ebwm\Edge_Based_Wireframe_Model.ebwm_boundary | NOT (SIZEOF(QUERY(pline_edges <* QUERY(edges <* eb.ces_edges | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(edges\Edge_Curve.edge_geometry))) | NOT (SIZEOF(pline_edges\Edge_Curve.edge_geometry\Polyline.points) > 2))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(eb <* ebwm\Edge_Based_Wireframe_Model.ebwm_boundary | NOT (SIZEOF(QUERY(edges <* eb.ces_edges | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(edges.edge_start)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(edges.edge_end))))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(eb <* ebwm\Edge_Based_Wireframe_Model.ebwm_boundary | NOT (SIZEOF(QUERY(edges <* eb.ces_edges | NOT Valid_Wireframe_Edge_Curve(edges\Edge_Curve.edge_geometry))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY(ebwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(eb <* ebwm\Edge_Based_Wireframe_Model.ebwm_boundary | NOT (SIZEOF(QUERY(edges <* eb.ces_edges | NOT (Valid_Wireframe_Vertex_Point(edges.edge_start\Vertex_Point.vertex_geometry) AND Valid_Wireframe_Vertex_Point(edges.edge_end\Vertex_Point.vertex_geometry)))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)))) = 0; WR9: SELF.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 3; END_ENTITY;
ENTITY Edge_Blended_Solid ABSTRACT SUPERTYPE OF (Track_Blended_Solid ANDOR (ONEOF(Solid_With_Constant_Radius_Edge_Blend, Solid_With_Chamfered_Edges))) SUBTYPE OF (Modified_Solid); blended_edges : LIST [1 : ?] OF UNIQUE Edge_Curve; END_ENTITY;
ENTITY Edge_Curve SUBTYPE OF (Edge, Geometric_Representation_Item); edge_geometry : Curve; same_sense : BOOLEAN; END_ENTITY;
ENTITY Edge_Loop SUBTYPE OF (Loop, Path); DERIVE ne : INTEGER := SIZEOF(SELF\Path.edge_list); WHERE WR1: (SELF\Path.edge_list[1].edge_start) :=: (SELF\Path.edge_list[ne].edge_end); END_ENTITY;
ENTITY Edge_Round SUBTYPE OF (Transition_Feature); WHERE WR1: (NOT (SELF\Shape_Aspect.description = 'constant radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1))) = 0); WR2: (NOT (SELF\Shape_Aspect.description = 'constant radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | (NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND (SIZEOF(impl_rep.used_representation.items) <= 3)))) = 0))) = 0); WR3: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); WR4: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first offset'))) <= 1))) = 0))) = 0); WR5: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second offset'))) <= 1))) = 0))) = 0); WR6: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'edge round face'))) <= 1))) = 0; WR7: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape'))) <= 1))) = 0; WR8: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape'))) <= 1))) = 0; END_ENTITY;
ENTITY Edge_With_Excessive_Segments SUBTYPE OF (Overcomplex_Topology_And_Geometry_Relationship); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Edge_With_Length SUBTYPE OF (Edge); edge_length : Positive_Length_Measure; END_ENTITY;
ENTITY Effectivity SUPERTYPE OF (ONEOF(Serial_Numbered_Effectivity, Dated_Effectivity, Lot_Effectivity, Time_Interval_Based_Effectivity)); id : Identifier; DERIVE name : Label := Get_Name_Value(SELF); description : Text := Get_Description_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY;
ENTITY Effectivity_Assignment ABSTRACT SUPERTYPE; assigned_effectivity : Effectivity; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Effectivity_Context_Assignment ABSTRACT SUPERTYPE; assigned_effectivity_assignment : Effectivity_Assignment; role : Effectivity_Context_Role; END_ENTITY;
ENTITY Effectivity_Context_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Effectivity_Relationship; name : Label; description : OPTIONAL Text; related_effectivity : Effectivity; relating_effectivity : Effectivity; END_ENTITY;
ENTITY Electric_Charge_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_CHARGE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Electric_Charge_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Coulomb); END_ENTITY;
ENTITY Electric_Current_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_CURRENT_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Electric_Current_Unit SUBTYPE OF (Named_Unit); WHERE WR1: (SELF\Named_Unit.dimensions.length_exponent = 0.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 0.0) AND (SELF\Named_Unit.dimensions.time_exponent = 0.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 1.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY;
ENTITY Electric_Potential_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_POTENTIAL_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Electric_Potential_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Volt); END_ENTITY;
ENTITY Elementary_Brep_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; WR3: SIZEOF(QUERY(msb <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* Msb_Shells(msb) | NOT (SIZEOF(QUERY(fcs <* csh.cfs_faces | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(fcs)))) = 0))) = 0))) = 0; WR4: SIZEOF(QUERY(msb <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* Msb_Shells(msb) | NOT (SIZEOF(QUERY(fcs <* csh\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(fcs\Face_Surface.face_geometry))))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY(msb <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* Msb_Shells(msb) | NOT (SIZEOF(QUERY(fcs <* csh\Connected_Face_Set.cfs_faces | NOT (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(oe.edge_element)))) = 0))) = 0))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY(msb <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* Msb_Shells(msb) | NOT (SIZEOF(QUERY(fcs <* csh\Connected_Face_Set.cfs_faces | NOT (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE'] * TYPEOF(oe.edge_element\Edge_Curve.edge_geometry)) = 1))) = 0))) = 0))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY(msb <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* Msb_Shells(msb) | NOT (SIZEOF(QUERY(fcs <* csh\Connected_Face_Set.cfs_faces | NOT (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_start)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_end))))) = 0))) = 0))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY(msb <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* Msb_Shells(msb) | NOT (SIZEOF(QUERY(fcs <* csh\Connected_Face_Set.cfs_faces | NOT (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(oe.edge_element\Edge_Curve.edge_geometry)) AND (NOT (SIZEOF(oe\Oriented_Edge.edge_element\Edge_Curve.edge_geometry\Polyline.points) >= 3)))) = 0))) = 0))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY(msb <* QUERY(it <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\Manifold_Solid_Brep.outer))) = 0; WR10: SIZEOF(QUERY(brv <* QUERY(it <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* brv\Brep_With_Voids.voids | csh\Oriented_Closed_Shell.Orientation)) = 0))) = 0; WR11: SIZEOF(QUERY(mi <* QUERY(it <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)))) = 0; WR12: SIZEOF(QUERY(msb <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(csh <* Msb_Shells(msb) | NOT (SIZEOF(QUERY(fcs <* csh\Connected_Face_Set.cfs_faces | NOT (SIZEOF(QUERY(vlp_fbnds <* QUERY(bnds <* fcs.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(vlp_fbnds\Face_Bound.bound\Vertex_Loop.loop_vertex)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(vlp_fbnds\Face_Bound.bound\Vertex_Loop.loop_vertex\Vertex_Point.vertex_geometry))))) = 0))) = 0))) = 0))) = 0; END_ENTITY;
ENTITY Elementary_Function SUBTYPE OF (Maths_Function, Generic_Literal); func_id : Elementary_Function_Enumerators; END_ENTITY;
ENTITY Elementary_Space SUBTYPE OF (Maths_Space, Generic_Literal); space_id : Elementary_Space_Enumerators; END_ENTITY;
ENTITY Elementary_Surface SUPERTYPE OF (ONEOF(Plane, Cylindrical_Surface, Conical_Surface, Spherical_Surface, Toroidal_Surface)) SUBTYPE OF (Surface); position : Axis2_Placement_3d; END_ENTITY;
ENTITY Ellipse SUBTYPE OF (Conic); semi_axis_1 : Positive_Length_Measure; semi_axis_2 : Positive_Length_Measure; END_ENTITY;
ENTITY Ellipsoid SUBTYPE OF (Geometric_Representation_Item); position : Axis2_Placement_3d; semi_axis_1 : Positive_Length_Measure; semi_axis_2 : Positive_Length_Measure; semi_axis_3 : Positive_Length_Measure; END_ENTITY;
ENTITY Ellipsoid_Volume SUBTYPE OF (Volume); position : Axis2_Placement_3d; semi_axis_1 : Positive_Length_Measure; semi_axis_2 : Positive_Length_Measure; semi_axis_3 : Positive_Length_Measure; END_ENTITY;
ENTITY Elliptic_Area SUBTYPE OF (Primitive_2d); position : Axis2_Placement_2d; semi_axis_1 : Positive_Length_Measure; semi_axis_2 : Positive_Length_Measure; END_ENTITY;
ENTITY Energy_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ENERGY_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Energy_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Joule); END_ENTITY;
ENTITY Entirely_Narrow_Face SUBTYPE OF (Topology_Related_To_Nearly_Degenerate_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; width_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Entirely_Narrow_Solid SUBTYPE OF (Inapt_Manifold_Solid_Brep); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; width_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Entirely_Narrow_Surface SUBTYPE OF (Nearly_Degenerate_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; width_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_SURFACE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Entity_Assertion SUBTYPE OF (Fact_Type); END_ENTITY;
ENTITY Enum_Reference_Prefix SUBTYPE OF (Descriptive_Representation_Item); END_ENTITY;
ENTITY Envelope SUBTYPE OF (Characterized_Object, Product); END_ENTITY;
ENTITY Envelope_Relationship SUBTYPE OF (Product_Relationship); END_ENTITY;
ENTITY Environment; syntactic_representation : Generic_Variable; semantics : Variable_Semantics; END_ENTITY;
ENTITY Equal_Parameter_Constraint SUBTYPE OF (Defined_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Variational_Parameter; SELF\explicit_constraint.reference_elements : SET [0 : 1] OF Variational_Parameter; WHERE WR1: SIZEOF(SELF\Explicit_Constraint.constrained_elements + SELF\Explicit_Constraint.reference_elements) >= 2; END_ENTITY;
ENTITY Equals_Expression SUBTYPE OF (Binary_Boolean_Expression); END_ENTITY;
ENTITY Equivalence_Instance_Report_Item_With_Notable_Instances SUBTYPE OF (A3m_Equivalence_Inspection_Instance_Report_Item); notable_instances : LIST [1 : ?] OF Equivalence_Notable_Instance; END_ENTITY;
ENTITY Equivalence_Notable_Instance; comparing_elements : LIST [0 : ?] OF Equivalence_Detected_Difference_Select; compared_elements : LIST [0 : ?] OF Equivalence_Detected_Difference_Select; measured_value : Equivalence_Measured_Value_Select; WHERE WR1: (SIZEOF(comparing_elements) <> 0) OR (SIZEOF(compared_elements) <> 0); END_ENTITY;
ENTITY Erroneous_B_Spline_Curve_Definition SUBTYPE OF (Erroneous_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Erroneous_B_Spline_Surface_Definition SUBTYPE OF (Erroneous_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Erroneous_Data ABSTRACT SUPERTYPE OF (ONEOF(Erroneous_Topology, Erroneous_Geometry, Erroneous_Topology_And_Geometry_Relationship, Erroneous_Manifold_Solid_Brep)) SUBTYPE OF (Shape_Data_Quality_Criterion); END_ENTITY;
ENTITY Erroneous_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Inconsistent_Curve_Transition_Code, Erroneous_B_Spline_Curve_Definition, Inconsistent_Surface_Transition_Code, Erroneous_B_Spline_Surface_Definition)) SUBTYPE OF (Erroneous_Data); END_ENTITY;
ENTITY Erroneous_Manifold_Solid_Brep ABSTRACT SUPERTYPE OF (ONEOF(Wrongly_Oriented_Void, Wrongly_Placed_Void, Intersecting_Shells_In_Solid, Solid_With_Wrong_Number_Of_Voids)) SUBTYPE OF (Erroneous_Data); END_ENTITY;
ENTITY Erroneous_Topology ABSTRACT SUPERTYPE OF (ONEOF(Open_Edge_Loop, Open_Closed_Shell, Inconsistent_Adjacent_Face_Normals, Disconnected_Face_Set)) SUBTYPE OF (Erroneous_Data); END_ENTITY;
ENTITY Erroneous_Topology_And_Geometry_Relationship ABSTRACT SUPERTYPE OF (ONEOF(Inconsistent_Edge_And_Curve_Directions, Inconsistent_Face_And_Surface_Normals, Inconsistent_Face_And_Closed_Shell_Normals, Intersecting_Loops_In_Face, Wrongly_Placed_Loop)) SUBTYPE OF (Erroneous_Data); END_ENTITY;
ENTITY Evaluated_Characteristic SUBTYPE OF (Representation, Representation_Relationship); UNIQUE UR1: SELF\Representation_Relationship.rep_1, SELF\Representation_Relationship.rep_2; WHERE WR1: SELF\Representation_Relationship.rep_1 <> SELF\Representation_Relationship.rep_2; END_ENTITY;
ENTITY Evaluated_Characteristic_Of_Product_As_Individual_Test_Result SUBTYPE OF (Evaluated_Characteristic); END_ENTITY;
ENTITY Evaluated_Degenerate_Pcurve SUBTYPE OF (Degenerate_Pcurve); equivalent_point : Cartesian_Point; END_ENTITY;
ENTITY Evaluation_Product_Definition SUBTYPE OF (Product_Definition); END_ENTITY;
ENTITY Event_Occurrence; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Event_Occurrence_Assignment ABSTRACT SUPERTYPE; assigned_event_occurrence : Event_Occurrence; role : Event_Occurrence_Role; END_ENTITY;
ENTITY Event_Occurrence_Relationship; name : Label; description : OPTIONAL Text; relating_event : Event_Occurrence; related_event : Event_Occurrence; END_ENTITY;
ENTITY Event_Occurrence_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Evidence SUBTYPE OF (Group_Assignment); items : SET [1 : ?] OF Evidence_Item; END_ENTITY;
ENTITY Excessive_Use_Of_Groups SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP']); END_ENTITY;
ENTITY Excessive_Use_Of_Layers SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT']); END_ENTITY;
ENTITY Excessively_High_Degree_Curve SUBTYPE OF (Overcomplex_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Excessively_High_Degree_Surface SUBTYPE OF (Overcomplex_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Exclusive_Product_Concept_Feature_Category SUBTYPE OF (Product_Concept_Feature_Category); END_ENTITY;
ENTITY Executed_Action SUBTYPE OF (Action); END_ENTITY;
ENTITY Exp_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Expanded_Uncertainty SUBTYPE OF (Standard_Uncertainty); coverage_factor : REAL; END_ENTITY;
ENTITY Explicit_Composite_Hole SUBTYPE OF (Composite_Hole); placement : Shape_Representation; INVERSE explicit_shape : SET [0:?] OF Item_Identified_Representation_Usage FOR definition; WHERE WR1: SIZEOF(QUERY(ri <* Placement\Representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(ri)))) = 1; WR2: (SIZEOF(explicit_shape) = 0) OR (SIZEOF(QUERY(es <* explicit_shape | NOT (Placement = es\Item_Identified_Representation_Usage.used_representation))) = 0); END_ENTITY;
ENTITY Explicit_Constraint ABSTRACT SUPERTYPE OF (ONEOF(Defined_Constraint, Free_Form_Constraint)) SUBTYPE OF (Variational_Representation_Item); description : OPTIONAL Text; constrained_elements : SET [1 : ?] OF Representation_Item; reference_elements : SET [0 : ?] OF Representation_Item; WHERE WR1: SIZEOF(constrained_elements * reference_elements) = 0; END_ENTITY;
ENTITY Explicit_Geometric_Constraint ABSTRACT SUPERTYPE OF (ONEOF(Fixed_Element_Geometric_Constraint, Parallel_Geometric_Constraint, Point_Distance_Geometric_Constraint, Skew_Line_Distance_Geometric_Constraint, Curve_Distance_Geometric_Constraint, Surface_Distance_Geometric_Constraint, Radius_Geometric_Constraint, Curve_Length_Geometric_Constraint, Parallel_Offset_Geometric_Constraint, Angle_Geometric_Constraint, Perpendicular_Geometric_Constraint, Incidence_Geometric_Constraint, Coaxial_Geometric_Constraint, Tangent_Geometric_Constraint, Symmetry_Geometric_Constraint, Swept_Point_Curve_Geometric_Constraint, Swept_Curve_Surface_Geometric_Constraint, Curve_Smoothness_Geometric_Constraint, Surface_Smoothness_Geometric_Constraint)) SUBTYPE OF (Defined_Constraint, Geometric_Representation_Item); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Geometric_Representation_Item; SELF\explicit_constraint.reference_elements : SET [0 : ?] OF Geometric_Representation_Item; END_ENTITY;
ENTITY Explicit_Procedural_Geometric_Representation_Item_Relationship SUBTYPE OF (Explicit_Procedural_Representation_Item_Relationship); SELF\representation_item_relationship.relating_representation_item : Procedural_Shape_Representation_Sequence; SELF\representation_item_relationship.related_representation_item : Geometric_Representation_Item; WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION_SEQUENCE' IN TYPEOF(SELF\Representation_Item_Relationship.related_representation_item)); END_ENTITY;
ENTITY Explicit_Procedural_Representation_Item_Relationship SUBTYPE OF (Representation_Item_Relationship); SELF\representation_item_relationship.relating_representation_item : Procedural_Representation_Sequence; WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_REPRESENTATION_SEQUENCE' IN TYPEOF(SELF\Representation_Item_Relationship.related_representation_item)); WR2: SIZEOF(QUERY(q <* Using_Representations(SELF\Representation_Item_Relationship.related_representation_item) | Item_In_Context(SELF\Representation_Item_Relationship.relating_representation_item, q.context_of_items))) > 0; END_ENTITY;
ENTITY Explicit_Procedural_Representation_Relationship SUBTYPE OF (Representation_Relationship); SELF\representation_relationship.rep_1 : Procedural_Representation; WHERE WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_REPRESENTATION' IN TYPEOF(SELF\Representation_Relationship.rep_2))) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION' IN TYPEOF(SELF\Representation_Relationship.rep_2))); WR2: SELF\Representation_Relationship.rep_1.context_of_items :=: SELF\Representation_Relationship.rep_2.context_of_items; END_ENTITY;
ENTITY Explicit_Procedural_Shape_Representation_Relationship SUBTYPE OF (Explicit_Procedural_Representation_Relationship); SELF\representation_relationship.rep_1 : Procedural_Shape_Representation; SELF\representation_relationship.rep_2 : Shape_Representation; END_ENTITY;
ENTITY Explicit_Round_Hole SUBTYPE OF (Round_Hole); depth : Positive_Length_Measure_With_Unit; depth_tolerance : OPTIONAL Tolerance_Value; diameter : Positive_Length_Measure_With_Unit; diameter_tolerance : OPTIONAL Tolerance_Value_Or_Limits_And_Fits; placement : Shape_Representation; WHERE WR1: SIZEOF(QUERY(ri <* Placement\Representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(ri)))) = 1; WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(depth_tolerance\Tolerance_Value.lower_bound); WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(depth_tolerance\Tolerance_Value.upper_bound); WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(diameter_tolerance)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(diameter_tolerance\Tolerance_Value.lower_bound)); WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_VALUE' IN TYPEOF(diameter_tolerance)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(diameter_tolerance\Tolerance_Value.upper_bound)); END_ENTITY;
ENTITY Explicit_Table_Function ABSTRACT SUPERTYPE OF (ONEOF(Listed_Real_Data, Listed_Integer_Data, Listed_Logical_Data, Listed_String_Data, Listed_Complex_Number_Data, Listed_Data, Externally_Listed_Data, Linearized_Table_Function, Basic_Sparse_Matrix)) SUBTYPE OF (Maths_Function); index_base : Zero_Or_One; shape : LIST [1 : ?] OF Positive_Integer; END_ENTITY;
ENTITY Expression ABSTRACT SUPERTYPE OF (ONEOF(Numeric_Expression, Boolean_Expression, String_Expression)) SUBTYPE OF (Generic_Expression); END_ENTITY;
ENTITY Expression_Conversion_Based_Unit SUBTYPE OF (Context_Dependent_Unit, Variable_Semantics); INVERSE associated_variable_environment : Environment FOR semantics; END_ENTITY;
ENTITY Expression_Denoted_Function SUBTYPE OF (Maths_Function, Unary_Generic_Expression); DERIVE expr : Generic_Expression := SELF\Unary_Generic_Expression.operand; WHERE WR1: (Schema_Prefix + 'FUNCTION_SPACE') IN TYPEOF(Values_Space_Of(expr)); END_ENTITY;
ENTITY Expression_Extension_Numeric SUBTYPE OF (Measure_With_Unit, Numeric_Expression); END_ENTITY;
ENTITY Expression_Extension_String SUBTYPE OF (Measure_With_Unit, String_Expression); END_ENTITY;
ENTITY Expression_Extension_To_Select; type_expression_associated : Expression_Extension_Select; END_ENTITY;
ENTITY Extended_Tuple_Space SUBTYPE OF (Maths_Space, Generic_Literal); base : Tuple_Space; extender : Maths_Space; WHERE WR1: Expression_Is_Constant(base) AND Expression_Is_Constant(extender); WR2: No_Cyclic_Space_Reference(SELF, []); WR3: extender <> The_Empty_Space; END_ENTITY;
ENTITY Extension SUBTYPE OF (Derived_Shape_Aspect); WHERE WR1: SIZEOF(SELF\Derived_Shape_Aspect.deriving_relationships) = 1; END_ENTITY;
ENTITY Extent SUBTYPE OF (Characterized_Object); END_ENTITY;
ENTITY External_Class_Library SUBTYPE OF (External_Source); END_ENTITY;
ENTITY External_Identification_Assignment ABSTRACT SUPERTYPE SUBTYPE OF (Identification_Assignment); source : External_Source; END_ENTITY;
ENTITY External_Identification_Assignment_Relationship; id : OPTIONAL Identifier; description : OPTIONAL Text; relating : External_Identification_Assignment; related : External_Identification_Assignment; relation_type : STRING; WHERE WR1: Acyclic_External_Identification_Assignment_Relationship(SELF, [related], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNAL_IDENTIFICATION_ASSIGNMENT_RELATIONSHIP'); END_ENTITY;
ENTITY External_Source; source_id : Source_Item; DERIVE description : Text := Get_Description_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY;
ENTITY External_Source_Relationship; name : Label; description : OPTIONAL Text; relating_source : External_Source; related_source : External_Source; END_ENTITY;
ENTITY Externally_Conditioned_Data_Quality_Criteria_Representation SUBTYPE OF (Data_Quality_Criteria_Representation); WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN TYPEOF(q))) > 0; END_ENTITY;
ENTITY Externally_Conditioned_Data_Quality_Criterion SUBTYPE OF (Data_Quality_Criterion, Data_Quality_Measurement_Requirement); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.CRITERION')) = 0; WR2: SIZEOF(QUERY(i1 <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATED_REPRESENTATION_ITEM')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN TYPEOF(i1))) = 0; WR3: SIZEOF(QUERY(i1 <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATING_REPRESENTATION_ITEM')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN TYPEOF(i1))) = 0; END_ENTITY;
ENTITY Externally_Conditioned_Data_Quality_Inspection_Instance_Report_Item SUBTYPE OF (Data_Quality_Inspection_Instance_Report_Item); SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1 : ?] OF Inspected_Ecdq_Element_Select; WHERE WR1: SIZEOF(QUERY(i1 <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_INSTANCE_REPORT.INSPECTED_INSTANCES')) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(i1.inspection_result)))) = 0; END_ENTITY;
ENTITY Externally_Conditioned_Data_Quality_Inspection_Result SUBTYPE OF (Data_Quality_Inspection_Result); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_CRITERION' IN TYPEOF(SELF\Data_Quality_Inspection_Result.criterion_inspected); END_ENTITY;
ENTITY Externally_Conditioned_Data_Quality_Inspection_Result_Representation SUBTYPE OF (Data_Quality_Inspection_Result_Representation); WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q))) > 0; END_ENTITY;
ENTITY Externally_Defined_Character_Glyph SUBTYPE OF (Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_Class SUBTYPE OF (Class, Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_Colour SUBTYPE OF (Colour_Specification, Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_Context_Dependent_Unit SUBTYPE OF (Context_Dependent_Unit, Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_Conversion_Based_Unit SUBTYPE OF (Conversion_Based_Unit, Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_Currency SUBTYPE OF (Currency, Externally_Defined_Context_Dependent_Unit); END_ENTITY;
ENTITY Externally_Defined_Curve_Font SUBTYPE OF (Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_Dimension_Definition SUBTYPE OF (Dimensional_Size, Externally_Defined_Item); WHERE WR1: (SELF\Externally_Defined_Item.item_id = 'external size dimension') AND (SELF\Externally_Defined_Item.Source.source_id = 'external size dimension specification'); WR2: 1 >= SIZEOF(QUERY(adr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS') | (adr.assigned_document.description = 'external size dimension specification'))); END_ENTITY;
ENTITY Externally_Defined_Feature_Definition SUBTYPE OF (Feature_Definition, Externally_Defined_Item); WHERE WR1: (((SELF\Characterized_Object.description = 'thread') AND (SELF\Externally_Defined_Item.item_id = 'external thread') AND (SELF\Externally_Defined_Item.Source.source_id = 'external feature specification')) OR ((SELF\Characterized_Object.description = 'gear') AND (SELF\Externally_Defined_Item.item_id = 'external gear') AND (SELF\Externally_Defined_Item.Source.source_id = 'external feature specification')) OR ((SELF\Characterized_Object.description = 'marking') AND (SELF\Externally_Defined_Item.item_id = 'external marking') AND (SELF\Externally_Defined_Item.Source.source_id = 'external feature specification')) OR ((SELF\Characterized_Object.description = 'knurl') AND (SELF\Externally_Defined_Item.item_id = 'external knurl') AND (SELF\Externally_Defined_Item.Source.source_id = 'external feature specification'))); WR2: ((NOT (SELF\Characterized_Object.description = 'thread')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ({5 <= SIZEOF(pdr.used_representation.items) <= 10}))) = 1)) = 1)); WR3: ((NOT (SELF\Characterized_Object.description = 'marking')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1)) = 1)); WR4: ((NOT (SELF\Characterized_Object.description = 'knurl')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1)) = 1)); WR5: (NOT (SELF\Characterized_Object.description IN ['knurl','thread'])) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'partial area occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'applied area usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_AREA' IN TYPEOF(sdr.relating_shape_aspect)))) = 1)))) <= 1)))) = 0); WR6: ((NOT (SELF\Characterized_Object.description = 'marking')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'marking text')))) = 1)))) = 0)))) = 0)); WR7: ((NOT (SELF\Characterized_Object.description = 'thread')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'removal direction') AND ((it.description = 'internal') OR (it.description = 'external'))))) = 1)))) = 0)))) = 0)); WR8: ((NOT (SELF\Characterized_Object.description = 'thread')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'qualifier')))) <= 1)))) = 0)))) = 0)); WR9: ((NOT (SELF\Characterized_Object.description = 'thread')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'hand')))) = 1)))) = 0)))) = 0)); WR10: ((NOT (SELF\Characterized_Object.description = 'thread')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class')))) = 1)))) = 0)))) = 0)); WR11: ((NOT (SELF\Characterized_Object.description = 'thread')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'form')))) = 1)))) = 0)))) = 0)); WR12: ((NOT (SELF\Characterized_Object.description = 'thread')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'major diameter')))) <= 1)))) = 0)))) = 0)); WR13: ((NOT (SELF\Characterized_Object.description = 'thread')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'number of threads')))) = 1)))) = 0)))) = 0)); WR14: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class 2')))) <= 1)))) = 0)))) = 0); WR15: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'nominal size')))) <= 1)))) = 0)))) = 0); WR16: (NOT (SELF\Characterized_Object.description IN ['knurl','gear','thread'])) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'applied shape') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1)))) <= 1)))) = 0); WR17: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (10 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) >= 11))) = 1)) = 1)); WR18: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'number of teeth')))) = 1)))) = 0)))) = 0)); WR19: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'reference pressure angle')))) = 1)))) = 0)))) = 0)); WR20: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'rake shift factor')))) = 1)))) = 0)))) = 0)); WR21: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'nominal tooth depth')))) = 1)))) = 0)))) = 0)); WR22: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'face width')))) = 1)))) = 0)))) = 0)); WR23: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tip diameter')))) = 1)))) = 0)))) = 0)); WR24: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'module or diametral pitch') AND ((it.description = 'module') OR (it.description = 'diametral pitch'))))) = 1)))) = 0)))) = 0)); WR25: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'normal attribute')))) = 1)))) = 0)))) = 0)); WR26: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'internal or external gear') AND ((it.description = 'internal') OR (it.description = 'external'))))) = 1)))) = 0)))) = 0)); WR27: ((NOT (SELF\Characterized_Object.description IN ['gear'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'root fillet radius')))) <= 1)))) = 0)))) = 0)); END_ENTITY;
ENTITY Externally_Defined_General_Property SUBTYPE OF (General_Property, Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_Hatch_Style SUBTYPE OF (Externally_Defined_Item, Geometric_Representation_Item); END_ENTITY;
ENTITY Externally_Defined_Item; item_id : Source_Item; source : External_Source; END_ENTITY;
ENTITY Externally_Defined_Item_Relationship; name : Label; description : OPTIONAL Text; relating_item : Externally_Defined_Item; related_item : Externally_Defined_Item; END_ENTITY;
ENTITY Externally_Defined_Item_With_Multiple_References SUBTYPE OF (Externally_Defined_Item); references : LIST [1 : ?] OF UNIQUE Source_Item; UNIQUE UR1: references; WHERE WR1: NOT (SELF\Externally_Defined_Item.item_id IN references); END_ENTITY;
ENTITY Externally_Defined_Marker SUBTYPE OF (Externally_Defined_Symbol, Pre_Defined_Marker); END_ENTITY;
ENTITY Externally_Defined_Picture_Representation_Item SUBTYPE OF (Picture_Representation_Item); INVERSE source : Applied_External_Identification_Assignment FOR items; WHERE WR1: NOT (SELF\Representation_Item.name IN Pre_Defined_Picture_Representation_Types); END_ENTITY;
ENTITY Externally_Defined_Representation SUBTYPE OF (Representation, Externally_Defined_Item); SELF\representation.items : SET [1 : ?] OF Externally_Defined_Representation_Item; END_ENTITY;
ENTITY Externally_Defined_Representation_Item SUBTYPE OF (Representation_Item, Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_String SUBTYPE OF (Externally_Defined_Representation_Item); END_ENTITY;
ENTITY Externally_Defined_Style SUBTYPE OF (Externally_Defined_Item, Founded_Item); END_ENTITY;
ENTITY Externally_Defined_Symbol SUBTYPE OF (Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_Terminator_Symbol SUBTYPE OF (Externally_Defined_Symbol); END_ENTITY;
ENTITY Externally_Defined_Text_Font SUBTYPE OF (Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_Tile SUBTYPE OF (Externally_Defined_Item); END_ENTITY;
ENTITY Externally_Defined_Tile_Style SUBTYPE OF (Externally_Defined_Item, Geometric_Representation_Item); END_ENTITY;
ENTITY Externally_Listed_Data SUBTYPE OF (Explicit_Table_Function, Generic_Literal, Externally_Defined_Item); value_range : Maths_Space; WHERE WR1: Expression_Is_Constant(Value_Range); END_ENTITY;
ENTITY Extreme_Instance; locations_of_extreme_value : SET [1 : ?] OF Location_Of_Extreme_Value_Select; measured_value : Measured_Value_Select; END_ENTITY;
ENTITY Extreme_Patch_Width_Variation SUBTYPE OF (Geometry_With_Local_Irregularity); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_KNOT_LOCATOR']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Extruded_Area_Solid SUBTYPE OF (Swept_Area_Solid); extruded_direction : Direction; depth : Positive_Length_Measure; WHERE WR1: Dot_Product((SELF\Swept_Area_Solid.swept_area.basis_surface\Elementary_Surface.position.p[3]), extruded_direction) <> 0.0; END_ENTITY;
ENTITY Extruded_Face_Solid SUBTYPE OF (Swept_Face_Solid); extruded_direction : Direction; depth : Positive_Length_Measure; WHERE WR1: Dot_Product((SELF\Swept_Face_Solid.swept_face.face_geometry\Elementary_Surface.position.p[3]), extruded_direction) <> 0.0; END_ENTITY;
ENTITY Extruded_Face_Solid_With_Draft_Angle SUBTYPE OF (Extruded_Face_Solid_With_Trim_Conditions); draft_angle : Plane_Angle_Measure; WHERE WR1: draft_angle <> 0; END_ENTITY;
ENTITY Extruded_Face_Solid_With_Multiple_Draft_Angles SUBTYPE OF (Extruded_Face_Solid_With_Trim_Conditions); drafted_edges : LIST [2 : ?] OF SET [1 : ?] OF Edge_Curve; draft_angles : LIST [2 : ?] OF Plane_Angle_Measure; WHERE WR1: SIZEOF(drafted_edges) = SIZEOF(draft_angles); WR2: SIZEOF(QUERY(q <* draft_angles | q = 0)) = 0; WR3: SIZEOF(QUERY(q <* drafted_edges | (SIZEOF(QUERY(r <* q | NOT (SELF\Swept_Face_Solid.swept_face IN Using_Items(r, [])))) > 0))) = 0; END_ENTITY;
ENTITY Extruded_Face_Solid_With_Trim_Conditions SUPERTYPE OF (ONEOF(Extruded_Face_Solid_With_Draft_Angle, Extruded_Face_Solid_With_Multiple_Draft_Angles)) SUBTYPE OF (Extruded_Face_Solid); first_trim_condition : Trim_Condition_Select; second_trim_condition : Trim_Condition_Select; first_trim_intent : Trim_Intent; second_trim_intent : Trim_Intent; first_offset : Non_Negative_Length_Measure; second_offset : Non_Negative_Length_Measure; WHERE WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(first_trim_condition)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(second_trim_condition))); WR2: NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) AND ((first_trim_intent = Trim_Intent.Offset) OR (first_trim_intent = Trim_Intent.Up_To_Next))) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition)) AND ((second_trim_intent = Trim_Intent.Offset) OR (second_trim_intent = Trim_Intent.Up_To_Next)))); WR3: NOT (((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition))) AND ((first_trim_intent = Trim_Intent.Blind) OR (first_trim_intent = Trim_Intent.Through_All))) OR ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition))) AND ((second_trim_intent = Trim_Intent.Blind) OR (second_trim_intent = Trim_Intent.Through_All)))); WR4: (((first_trim_intent = Trim_Intent.Offset) AND (first_offset > 0)) XOR ((first_trim_intent <> Trim_Intent.Offset) AND (first_offset = 0))) AND (((second_trim_intent = Trim_Intent.Offset) AND (second_offset > 0)) XOR ((second_trim_intent <> Trim_Intent.Offset) AND (second_offset = 0))); WR5: NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition))) AND (first_trim_condition = second_trim_condition)); END_ENTITY;
ENTITY Face SUPERTYPE OF (ONEOF(Face_Surface, Subface, Oriented_Face)) SUBTYPE OF (Topological_Representation_Item); bounds : SET [1 : ?] OF Face_Bound; WHERE WR1: NOT (Mixed_Loop_Type_Set(List_To_Set(List_Face_Loops(SELF)))); WR2: SIZEOF(QUERY(temp <* bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF(temp))) <= 1; END_ENTITY;
ENTITY Face_Based_Surface_Model SUBTYPE OF (Geometric_Representation_Item); fbsm_faces : SET [1 : ?] OF Connected_Face_Set; END_ENTITY;
ENTITY Face_Bound SUBTYPE OF (Topological_Representation_Item); bound : Loop; orientation : BOOLEAN; END_ENTITY;
ENTITY Face_Outer_Bound SUBTYPE OF (Face_Bound); END_ENTITY;
ENTITY Face_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: (SIZEOF(SELF.items) >= 1); WR2: (SIZEOF(QUERY(it <* SELF.items | (NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(it)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN TYPEOF(it)))))) = 0); END_ENTITY;
ENTITY Face_Shape_Representation_Relationship SUBTYPE OF (Representation_Relationship); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF.rep_1)); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(SELF.rep_2)); END_ENTITY;
ENTITY Face_Surface SUBTYPE OF (Face, Geometric_Representation_Item); face_geometry : Surface; same_sense : BOOLEAN; WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_SURFACE' IN TYPEOF(face_geometry)); END_ENTITY;
ENTITY Face_Surface_With_Excessive_Patches_In_One_Direction SUBTYPE OF (Overcomplex_Topology_And_Geometry_Relationship); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Faceted_Brep SUBTYPE OF (Manifold_Solid_Brep); END_ENTITY;
ENTITY Faceted_Brep_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY(it <* items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1))) > 0; WR3: SIZEOF(QUERY(fbrep <* QUERY(it <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(csh <* Msb_Shells(fbrep) | NOT (SIZEOF(QUERY(fcs <* csh\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(fcs)) AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(fcs\Face_Surface.face_geometry)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(fcs\Face_Surface.face_geometry\Elementary_Surface.position.Location)))))) = 0))) = 0))) = 0; WR4: SIZEOF(QUERY(fbrep <* QUERY(it <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(csh <* Msb_Shells(fbrep) | NOT (SIZEOF(QUERY(fcs <* csh\Connected_Face_Set.cfs_faces | NOT (SIZEOF(QUERY(bnds <* fcs.bounds | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF(bnds)))) = 1))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY(msb <* QUERY(it <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN TYPEOF(it))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF(msb\Manifold_Solid_Brep.outer)))) = 0; WR6: SIZEOF(QUERY(brv <* QUERY(it <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(csh <* brv\Brep_With_Voids.voids | csh\Oriented_Closed_Shell.Orientation)) = 0))) = 0; WR7: SIZEOF(QUERY(mi <* QUERY(it <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)))) = 0; END_ENTITY;
ENTITY Faceted_Primitive SUPERTYPE OF (ONEOF(Tetrahedron, Convex_Hexahedron)) SUBTYPE OF (Geometric_Representation_Item); points : LIST [4 : ?] OF UNIQUE Cartesian_Point; WHERE WR1: points[1].dim = 3; END_ENTITY;
ENTITY Fact_Type SUBTYPE OF (Property_Definition); END_ENTITY;
ENTITY Feature_Component_Definition SUBTYPE OF (Characterized_Object); WHERE WR1: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE')) = 1)))) = 0); END_ENTITY;
ENTITY Feature_Component_Relationship SUPERTYPE OF (ONEOF(Pattern_Omit_Membership, Pattern_Offset_Membership)) SUBTYPE OF (Shape_Aspect_Relationship); WHERE WR1: ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRANSITION_FEATURE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN'] * TYPEOF(SELF.relating_shape_aspect)) = 1) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MACHINING_FEATURE_DEFINITION' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))); END_ENTITY;
ENTITY Feature_Definition SUPERTYPE OF (ONEOF(Boss, Compound_Feature, Externally_Defined_Feature_Definition, Flat_Face, Gear, Marking, Outer_Round, Outside_Profile, Pocket, Protrusion, Removal_Volume, Replicate_Feature, Revolved_Profile, Rib_Top, Round_Hole, Rounded_End, Spherical_Cap, Step, Slot, Thread, Turned_Knurl)) SUBTYPE OF (Characterized_Object); END_ENTITY;
ENTITY Feature_Definition_With_Connection_Area SUBTYPE OF (Shape_Feature_Definition); END_ENTITY;
ENTITY Feature_For_Datum_Target_Relationship SUBTYPE OF (Shape_Aspect_Relationship); SELF\shape_aspect_relationship.related_shape_aspect : Datum_Target; UNIQUE UR1: related_shape_aspect; WHERE WR1: relating_shape_aspect.of_shape :=: related_shape_aspect.of_shape; WR2: relating_shape_aspect\Shape_Aspect.product_definitional = TRUE; END_ENTITY;
ENTITY Feature_In_Panel SUBTYPE OF (Feature_Definition); WHERE WR1: SELF.description IN ['pocket','boss','stairstep']; WR2: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({2 <= SIZEOF(pdr.used_representation.items) <= 3}))) = 0; WR3: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | NOT (i.name IN ['orientation','base radius','target radius']))) > 0))) = 0; WR4: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'base radius') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; WR5: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'target radius') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; WR6: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'base boundary') AND (sa.description IN ['directed angle occurrence','closed profile occurrence']))) = 1; WR7: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'target boundary') AND (sa.description IN ['directed angle occurrence','closed profile occurrence']))) = 1; WR8: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.description = 'directed angle occurrence'))) <= 1; WR9: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.description = 'directed angle occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'directed angle usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTED_ANGLE' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.description = 'directed angle occurrence'))); WR10: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.description = 'closed profile occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * TYPEOF(sar.relating_shape_aspect)) = 1))) = 1))) = SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.description = 'closed profile occurrence'))); WR11: (SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation))) <= 1) AND (SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND NOT (pdr.used_representation.name = 'target face'))) = 0); WR12: (SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'target boundary') AND (sa.description = 'directed angle occurrence'))) = 0) OR (SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1); END_ENTITY;
ENTITY Feature_Pattern SUBTYPE OF (Replicate_Feature); WHERE WR1: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(srwp_i)))) > 0))) > 0)) = 0; WR2: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'base feature placement'))) > 1))) = 0))) = 0; END_ENTITY;
ENTITY Fill_Area_Style SUBTYPE OF (Founded_Item); name : Label; fill_styles : SET [1 : ?] OF Fill_Style_Select; WHERE WR1: SIZEOF(QUERY(fill_style <* fill_styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_COLOUR' IN TYPEOF(fill_style))) <= 1; END_ENTITY;
ENTITY Fill_Area_Style_Colour; name : Label; fill_colour : Colour; END_ENTITY;
ENTITY Fill_Area_Style_Hatching SUBTYPE OF (Geometric_Representation_Item); hatch_line_appearance : Curve_Style; start_of_next_hatch_line : One_Direction_Repeat_Factor; point_of_reference_hatch_line : Cartesian_Point; pattern_start : Cartesian_Point; hatch_line_angle : Plane_Angle_Measure; END_ENTITY;
ENTITY Fill_Area_Style_Tile_Coloured_Region SUBTYPE OF (Geometric_Representation_Item); closed_curve : Curve_Or_Annotation_Curve_Occurrence; region_colour : Colour; WHERE WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(closed_curve))) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN TYPEOF(closed_curve)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE' IN TYPEOF(closed_curve)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(closed_curve)) AND (closed_curve\B_Spline_Curve.closed_curve = TRUE)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(closed_curve)) AND (closed_curve\Composite_Curve.closed_curve = TRUE)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(closed_curve)) AND (closed_curve\Polyline.points[LOINDEX(closed_curve\Polyline.points)] = closed_curve\Polyline.points[HIINDEX(closed_curve\Polyline.points)])); END_ENTITY;
ENTITY Fill_Area_Style_Tile_Curve_With_Style SUBTYPE OF (Geometric_Representation_Item); styled_curve : Annotation_Curve_Occurrence; END_ENTITY;
ENTITY Fill_Area_Style_Tile_Symbol_With_Style SUBTYPE OF (Geometric_Representation_Item); symbol : Annotation_Symbol_Occurrence; END_ENTITY;
ENTITY Fill_Area_Style_Tiles SUBTYPE OF (Geometric_Representation_Item); tiling_pattern : Two_Direction_Repeat_Factor; tiles : SET [1 : ?] OF Fill_Area_Style_Tile_Shape_Select; tiling_scale : Positive_Ratio_Measure; END_ENTITY;
ENTITY Fillet SUBTYPE OF (Transition_Feature); WHERE WR1: (NOT (SELF\Shape_Aspect.description = 'constant radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1))) = 0); WR2: (NOT (SELF\Shape_Aspect.description = 'constant radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | (NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND (SIZEOF(impl_rep.used_representation.items) <= 3)))) = 0))) = 0); WR3: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); WR4: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first offset'))) <= 1))) = 0))) = 0); WR5: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second offset'))) <= 1))) = 0))) = 0); WR6: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'fillet face'))) = 1))) = 0; WR7: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape'))) = 1))) = 0; WR8: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape'))) = 1))) = 0; END_ENTITY;
ENTITY Final_Solution SUBTYPE OF (Product_Definition_Formation); status : STRING; INVERSE specification : SET [1:?] OF Product_Definition FOR formation; END_ENTITY;
ENTITY Finite_Function SUBTYPE OF (Maths_Function, Generic_Literal); pairs : SET [1 : ?] OF LIST [2 : 2] OF Maths_Value; WHERE WR1: VALUE_UNIQUE(List_Selected_Components(pairs, 1)); END_ENTITY;
ENTITY Finite_Integer_Interval SUBTYPE OF (Maths_Space, Generic_Literal); min : INTEGER; max : INTEGER; DERIVE size : Positive_Integer := max - min + 1; WHERE WR1: min <= max; END_ENTITY;
ENTITY Finite_Real_Interval SUBTYPE OF (Maths_Space, Generic_Literal); min : REAL; min_closure : Open_Closed; max : REAL; max_closure : Open_Closed; WHERE WR1: min < max; END_ENTITY;
ENTITY Finite_Space SUBTYPE OF (Maths_Space, Generic_Literal); members : SET OF Maths_Value; WHERE WR1: VALUE_UNIQUE(members); WR2: SIZEOF(QUERY(expr <* QUERY(member <* members | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_EXPRESSION' IN TYPEOF(member)) | NOT Expression_Is_Constant(expr))) = 0; WR3: No_Cyclic_Space_Reference(SELF, []); END_ENTITY;
ENTITY Fixed_Constituent_Assembly_Constraint SUBTYPE OF (Assembly_Geometric_Constraint, Fixed_Element_Geometric_Constraint); fixed_constituent : Representative_Shape_Representation; WHERE WR1: SELF\Explicit_Constraint.constrained_elements[1]\Geometric_Representation_Item.dim = 3; WR2: (Assembly_Leaf(Using_Product_Definition_Of_Shape_Representation(fixed_constituent)[1])); WR3: (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 1) AND (SIZEOF(SELF\Explicit_Constraint.reference_elements) = 0); WR4: fixed_constituent IN (Using_Representations(SELF\Explicit_Constraint.constrained_elements[1]) + Using_Representation_With_Mapping(SELF\Explicit_Constraint.constrained_elements[1])); END_ENTITY;
ENTITY Fixed_Element_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Geometric_Constraint_Element; WHERE WR1: SIZEOF(SELF\Explicit_Constraint.reference_elements) = 0; END_ENTITY;
ENTITY Fixed_Instance_Attribute_Set SUBTYPE OF (Variational_Representation_Item); fixed_attributes : SET [1 : ?] OF Instance_Attribute_Reference; WHERE WR1: SIZEOF(QUERY(q <* Using_Representations(SELF) | SIZEOF(QUERY(r <* q.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF(r))) > 1)) = 0; END_ENTITY;
ENTITY Fixed_Reference_Swept_Surface SUBTYPE OF (Swept_Surface); directrix : Curve; fixed_reference : Direction; END_ENTITY;
ENTITY Flat_Face SUBTYPE OF (Feature_Definition); WHERE WR1: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'removal direction')))) = 1)))) = 0); WR2: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'course of travel occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'linear') AND (sdr.name = 'course of travel')))) = 1)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'removal boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.name = 'removal boundary')))) = 1)))) = 1)))) = 0); WR4: SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'enclosed boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect.description = 'boundary'))) = 1))) <= 1))) = 0; WR5: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0; WR6: SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (csa.name = 'uncut volume') AND (SIZEOF(QUERY(sar <* csa.component_relationships | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROTRUSION'] * TYPEOF(sar.related_shape_aspect)) = 1)))) = 1)))) <= 1)))) = 1; WR7: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'removal depth'))) <= 1))) = 0))) = 0; END_ENTITY;
ENTITY Flat_Pattern_Ply_Representation_Relationship SUBTYPE OF (Shape_Representation_Relationship); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN (TYPEOF(SELF\Representation_Relationship.rep_1) * TYPEOF(SELF\Representation_Relationship.rep_2)); WR2: SELF\Representation_Relationship.rep_1.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 3; END_ENTITY;
ENTITY Flatness_Tolerance SUBTYPE OF (Geometric_Tolerance); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Force_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FORCE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Force_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Newton); END_ENTITY;
ENTITY Format_Function SUBTYPE OF (String_Expression, Binary_Generic_Expression); DERIVE value_to_format : Generic_Expression := SELF\Binary_Generic_Expression.operands[1]; format_string : Generic_Expression := SELF\Binary_Generic_Expression.operands[2]; WHERE WR1: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION') IN TYPEOF(value_to_format)) AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION') IN TYPEOF(format_string)); END_ENTITY;
ENTITY Forward_Chaining_Rule SUBTYPE OF (Rule_Definition); END_ENTITY;
ENTITY Forward_Chaining_Rule_Premise SUBTYPE OF (Property_Definition, Property_Definition_Representation, Representation); END_ENTITY;
ENTITY Founded_Item SUPERTYPE OF ((ONEOF(B_Spline_Curve_Knot_Locator, B_Spline_Curve_Segment, B_Spline_Surface_Knot_Locator, B_Spline_Surface_Patch, B_Spline_Surface_Strip, Boundary_Curve_Of_B_Spline_Or_Rectangular_Composite_Surface, Box_Domain, Character_Glyph_Style_Outline, Character_Glyph_Style_Stroke, Composite_Curve_Segment, Composite_Curve_Transition_Locator, Curve_Style, Curve_Style_Font, Curve_Style_Font_And_Scaling, Curve_Style_Font_Pattern, Externally_Defined_Style, Fill_Area_Style, Interpolated_Configuration_Segment, Kinematic_Path_Segment, Plane_Angle_And_Length_Pair, Plane_Angle_And_Ratio_Pair, Point_Style, Presentation_Style_Assignment, Rectangular_Composite_Surface_Transition_Locator, Surface_Patch, Surface_Side_Style, Surface_Style_Boundary, Surface_Style_Control_Grid, Surface_Style_Fill_Area, Surface_Style_Parameter_Line, Surface_Style_Segmentation_Curve, Surface_Style_Silhouette, Surface_Style_Usage, Symbol_Style, Text_Style, View_Volume)) ANDOR (ONEOF(Character_Glyph_Style_Outline, Character_Glyph_Style_Stroke, Curve_Style, Curve_Style_Font, Curve_Style_Font_And_Scaling, Curve_Style_Font_Pattern, Externally_Defined_Style, Fill_Area_Style, Point_Style, Presentation_Style_Assignment, Surface_Side_Style, Surface_Style_Boundary, Surface_Style_Control_Grid, Surface_Style_Fill_Area, Surface_Style_Parameter_Line, Surface_Style_Segmentation_Curve, Surface_Style_Silhouette, Surface_Style_Usage, Symbol_Style, Text_Style))); DERIVE users : SET [0 : ?] OF Founded_Item_Select := Using_Items(SELF, []); WHERE WR1: SIZEOF(users) > 0; WR2: NOT (SELF IN users); END_ENTITY;
ENTITY Free_Edge SUBTYPE OF (Inapt_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); WR4: Validate_Accuracy_Types(SELF, []); WR5: SIZEOF(QUERY(sdqr <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(sdqr)) AND (SIZEOF(QUERY(sdqiir <* Bag_To_Set(USEDIN(sdqr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(sdqiir)) AND (SIZEOF(QUERY(sdqiri <* sdqiir.inspected_instances | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL' IN TYPEOF(sdqiri.inspected_elements[1])))) = 0))) = 0))) = 0; END_ENTITY;
ENTITY Free_Form_Assignment SUBTYPE OF (Free_Form_Constraint); WHERE WR1: SIZEOF(QUERY(q <* SELF\Free_Form_Constraint.constrained_elements | q IN Used_Variables(SELF\Free_Form_Constraint.constraining_expression))) = 0; WR2: SIZEOF(QUERY(q <* SELF\Free_Form_Constraint.reference_elements | NOT (q IN Used_Variables(SELF\Free_Form_Constraint.constraining_expression)))) = 0; WR3: SIZEOF(SELF\Free_Form_Constraint.reference_elements) >= 1; WR4: SIZEOF(QUERY(q <* SELF\Free_Form_Constraint.constrained_elements | NOT (Compatible_Spaces(Values_Space_Of(SELF\Free_Form_Constraint.constraining_expression), q\Maths_Variable.values_space)))) = 0; END_ENTITY;
ENTITY Free_Form_Constraint ABSTRACT SUPERTYPE OF (ONEOF(Free_Form_Assignment, Free_Form_Relation)) SUBTYPE OF (Explicit_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Variational_Parameter; SELF\explicit_constraint.reference_elements : SET [0 : ?] OF Variational_Parameter; constraining_expression : Expression; END_ENTITY;
ENTITY Free_Form_Relation SUBTYPE OF (Free_Form_Constraint); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\Free_Form_Constraint.constraining_expression); WR2: SIZEOF(QUERY(q <* (SELF\Free_Form_Constraint.constrained_elements + SELF\Free_Form_Constraint.reference_elements) | NOT (q IN Used_Variables(SELF\Free_Form_Constraint.constraining_expression)))) = 0; END_ENTITY;
ENTITY Free_Kinematic_Motion_Representation SUBTYPE OF (Representation_Relationship_With_Transformation); SELF\representation_relationship.rep_1 : Representative_Shape_Representation; SELF\representation_relationship.rep_2 : Representative_Shape_Representation; motion : Kinematic_Path; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN TYPEOF(SELF\Representation_Relationship_With_Transformation.transformation_operator); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2)); WR3: ((Dimension_Of(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1) = 3) AND (Dimension_Of(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2) = 3)); WR4: (SELF\Representation_Relationship.rep_1 IN (Using_Representations(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1) + Using_Representation_With_Mapping(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_1))) AND (SELF\Representation_Relationship.rep_2 IN (Using_Representations(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2) + Using_Representation_With_Mapping(SELF\Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation.transform_item_2))); END_ENTITY;
ENTITY Free_Variable_Semantics SUBTYPE OF (Variable_Semantics); END_ENTITY;
ENTITY Frequency_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FREQUENCY_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Frequency_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Hertz); END_ENTITY;
ENTITY Frozen_Assignment SUBTYPE OF (Approval_Assignment); items : SET [1 : ?] OF Change_Management_Object; END_ENTITY;
ENTITY Fully_Constrained_Pair SUBTYPE OF (Low_Order_Kinematic_Pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; END_ENTITY;
ENTITY Func SUBTYPE OF (Compound_Representation_Item); END_ENTITY;
ENTITY Function_Application SUBTYPE OF (Multiple_Arity_Generic_Expression); func : Maths_Function_Select; arguments : LIST [1 : ?] OF Maths_Expression; DERIVE SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF Generic_Expression := [Convert_To_Maths_Function(Func)] + Convert_To_Operands(arguments); WHERE WR1: Function_Applicability(Func, arguments); END_ENTITY;
ENTITY Function_Space SUBTYPE OF (Maths_Space, Generic_Literal); domain_constraint : Space_Constraint_Type; domain_argument : Maths_Space; range_constraint : Space_Constraint_Type; range_argument : Maths_Space; WHERE WR1: Expression_Is_Constant(domain_argument) AND Expression_Is_Constant(range_argument); WR2: (domain_argument <> The_Empty_Space) AND (range_argument <> The_Empty_Space); WR3: (domain_constraint <> Sc_Member) OR NOT Member_Of(The_Empty_Space, domain_argument); WR4: (range_constraint <> Sc_Member) OR NOT Member_Of(The_Empty_Space, range_argument); WR5: NOT (Any_Space_Satisfies(domain_constraint, domain_argument) AND Any_Space_Satisfies(range_constraint, range_argument)); END_ENTITY;
ENTITY Functional_Breakdown_Context SUBTYPE OF (Breakdown_Context); END_ENTITY;
ENTITY Functional_Element_Usage SUBTYPE OF (Breakdown_Element_Usage); END_ENTITY;
ENTITY Functionally_Defined_Transformation; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY G1_Discontinuity_Between_Adjacent_Faces SUBTYPE OF (Non_Smooth_Geometry_Transition_Across_Edge); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']); END_ENTITY;
ENTITY G1_Discontinuous_Curve SUBTYPE OF (Discontinuous_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_KNOT_LOCATOR']); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY G1_Discontinuous_Surface SUBTYPE OF (Discontinuous_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_KNOT_LOCATOR']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']); END_ENTITY;
ENTITY G2_Discontinuity_Between_Adjacent_Faces SUBTYPE OF (Non_Smooth_Geometry_Transition_Across_Edge); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; assessment_specification_2 : Shape_Data_Quality_Assessment_By_Numerical_Test; flat_curvature_radius_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN Value_Limit_Type(assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR3: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_AND_RATIO_PAIR'); WR4: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR5: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); WR6: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE']); END_ENTITY;
ENTITY G2_Discontinuous_Curve SUBTYPE OF (Discontinuous_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; assessment_specification_2 : Shape_Data_Quality_Assessment_By_Numerical_Test; flat_curvature_radius_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN Value_Limit_Type(assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR3: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_AND_RATIO_PAIR'); WR4: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); WR5: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_KNOT_LOCATOR']); WR6: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY G2_Discontinuous_Surface SUBTYPE OF (Discontinuous_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; assessment_specification_2 : Shape_Data_Quality_Assessment_By_Numerical_Test; flat_curvature_radius_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN Value_Limit_Type(assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR3: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_AND_RATIO_PAIR'); WR4: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); WR5: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_KNOT_LOCATOR']); WR6: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE']); END_ENTITY;
ENTITY Gap_Between_Adjacent_Edges_In_Loop SUBTYPE OF (Geometric_Gap_In_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Gap_Between_Edge_And_Base_Surface SUBTYPE OF (Geometric_Gap_In_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Gap_Between_Faces_Related_To_An_Edge SUBTYPE OF (Geometric_Gap_In_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Gap_Between_Pcurves_Related_To_An_Edge SUBTYPE OF (Geometric_Gap_In_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Gap_Between_Vertex_And_Base_Surface SUBTYPE OF (Geometric_Gap_In_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Gap_Between_Vertex_And_Edge SUBTYPE OF (Geometric_Gap_In_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Gear SUBTYPE OF (Feature_Definition); WHERE WR1: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (10 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 13))) = 1)) = 1; WR2: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'number of teeth'))) = 1))) = 0))) = 0); WR3: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'reference pressure angle'))) = 1))) = 0))) = 0); WR4: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'rake shift factor'))) = 1))) = 0))) = 0); WR5: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'nominal tooth depth'))) = 1))) = 0))) = 0); WR6: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'face width'))) = 1))) = 0))) = 0); WR7: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tip diameter'))) = 1))) = 0))) = 0); WR8: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'module or diametral pitch') AND ((it.description = 'module') OR (it.description = 'diametral pitch')))) = 1))) = 0))) = 0); WR9: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'internal or external gear') AND ((it.description = 'internal') OR (it.description = 'external')))) = 1))) = 0))) = 0); WR10: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'normal attribute'))) = 1))) = 0))) = 0); WR11: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear','spur gear','helical gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'root fillet radius'))) <= 1))) = 0))) = 0); WR12: NOT (SELF\Characterized_Object.description IN ['helix gear','helical bevel gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'reference helix angle'))) = 1))) = 0))) = 0); WR13: NOT (SELF\Characterized_Object.description IN ['helix gear','helical bevel gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'gear tooth') AND ((it.description = 'left hand tooth') OR (it.description = 'right hand tooth')))) = 1))) = 0))) = 0); WR14: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tip angle'))) = 1))) = 0))) = 0); WR15: NOT (SELF\Characterized_Object.description IN ['straight bevel gear','helical bevel gear']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'root angle'))) = 1))) = 0))) = 0); WR16: SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'applied shape') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect))) = 1)) = 1))) = 0; END_ENTITY;
ENTITY Gear_Pair SUBTYPE OF (Low_Order_Kinematic_Pair_With_Motion_Coupling); radius_first_link : Length_Measure; radius_second_link : Length_Measure; bevel : Plane_Angle_Measure; helical_angle : Plane_Angle_Measure; gear_ratio : REAL; WHERE WR1: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Gear_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Gear_Pair; actual_rotation_1 : Plane_Angle_Measure; DERIVE actual_rotation_2 : Plane_Angle_Measure := -actual_rotation_1 * SELF\Pair_Value.applies_to_pair\Gear_Pair.gear_ratio; END_ENTITY;
ENTITY Gear_Pair_With_Range SUBTYPE OF (Gear_Pair); lower_limit_actual_rotation_1 : OPTIONAL Plane_Angle_Measure; upper_limit_actual_rotation_1 : OPTIONAL Plane_Angle_Measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_rotation_1) OR NOT EXISTS(upper_limit_actual_rotation_1)) XOR (lower_limit_actual_rotation_1 < upper_limit_actual_rotation_1); END_ENTITY;
ENTITY General_Datum_Reference ABSTRACT SUPERTYPE OF (ONEOF(Datum_Reference_Compartment, Datum_Reference_Element)) SUBTYPE OF (Shape_Aspect); base : Datum_Or_Common_Datum; modifiers : OPTIONAL SET [1 : ?] OF Datum_Reference_Modifier; WHERE WR1: SELF\Shape_Aspect.name = ''; WR2: NOT EXISTS(SELF\Shape_Aspect.description); WR3: NOT EXISTS(SELF\Shape_Aspect.id); WR4: SELF\Shape_Aspect.product_definitional = FALSE; WR5: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN TYPEOF(base)) OR (SELF\Shape_Aspect.of_shape = base\Shape_Aspect.of_shape); WR6: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMMON_DATUM_LIST' IN TYPEOF(base)) OR (SELF\Shape_Aspect.of_shape = base[1]\Shape_Aspect.of_shape); END_ENTITY;
ENTITY General_Feature SUBTYPE OF (Shape_Feature_Definition); WHERE WR1: (SIZEOF(Get_Property_Definition_Representations(SELF)) <= 1) AND (SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) <= 1); WR2: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | sa.description = 'course of travel occurrence')) = SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.description = 'course of travel occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'course of travel'))) = 1))); WR3: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | sa.description = 'course of travel occurrence')) = SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.description = 'course of travel occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)))) = 1))); WR4: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | sa.description = 'boundary occurrence')) = SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.description = 'boundary occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage'))) = 1))); WR5: (SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)))) <= 1) AND (SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(sa)) AND (sa.name = 'general compound feature') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE' IN TYPEOF(sar.related_shape_aspect)))) >= 2))) <= 1); END_ENTITY;
ENTITY General_Linear_Function SUBTYPE OF (Maths_Function, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Maths_Function; sum_index : One_Or_Two; DERIVE mat : Maths_Function := SELF\Unary_Generic_Expression.operand; WHERE WR1: Function_Is_2d_Table(mat); WR2: (Space_Dimension(mat.range) = 1) AND Subspace_Of_Es(Factor1(mat.range), Es_Numbers); END_ENTITY;
ENTITY General_Material_Property SUBTYPE OF (General_Property); WHERE WR1: SIZEOF(QUERY(gpa <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION') | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF(gpa\General_Property_Association.derived_definition)))) = 0; END_ENTITY;
ENTITY General_Property; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY General_Property_Association; name : Label; description : OPTIONAL Text; base_definition : General_Property; derived_definition : Derived_Property_Select; WHERE WR1: (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE'] * TYPEOF(derived_definition)) > 0) OR (SIZEOF(USEDIN(derived_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION')) = 1); WR2: (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE'] * TYPEOF(derived_definition)) > 0) OR (derived_definition.name = base_definition.name); END_ENTITY;
ENTITY General_Property_Relationship; name : Label; description : OPTIONAL Text; relating_property : General_Property; related_property : General_Property; END_ENTITY;
ENTITY Generated_Finite_Numeric_Space SUBTYPE OF (Finite_Space); start_value : Maths_Number; increment_value : Maths_Number; increment_number : Positive_Integer; DERIVE SELF\finite_space.members : SET [2 : ?] OF Maths_Number := Make_Numeric_Set(start_value, increment_value, increment_number); WHERE WR1: increment_value <> 0.0; END_ENTITY;
ENTITY Generic_Character_Glyph_Symbol ABSTRACT SUPERTYPE SUBTYPE OF (Symbol_Representation); END_ENTITY;
ENTITY Generic_Expression ABSTRACT SUPERTYPE OF (ONEOF(Simple_Generic_Expression, Unary_Generic_Expression, Binary_Generic_Expression, Multiple_Arity_Generic_Expression)); WHERE WR1: Is_Acyclic(SELF); END_ENTITY;
ENTITY Generic_Literal ABSTRACT SUPERTYPE SUBTYPE OF (Simple_Generic_Expression); END_ENTITY;
ENTITY Generic_Product_Definition_Reference ABSTRACT SUPERTYPE OF (ONEOF(Product_Definition_Reference, Product_Definition_Reference_With_Local_Representation)); source : External_Source; END_ENTITY;
ENTITY Generic_Property_Relationship; name : Label; description : Text; relating : Generic_Property_Definition_Select; related : Generic_Property_Definition_Select; relation_type : STRING; WHERE WR1: Acyclic_Generic_Property_Relationship(SELF, [related], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_PROPERTY_RELATIONSHIP'); END_ENTITY;
ENTITY Generic_Variable ABSTRACT SUPERTYPE SUBTYPE OF (Simple_Generic_Expression); INVERSE interpretation : Environment FOR syntactic_representation; END_ENTITY;
ENTITY Geometric_Alignment SUBTYPE OF (Derived_Shape_Aspect); WHERE WR1: SIZEOF(SELF\Derived_Shape_Aspect.deriving_relationships) > 1; END_ENTITY;
ENTITY Geometric_Contact SUBTYPE OF (Derived_Shape_Aspect); WHERE WR1: SIZEOF(SELF\Derived_Shape_Aspect.deriving_relationships) = 2; END_ENTITY;
ENTITY Geometric_Curve_Set SUBTYPE OF (Geometric_Set); WHERE WR1: SIZEOF(QUERY(temp <* SELF\Geometric_Set.elements | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(temp)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(temp))))) = 0; END_ENTITY;
ENTITY Geometric_Gap_In_Topology ABSTRACT SUPERTYPE OF (ONEOF(Gap_Between_Adjacent_Edges_In_Loop, Gap_Between_Vertex_And_Base_Surface, Gap_Between_Vertex_And_Edge, Gap_Between_Edge_And_Base_Surface, Gap_Between_Pcurves_Related_To_An_Edge, Gap_Between_Faces_Related_To_An_Edge)) SUBTYPE OF (Inapt_Topology_And_Geometry_Relationship); END_ENTITY;
ENTITY Geometric_Intersection SUBTYPE OF (Derived_Shape_Aspect); WHERE WR1: SIZEOF(SELF\Derived_Shape_Aspect.deriving_relationships) > 1; END_ENTITY;
ENTITY Geometric_Item_Specific_Usage SUBTYPE OF (Item_Identified_Representation_Usage); SELF\item_identified_representation_usage.definition : Geometric_Item_Specific_Usage_Select; SELF\item_identified_representation_usage.used_representation : Shape_Model; SELF\item_identified_representation_usage.identified_item : Geometric_Model_Item; END_ENTITY;
ENTITY Geometric_Model_Element_Relationship SUBTYPE OF (Geometric_Representation_Item, Representation_Item_Relationship); SELF\representation_item_relationship.relating_representation_item : Geometric_Representation_Item; SELF\representation_item_relationship.related_representation_item : Geometric_Representation_Item; UNIQUE UR1: SELF\Representation_Item_Relationship.relating_representation_item, SELF\Representation_Item_Relationship.related_representation_item; WHERE WR1: SELF\Representation_Item_Relationship.relating_representation_item :<>: SELF\Representation_Item_Relationship.related_representation_item; END_ENTITY;
ENTITY Geometric_Representation_Context SUPERTYPE OF (ONEOF(Geometric_Representation_Context_With_Parameter, Path_Parameter_Representation_Context)) SUBTYPE OF (Representation_Context); coordinate_space_dimension : Dimension_Count; END_ENTITY;
ENTITY Geometric_Representation_Context_With_Parameter SUBTYPE OF (Geometric_Representation_Context); parameter_unit : OPTIONAL Unit; END_ENTITY;
ENTITY Geometric_Representation_Item SUPERTYPE OF ((ONEOF(Point, Direction, Vector, Placement, Cartesian_Transformation_Operator, Curve, Surface, Edge_Curve, Face_Surface, Poly_Loop, Vertex_Point, Solid_Model, Boolean_Result, Sphere, Right_Circular_Cone, Right_Circular_Cylinder, Torus, Block, Primitive_2d, Right_Angular_Wedge, Ellipsoid, Faceted_Primitive, Rectangular_Pyramid, Cyclide_Segment_Solid, Volume, Half_Space_Solid, Shell_Based_Surface_Model, Face_Based_Surface_Model, Shell_Based_Wireframe_Model, Edge_Based_Wireframe_Model, Geometric_Set, Tessellated_Item, Volume_With_Faces, Scanned_Data_Item)) ANDOR ((ONEOF(Annotation_Fill_Area, Curve, Point, Text_Literal))) ANDOR ((ONEOF(Camera_Model, Curve, Direction))) ANDOR ((ONEOF(Curve, Externally_Defined_Hatch_Style, Externally_Defined_Tile_Style, Fill_Area_Style_Hatching, Fill_Area_Style_Tile_Symbol_With_Style, Fill_Area_Style_Tiles, One_Direction_Repeat_Factor, Point, Vector))) ANDOR ((ONEOF(Curve, Planar_Extent))) ANDOR (ONEOF(Kinematic_Path, Placement)) ANDOR (ONEOF(Rotation_About_Direction, Su_Parameters))) SUBTYPE OF (Representation_Item); DERIVE dim : Dimension_Count := Dimension_Of(SELF); WHERE WR1: SIZEOF(QUERY(using_rep <* Using_Representations(SELF) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(using_rep.context_of_items)))) = 0; END_ENTITY;
ENTITY Geometric_Set SUBTYPE OF (Geometric_Representation_Item); elements : SET [1 : ?] OF Geometric_Set_Select; END_ENTITY;
ENTITY Geometric_Tolerance ABSTRACT SUPERTYPE OF (Geometric_Tolerance_With_Datum_Reference ANDOR Geometric_Tolerance_With_Defined_Unit ANDOR ONEOF(Geometric_Tolerance_With_Modifiers, Modified_Geometric_Tolerance) ANDOR Unequally_Disposed_Geometric_Tolerance ANDOR ONEOF(Cylindricity_Tolerance, Flatness_Tolerance, Line_Profile_Tolerance, Position_Tolerance, Roundness_Tolerance, Straightness_Tolerance, Surface_Profile_Tolerance)); name : Label; description : OPTIONAL Text; magnitude : OPTIONAL Length_Measure_With_Unit; toleranced_shape_aspect : Geometric_Tolerance_Target; DERIVE controlling_shape : Product_Definition_Shape := Sts_Get_Product_Definition_Shape(toleranced_shape_aspect); id : Identifier := Get_Id_Value(SELF); INVERSE auxiliary_classification : SET [0:?] OF Geometric_Tolerance_Auxiliary_Classification FOR described_item; tolerance_relationship : SET [0:?] OF Geometric_Tolerance_Relationship FOR relating_geometric_tolerance; UNIQUE UR1: id, controlling_shape; WHERE WR1: magnitude\Measure_With_Unit.value_component >= 0.0; WR2: EXISTS(controlling_shape); WR3: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP' IN TYPEOF(toleranced_shape_aspect)) OR (toleranced_shape_aspect\Shape_Aspect_Relationship.relating_shape_aspect.of_shape :=: toleranced_shape_aspect\Shape_Aspect_Relationship.related_shape_aspect.of_shape); WR4: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; WR5: SIZEOF(QUERY(tr <* tolerance_relationship | tr.name = 'composite tolerance')) <= 1; END_ENTITY;
ENTITY Geometric_Tolerance_Auxiliary_Classification; attribute_value : Geometric_Tolerance_Auxiliary_Classification_Enum; described_item : Geometric_Tolerance; END_ENTITY;
ENTITY Geometric_Tolerance_Relationship; name : Label; description : Text; relating_geometric_tolerance : Geometric_Tolerance; related_geometric_tolerance : Geometric_Tolerance; WHERE WR1: NOT (name = 'composite tolerance') OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' IN TYPEOF(relating_geometric_tolerance)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' IN TYPEOF(related_geometric_tolerance))) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' IN TYPEOF(relating_geometric_tolerance)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' IN TYPEOF(related_geometric_tolerance))) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' IN TYPEOF(relating_geometric_tolerance)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' IN TYPEOF(related_geometric_tolerance))); WR2: NOT (name = 'composite tolerance') OR (relating_geometric_tolerance\Geometric_Tolerance.toleranced_shape_aspect :=: related_geometric_tolerance\Geometric_Tolerance.toleranced_shape_aspect); WR3: Acyclic_Geometric_Tolerance_Relationship(SELF, [related_geometric_tolerance], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE'); END_ENTITY;
ENTITY Geometric_Tolerance_With_Datum_Reference SUPERTYPE OF (ONEOF(Angularity_Tolerance, Circular_Runout_Tolerance, Coaxiality_Tolerance, Concentricity_Tolerance, Parallelism_Tolerance, Perpendicularity_Tolerance, Symmetry_Tolerance, Total_Runout_Tolerance)) SUBTYPE OF (Geometric_Tolerance); datum_system : SET [1 : ?] OF Datum_System_Or_Reference; WHERE WR1: (SIZEOF(QUERY(ds <* Datum_System | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_SYSTEM' IN TYPEOF(ds))) = 0) OR (SIZEOF(Datum_System) = 1); END_ENTITY;
ENTITY Geometric_Tolerance_With_Defined_Area_Unit SUBTYPE OF (Geometric_Tolerance_With_Defined_Unit); area_type : Area_Unit_Type; second_unit_size : OPTIONAL Length_Or_Plane_Angle_Measure_With_Unit_Select; WHERE WR1: NOT (EXISTS(second_unit_size) XOR (area_type IN [Area_Unit_Type.Rectangular,Area_Unit_Type.Cylindrical,Area_Unit_Type.Spherical])); WR2: NOT (area_type = Area_Unit_Type.Cylindrical) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(second_unit_size)); WR3: NOT (area_type = Area_Unit_Type.Rectangular) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(second_unit_size)); WR4: NOT (area_type = Area_Unit_Type.Spherical) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(unit_size)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(second_unit_size)); WR5: NOT (area_type = Area_Unit_Type.Spherical) OR (SIZEOF(QUERY(tz <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOLERANCE_ZONE.DEFINING_TOLERANCE') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_TOLERANCE_ZONE' IN TYPEOF(tz)))) <> 0); END_ENTITY;
ENTITY Geometric_Tolerance_With_Defined_Unit SUBTYPE OF (Geometric_Tolerance); unit_size : Length_Or_Plane_Angle_Measure_With_Unit_Select; WHERE WR1: ('NUMBER' IN TYPEOF(unit_size\Measure_With_Unit.value_component)) AND (unit_size\Measure_With_Unit.value_component > 0.0); END_ENTITY;
ENTITY Geometric_Tolerance_With_Maximum_Tolerance SUBTYPE OF (Geometric_Tolerance_With_Modifiers); maximum_upper_tolerance : Length_Measure_With_Unit; WHERE WR1: (Geometric_Tolerance_Modifier.Maximum_Material_Requirement IN SELF\Geometric_Tolerance_With_Modifiers.modifiers) OR (Geometric_Tolerance_Modifier.Least_Material_Requirement IN SELF\Geometric_Tolerance_With_Modifiers.modifiers); WR2: (maximum_upper_tolerance\Measure_With_Unit.unit_component = SELF\Geometric_Tolerance.magnitude\Measure_With_Unit.unit_component) AND (maximum_upper_tolerance\Measure_With_Unit.value_component > SELF\Geometric_Tolerance.magnitude\Measure_With_Unit.value_component); END_ENTITY;
ENTITY Geometric_Tolerance_With_Modifiers SUBTYPE OF (Geometric_Tolerance); modifiers : SET [1 : ?] OF Geometric_Tolerance_Modifier; WHERE WR1: NOT (Geometric_Tolerance_Modifier.Circle_A IN modifiers) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(SELF\Geometric_Tolerance.toleranced_shape_aspect)) AND (SELF\Geometric_Tolerance.toleranced_shape_aspect\Shape_Aspect.product_definitional = TRUE) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN TYPEOF(SELF\Geometric_Tolerance.toleranced_shape_aspect))); END_ENTITY;
ENTITY Geometrical_Tolerance_Callout SUBTYPE OF (Draughting_Callout); END_ENTITY;
ENTITY Geometrically_Bounded_2d_Wireframe_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SELF.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 2; WR2: SIZEOF(QUERY(item <* SELF.items | NOT (SIZEOF(TYPEOF(item) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM']) = 1))) = 0; WR3: SIZEOF(QUERY(item <* SELF.items | SIZEOF(TYPEOF(item) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM']) = 1)) >= 1; WR4: SIZEOF(QUERY(mi <* QUERY(item <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(item))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)))) = 0; WR5: SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(item))) | NOT (SIZEOF(QUERY(elem <* gcs\Geometric_Set.elements | NOT (SIZEOF(TYPEOF(elem) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_2D', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE']) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(item))) | NOT (SIZEOF(QUERY(crv <* QUERY(elem <* gcs\Geometric_Set.elements | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(elem))) | NOT (Valid_Basis_Curve_In_2d_Wireframe(crv)))) = 0))) = 0; WR7: SIZEOF(QUERY(gcs <* QUERY(item <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(item))) | NOT (SIZEOF(QUERY(pnt <* QUERY(elem <* gcs\Geometric_Set.elements | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(elem))) | NOT (SIZEOF(TYPEOF(pnt) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE']) = 1))) = 0))) = 0; END_ENTITY;
ENTITY Geometrically_Bounded_Surface_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; WR3: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)) AND (SIZEOF(QUERY(mr_it <* mi\Mapped_Item.mapping_source.mapped_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN TYPEOF(mr_it)))) > 0)))) = 0; WR4: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(pnt <* QUERY(gsel <* gs\Geometric_Set.elements | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(gsel)) | NOT (Gbsf_Check_Point(pnt)))) = 0))) = 0; WR5: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cv <* QUERY(gsel <* gs\Geometric_Set.elements | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(gsel)) | NOT (Gbsf_Check_Curve(cv)))) = 0))) = 0; WR6: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(sf <* QUERY(gsel <* gs\Geometric_Set.elements | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(gsel)) | NOT (Gbsf_Check_Surface(sf)))) = 0))) = 0; WR7: SIZEOF(QUERY(gs <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_SET' IN TYPEOF(it)) | SIZEOF(QUERY(gsel <* gs\Geometric_Set.elements | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(gsel))) > 0)) > 0; END_ENTITY;
ENTITY Geometrically_Bounded_Wireframe_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(TYPEOF(it) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM']) = 1))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | (SIZEOF(TYPEOF(it) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM']) = 1))) >= 1; WR3: SIZEOF(QUERY(gcs <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(crv <* QUERY(elem <* gcs\Geometric_Set.elements | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(elem))) | NOT Valid_Geometrically_Bounded_Wf_Curve(crv))) = 0))) = 0; WR4: SIZEOF(QUERY(gcs <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(pnts <* QUERY(elem <* gcs\Geometric_Set.elements | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(elem))) | NOT Valid_Geometrically_Bounded_Wf_Point(pnts))) = 0))) = 0; WR5: SIZEOF(QUERY(gcs <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(cnc <* QUERY(elem <* gcs\Geometric_Set.elements | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' IN TYPEOF(elem))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(cnc\Conic.position)))) = 0))) = 0; WR6: SIZEOF(QUERY(gcs <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_CURVE_SET' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(pline <* QUERY(elem <* gcs\Geometric_Set.elements | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(elem))) | NOT (SIZEOF(pline\Polyline.points) > 2))) = 0))) = 0; WR7: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)))) = 0; END_ENTITY;
ENTITY Geometry_With_Local_Irregularity ABSTRACT SUPERTYPE OF (ONEOF(Extreme_Patch_Width_Variation, Zero_Surface_Normal, Abrupt_Change_Of_Surface_Normal)) SUBTYPE OF (Inapt_Geometry); END_ENTITY;
ENTITY Geometry_With_Local_Near_Degeneracy ABSTRACT SUPERTYPE OF (ONEOF(Curve_With_Small_Curvature_Radius, Short_Length_Curve_Segment, Surface_With_Small_Curvature_Radius, Small_Area_Surface_Patch, Narrow_Surface_Patch, Indistinct_Surface_Knots, Indistinct_Curve_Knots, Nearly_Degenerate_Surface_Boundary, Nearly_Degenerate_Surface_Patch)) SUBTYPE OF (Inapt_Geometry); END_ENTITY;
ENTITY Global_Assignment SUBTYPE OF (Representation_Item_Relationship); END_ENTITY;
ENTITY Global_Uncertainty_Assigned_Context SUBTYPE OF (Representation_Context); uncertainty : SET [1 : ?] OF Uncertainty_Measure_With_Unit; END_ENTITY;
ENTITY Global_Unit_Assigned_Context SUBTYPE OF (Representation_Context); units : SET [1 : ?] OF Unit; END_ENTITY;
ENTITY Gps_Filter; filter_type : Gps_Filtration_Type; filter_data : LIST [1 : ?] OF Measure_With_Unit; INVERSE owner : Gps_Filtration_Specification FOR filter_data; WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_MODIFIERS' IN TYPEOF(owner\Gps_Filtration_Specification.base_target)) OR (SIZEOF([Geometric_Tolerance_Modifier.Reference_Minimax_Feature_Without_Constraint, Geometric_Tolerance_Modifier.Reference_Minimax_Feature_With_External_Material_Constraint, Geometric_Tolerance_Modifier.Reference_Minimax_Feature_With_Internal_Material_Constraint, Geometric_Tolerance_Modifier.Reference_Least_Square_Feature_Without_Constraint, Geometric_Tolerance_Modifier.Reference_Least_Square_Feature_With_External_Material_Constraint, Geometric_Tolerance_Modifier.Reference_Least_Square_Feature_With_Internal_Material_Constraint, Geometric_Tolerance_Modifier.Reference_Minimum_Circumscribed_Feature, Geometric_Tolerance_Modifier.Reference_Maximum_Inscribed_Feature, Geometric_Tolerance_Modifier.Total_Range_Deviations, Geometric_Tolerance_Modifier.Peak_Height, Geometric_Tolerance_Modifier.Valley_Depth, Geometric_Tolerance_Modifier.Standard_Deviation] * owner\Gps_Filtration_Specification.base_target\Geometric_Tolerance_With_Modifiers.modifiers) <> 0); END_ENTITY;
ENTITY Gps_Filtration_Specification; base_target : Gps_Filtration_Specification_Target; filter_data : LIST [1 : ?] OF Gps_Filter; END_ENTITY;
ENTITY Ground_Fact SUBTYPE OF (Atomic_Formula); END_ENTITY;
ENTITY Group SUPERTYPE OF (ONEOF(Change_Group, Change_Element)); name : Label; description : OPTIONAL Text; DERIVE id : Identifier := Get_Id_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Group_Assignment ABSTRACT SUPERTYPE OF (ONEOF(Current_Change_Element_Assignment, Previous_Change_Element_Assignment, Change_Group_Assignment)); assigned_group : Group; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Group_Relationship; name : Label; description : OPTIONAL Text; relating_group : Group; related_group : Group; END_ENTITY;
ENTITY Half_Space_2d SUBTYPE OF (Primitive_2d); base_curve : Curve; agreement_flag : BOOLEAN; END_ENTITY;
ENTITY Half_Space_Solid SUBTYPE OF (Geometric_Representation_Item); base_surface : Surface; agreement_flag : BOOLEAN; END_ENTITY;
ENTITY Hardness_Representation SUBTYPE OF (Representation); WHERE WR1: ({2 <= SIZEOF(SELF.items) <= 4}) AND (SIZEOF(QUERY(i <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name IN ['measuring method','measuring position']))) + SIZEOF(QUERY(i <* items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * TYPEOF(i)) = 1) AND (i.name IN ['depth','hardness']))) = SIZEOF(SELF.items)); WR2: SIZEOF(QUERY(i <* SELF.items | i.name = 'measuring method')) = 1; WR3: SIZEOF(QUERY(i <* SELF.items | i.name = 'hardness')) = 1; WR4: SIZEOF(QUERY(i <* SELF.items | i.name = 'measuring position')) <= 1; WR5: SIZEOF(QUERY(i <* SELF.items | i.name = 'depth')) <= 1; WR6: (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF(QUERY(gpa <* USEDIN(pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition)) AND (gpa\General_Property_Association.base_definition\General_Property.name = 'surface_condition'))) = 1)) = 1); END_ENTITY;
ENTITY Harness_Node SUBTYPE OF (Shape_Aspect); END_ENTITY;
ENTITY Harness_Segment SUBTYPE OF (Shape_Aspect); END_ENTITY;
ENTITY Hexahedron_Volume SUBTYPE OF (Volume); points : LIST [8 : 8] OF Cartesian_Point; WHERE WR1: Above_Plane(points[1], points[2], points[3], points[4]) = 0.0; WR2: Above_Plane(points[5], points[8], points[7], points[6]) = 0.0; WR3: Above_Plane(points[1], points[4], points[8], points[5]) = 0.0; WR4: Above_Plane(points[4], points[3], points[7], points[8]) = 0.0; WR5: Above_Plane(points[3], points[2], points[6], points[7]) = 0.0; WR6: Above_Plane(points[1], points[5], points[6], points[2]) = 0.0; WR7: Same_Side([points[1],points[2],points[3]], [points[5],points[6],points[7],points[8]]); WR8: Same_Side([points[1],points[4],points[8]], [points[3],points[7],points[6],points[2]]); WR9: Same_Side([points[1],points[2],points[5]], [points[3],points[7],points[8],points[4]]); WR10: Same_Side([points[5],points[6],points[7]], [points[1],points[2],points[3],points[4]]); WR11: Same_Side([points[3],points[7],points[6]], [points[1],points[4],points[8],points[5]]); WR12: Same_Side([points[3],points[7],points[8]], [points[1],points[5],points[6],points[2]]); WR13: points[1].dim = 3; END_ENTITY;
ENTITY Hidden_Element_Over_Riding_Styled_Item SUBTYPE OF (Context_Dependent_Over_Riding_Styled_Item); SELF\context_dependent_over_riding_styled_item.style_context : LIST [1 : 1] OF Presentation_View; SELF\styled_item.item : Camera_Image; INVERSE container : SET [1:?] OF Presentation_View FOR items; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF(SELF.item\Mapped_Item.mapping_source.mapping_origin); END_ENTITY;
ENTITY Hierarchical_Interface_Connection SUBTYPE OF (Interface_Connection); END_ENTITY;
ENTITY High_Degree_Axi_Symmetric_Surface SUBTYPE OF (Overcomplex_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; approximation_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY High_Degree_Conic SUBTYPE OF (Overcomplex_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; approximation_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY High_Degree_Linear_Curve SUBTYPE OF (Overcomplex_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; approximation_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY High_Degree_Planar_Surface SUBTYPE OF (Overcomplex_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; approximation_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY High_Order_Kinematic_Pair ABSTRACT SUPERTYPE OF (ONEOF(Linear_Flexible_And_Planar_Curve_Pair, Point_On_Surface_Pair, Point_On_Planar_Curve_Pair, Planar_Curve_Pair, Surface_Pair)) SUBTYPE OF (Kinematic_Pair); WHERE WR1: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_2 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Hole_Bottom SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition)); WR2: (SELF.description IN ['through','flat','flat with radius','flat with taper','spherical','conical']); WR3: ((NOT (SELF.description = 'through')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 0)))) = 0)); WR4: ((NOT (SELF.description IN ['flat with radius','flat with taper','spherical','conical'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0)); WR5: ((NOT (SELF.description = 'flat')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 0)))) = 0)))) = 0)); WR6: ((NOT (SELF.description IN ['flat with radius','spherical'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0)); WR7: ((NOT (SELF.description = 'flat with taper')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = 0)))) = 0)); WR8: ((NOT (SELF.description = 'conical')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND (SIZEOF(impl_rep.used_representation.items) <= 2)))) = 0)))) = 0)); WR9: ((SELF.description = 'through') OR (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((sar.description = 'hole bottom usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) | ((fcr.name IN ['hole depth start','hole depth end'])))) >= 1)); WR10: ((NOT (SELF.description = 'flat with radius')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'corner radius')))) = 1)))) = 0)))) = 0)); WR11: ((NOT (SELF.description = 'spherical')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')))) = 1)))) = 0)))) = 0)); WR12: ((NOT (SELF.description = 'conical')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tip radius')))) <= 1)))) = 0)))) = 0)); WR13: ((NOT (SELF.description = 'conical')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tip angle')))) = 1)))) = 0)))) = 0)); WR14: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((sar.description = 'hole bottom usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) | ((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HOLE_BOTTOM' IN TYPEOF(fcr.relating_shape_aspect))))) >= 1); WR15: ((NOT (SELF.description = 'flat with taper')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'final diameter')))) = 1)))) = 0)))) = 0)); WR16: ((NOT (SELF.description = 'flat with taper')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'taper diameter')))) = 1)))) = 0)))) = 0)); END_ENTITY;
ENTITY Hole_In_Panel SUBTYPE OF (Feature_Definition); WHERE WR1: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'hole profile') AND (sa.description = 'closed profile occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'profile usage') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * TYPEOF(sar.relating_shape_aspect)) = 1))) = 1))) = 1; WR2: SIZEOF(Get_Property_Definition_Representations(SELF)) = SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | SIZEOF(pdr.used_representation.items) = 1)); END_ENTITY;
ENTITY Homogeneous_Linear_Function SUBTYPE OF (Maths_Function, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Maths_Function; sum_index : One_Or_Two; DERIVE mat : Maths_Function := SELF\Unary_Generic_Expression.operand; WHERE WR1: Function_Is_2d_Table(mat); WR2: (Space_Dimension(mat.range) = 1) AND Subspace_Of_Es(Factor1(mat.range), Es_Numbers); END_ENTITY;
ENTITY Homokinetic_Pair SUBTYPE OF (Universal_Pair); WHERE WR1: NOT EXISTS(SELF.input_skew_angle); END_ENTITY;
ENTITY Hyperbola SUBTYPE OF (Conic); semi_axis : Positive_Length_Measure; semi_imag_axis : Positive_Length_Measure; END_ENTITY;
ENTITY Id_Attribute; attribute_value : Identifier; identified_item : Id_Attribute_Select; END_ENTITY;
ENTITY Identification_Assignment ABSTRACT SUPERTYPE; assigned_id : Identifier; role : Identification_Role; END_ENTITY;
ENTITY Identification_Assignment_Relationship; name : Label; description : OPTIONAL Text; relating_identification_assignment : Identification_Assignment; related_identification_assignment : Identification_Assignment; END_ENTITY;
ENTITY Identification_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Idrm_Classification_Assignment SUBTYPE OF (Classification_Assignment); items : SET [1 : ?] OF Idrm_Marked_Item; END_ENTITY;
ENTITY Illuminance_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ILLUMINANCE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Illuminance_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Lux); END_ENTITY;
ENTITY Implicit_Explicit_Positioned_Sketch_Relationship SUBTYPE OF (Representation_Item_Relationship); SELF\representation_item_relationship.relating_representation_item : Repositioned_Neutral_Sketch; SELF\representation_item_relationship.related_representation_item : Positioned_Sketch; WHERE WR1: SIZEOF(QUERY(q <* Using_Representations(SELF\Representation_Item_Relationship.related_representation_item) | Item_In_Context(SELF\Representation_Item_Relationship.relating_representation_item, q.context_of_items))) > 0; END_ENTITY;
ENTITY Implicit_Intersection_Curve SUBTYPE OF (Implicit_Planar_Curve); external_surface : Surface; END_ENTITY;
ENTITY Implicit_Model_Intersection_Curve SUBTYPE OF (Implicit_Planar_Curve); intersected_model : Surface_Or_Solid_Model; END_ENTITY;
ENTITY Implicit_Planar_Curve ABSTRACT SUPERTYPE OF (ONEOF(Implicit_Intersection_Curve, Implicit_Projected_Curve, Implicit_Model_Intersection_Curve, Implicit_Silhouette_Curve)) SUBTYPE OF (Curve, Auxiliary_Geometric_Representation_Item); using_sketch : Positioned_Sketch; computed_representation : Curve; DERIVE curve_plane : Plane := Get_Plane_Of_Implicit_Geometry(using_sketch); WHERE WR1: SIZEOF(TYPEOF(computed_representation) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.IMPLICIT_PLANAR_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA']) = 0; END_ENTITY;
ENTITY Implicit_Planar_Intersection_Point SUBTYPE OF (Implicit_Point_On_Plane); external_curve : Curve; END_ENTITY;
ENTITY Implicit_Planar_Projection_Point SUBTYPE OF (Implicit_Point_On_Plane); external_point : Point; projection_direction : Direction; END_ENTITY;
ENTITY Implicit_Point_On_Plane ABSTRACT SUPERTYPE OF (ONEOF(Implicit_Planar_Intersection_Point, Implicit_Planar_Projection_Point)) SUBTYPE OF (Point, Auxiliary_Geometric_Representation_Item); using_sketch : Positioned_Sketch; computed_representation : Cartesian_Point; DERIVE plane_of_point : Plane := Get_Plane_Of_Implicit_Geometry(using_sketch); WHERE WR1: (plane_of_point\Elementary_Surface.position.Location = computed_representation) XOR (Dot_Product(plane_of_point\Elementary_Surface.position.p[3], Get_Relative_Direction_2points(plane_of_point\Elementary_Surface.position.Location, computed_representation)) = 0); WR2: SIZEOF(TYPEOF(computed_representation) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.IMPLICIT_POINT_ON_PLANE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPLICA']) = 0; END_ENTITY;
ENTITY Implicit_Projected_Curve SUBTYPE OF (Implicit_Planar_Curve); external_curve : Curve; projection_direction : Direction; END_ENTITY;
ENTITY Implicit_Silhouette_Curve SUBTYPE OF (Implicit_Planar_Curve); silhouetted_model : Surface_Or_Solid_Model; view_direction : Direction; END_ENTITY;
ENTITY Imported_Curve_Function SUBTYPE OF (Maths_Function, Generic_Literal); geometry : Curve; parametric_domain : Tuple_Space; WHERE WR1: Expression_Is_Constant(parametric_domain); END_ENTITY;
ENTITY Imported_Point_Function SUBTYPE OF (Maths_Function, Generic_Literal); geometry : Point; END_ENTITY;
ENTITY Imported_Surface_Function SUBTYPE OF (Maths_Function, Generic_Literal); geometry : Surface; parametric_domain : Tuple_Space; WHERE WR1: Expression_Is_Constant(parametric_domain); END_ENTITY;
ENTITY Imported_Volume_Function SUBTYPE OF (Maths_Function, Generic_Literal); geometry : Volume; parametric_domain : Tuple_Space; WHERE WR1: Expression_Is_Constant(parametric_domain); END_ENTITY;
ENTITY In_Zone SUBTYPE OF (Group); END_ENTITY;
ENTITY Inappropriate_Element_Visibility SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM']); END_ENTITY;
ENTITY Inappropriate_Use_Of_Layer SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT']); END_ENTITY;
ENTITY Inapt_Data ABSTRACT SUPERTYPE OF (ONEOF(Inapt_Topology, Inapt_Geometry, Inapt_Topology_And_Geometry_Relationship, Inapt_Manifold_Solid_Brep)) SUBTYPE OF (Shape_Data_Quality_Criterion); END_ENTITY;
ENTITY Inapt_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Nearly_Degenerate_Geometry, Discontinuous_Geometry, Self_Intersecting_Geometry, Geometry_With_Local_Near_Degeneracy, Overlapping_Geometry, Multiply_Defined_Geometry, Geometry_With_Local_Irregularity, Overcomplex_Geometry)) SUBTYPE OF (Inapt_Data); END_ENTITY;
ENTITY Inapt_Manifold_Solid_Brep ABSTRACT SUPERTYPE OF (ONEOF(Partly_Overlapping_Solids, Small_Volume_Solid, Multiply_Defined_Solids, Entirely_Narrow_Solid, Solid_With_Excessive_Number_Of_Voids)) SUBTYPE OF (Inapt_Data); END_ENTITY;
ENTITY Inapt_Topology ABSTRACT SUPERTYPE OF (ONEOF(Free_Edge, Non_Manifold_At_Edge, Non_Manifold_At_Vertex, Over_Used_Vertex)) SUBTYPE OF (Inapt_Data); END_ENTITY;
ENTITY Inapt_Topology_And_Geometry_Relationship ABSTRACT SUPERTYPE OF (ONEOF(Topology_Related_To_Nearly_Degenerate_Geometry, Geometric_Gap_In_Topology, Non_Smooth_Geometry_Transition_Across_Edge, Topology_Related_To_Self_Intersecting_Geometry, Steep_Geometry_Transition_Across_Edge, Topology_Related_To_Overlapping_Geometry, Topology_Related_To_Multiply_Defined_Geometry, Overcomplex_Topology_And_Geometry_Relationship)) SUBTYPE OF (Inapt_Data); END_ENTITY;
ENTITY Incidence_Assembly_Constraint SUBTYPE OF (Binary_Assembly_Constraint, Incidence_Geometric_Constraint); END_ENTITY;
ENTITY Incidence_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Geometric_Constraint_Element; SELF\explicit_constraint.reference_elements : SET [0 : ?] OF Geometric_Constraint_Element; near_points : SET [0 : ?] OF Near_Point_Relationship; WHERE WR1: (SIZEOF(SELF\Explicit_Constraint.reference_elements) > 0) OR (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 2); WR2: SIZEOF(near_points) <= SIZEOF(SELF\Explicit_Constraint.reference_elements); WR3: SIZEOF(QUERY(q <* near_points | NOT (q\Representation_Item_Relationship.relating_representation_item IN SELF\Explicit_Constraint.reference_elements))) = 0; END_ENTITY;
ENTITY Included_Text_Block SUBTYPE OF (Mapped_Item); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRUCTURED_TEXT_REPRESENTATION' IN TYPEOF(SELF\Mapped_Item.mapping_source.mapped_representation); END_ENTITY;
ENTITY Inclusion_Product_Concept_Feature SUBTYPE OF (Conditional_Concept_Feature); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(SELF)); WR2: SIZEOF(QUERY(cfr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr))) + SIZEOF(QUERY(cfr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr))) = 0; WR3: SELF.Condition.conditional_operator.name = 'implication'; END_ENTITY;
ENTITY Inconsistent_Adjacent_Face_Normals SUBTYPE OF (Erroneous_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_OR_OPEN_SHELL_SELECT']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Inconsistent_Curve_Transition_Code SUBTYPE OF (Erroneous_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; angle_tolerance : Plane_Angle_Measure; curvature_ratio_tolerance : Ratio_Measure; distance_tolerance : Length_Measure; flat_curvature_radius_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE_TRANSITION_LOCATOR']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Inconsistent_Edge_And_Curve_Directions SUBTYPE OF (Erroneous_Topology_And_Geometry_Relationship); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; distance_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Inconsistent_Element_Reference SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM']); END_ENTITY;
ENTITY Inconsistent_Face_And_Closed_Shell_Normals SUBTYPE OF (Erroneous_Topology_And_Geometry_Relationship); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Inconsistent_Face_And_Surface_Normals SUBTYPE OF (Erroneous_Topology_And_Geometry_Relationship); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Inconsistent_Surface_Transition_Code SUBTYPE OF (Erroneous_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; angle_tolerance : Plane_Angle_Measure; curvature_ratio_tolerance : Ratio_Measure; distance_tolerance : Length_Measure; flat_curvature_radius_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE_TRANSITION_LOCATOR']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Index_Expression SUBTYPE OF (String_Expression, Binary_Generic_Expression); DERIVE operand : Generic_Expression := SELF\Binary_Generic_Expression.operands[1]; index : Generic_Expression := SELF\Binary_Generic_Expression.operands[2]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(operand)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(index)); WR2: Is_Int_Expr(index); END_ENTITY;
ENTITY Indirectly_Selected_Elements SUBTYPE OF (User_Selected_Elements); indirectly_picked_items : SET [1 : ?] OF Representation_Item; END_ENTITY;
ENTITY Indirectly_Selected_Shape_Elements SUBTYPE OF (Indirectly_Selected_Elements, User_Selected_Shape_Elements); SELF\indirectly_selected_elements.indirectly_picked_items : SET [1 : ?] OF Shape_Representation_Item; END_ENTITY;
ENTITY Indistinct_Curve_Knots SUBTYPE OF (Geometry_With_Local_Near_Degeneracy); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_KNOT_LOCATOR']); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Indistinct_Surface_Knots SUBTYPE OF (Geometry_With_Local_Near_Degeneracy); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARAMETER_VALUE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_WITH_KNOTS']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_KNOT_LOCATOR']); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Inductance_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INDUCTANCE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Inductance_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Henry); END_ENTITY;
ENTITY Information_Right SUBTYPE OF (Action_Method); END_ENTITY;
ENTITY Information_Usage_Right SUBTYPE OF (Action_Method); END_ENTITY;
ENTITY Instance_Attribute_Reference SUBTYPE OF (Variable_Semantics); attribute_name : Attribute_Identifier; owning_instance : Representation_Item; END_ENTITY;
ENTITY Instance_Report_Item_With_Extreme_Instances SUBTYPE OF (Shape_Data_Quality_Inspection_Instance_Report_Item); extreme_instances : LIST [1 : ?] OF Extreme_Instance; END_ENTITY;
ENTITY Instance_Usage_Context_Assignment SUBTYPE OF (Product_Definition_Context); items : SET [1 : ?] OF Instance_Usage_Context_Select; END_ENTITY;
ENTITY Instanced_Feature SUBTYPE OF (Feature_Definition, Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.product_definitional; END_ENTITY;
ENTITY Int_Literal SUBTYPE OF (Literal_Number); SELF\literal_number.the_value : INTEGER; END_ENTITY;
ENTITY Int_Numeric_Variable SUBTYPE OF (Numeric_Variable); END_ENTITY;
ENTITY Int_Value_Function SUBTYPE OF (Value_Function); END_ENTITY;
ENTITY Integer_Defined_Function ABSTRACT SUPERTYPE SUBTYPE OF (Numeric_Defined_Function); END_ENTITY;
ENTITY Integer_Interval_From_Min SUBTYPE OF (Maths_Space, Generic_Literal); min : INTEGER; END_ENTITY;
ENTITY Integer_Interval_To_Max SUBTYPE OF (Maths_Space, Generic_Literal); max : INTEGER; END_ENTITY;
ENTITY Integer_Representation_Item SUBTYPE OF (Representation_Item, Int_Literal); END_ENTITY;
ENTITY Integer_Tuple_Literal SUBTYPE OF (Generic_Literal); lit_value : LIST [1 : ?] OF INTEGER; END_ENTITY;
ENTITY Interface_Component SUBTYPE OF (Physical_Component); END_ENTITY;
ENTITY Interface_Connection SUBTYPE OF (Group); END_ENTITY;
ENTITY Interface_Connector_As_Planned SUBTYPE OF (Product_Definition_Formation); END_ENTITY;
ENTITY Interface_Connector_As_Realized SUBTYPE OF (Product_Definition_Formation); END_ENTITY;
ENTITY Interface_Connector_Definition SUBTYPE OF (Product_Definition); END_ENTITY;
ENTITY Interface_Connector_Design SUBTYPE OF (Product_Definition_Formation); END_ENTITY;
ENTITY Interface_Connector_Design_To_Planned SUBTYPE OF (Product_Definition_Formation_Relationship); SELF\product_definition_formation_relationship.relating_product_definition_formation : Interface_Connector_Design; SELF\product_definition_formation_relationship.related_product_definition_formation : Interface_Connector_As_Planned; WHERE WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; END_ENTITY;
ENTITY Interface_Connector_Design_To_Realized SUBTYPE OF (Product_Definition_Formation_Relationship); SELF\product_definition_formation_relationship.relating_product_definition_formation : Interface_Connector_Design; SELF\product_definition_formation_relationship.related_product_definition_formation : Interface_Connector_As_Realized; WHERE WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; END_ENTITY;
ENTITY Interface_Connector_Occurrence SUBTYPE OF (Group); END_ENTITY;
ENTITY Interface_Connector_Planned_To_Realized SUBTYPE OF (Product_Definition_Formation_Relationship); SELF\product_definition_formation_relationship.relating_product_definition_formation : Interface_Connector_As_Planned; SELF\product_definition_formation_relationship.related_product_definition_formation : Interface_Connector_As_Realized; WHERE WR1: SELF.relating_product_definition_formation.of_product :=: SELF.related_product_definition_formation.of_product; END_ENTITY;
ENTITY Interface_Connector_Version SUBTYPE OF (Product_Definition_Formation); END_ENTITY;
ENTITY Interface_Definition_Connection SUBTYPE OF (Product_Definition_Relationship); END_ENTITY;
ENTITY Interface_Definition_For SUBTYPE OF (Product_Definition_Relationship); END_ENTITY;
ENTITY Interface_Specification_Definition SUBTYPE OF (Product_Definition); END_ENTITY;
ENTITY Interface_Specification_Version SUBTYPE OF (Product_Definition_Formation); END_ENTITY;
ENTITY Interfaced_Group_Component SUBTYPE OF (Assembly_Group_Component); END_ENTITY;
ENTITY Interpolated_Configuration_Representation SUBTYPE OF (Representation); SELF\representation.context_of_items : Geometric_Representation_Context_With_Parameter; SELF\representation.items : SET [1 : ?] OF Interpolated_Configuration_Sequence; END_ENTITY;
ENTITY Interpolated_Configuration_Segment SUBTYPE OF (Founded_Item); state : Mechanism_State_Representation; t_parameter : Parameter_Value; interpolation : Interpolation_Type; END_ENTITY;
ENTITY Interpolated_Configuration_Sequence SUBTYPE OF (Geometric_Representation_Item); segments : LIST [2 : ?] OF Interpolated_Configuration_Segment; DERIVE n_segments : INTEGER := SIZEOF(segments); closed_interpolation : LOGICAL := segments[n_segments].interpolation <> Discontinuous_Interpolation_Type; configured_mechanism : Mechanism_Representation := segments[1].state.represented_mechanism; WHERE WR1: SIZEOF(QUERY(ics <* segments | ics.state.represented_mechanism :<>: configured_mechanism)) = 0; END_ENTITY;
ENTITY Intersecting_Connected_Face_Sets SUBTYPE OF (Topology_Related_To_Self_Intersecting_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; interference_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE']); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Intersecting_Loops_In_Face SUBTYPE OF (Erroneous_Topology_And_Geometry_Relationship); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; interference_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Intersecting_Shells_In_Solid SUBTYPE OF (Erroneous_Manifold_Solid_Brep); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; interference_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Intersection_Curve SUBTYPE OF (Surface_Curve); WHERE WR1: SIZEOF(SELF\Surface_Curve.associated_geometry) = 2; WR2: Associated_Surface(SELF\Surface_Curve.associated_geometry[1]) <> Associated_Surface(SELF\Surface_Curve.associated_geometry[2]); END_ENTITY;
ENTITY Interval_Expression SUBTYPE OF (Boolean_Expression, Multiple_Arity_Generic_Expression); DERIVE interval_low : Generic_Expression := SELF\Multiple_Arity_Generic_Expression.operands[1]; interval_item : Generic_Expression := SELF\Multiple_Arity_Generic_Expression.operands[2]; interval_high : Generic_Expression := SELF\Multiple_Arity_Generic_Expression.operands[3]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF(interval_low)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF(interval_item)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPRESSION' IN TYPEOF(interval_high)); WR2: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_high)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_item))) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_item)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_high))); END_ENTITY;
ENTITY Invisibility; invisible_items : SET [1 : ?] OF Invisible_Item; END_ENTITY;
ENTITY Iso4217_Currency SUBTYPE OF (Currency); END_ENTITY;
ENTITY Item_Defined_Transformation; name : Label; description : OPTIONAL Text; transform_item_1 : Representation_Item; transform_item_2 : Representation_Item; END_ENTITY;
ENTITY Item_Identified_Representation_Usage; name : Label; description : OPTIONAL Text; definition : Item_Identified_Representation_Usage_Definition; used_representation : Representation; identified_item : Item_Identified_Representation_Usage_Select; UNIQUE UR1: used_representation, identified_item; UR2: used_representation, definition; WHERE WR1: NOT (SIZEOF(identified_item) = 1) OR (used_representation IN Using_Representations(identified_item)); WR2: NOT (SIZEOF(identified_item) > 1) OR (used_representation IN Get_Representations_For_Items(identified_item)); END_ENTITY;
ENTITY Item_Link_Motion_Relationship SUBTYPE OF (Link_Motion_Relationship); SELF\representation_relationship.rep_1 : Shape_Representation; item : Geometric_Representation_Item; END_ENTITY;
ENTITY Joggle SUBTYPE OF (Feature_Definition); WHERE WR1: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({5 <= SIZEOF(pdr.used_representation.items) <= 10}))) = 0; WR2: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | NOT (i.name IN ['orientation', 'base radius 1', 'base radius 2', 'direction angle 1', 'direction angle 2', 'height', 'slope angle 1', 'slope angle 2', 'top radius 1', 'top radius 2']))) > 0))) = 0; WR3: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'direction angle 1') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; WR4: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'direction angle 2') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; WR5: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'height') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; WR6: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'slope angle 1') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; WR7: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'slope angle 2') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; WR8: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'defining path') AND (sa.description = 'path feature component occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.description = 'path feature component usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sar.relating_shape_aspect)) AND (sar.relating_shape_aspect.description = 'linear'))) = 1))) = 1; WR9: SIZEOF(QUERY(sa <* Get_Shape_Aspects(SELF) | (sa.name = 'termination') AND (sa.description = 'joggle termination occurrence') AND (SIZEOF(QUERY(sar <* USEDIN(sa, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'joggle termination usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.JOGGLE_TERMINATION' IN TYPEOF(sar.relating_shape_aspect)))) = 1))) = 1; WR10: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'base radius 1') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; WR11: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'base radius 2') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; WR12: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'top radius 1') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; WR13: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'top radius 2') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; END_ENTITY;
ENTITY Joggle_Termination SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['value termination','face termination']; WR3: (SELF.description = 'value termination') XOR (SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 0); WR4: (SELF.description <> 'value termination') OR (SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 2))) = 1); WR5: (SELF.description <> 'value termination') OR (SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'depth') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); WR6: (SELF.description <> 'value termination') OR (SIZEOF(QUERY(pdr <* Get_Shape_Aspect_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'angle') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); WR7: SIZEOF(QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar.name = 'joggle termination usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.JOGGLE' IN TYPEOF(sar.related_shape_aspect.of_shape.definition)) AND (sar.related_shape_aspect.of_shape.definition\Characterized_Object.name = 'termination') AND (sar.related_shape_aspect.of_shape.definition\Characterized_Object.description = 'joggle termination occurrence'))) = 1; END_ENTITY;
ENTITY Kinematic_Analysis_Consistency; control : Kinematic_Control; result : Kinematic_Analysis_Result; WHERE WR1: control.controlled_mechanism :=: result.analysed_mechanism; END_ENTITY;
ENTITY Kinematic_Analysis_Result; analysed_mechanism : Mechanism_Representation; result : Kinematic_Result; END_ENTITY;
ENTITY Kinematic_Control; controlled_mechanism : Mechanism_Representation; contained_kinematic_programs : Kinematic_Analysis_Definition; END_ENTITY;
ENTITY Kinematic_Joint SUBTYPE OF (Edge); SELF\edge.edge_start : Kinematic_Link; SELF\edge.edge_end : Kinematic_Link; UNIQUE UR1: edge_start, edge_end; WHERE WR1: edge_start :<>: edge_end; END_ENTITY;
ENTITY Kinematic_Link SUBTYPE OF (Vertex); END_ENTITY;
ENTITY Kinematic_Link_Representation ABSTRACT SUPERTYPE OF (ONEOF(Linear_Flexible_Link_Representation, Rigid_Link_Representation)) SUBTYPE OF (Representation); SELF\representation.context_of_items : Geometric_Representation_Context; SELF\representation.items : SET [1 : ?] OF Kinematic_Link_Representation_Items; represented_link : Kinematic_Link; INVERSE associated_shape_representation : SET [0:1] OF Kinematic_Link_Representation_Association FOR rep_1; END_ENTITY;
ENTITY Kinematic_Link_Representation_Association SUBTYPE OF (Representation_Relationship); SELF\representation_relationship.rep_1 : Kinematic_Link_Representation; SELF\representation_relationship.rep_2 : Shape_Representation; WHERE WR1: (SELF\Representation_Relationship.rep_2.context_of_items :=: SELF\Representation_Relationship.rep_1.context_of_items) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Kinematic_Loop SUBTYPE OF (Edge_Loop); SELF\path.edge_list : LIST [1 : ?] OF UNIQUE Oriented_Joint; END_ENTITY;
ENTITY Kinematic_Pair ABSTRACT SUPERTYPE OF (ONEOF(High_Order_Kinematic_Pair, Low_Order_Kinematic_Pair_With_Motion_Coupling, Low_Order_Kinematic_Pair) ANDOR Actuated_Kinematic_Pair) SUBTYPE OF (Geometric_Representation_Item, Item_Defined_Transformation); joint : Kinematic_Joint; SELF\item_defined_transformation.transform_item_1 : Rigid_Placement; SELF\item_defined_transformation.transform_item_2 : Rigid_Placement; DERIVE associated_link_representations_1 : SET [1 : ?] OF Kinematic_Link_Representation := Sort_Link_Associations(link_representation_associations, TRUE); associated_link_representations_2 : SET [1 : ?] OF Kinematic_Link_Representation := Sort_Link_Associations(link_representation_associations, FALSE); SELF\item_defined_transformation.name : Label := SELF\Representation_Item.name; INVERSE link_representation_associations : SET [1:?] OF Pair_Representation_Relationship FOR transformation_operator; END_ENTITY;
ENTITY Kinematic_Path ABSTRACT SUPERTYPE OF (ONEOF(Kinematic_Path_Defined_By_Nodes, Kinematic_Path_Defined_By_Curves)) SUBTYPE OF (Geometric_Representation_Item); segments : LIST [1 : ?] OF Kinematic_Path_Segment; t_start : Parameter_Value; DERIVE n_segments : INTEGER := SIZEOF(segments); closed_path : LOGICAL := segments[n_segments].transition <> Discontinuous; WHERE WR1: SIZEOF(QUERY(using_rep <* Using_Representations(SELF) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT_WITH_PARAMETER' IN TYPEOF(using_rep.context_of_items)))) = 0; END_ENTITY;
ENTITY Kinematic_Path_Defined_By_Curves SUBTYPE OF (Kinematic_Path); SELF\kinematic_path.segments : LIST [1 : ?] OF Curve_Based_Path_With_Orientation; END_ENTITY;
ENTITY Kinematic_Path_Defined_By_Nodes SUBTYPE OF (Kinematic_Path); SELF\kinematic_path.segments : LIST [1 : ?] OF Path_Node; placement_start : Placement; END_ENTITY;
ENTITY Kinematic_Path_Segment ABSTRACT SUPERTYPE OF (ONEOF(Path_Node, Curve_Based_Path_With_Orientation)) SUBTYPE OF (Founded_Item); t_end : Parameter_Value; transition : Transition_Code; END_ENTITY;
ENTITY Kinematic_Property_Definition_Representation ABSTRACT SUPERTYPE OF (ONEOF(Kinematic_Property_Topology_Representation, Kinematic_Property_Mechanism_Representation)) SUBTYPE OF (Property_Definition_Representation); SELF\property_definition_representation.definition : Product_Definition_Kinematics; END_ENTITY;
ENTITY Kinematic_Property_Mechanism_Representation SUBTYPE OF (Kinematic_Property_Definition_Representation); SELF\property_definition_representation.used_representation : Mechanism_Representation; base : Kinematic_Link_Representation; WHERE WR1: SIZEOF(QUERY(i <* used_representation.items | (base :=: i\Representation_Relationship.rep_1) OR (base :=: i\Representation_Relationship.rep_2))) > 0; END_ENTITY;
ENTITY Kinematic_Property_Topology_Representation SUBTYPE OF (Kinematic_Property_Definition_Representation); SELF\property_definition_representation.used_representation : Kinematic_Topology_Representation_Select; base : Kinematic_Link; WHERE WR1: used_representation IN Using_Representations(base); END_ENTITY;
ENTITY Kinematic_Topology_Directed_Structure SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Oriented_Joint; parent : Kinematic_Topology_Structure; WHERE WR1: context_of_items :=: parent.context_of_items; WR2: Get_Kinematic_Joints_From_Oriented_Joints(items) <= parent.items; END_ENTITY;
ENTITY Kinematic_Topology_Network_Structure SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Kinematic_Loop; parent : Kinematic_Topology_Structure; WHERE WR1: context_of_items :=: parent.context_of_items; WR2: Get_Kinematic_Joints_From_Kinematic_Loops(items) <= parent.items; END_ENTITY;
ENTITY Kinematic_Topology_Structure SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Kinematic_Joint; WHERE WR1: SIZEOF(QUERY(item <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE' IN TYPEOF(item))) = 0; END_ENTITY;
ENTITY Kinematic_Topology_Substructure SUBTYPE OF (Kinematic_Topology_Structure); parent : Kinematic_Topology_Structure; WHERE WR1: context_of_items :=: parent.context_of_items; WR2: SELF\Kinematic_Topology_Structure.items <= parent\Kinematic_Topology_Structure.items; END_ENTITY;
ENTITY Kinematic_Topology_Tree_Structure SUBTYPE OF (Kinematic_Topology_Directed_Structure); END_ENTITY;
ENTITY Known_Source SUBTYPE OF (External_Source, Pre_Defined_Item); END_ENTITY;
ENTITY Laid_Defined_Transformation SUBTYPE OF (Transformation_With_Derived_Angle); END_ENTITY;
ENTITY Laid_Orientation_Angle SUBTYPE OF (Ply_Orientation_Angle); END_ENTITY;
ENTITY Laminate_Table SUPERTYPE OF (ONEOF(Part_Laminate_Table, Zone_Structural_Makeup)) SUBTYPE OF (Product_Definition); END_ENTITY;
ENTITY Language SUBTYPE OF (Group); WHERE WR1: SELF\Group.name <> ''; END_ENTITY;
ENTITY Leader_Curve SUBTYPE OF (Annotation_Curve_Occurrence); WHERE WR1: SIZEOF(QUERY(ldc <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT.CONTENTS') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF(ldc))) >= 1; END_ENTITY;
ENTITY Leader_Directed_Callout SUBTYPE OF (Draughting_Callout); WHERE WR1: SIZEOF(QUERY(l_1 <* SELF\Draughting_Callout.contents | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN (TYPEOF(l_1)))) >= 1; WR2: SIZEOF(SELF\Draughting_Callout.contents) >= 2; END_ENTITY;
ENTITY Leader_Directed_Dimension SUBTYPE OF (Leader_Directed_Callout); WHERE WR1: SIZEOF(QUERY(con <* SELF.contents | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN TYPEOF(con))) = 1; END_ENTITY;
ENTITY Leader_Terminator SUBTYPE OF (Terminator_Symbol); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_CURVE' IN TYPEOF(SELF\Terminator_Symbol.annotated_curve); END_ENTITY;
ENTITY Length_Function SUBTYPE OF (Numeric_Expression, Unary_Generic_Expression); SELF\unary_generic_expression.operand : String_Expression; END_ENTITY;
ENTITY Length_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Length_Unit SUBTYPE OF (Named_Unit); WHERE WR1: (SELF\Named_Unit.dimensions.length_exponent = 1.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 0.0) AND (SELF\Named_Unit.dimensions.time_exponent = 0.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 0.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY;
ENTITY Light_Source SUPERTYPE OF (ONEOF(Light_Source_Ambient, Light_Source_Directional, Light_Source_Positional, Light_Source_Spot)) SUBTYPE OF (Geometric_Representation_Item); light_colour : Colour; WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM.ITEM')) = 0; END_ENTITY;
ENTITY Light_Source_Ambient SUBTYPE OF (Light_Source); END_ENTITY;
ENTITY Light_Source_Directional SUBTYPE OF (Light_Source); orientation : Direction; END_ENTITY;
ENTITY Light_Source_Positional SUBTYPE OF (Light_Source); position : Cartesian_Point; constant_attenuation : REAL; distance_attenuation : REAL; END_ENTITY;
ENTITY Light_Source_Spot SUBTYPE OF (Light_Source); position : Cartesian_Point; orientation : Direction; concentration_exponent : REAL; constant_attenuation : REAL; distance_attenuation : REAL; spread_angle : Positive_Plane_Angle_Measure; END_ENTITY;
ENTITY Like_Expression SUBTYPE OF (Comparison_Expression); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\Binary_Generic_Expression.operands[1])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\Binary_Generic_Expression.operands[2])); END_ENTITY;
ENTITY Limits_And_Fits; form_variance : Label; zone_variance : Label; grade : Label; source : Text; END_ENTITY;
ENTITY Line SUBTYPE OF (Curve); pnt : Cartesian_Point; dir : Vector; WHERE WR1: dir.dim = pnt.dim; END_ENTITY;
ENTITY Line_Profile_Tolerance SUBTYPE OF (Geometric_Tolerance); END_ENTITY;
ENTITY Linear_Array_Component_Definition_Link SUBTYPE OF (Product_Definition, Product_Definition_Relationship); SELF\product_definition_relationship.relating_product_definition : Linear_Array_Placement_Group_Component; SELF\product_definition_relationship.related_product_definition : Linear_Array_Placement_Group_Component; WHERE WR1: SELF\Product_Definition_Relationship.related_product_definition :<>: SELF\Product_Definition_Relationship.relating_product_definition; WR2: Acyclic_Product_Definition_Relationship(SELF, [SELF\Product_Definition_Relationship.related_product_definition], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK'); END_ENTITY;
ENTITY Linear_Array_Placement_Group_Component SUBTYPE OF (Array_Placement_Group); END_ENTITY;
ENTITY Linear_Dimension SUBTYPE OF (Dimension_Curve_Directed_Callout); END_ENTITY;
ENTITY Linear_Flexible_And_Pinion_Pair SUBTYPE OF (Low_Order_Kinematic_Pair_With_Motion_Coupling); pinion_radius : Length_Measure; WHERE WR1: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Linear_Flexible_And_Planar_Curve_Pair SUBTYPE OF (High_Order_Kinematic_Pair); pair_curve : Curve; orientation : BOOLEAN; WHERE WR1: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT (pair_curve IN r.items))) = 0; WR2: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_FLEXIBLE_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Linear_Flexible_Link_Representation SUBTYPE OF (Kinematic_Link_Representation); END_ENTITY;
ENTITY Linear_Path SUBTYPE OF (Path_Node); DERIVE SELF\kinematic_path_segment.transition : Transition_Code := Continuous; END_ENTITY;
ENTITY Linear_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition)); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = 0)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) = 1)))) = 0)))) = 0); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'profile length')))) = 1)))) = 0)))) = 0); END_ENTITY;
ENTITY Linearized_Table_Function SUPERTYPE OF (ONEOF(Standard_Table_Function, Regular_Table_Function, Triangular_Matrix, Symmetric_Matrix, Banded_Matrix)) SUBTYPE OF (Explicit_Table_Function, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Maths_Function; first : INTEGER; DERIVE source : Maths_Function := SELF\Unary_Generic_Expression.operand; WHERE WR1: Function_Is_1d_Array(Source); WR2: Member_Of(first, Source\Maths_Function.domain); END_ENTITY;
ENTITY Link_Motion_Relationship SUBTYPE OF (Definitional_Representation_Relationship, Representation_Relationship_With_Transformation); SELF\representation_relationship.rep_1 : Link_Or_Shape_Representation; SELF\representation_relationship.rep_2 : Link_Motion_Representation_Along_Path; SELF\representation_relationship_with_transformation.transformation_operator : Link_Motion_Transformation; WHERE WR1: transformation_operator\Item_Defined_Transformation.transform_item_1 IN rep_1.items; WR2: transformation_operator\Item_Defined_Transformation.transform_item_2 IN rep_2.items; END_ENTITY;
ENTITY Link_Motion_Representation_Along_Path SUPERTYPE OF (ONEOF(Prescribed_Path, Resulting_Path)) SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Kinematic_Path; SELF\representation.context_of_items : Geometric_Representation_Context_With_Parameter; END_ENTITY;
ENTITY Link_Motion_Transformation SUBTYPE OF (Item_Defined_Transformation); SELF\item_defined_transformation.transform_item_1 : Rigid_Placement; SELF\item_defined_transformation.transform_item_2 : Kinematic_Path; END_ENTITY;
ENTITY Listed_Complex_Number_Data SUBTYPE OF (Explicit_Table_Function, Generic_Literal); values : LIST [2 : ?] OF REAL; DERIVE SELF\explicit_table_function.shape : LIST [1 : ?] OF Positive_Integer := [SIZEOF(values) DIV 2]; WHERE WR1: NOT ODD(SIZEOF(values)); END_ENTITY;
ENTITY Listed_Data SUBTYPE OF (Explicit_Table_Function, Generic_Literal); values : LIST [1 : ?] OF Maths_Value; value_range : Maths_Space; DERIVE SELF\explicit_table_function.shape : LIST [1 : ?] OF Positive_Integer := [SIZEOF(values)]; WHERE WR1: Expression_Is_Constant(Value_Range); WR2: SIZEOF(QUERY(val <* values | NOT (Member_Of(val, Value_Range)))) = 0; END_ENTITY;
ENTITY Listed_Integer_Data SUBTYPE OF (Explicit_Table_Function, Generic_Literal); values : LIST [1 : ?] OF INTEGER; DERIVE SELF\explicit_table_function.shape : LIST [1 : ?] OF Positive_Integer := [SIZEOF(values)]; END_ENTITY;
ENTITY Listed_Logical_Data SUBTYPE OF (Explicit_Table_Function, Generic_Literal); values : LIST [1 : ?] OF LOGICAL; DERIVE SELF\explicit_table_function.shape : LIST [1 : ?] OF Positive_Integer := [SIZEOF(values)]; END_ENTITY;
ENTITY Listed_Product_Space SUBTYPE OF (Maths_Space, Generic_Literal); factors : LIST OF Maths_Space; WHERE WR1: SIZEOF(QUERY(space <* factors | NOT (Expression_Is_Constant(space)))) = 0; WR2: No_Cyclic_Space_Reference(SELF, []); WR3: NOT (The_Empty_Space IN factors); END_ENTITY;
ENTITY Listed_Real_Data SUBTYPE OF (Explicit_Table_Function, Generic_Literal); values : LIST [1 : ?] OF REAL; DERIVE SELF\explicit_table_function.shape : LIST [1 : ?] OF Positive_Integer := [SIZEOF(values)]; END_ENTITY;
ENTITY Listed_String_Data SUBTYPE OF (Explicit_Table_Function, Generic_Literal); values : LIST [1 : ?] OF STRING; DERIVE SELF\explicit_table_function.shape : LIST [1 : ?] OF Positive_Integer := [SIZEOF(values)]; END_ENTITY;
ENTITY Literal_Conjunction SUBTYPE OF (Simple_Clause); END_ENTITY;
ENTITY Literal_Disjunction SUBTYPE OF (Simple_Clause); END_ENTITY;
ENTITY Literal_Number ABSTRACT SUPERTYPE OF (ONEOF(Int_Literal, Real_Literal)) SUBTYPE OF (Simple_Numeric_Expression, Generic_Literal); the_value : NUMBER; END_ENTITY;
ENTITY Local_B_Spline SUBTYPE OF (Representation_Item); degree : INTEGER; knots : LIST [2 : ?] OF INTEGER; multiplicities : LIST [2 : ?] OF INTEGER; WHERE WR1: degree > 0; WR2: SIZEOF(knots) = SIZEOF(multiplicities); WR3: Constraints_Param_Local_B_Spline(degree, knots, multiplicities); END_ENTITY;
ENTITY Local_Time; hour_component : Hour_In_Day; minute_component : OPTIONAL Minute_In_Hour; second_component : OPTIONAL Second_In_Minute; zone : Coordinated_Universal_Time_Offset; WHERE WR1: Valid_Time(SELF); END_ENTITY;
ENTITY Locally_Refined_Spline_Curve SUBTYPE OF (Bounded_Curve); b_splines : LIST [2 : ?] OF Local_B_Spline; knot_values : Spline_Knot_Values; control_points_list : LIST [2 : ?] OF Cartesian_Point; scaling_factors : LIST [2 : ?] OF REAL; closed_curve : LOGICAL; locally_refined_spline_type : Locally_Refined_Spline_Type_Enum; self_intersect : LOGICAL; domain : LIST [2 : 2] OF REAL; WHERE WR1: SIZEOF(b_splines) = SIZEOF(control_points_list); WR2: SIZEOF(scaling_factors) = SIZEOF(control_points_list); END_ENTITY;
ENTITY Locally_Refined_Spline_Surface SUBTYPE OF (Bounded_Surface); u_b_splines : LIST [4 : ?] OF Local_B_Spline; v_b_splines : LIST [4 : ?] OF Local_B_Spline; u_knots : Spline_Knot_Values; v_knots : Spline_Knot_Values; control_points_list : LIST [4 : ?] OF Cartesian_Point; scaling_factors : LIST [4 : ?] OF REAL; linearly_independent : Linearly_Independent_Enum; locally_refined_spline_type : Locally_Refined_Spline_Type_Enum; self_intersect : LOGICAL; u_closed : LOGICAL; v_closed : LOGICAL; domain : LIST [2 : 2] OF LIST [2 : 2] OF REAL; WHERE WR1: SIZEOF(u_b_splines) = SIZEOF(control_points_list); WR2: SIZEOF(v_b_splines) = SIZEOF(control_points_list); WR3: SIZEOF(scaling_factors) = SIZEOF(control_points_list); WR4: Constraints_Scaling(SELF.scaling_factors); END_ENTITY;
ENTITY Locally_Refined_Spline_Volume SUBTYPE OF (Volume); u_b_splines : LIST [8 : ?] OF Local_B_Spline; v_b_splines : LIST [8 : ?] OF Local_B_Spline; w_b_splines : LIST [8 : ?] OF Local_B_Spline; u_knots : Spline_Knot_Values; v_knots : Spline_Knot_Values; w_knots : Spline_Knot_Values; control_points_list : LIST [8 : ?] OF Cartesian_Point; scaling_factors : LIST [8 : ?] OF REAL; linearly_independent : Linearly_Independent_Enum; locally_refined_spline_type : Locally_Refined_Spline_Type_Enum; domain : LIST [3 : 3] OF LIST [2 : 2] OF REAL; WHERE WR1: SIZEOF(u_b_splines) = SIZEOF(control_points_list); WR2: SIZEOF(v_b_splines) = SIZEOF(control_points_list); WR3: SIZEOF(w_b_splines) = SIZEOF(control_points_list); WR4: SIZEOF(scaling_factors) = SIZEOF(control_points_list); WR5: Constraints_Scaling(SELF.scaling_factors); END_ENTITY;
ENTITY Location; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Location_Assignment ABSTRACT SUPERTYPE; id : Identifier; name : Label; description : OPTIONAL Text; assigned_location : Location; role : Location_Role; END_ENTITY;
ENTITY Location_In_Aggregate_Representation_Item SUBTYPE OF (Compound_Representation_Item); SELF\compound_representation_item.item_element : Location_In_Aggregate_Item; END_ENTITY;
ENTITY Location_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; relating_location : Location; related_location : Location; END_ENTITY;
ENTITY Location_Representation_Assignment ABSTRACT SUPERTYPE; id : Identifier; name : Label; description : OPTIONAL Text; represented_location : Location; role : Location_Representation_Role; END_ENTITY;
ENTITY Location_Representation_Role; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Location_Role; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Location_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: (SIZEOF(SELF.items) = 1); WR2: (SIZEOF(QUERY(it <* SELF.items | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(it))))) = 0); END_ENTITY;
ENTITY Locator SUBTYPE OF (Feature_Definition); WHERE WR1: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND NOT ({2 <= SIZEOF(pdr.used_representation.items) <= 5}))) = 0; WR2: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'diameter') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; WR3: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'tip radius') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; WR4: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'tip angle') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1; WR5: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | (i.name = 'base radius') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) <= 1; END_ENTITY;
ENTITY Log_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Log10_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Log2_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Logical_Literal SUBTYPE OF (Generic_Literal); lit_value : LOGICAL; END_ENTITY;
ENTITY Logical_Representation_Item SUBTYPE OF (Representation_Item, Logical_Literal); END_ENTITY;
ENTITY Loop SUPERTYPE OF (ONEOF(Vertex_Loop, Edge_Loop, Poly_Loop)) SUBTYPE OF (Topological_Representation_Item); END_ENTITY;
ENTITY Loss_Tangent_Measure_With_Unit SUBTYPE OF (Ratio_Measure_With_Unit); END_ENTITY;
ENTITY Lot_Effectivity SUBTYPE OF (Effectivity); effectivity_lot_id : Identifier; effectivity_lot_size : Measure_With_Unit; END_ENTITY;
ENTITY Low_Order_Kinematic_Pair SUPERTYPE OF (ONEOF(Revolute_Pair, Cylindrical_Pair, Spherical_Pair, Spherical_Pair_With_Pin, Planar_Pair, Unconstrained_Pair, Fully_Constrained_Pair, Prismatic_Pair, Universal_Pair, Low_Order_Kinematic_Pair_With_Range)) SUBTYPE OF (Kinematic_Pair); t_x : BOOLEAN; t_y : BOOLEAN; t_z : BOOLEAN; r_x : BOOLEAN; r_y : BOOLEAN; r_z : BOOLEAN; WHERE WR1: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; WR2: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_2 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Low_Order_Kinematic_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Low_Order_Kinematic_Pair; actual_translation_x : Length_Measure; actual_translation_y : Length_Measure; actual_translation_z : Length_Measure; actual_rotation_x : Plane_Angle_Measure; actual_rotation_y : Plane_Angle_Measure; actual_rotation_z : Plane_Angle_Measure; END_ENTITY;
ENTITY Low_Order_Kinematic_Pair_With_Motion_Coupling ABSTRACT SUPERTYPE OF (ONEOF(Gear_Pair, Linear_Flexible_And_Pinion_Pair, Rack_And_Pinion_Pair, Screw_Pair)) SUBTYPE OF (Kinematic_Pair); WHERE WR1: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_2 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Low_Order_Kinematic_Pair_With_Range SUBTYPE OF (Low_Order_Kinematic_Pair); lower_limit_actual_rotation_x : OPTIONAL Plane_Angle_Measure; upper_limit_actual_rotation_x : OPTIONAL Plane_Angle_Measure; lower_limit_actual_rotation_y : OPTIONAL Plane_Angle_Measure; upper_limit_actual_rotation_y : OPTIONAL Plane_Angle_Measure; lower_limit_actual_rotation_z : OPTIONAL Plane_Angle_Measure; upper_limit_actual_rotation_z : OPTIONAL Plane_Angle_Measure; lower_limit_actual_translation_x : OPTIONAL Length_Measure; upper_limit_actual_translation_x : OPTIONAL Length_Measure; lower_limit_actual_translation_y : OPTIONAL Length_Measure; upper_limit_actual_translation_y : OPTIONAL Length_Measure; lower_limit_actual_translation_z : OPTIONAL Length_Measure; upper_limit_actual_translation_z : OPTIONAL Length_Measure; END_ENTITY;
ENTITY Luminous_Flux_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LUMINOUS_FLUX_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Luminous_Flux_Unit SUBTYPE OF (Named_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Lumen); END_ENTITY;
ENTITY Luminous_Intensity_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LUMINOUS_INTENSITY_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Luminous_Intensity_Unit SUBTYPE OF (Named_Unit); WHERE WR1: (SELF\Named_Unit.dimensions.length_exponent = 0.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 0.0) AND (SELF\Named_Unit.dimensions.time_exponent = 0.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 0.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 1.0); END_ENTITY;
ENTITY Machining_Process_Executable SUBTYPE OF (Process_Operation); END_ENTITY;
ENTITY Magnetic_Flux_Density_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAGNETIC_FLUX_DENSITY_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Magnetic_Flux_Density_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Tesla); END_ENTITY;
ENTITY Magnetic_Flux_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAGNETIC_FLUX_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Magnetic_Flux_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Weber); END_ENTITY;
ENTITY Make_From_Feature_Relationship SUBTYPE OF (Component_Feature_Relationship); END_ENTITY;
ENTITY Make_From_Usage_Option SUBTYPE OF (Product_Definition_Usage); ranking : INTEGER; ranking_rationale : Text; quantity : Measure_With_Unit; WHERE WR1: (NOT ('NUMBER' IN TYPEOF(quantity.value_component))) OR (quantity.value_component > 0); END_ENTITY;
ENTITY Manifold_Solid_Brep SUBTYPE OF (Solid_Model); outer : Closed_Shell; END_ENTITY;
ENTITY Manifold_Subsurface_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; WR3: SIZEOF(QUERY(mi <* QUERY(it <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)))) = 0; WR4: SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL' IN TYPEOF(cfss)))) = 0; WR5: SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(cfss\Connected_Face_Sub_Set.parent_face_set)) AND (SIZEOF(QUERY(fac <* cfss\Connected_Face_Sub_Set.parent_face_set\Connected_Face_Set.cfs_faces | NOT Advanced_Face_Properties(fac))) = 0)) OR (SIZEOF(QUERY(fac <* cfss\Connected_Face_Sub_Set.parent_face_set\Connected_Face_Set.cfs_faces | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fac)))) = 0)))) = 0; WR6: SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | (SIZEOF(QUERY(fac <* cfss\Connected_Face_Set.cfs_faces | NOT Advanced_Face_Properties(fac))) = 0))) = 0; WR7: SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(fcs <* cfss\Connected_Face_Set.cfs_faces | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(oe.edge_element)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE' IN TYPEOF(oe.edge_element))))) = 0))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(fcs <* cfss\Connected_Face_Set.cfs_faces | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND NOT (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_start)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_end))))) = 0))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(fcs <* cfss\Connected_Face_Set.cfs_faces | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND (NOT (SIZEOF(QUERY(bnds <* fcs.bounds | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP'] * TYPEOF(bnds.bound)) = 1))) = 0)))) = 0))) = 0; WR10: SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(fcs <* cfss\Connected_Face_Set.cfs_faces | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND (NOT (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE'] * TYPEOF(oe.edge_element\Edge_Curve.edge_geometry)) = 1))) = 0))) = 0)))) = 0))) = 0; WR11: SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(fcs <* cfss\Connected_Face_Set.cfs_faces | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND (NOT (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(oe.edge_element\Edge_Curve.edge_geometry)) AND (NOT ((SIZEOF(QUERY(sc_ag <* oe.edge_element\Edge_Curve.edge_geometry\Surface_Curve.associated_geometry | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(sc_ag)))) = 0))))) = 0))) = 0)))) = 0))) = 0; WR12: SIZEOF(QUERY(cfss <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SUB_SET' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(fcs <* cfss\Connected_Face_Set.cfs_faces | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF(fcs)) AND (NOT (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fcs.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds.bound\Path.edge_list | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(oe.edge_element\Edge_Curve.edge_geometry)) AND (NOT (SIZEOF(oe\Oriented_Edge.edge_element\Edge_Curve.edge_geometry\Polyline.points) >= 3)))) = 0))) = 0)))) = 0))) = 0; END_ENTITY;
ENTITY Manifold_Surface_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; WR3: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)) AND (SIZEOF(QUERY(mr_it <* mi\Mapped_Item.mapping_source.mapped_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(mr_it)))) > 0)))) = 0; WR4: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(sh <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL'] * TYPEOF(sh)) = 1))) = 0))) = 0; WR5: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(QUERY(fa <* cfs\Connected_Face_Set.cfs_faces | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(fa)))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(QUERY(fa <* cfs\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (Msf_Surface_Check(fa\Face_Surface.face_geometry))))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(QUERY(fa <* cfs\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(bnds <* fa.bounds | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP'] * TYPEOF(bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(QUERY(fa <* cfs\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\Path.edge_list | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(QUERY(fa <* cfs\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe_cv <* QUERY(oe <* elp_fbnds\Path.edge_list | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(oe.edge_element)) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE'] * TYPEOF(oe_cv.edge_element\Edge_Curve.edge_geometry)) = 1))) = 0))) = 0)))) = 0))) = 0))) = 0; WR10: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(QUERY(fa <* cfs\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\Path.edge_list | NOT (Msf_Curve_Check(oe.edge_element\Edge_Curve.edge_geometry)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR11: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(QUERY(fa <* cfs\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\Path.edge_list | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_element.edge_start)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_element.edge_end))))) = 0))) = 0)))) = 0))) = 0))) = 0; WR12: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(QUERY(fa <* cfs\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\Path.edge_list | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * TYPEOF(oe.edge_element.edge_start\Vertex_Point.vertex_geometry)) = 1) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * TYPEOF(oe.edge_element.edge_end\Vertex_Point.vertex_geometry)) = 1)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR13: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(QUERY(fa <* cfs\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(vlp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(vlp_fbnds\Vertex_Loop.loop_vertex)))) = 0)))) = 0))) = 0))) = 0; WR14: SIZEOF(QUERY(sbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* sbsm\Shell_Based_Surface_Model.sbsm_boundary | NOT (SIZEOF(QUERY(fa <* cfs\Connected_Face_Set.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(vlp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * TYPEOF(vlp_fbnds\Vertex_Loop.loop_vertex\Vertex_Point.vertex_geometry)) = 1))) = 0)))) = 0))) = 0))) = 0; END_ENTITY;
ENTITY Mapped_Item SUBTYPE OF (Representation_Item); mapping_source : Representation_Map; mapping_target : Representation_Item; WHERE WR1: Acyclic_Mapped_Representation(SELF); END_ENTITY;
ENTITY Marking SUBTYPE OF (Feature_Definition); WHERE WR1: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ({2 <= SIZEOF(pdr.used_representation.items) <= 6}))) = 1)) = 1; WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'marking text')))) = 1)))) = 0)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'special instructions')))) <= 1)))) = 0)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'font name')))) <= 1)))) = 0)))) = 0); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'character height')))) <= 1)))) = 0)))) = 0); WR6: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'character spacing')))) <= 1)))) = 0)))) = 0); WR7: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'applied shape') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1)))) = 1)))) = 0); END_ENTITY;
ENTITY Mass_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MASS_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Mass_Unit SUBTYPE OF (Named_Unit); WHERE WR1: (SELF\Named_Unit.dimensions.length_exponent = 0.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 1.0) AND (SELF\Named_Unit.dimensions.time_exponent = 0.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 0.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY;
ENTITY Mated_Part_Relationship SUBTYPE OF (Group, Group_Assignment, Product_Definition_Shape, Product_Definition_Relationship, Shape_Aspect); items : SET [0 : ?] OF Product_Definition; DERIVE SELF\group_assignment.assigned_group : Mated_Part_Relationship := SELF; SELF\property_definition.definition : Mated_Part_Relationship := SELF; SELF\shape_aspect.of_shape : Mated_Part_Relationship := SELF; END_ENTITY;
ENTITY Material_Designation; name : Label; definitions : SET [1 : ?] OF Characterized_Definition; END_ENTITY;
ENTITY Material_Designation_Characterization; name : Label; description : Text; designation : Material_Designation; property : Characterized_Material_Property; END_ENTITY;
ENTITY Material_Property SUBTYPE OF (Property_Definition); UNIQUE UR1: SELF\Property_Definition.name, SELF\Property_Definition.definition; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_OBJECT' IN TYPEOF(SELF\Property_Definition.definition)) OR (SIZEOF(Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) - QUERY(temp <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATERIAL_PROPERTY_REPRESENTATION' IN TYPEOF(temp)))) = 0); END_ENTITY;
ENTITY Material_Property_Representation SUBTYPE OF (Property_Definition_Representation); dependent_environment : Data_Environment; END_ENTITY;
ENTITY Mathematical_Description; described : Maths_Expression; describing : STRING; encoding : Label; END_ENTITY;
ENTITY Maths_Boolean_Variable SUBTYPE OF (Maths_Variable, Boolean_Variable); WHERE WR1: Subspace_Of_Es(SELF\Maths_Variable.values_space, Es_Booleans); END_ENTITY;
ENTITY Maths_Enum_Literal SUBTYPE OF (Generic_Literal); lit_value : Maths_Enum_Atom; END_ENTITY;
ENTITY Maths_Function ABSTRACT SUPERTYPE OF (ONEOF(Finite_Function, Constant_Function, Selector_Function, Elementary_Function, Restriction_Function, Repackaging_Function, Reindexed_Array_Function, Series_Composed_Function, Parallel_Composed_Function, Explicit_Table_Function, Homogeneous_Linear_Function, General_Linear_Function, B_Spline_Basis, B_Spline_Function, Rationalize_Function, Partial_Derivative_Function, Definite_Integral_Function, Abstracted_Expression_Function, Expression_Denoted_Function, Imported_Point_Function, Imported_Curve_Function, Imported_Surface_Function, Imported_Volume_Function, Application_Defined_Function)) SUBTYPE OF (Generic_Expression); DERIVE domain : Tuple_Space := Derive_Function_Domain(SELF); range : Tuple_Space := Derive_Function_Range(SELF); END_ENTITY;
ENTITY Maths_Integer_Variable SUBTYPE OF (Maths_Variable, Int_Numeric_Variable); WHERE WR1: Subspace_Of_Es(SELF\Maths_Variable.values_space, Es_Integers); END_ENTITY;
ENTITY Maths_Real_Variable SUBTYPE OF (Maths_Variable, Real_Numeric_Variable); WHERE WR1: Subspace_Of_Es(SELF\Maths_Variable.values_space, Es_Reals); END_ENTITY;
ENTITY Maths_Space ABSTRACT SUPERTYPE OF (ONEOF(Elementary_Space, Finite_Integer_Interval, Integer_Interval_From_Min, Integer_Interval_To_Max, Finite_Real_Interval, Real_Interval_From_Min, Real_Interval_To_Max, Cartesian_Complex_Number_Region, Polar_Complex_Number_Region, Finite_Space, Uniform_Product_Space, Listed_Product_Space, Extended_Tuple_Space, Function_Space)) SUBTYPE OF (Generic_Expression); END_ENTITY;
ENTITY Maths_String_Variable SUBTYPE OF (Maths_Variable, String_Variable); WHERE WR1: Subspace_Of_Es(SELF\Maths_Variable.values_space, Es_Strings); END_ENTITY;
ENTITY Maths_Tuple_Literal SUBTYPE OF (Generic_Literal); lit_value : LIST OF Maths_Value; END_ENTITY;
ENTITY Maths_Value_Precision_Qualifier; precision_value : Maths_Value; END_ENTITY;
ENTITY Maths_Variable SUBTYPE OF (Generic_Variable); values_space : Maths_Space; name : Label; WHERE WR1: Expression_Is_Constant(values_space); END_ENTITY;
ENTITY Mating_Material SUBTYPE OF (Property_Definition, Group); SELF\property_definition.definition : Product_Definition_Usage_Relationship; UNIQUE UR1: SELF\Property_Definition.definition; END_ENTITY;
ENTITY Mating_Material_Items SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Mating_Material; items : SET [1 : ?] OF Product_Definition; END_ENTITY;
ENTITY Maximum_Function SUBTYPE OF (Multiple_Arity_Function_Call); END_ENTITY;
ENTITY Measure_Qualification; name : Label; description : Text; qualified_measure : Measure_With_Unit; qualifiers : SET [1 : ?] OF Value_Qualifier; WHERE WR1: SIZEOF(QUERY(temp <* qualifiers | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRECISION_QUALIFIER' IN TYPEOF(temp)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATHS_VALUE_PRECISION_QUALIFIER' IN TYPEOF(temp)))) < 2; WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(SELF\Measure_Qualification.qualified_measure)); END_ENTITY;
ENTITY Measure_Representation_Item SUBTYPE OF (Representation_Item, Measure_With_Unit); END_ENTITY;
ENTITY Measure_With_Unit SUPERTYPE OF (ONEOF(Length_Measure_With_Unit, Mass_Measure_With_Unit, Time_Measure_With_Unit, Electric_Current_Measure_With_Unit, Thermodynamic_Temperature_Measure_With_Unit, Celsius_Temperature_Measure_With_Unit, Amount_Of_Substance_Measure_With_Unit, Luminous_Intensity_Measure_With_Unit, Plane_Angle_Measure_With_Unit, Solid_Angle_Measure_With_Unit, Area_Measure_With_Unit, Volume_Measure_With_Unit, Ratio_Measure_With_Unit, Acceleration_Measure_With_Unit, Capacitance_Measure_With_Unit, Electric_Charge_Measure_With_Unit, Conductance_Measure_With_Unit, Electric_Potential_Measure_With_Unit, Energy_Measure_With_Unit, Magnetic_Flux_Density_Measure_With_Unit, Force_Measure_With_Unit, Frequency_Measure_With_Unit, Illuminance_Measure_With_Unit, Inductance_Measure_With_Unit, Luminous_Flux_Measure_With_Unit, Magnetic_Flux_Measure_With_Unit, Power_Measure_With_Unit, Pressure_Measure_With_Unit, Resistance_Measure_With_Unit, Velocity_Measure_With_Unit, Absorbed_Dose_Measure_With_Unit, Radioactivity_Measure_With_Unit, Dose_Equivalent_Measure_With_Unit)); value_component : Measure_Value; unit_component : Unit; WHERE WR1: Valid_Units(SELF); END_ENTITY;
ENTITY Mechanical_Context SUBTYPE OF (Product_Context); WHERE WR1: SELF.discipline_type = 'mechanical'; END_ENTITY;
ENTITY Mechanical_Design_And_Draughting_Relationship SUBTYPE OF (Definitional_Representation_Relationship_With_Same_Context); SELF\representation_relationship.rep_1 : Mechanical_Design_And_Draughting_Relationship_Select; SELF\representation_relationship.rep_2 : Mechanical_Design_And_Draughting_Relationship_Select; WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_MODEL' IN TYPEOF(rep_2)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_MODEL' IN TYPEOF(rep_1)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); WR3: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_2)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(rep_1)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(rep_1))); END_ENTITY;
ENTITY Mechanical_Design_Geometric_Presentation_Area SUBTYPE OF (Presentation_Area); SELF\representation.items : SET [1 : ?] OF Mechanical_Design_Geometric_Presentation_Area_Items; WHERE WR1: SIZEOF(QUERY(it1 <* SELF.items | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF(it1\Mapped_Item.mapping_source.mapped_representation)))) = 0; WR2: SIZEOF(QUERY(pv <* QUERY(mi1 <* QUERY(it1 <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF(mi1\Mapped_Item.mapping_source.mapped_representation)) | NOT (SIZEOF(QUERY(it2 <* pv\Mapped_Item.mapping_source.mapped_representation\Representation.items | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF(it2\Mapped_Item.mapping_source.mapped_representation))) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' IN TYPEOF(it2\Mapped_Item.mapping_source.mapped_representation)))))) = 0))) = 0; WR3: (SIZEOF(QUERY(ps <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') | ((ps\Presentation_Size.size.size_in_x <= 0) OR (ps\Presentation_Size.size.size_in_y <= 0)))) = 0) AND (SIZEOF(QUERY(ais <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') | (SIZEOF(QUERY(ps <* USEDIN(ais, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') | ((ps\Presentation_Size.size.size_in_x <= 0) OR (ps\Presentation_Size.size.size_in_y <= 0)))) > 0))) = 0); WR4: (SIZEOF(QUERY(ps <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(ps.size.Placement)))) = 1) AND (SIZEOF(QUERY(ps <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.Placement)))) = 0) OR ((SIZEOF(QUERY(ais <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') | (SIZEOF(QUERY(ps <* USEDIN(ais, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(ps.size.Placement)))) = 1))) = 1) AND (SIZEOF(QUERY(ais <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') | (SIZEOF(QUERY(ps <* USEDIN(ais, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(ps.size.Placement)))) = 0))) = 1)); END_ENTITY;
ENTITY Mechanical_Design_Geometric_Presentation_Representation SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Mechanical_Design_Geometric_Presentation_Representation_Items; WHERE WR1: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION'] * TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)) = 1))) = 0; WR2: SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(si\Styled_Item.item))) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(smi\Styled_Item.item\Mapped_Item.mapping_source.mapped_representation))))) = 0; WR3: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(pss <* psa.styles | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE'] * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0; WR4: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psbc <* QUERY(psa <* si\Styled_Item.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION'] * TYPEOF(psbc\Presentation_Style_By_Context.style_context)) = 1))) = 0))) = 0; WR5: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ps <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE' IN TYPEOF(pss)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(ps\Point_Style.marker_size)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ps\Point_Style.marker_colour)) = 1)))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(cs <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(pss)) | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(cs\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(cs\Curve_Style.curve_font)) = 1)))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_SIDE_STYLE' IN TYPEOF(ssu\Surface_Style_Usage.style)))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_PARAMETER_LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_CONTROL_GRID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SILHOUETTE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SEGMENTATION_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_FILL_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_BOUNDARY'] * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sspl <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(sspl\Surface_Style_Parameter_Line.style_of_parameter_lines)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sspl\Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sspl\Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sspl\Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR10: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sscg <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(sscg\Surface_Style_Control_Grid.style_of_control_grid)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sscg\Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sscg\Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sscg\Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR11: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssh <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(sssh\Surface_Style_Silhouette.style_of_silhouette)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssh\Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssh\Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sssh\Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR12: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssc <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(sssc\Surface_Style_Segmentation_Curve.style_of_segmentation_curve)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssc\Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssc\Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sssc\Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; WR13: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(ssbd <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(ssbd\Surface_Style_Boundary.style_of_boundary)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ssbd\Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(ssbd\Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(ssbd\Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_font)) = 1)))) = 0))) = 0))) = 0))) = 0; END_ENTITY;
ENTITY Mechanical_Design_Presentation_Representation_With_Draughting SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Camera_Model_D3; END_ENTITY;
ENTITY Mechanical_Design_Requirement_Item_Association SUBTYPE OF (Pmi_Requirement_Item_Association); SELF\pmi_requirement_item_association.requirement : Requirement_Assignment; END_ENTITY;
ENTITY Mechanical_Design_Shaded_Presentation_Area SUBTYPE OF (Presentation_Area); SELF\representation.items : SET [1 : ?] OF Mechanical_Design_Shaded_Presentation_Area_Items; WHERE WR1: SIZEOF(QUERY(it1 <* SELF.items | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(it1)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF(it1\Mapped_Item.mapping_source.mapped_representation)))))) = 0; WR2: SIZEOF(QUERY(pv <* QUERY(mi1 <* QUERY(it1 <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF(mi1\Mapped_Item.mapping_source.mapped_representation)) | NOT (SIZEOF(QUERY(it2 <* pv\Mapped_Item.mapping_source.mapped_representation\Representation.items | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(it2)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it2)) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2))) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF(it2\Mapped_Item.mapping_source.mapped_representation))) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(it2)) AND NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' IN TYPEOF(it2\Mapped_Item.mapping_source.mapped_representation)))))) = 0))) = 0; WR3: (SIZEOF(QUERY(ps <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') | NOT ((ps\Presentation_Size.size.size_in_x > 0) AND (ps\Presentation_Size.size.size_in_y > 0)))) = 0) AND (SIZEOF(QUERY(pset <* QUERY(ais <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SET' IN TYPEOF(ais.in_set)) | SIZEOF(QUERY(ps <* USEDIN(pset, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') | NOT ((ps\Presentation_Size.size.size_in_x > 0) AND (ps\Presentation_Size.size.size_in_y > 0)))) = 0)) = 0); WR4: (SIZEOF(QUERY(psize <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(psize.size.Placement))) = 1) AND (SIZEOF(QUERY(pset <* QUERY(ais <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SET' IN TYPEOF(ais.in_set)) | SIZEOF(QUERY(psize <* USEDIN(pset, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT') | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(psize.size.Placement)))) = 0)) = 0); WR5: SIZEOF(QUERY(pv <* QUERY(mi1 <* QUERY(it1 <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it1)) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_VIEW' IN TYPEOF(mi1\Mapped_Item.mapping_source.mapped_representation)) | NOT (SIZEOF(QUERY(ci <* pv\Mapped_Item.mapping_source.mapped_representation\Representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_IMAGE_3D_WITH_SCALE' IN TYPEOF(ci)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D3', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAMERA_MODEL_WITH_LIGHT_SOURCES'] * TYPEOF(ci\Mapped_Item.mapping_source.mapping_origin)) = 1))) = 0))) = 0; END_ENTITY;
ENTITY Mechanical_Design_Shaded_Presentation_Representation SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Mechanical_Design_Shaded_Presentation_Representation_Items; WHERE WR1: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION'] * TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)) = 1))) = 0; WR2: SIZEOF(QUERY(smi <* QUERY(si <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(si\Styled_Item.item))) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(smi\Styled_Item.item\Mapped_Item.mapping_source.mapped_representation))))) = 0; WR3: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(pss <* psa.styles | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE'] * TYPEOF(pss)) = 1))) = 0))) = 0))) = 0; WR4: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psbc <* QUERY(psa <* si\Styled_Item.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(psa)) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION'] * TYPEOF(psbc\Presentation_Style_By_Context.style_context)) = 1))) = 0))) = 0; WR5: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ps <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_STYLE' IN TYPEOF(pss)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MARKER_TYPE' IN TYPEOF(ps\Point_Style.marker)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(ps\Point_Style.marker_size)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ps\Point_Style.marker_colour)) = 1)))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(cs <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(pss)) | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(cs\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(cs\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(cs\Curve_Style.curve_font)) = 1)))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_SIDE_STYLE' IN TYPEOF(ssu\Surface_Style_Usage.style)))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_PARAMETER_LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_CONTROL_GRID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SILHOUETTE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SEGMENTATION_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_BOUNDARY', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_FILL_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_RENDERING'] * TYPEOF(sses)) = 1))) = 0))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(ssfa <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_FILL_AREA' IN TYPEOF(sses)) | NOT (SIZEOF(QUERY(fss <* ssfa\Surface_Style_Fill_Area.fill_area.fill_styles | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILL_AREA_STYLE_COLOUR' IN TYPEOF(fss)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(fss\Fill_Area_Style_Colour.fill_colour)) = 1)))) = 0))) = 0))) = 0))) = 0))) = 0; WR10: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sspl <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_PARAMETER_LINE' IN TYPEOF(sses)) | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(sspl\Surface_Style_Parameter_Line.style_of_parameter_lines)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sspl\Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sspl\Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sspl\Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_font)) = 1)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF(sspl\Surface_Style_Parameter_Line.style_of_parameter_lines)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sspl\Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style_Rendering.rendering_properties.rendered_colour)) = 1))))) = 0))) = 0))) = 0))) = 0; WR11: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sscg <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_CONTROL_GRID' IN TYPEOF(sses)) | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(sscg\Surface_Style_Control_Grid.style_of_control_grid)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sscg\Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sscg\Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sscg\Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_font)) = 1)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF(sscg\Surface_Style_Control_Grid.style_of_control_grid)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sscg\Surface_Style_Control_Grid.style_of_control_grid\Curve_Style_Rendering.rendering_properties.rendered_colour)) = 1))))) = 0))) = 0))) = 0))) = 0; WR12: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssh <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SILHOUETTE' IN TYPEOF(sses)) | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(sssh\Surface_Style_Silhouette.style_of_silhouette)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssh\Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssh\Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sssh\Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_font)) = 1)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF(sssh\Surface_Style_Silhouette.style_of_silhouette)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssh\Surface_Style_Silhouette.style_of_silhouette\Curve_Style_Rendering.rendering_properties.rendered_colour)) = 1))))) = 0))) = 0))) = 0))) = 0; WR13: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(sssc <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_SEGMENTATION_CURVE' IN TYPEOF(sses)) | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(sssc\Surface_Style_Segmentation_Curve.style_of_segmentation_curve)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssc\Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(sssc\Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(sssc\Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_font)) = 1)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF(sssc\Surface_Style_Segmentation_Curve.style_of_segmentation_curve)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(sssc\Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style_Rendering.rendering_properties.rendered_colour)) = 1))))) = 0))) = 0))) = 0))) = 0; WR14: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(ssbd <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_BOUNDARY' IN TYPEOF(sses)) | NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(ssbd\Surface_Style_Boundary.style_of_boundary)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ssbd\Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_colour)) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(ssbd\Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_width)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_FONT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF(ssbd\Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_font)) = 1)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF(ssbd\Surface_Style_Boundary.style_of_boundary)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ssbd\Surface_Style_Boundary.style_of_boundary\Curve_Style_Rendering.rendering_properties.rendered_colour)) = 1))))) = 0))) = 0))) = 0))) = 0; WR15: SIZEOF(QUERY(si <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(psa <* si\Styled_Item.styles | NOT (SIZEOF(QUERY(ssu <* QUERY(pss <* psa.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(pss)) | NOT (SIZEOF(QUERY(ssre <* QUERY(sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_RENDERING' IN TYPEOF(sses)) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COLOUR_RGB', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF(ssre\Surface_Style_Rendering.surface_colour)) = 1))) = 0))) = 0))) = 0))) = 0; END_ENTITY;
ENTITY Mechanism_Representation SUBTYPE OF (Representation); SELF\representation.context_of_items : Geometric_Representation_Context; SELF\representation.items : SET [1 : ?] OF Pair_Representation_Relationship; represented_topology : Kinematic_Topology_Representation_Select; DERIVE represented_joints : SET [1 : ?] OF Kinematic_Joint := Collect_Joints(items); WHERE WR1: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_TOPOLOGY_STRUCTURE' IN TYPEOF(represented_topology)) AND (represented_joints :=: represented_topology.items)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN TYPEOF(represented_topology)) AND (represented_joints :=: Get_Kinematic_Joints_From_Oriented_Joints(represented_topology.items))) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KINEMATIC_TOPOLOGY_NETWORK_STRUCTURE' IN TYPEOF(represented_topology)) AND (represented_joints :=: Get_Kinematic_Joints_From_Kinematic_Loops(represented_topology.items))); END_ENTITY;
ENTITY Mechanism_State_Representation SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Pair_Value; represented_mechanism : Mechanism_Representation; DERIVE SELF\representation.context_of_items : Geometric_Representation_Context := represented_mechanism.context_of_items; END_ENTITY;
ENTITY Message_Contents_Assignment SUBTYPE OF (Group_Assignment); items : SET [1 : ?] OF Representation; SELF\group_assignment.assigned_group : Message_Contents_Group; DERIVE message_contents_group : Message_Contents_Group := SELF\Group_Assignment.assigned_group; END_ENTITY;
ENTITY Message_Contents_Group SUBTYPE OF (Group); END_ENTITY;
ENTITY Message_Relationship SUBTYPE OF (Product_Relationship); SELF\product_relationship.relating_product : Structured_Message; SELF\product_relationship.related_product : Structured_Message; DERIVE related_message : Structured_Message := SELF\Product_Relationship.related_product; relating_message : Structured_Message := SELF\Product_Relationship.relating_product; END_ENTITY;
ENTITY Min_And_Major_Ply_Orientation_Basis SUBTYPE OF (Representation_Item_Relationship, Geometric_Representation_Item); SELF\representation_item_relationship.relating_representation_item : Axis2_Placement_3d; SELF\representation_item_relationship.related_representation_item : Axis2_Placement_3d; DERIVE major_orientation_basis : Axis2_Placement_3d := SELF\Representation_Item_Relationship.related_representation_item; minor_orientation_basis : Axis2_Placement_3d := SELF\Representation_Item_Relationship.relating_representation_item; END_ENTITY;
ENTITY Minimum_Function SUBTYPE OF (Multiple_Arity_Function_Call); END_ENTITY;
ENTITY Minus_Expression SUBTYPE OF (Binary_Numeric_Expression); END_ENTITY;
ENTITY Minus_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Mismatch_Of_Arcwise_Connected_Curves SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Shape_Data_Content, A3m_Equivalence_Inspection_Requirement_With_Values); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Edge_Set]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Edge_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF A3ms_Detected_Difference_Type_Name := [Ddns_Cartesian_Point, Ddns_Point_On_Curve]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF A3ms_Accuracy_Type_Name := [Atns_Length_Measure]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1])) AND (SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1].name = 'discretization_distance_tolerance'); END_ENTITY;
ENTITY Mismatch_Of_Arcwise_Connected_Surfaces SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Shape_Data_Content, A3m_Equivalence_Inspection_Requirement_With_Values); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF A3ms_Detected_Difference_Type_Name := [Ddns_Cartesian_Point, Ddns_Point_On_Surface]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF A3ms_Accuracy_Type_Name := [Atns_Length_Measure]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1])) AND (SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1].name = 'discretization_distance_tolerance'); END_ENTITY;
ENTITY Mismatch_Of_Arcwise_Connected_Surfaces_Boundary SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Shape_Data_Content, A3m_Equivalence_Inspection_Requirement_With_Values); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF A3ms_Detected_Difference_Type_Name := [Ddns_Cartesian_Point, Ddns_Point_On_Curve]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF A3ms_Accuracy_Type_Name := [Atns_Length_Measure]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1])) AND (SELF\A3m_Equivalence_Inspection_Requirement_With_Values.applied_values[1].name = 'discretization_distance_tolerance'); END_ENTITY;
ENTITY Mismatch_Of_Component SUBTYPE OF (A3m_Equivalence_Criterion_Of_Assembly_Data_Structure); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ma_Detected_Difference_Type_Name := [Ddna_Assembly_Component_Usage]; END_ENTITY;
ENTITY Mismatch_Of_Edges SUBTYPE OF (A3m_Equivalence_Criterion_Of_Shape_Data_Structure); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Edge_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF A3ms_Detected_Difference_Type_Name := [Ddns_Edge, Ddns_Several_Edges]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Mismatch_Of_Faces SUBTYPE OF (A3m_Equivalence_Criterion_Of_Shape_Data_Structure); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF A3ms_Detected_Difference_Type_Name := [Ddns_Face, Ddns_Several_Faces]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Mismatch_Of_Point_Cloud_And_Related_Geometry SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Shape_Data_Content); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [2 : 2] OF A3ms_Element_Type_Name := [Etns_Connected_Edge_Set, Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Point_Cloud_Dataset]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [3 : 3] OF A3ms_Detected_Difference_Type_Name := [Ddns_Cartesian_Point, Ddns_Point_On_Curve, Ddns_Point_On_Surface]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [1 : 1] OF A3ms_Accuracy_Type_Name := [Atns_Length_Measure]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); END_ENTITY;
ENTITY Mismatch_Of_Points SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Shape_Data_Content); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Numerical_Test; DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Vertex_Point]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Vertex_Point]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Length_Measure; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_No_Element]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold)) AND (A3ms_Get_Value_Limit_Type(SELF\A3m_Equivalence_Criterion.assessment_specification\A3m_Equivalence_Assessment_By_Numerical_Test.threshold) = SELF.measured_data_type); END_ENTITY;
ENTITY Mismatch_Of_Underlying_Edge_Geometry SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Shape_Data_Content); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Edge]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Mismatch_Of_Underlying_Face_Geometry SUBTYPE OF (A3m_Equivalence_Criterion_Of_Detailed_Shape_Data_Content); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.comparing_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [1 : 1] OF A3ms_Detected_Difference_Type_Name := [Ddns_Face]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Missing_Assembly_Constraint SUBTYPE OF (A3m_Equivalence_Criterion_Of_Assembly_Data_Structure); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF A3ma_Detected_Difference_Type_Name := [Ddna_No_Element, Ddna_Binary_Assembly_Constraint]; END_ENTITY;
ENTITY Missing_Component SUBTYPE OF (A3m_Equivalence_Criterion_Of_Assembly_Data_Structure); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.measured_data_type : A3ma_Measured_Data_Type_Name := Mdna_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF A3ma_Detected_Difference_Type_Name := [Ddna_No_Element, Ddna_Assembly_Component_Usage]; END_ENTITY;
ENTITY Missing_Edge SUBTYPE OF (A3m_Equivalence_Criterion_Of_Shape_Data_Structure); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Edge_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF A3ms_Detected_Difference_Type_Name := [Ddns_No_Element, Ddns_Edge]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Missing_Face SUBTYPE OF (A3m_Equivalence_Criterion_Of_Shape_Data_Structure); SELF\a3m_equivalence_criterion.assessment_specification : A3m_Equivalence_Assessment_By_Logical_Test; DERIVE SELF\a3m_equivalence_criterion.compared_element_types : LIST [1 : 1] OF A3ms_Element_Type_Name := [Etns_Connected_Face_Set]; SELF\a3m_equivalence_criterion.measured_data_type : A3ms_Measured_Data_Type_Name := Mdns_Boolean_Value; SELF\a3m_equivalence_criterion.detected_difference_types : LIST [2 : 2] OF A3ms_Detected_Difference_Type_Name := [Ddns_No_Element, Ddns_Face]; SELF\a3m_equivalence_criterion.accuracy_types : LIST [0 : 0] OF A3ms_Accuracy_Type_Name := []; END_ENTITY;
ENTITY Mod_Expression SUBTYPE OF (Binary_Numeric_Expression); END_ENTITY;
ENTITY Model_Geometric_View SUBTYPE OF (Characterized_Item_Within_Representation); SELF\characterized_item_within_representation.rep : Draughting_Model; SELF\characterized_item_within_representation.item : Camera_Model; END_ENTITY;
ENTITY Modified_Geometric_Tolerance SUBTYPE OF (Geometric_Tolerance); modifier : Limit_Condition; END_ENTITY;
ENTITY Modified_Pattern SUBTYPE OF (Shape_Aspect); WHERE WR1: SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE'] * TYPEOF(fcr.related_shape_aspect.of_shape.definition)) >= 1) AND (fcr.description = 'base shape'))) = 1; WR2: SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN'] * TYPEOF(fcr.related_shape_aspect.of_shape.definition)) = 1) AND (fcr.description = 'base pattern'))) = 1; WR3: SIZEOF(QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (SIZEOF(QUERY(msar <* USEDIN(sar.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATTERN_OFFSET_MEMBERSHIP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATTERN_OMIT_MEMBERSHIP'] * TYPEOF(sar)) = 1) AND (sar.description = 'modified pattern') AND (sar :<>: msar))) >= 1))) = 0; END_ENTITY;
ENTITY Modified_Solid ABSTRACT SUPERTYPE OF (ONEOF(Edge_Blended_Solid, Sculptured_Solid, Shelled_Solid, Modified_Solid_With_Placed_Configuration)) SUBTYPE OF (Solid_Model); rationale : Text; base_solid : Base_Solid_Select; END_ENTITY;
ENTITY Modified_Solid_With_Placed_Configuration ABSTRACT SUPERTYPE OF (ONEOF(Solid_With_Depression, Solid_With_Protrusion, Solid_With_Shape_Element_Pattern)) SUBTYPE OF (Modified_Solid); placing : Axis2_Placement_3d; END_ENTITY;
ENTITY Modify_Element SUBTYPE OF (Change_Element); END_ENTITY;
ENTITY Moments_Of_Inertia_Representation SUBTYPE OF (Representation); WHERE WR1: (SIZEOF(SELF.items) = 1) AND (SIZEOF(QUERY(i <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'moments of inertia matrix'))) = 1); WR2: SIZEOF(QUERY(i <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_REPRESENTATION_ITEM' IN TYPEOF(i)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LIST_REPRESENTATION_ITEM' IN TYPEOF(i\Compound_Representation_Item.item_element)) AND Value_Range_Aggregate_Rep_Item(i\Compound_Representation_Item.item_element))) = 1; END_ENTITY;
ENTITY Mult_Expression SUBTYPE OF (Multiple_Arity_Numeric_Expression); END_ENTITY;
ENTITY Multi_Language_Attribute_Assignment SUBTYPE OF (Attribute_Value_Assignment); items : SET [1 : ?] OF Multi_Language_Attribute_Item; DERIVE translation_language : Language := language_indication[1]\Attribute_Classification_Assignment.assigned_class; INVERSE language_indication : SET [1:1] OF Attribute_Language_Assignment FOR items; WHERE WR1: (SELF\Attribute_Value_Assignment.role.name = 'alternate language'); WR2: SIZEOF(QUERY(ala <* language_indication | (ala\Attribute_Classification_Assignment.attribute_name = 'attribute_value') AND (ala\Attribute_Classification_Assignment.role.name = 'translated'))) = 1; WR3: SELF\Attribute_Value_Assignment.attribute_name <> ''; WR4: SIZEOF(QUERY(ci <* items | SIZEOF(QUERY(ata <* USEDIN(ci, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULTI_LANGUAGE_ATTRIBUTE_ASSIGNMENT.ITEMS') | (ata\Attribute_Value_Assignment.attribute_name = SELF\Attribute_Value_Assignment.attribute_name) AND (ata.translation_language :=: translation_language))) > 1)) = 0; WR5: SIZEOF(QUERY(ci <* items | SIZEOF(QUERY(ata <* USEDIN(ci, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ata\Attribute_Classification_Assignment.role.name = 'primary') AND (ata\Attribute_Classification_Assignment.attribute_name = SELF\Attribute_Value_Assignment.attribute_name) AND (ata\Attribute_Classification_Assignment.assigned_class :=: translation_language))) > 0)) = 0; END_ENTITY;
ENTITY Multi_Level_Reference_Designator SUBTYPE OF ( Assembly_Component_Usage ); location : LIST [1 : ?] OF UNIQUE Next_Assembly_Usage_Occurrence; DERIVE SELF\product_definition_relationship.relating_product_definition : Product_Definition := Location[1]\Product_Definition_Relationship.relating_product_definition; SELF\product_definition_relationship.related_product_definition : Product_Definition_Or_Reference := Location[HIINDEX(Location)]\Product_Definition_Relationship.related_product_definition; leaf : Product_Definition_Or_Reference := related_product_definition; root : Product_Definition := relating_product_definition; UNIQUE UR1: Location; WHERE WR1: Unambiguously_Specified_Multi_Level_Reference_Designator(Location); WR2: SIZEOF( QUERY ( cp <* Location | NOT EXISTS(cp\Assembly_Component_Usage.reference_designator ))) = 0; END_ENTITY;
ENTITY Multiple_Arity_Boolean_Expression ABSTRACT SUPERTYPE OF (ONEOF(And_Expression, Or_Expression)) SUBTYPE OF (Boolean_Expression, Multiple_Arity_Generic_Expression); SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF Boolean_Expression; END_ENTITY;
ENTITY Multiple_Arity_Function_Call ABSTRACT SUPERTYPE OF (ONEOF(Maximum_Function, Minimum_Function)) SUBTYPE OF (Multiple_Arity_Numeric_Expression); END_ENTITY;
ENTITY Multiple_Arity_Generic_Expression ABSTRACT SUPERTYPE SUBTYPE OF (Generic_Expression); operands : LIST [2 : ?] OF Generic_Expression; END_ENTITY;
ENTITY Multiple_Arity_Numeric_Expression ABSTRACT SUPERTYPE OF (ONEOF(Plus_Expression, Mult_Expression, Multiple_Arity_Function_Call)) SUBTYPE OF (Numeric_Expression, Multiple_Arity_Generic_Expression); SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF Numeric_Expression; END_ENTITY;
ENTITY Multiply_Defined_Cartesian_Points SUBTYPE OF (Multiply_Defined_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Multiply_Defined_Curves SUBTYPE OF (Multiply_Defined_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Multiply_Defined_Directions SUBTYPE OF (Multiply_Defined_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Multiply_Defined_Edges SUBTYPE OF (Topology_Related_To_Multiply_Defined_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Multiply_Defined_Faces SUBTYPE OF (Topology_Related_To_Multiply_Defined_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Multiply_Defined_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Multiply_Defined_Curves, Multiply_Defined_Surfaces, Multiply_Defined_Cartesian_Points, Multiply_Defined_Directions, Multiply_Defined_Placements)) SUBTYPE OF (Inapt_Geometry); END_ENTITY;
ENTITY Multiply_Defined_Placements SUBTYPE OF (Multiply_Defined_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; assessment_specification_2 : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR3: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_AND_LENGTH_PAIR'); WR4: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT']); WR5: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR6: Validate_Accuracy_Types(SELF, []); WR7: SIZEOF(QUERY(sdqr <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(sdqr)) AND (SIZEOF(QUERY(sdqiir <* Bag_To_Set(USEDIN(sdqr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(sdqiir)) AND (SIZEOF(QUERY(sdqiri <* sdqiir.inspected_instances | (TYPEOF(sdqiri.inspected_elements[1]) <> TYPEOF(sdqiri.inspected_elements[2])))) = 0))) = 0))) = 0; END_ENTITY;
ENTITY Multiply_Defined_Solids SUBTYPE OF (Inapt_Manifold_Solid_Brep); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Multiply_Defined_Surfaces SUBTYPE OF (Multiply_Defined_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Multiply_Defined_Vertices SUBTYPE OF (Topology_Related_To_Multiply_Defined_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Name_Assignment ABSTRACT SUPERTYPE; assigned_name : Label; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Name_Attribute; attribute_value : Label; named_item : Name_Attribute_Select; END_ENTITY;
ENTITY Named_Unit SUPERTYPE OF (ONEOF(Si_Unit, Conversion_Based_Unit, Context_Dependent_Unit) ANDOR ONEOF(Length_Unit, Mass_Unit, Time_Unit, Electric_Current_Unit, Thermodynamic_Temperature_Unit, Amount_Of_Substance_Unit, Luminous_Flux_Unit, Luminous_Intensity_Unit, Plane_Angle_Unit, Solid_Angle_Unit, Ratio_Unit)); dimensions : Dimensional_Exponents; END_ENTITY;
ENTITY Narrow_Surface_Patch SUBTYPE OF (Geometry_With_Local_Near_Degeneracy); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; width_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_PATCH']); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Near_Point_Relationship SUBTYPE OF (Representation_Item_Relationship); SELF\representation_item_relationship.relating_representation_item : Curve_Or_Surface_Constraint_Element; SELF\representation_item_relationship.related_representation_item : Point; END_ENTITY;
ENTITY Nearly_Degenerate_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Small_Area_Surface, Short_Length_Curve, Entirely_Narrow_Surface)) SUBTYPE OF (Inapt_Geometry); END_ENTITY;
ENTITY Nearly_Degenerate_Surface_Boundary SUBTYPE OF (Geometry_With_Local_Near_Degeneracy); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_VALUE_RANGE' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Nearly_Degenerate_Surface_Patch SUBTYPE OF (Geometry_With_Local_Near_Degeneracy); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_VALUE_RANGE' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_PATCH']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Neutral_Sketch_Representation SUBTYPE OF (Shape_Representation); neutral_sketch_semantics : Curves_Or_Area; SELF\representation.items : SET [1 : ?] OF Sketch_Element_Select; WHERE WR1: SIZEOF(QUERY(q <* items | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(q)) AND (q\Geometric_Representation_Item.dim = 3)))) = 0; END_ENTITY;
ENTITY Next_Assembly_Usage_Occurrence SUBTYPE OF (Assembly_Component_Usage); DERIVE product_definition_occurrence_id : Identifier := SELF\Product_Definition_Relationship.related_product_definition\Product_Definition_Occurrence.id; UNIQUE UR1: SELF\Assembly_Component_Usage.reference_designator, SELF\Product_Definition_Relationship.relating_product_definition; UR2: product_definition_occurrence_id, SELF\Product_Definition_Relationship.relating_product_definition; END_ENTITY;
ENTITY Ngon_Closed_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1))) = 0; WR3: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT ((SIZEOF(impl_rep.used_representation.items) >= 3) AND (SIZEOF(impl_rep.used_representation.items) <= 4)))) = 0))) = 0; WR4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | (srwp_i.name = 'orientation') OR (srwp_i.name = 'number of sides') OR (srwp_i.name = 'circumscribed diameter') OR (srwp_i.name = 'corner radius') OR (srwp_i.name = 'diameter across flats'))) = SIZEOF(pdr.used_representation.items)))) = 1)) = 1; WR5: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'number of sides'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name IN ['circumscribed diameter','diameter across flats']))) = 1))) = 0))) = 0; WR8: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'corner radius'))) <= 1))) = 0))) = 0; END_ENTITY;
ENTITY Non_Agreed_Accuracy_Parameter_Usage SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT']); END_ENTITY;
ENTITY Non_Agreed_Scale_Usage SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_TRANSFORMATION_OPERATOR_3D']); END_ENTITY;
ENTITY Non_Agreed_Unit_Usage SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT']); END_ENTITY;
ENTITY Non_Manifold_At_Edge SUBTYPE OF (Inapt_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Non_Manifold_At_Vertex SUBTYPE OF (Inapt_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Non_Manifold_Surface_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1)) > 0; WR3: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)) AND (SIZEOF(QUERY(mr_it <* mi\Mapped_Item.mapping_source.mapped_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(mr_it)))) > 0)))) = 0; WR4: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(fa <* cfs.cfs_faces | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE'] * TYPEOF(fa)) = 1))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(f_sf <* QUERY(fa <* cfs.cfs_faces | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(fa))) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(f_sf)) OR (Nmsf_Surface_Check(f_sf\Face_Surface.face_geometry))))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(o_fa <* QUERY(fa <* cfs.cfs_faces | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN TYPEOF(fa))) | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(o_fa\Oriented_Face.face_element)) OR (Nmsf_Surface_Check(o_fa\Oriented_Face.face_element\Face_Surface.face_geometry))))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(fa <* cfs.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(bnds <* fa.bounds | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP'] * TYPEOF(bnds.bound)) = 1))) = 0)))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(fa <* cfs.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\Path.edge_list | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(oe.edge_element)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(fa <* cfs.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe_cv <* QUERY(oe <* elp_fbnds\Path.edge_list | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(oe.edge_element)) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE'] * TYPEOF(oe_cv.edge_element\Edge_Curve.edge_geometry)) = 1))) = 0))) = 0)))) = 0))) = 0))) = 0; WR10: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(fa <* cfs.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\Path.edge_list | NOT (Nmsf_Curve_Check(oe.edge_element\Edge_Curve.edge_geometry)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR11: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(fa <* cfs.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\Path.edge_list | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_element.edge_start)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(oe.edge_element.edge_end))))) = 0))) = 0)))) = 0))) = 0))) = 0; WR12: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(fa <* cfs.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(elp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(QUERY(oe <* elp_fbnds\Path.edge_list | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * TYPEOF(oe.edge_element.edge_start\Vertex_Point.vertex_geometry)) = 1) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * TYPEOF(oe.edge_element.edge_end\Vertex_Point.vertex_geometry)) = 1)))) = 0))) = 0)))) = 0))) = 0))) = 0; WR13: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(fa <* cfs.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(vlp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(vlp_fbnds\Vertex_Loop.loop_vertex)))) = 0)))) = 0))) = 0))) = 0; WR14: SIZEOF(QUERY(fbsm <* QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF(it)) | NOT (SIZEOF(QUERY(cfs <* fbsm\Face_Based_Surface_Model.fbsm_faces | NOT (SIZEOF(QUERY(fa <* cfs.cfs_faces | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(fa)) OR (SIZEOF(QUERY(vlp_fbnds <* QUERY(bnds <* fa.bounds | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF(bnds.bound)) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * TYPEOF(vlp_fbnds\Vertex_Loop.loop_vertex\Vertex_Point.vertex_geometry)) = 1))) = 0)))) = 0))) = 0))) = 0; END_ENTITY;
ENTITY Non_Referenced_Coordinate_System SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D']); END_ENTITY;
ENTITY Non_Smooth_Geometry_Transition_Across_Edge ABSTRACT SUPERTYPE OF (ONEOF(G1_Discontinuity_Between_Adjacent_Faces, G2_Discontinuity_Between_Adjacent_Faces)) SUBTYPE OF (Inapt_Topology_And_Geometry_Relationship); END_ENTITY;
ENTITY Non_Uniform_Zone_Definition SUBTYPE OF (Tolerance_Zone_Definition); END_ENTITY;
ENTITY Not_Expression SUBTYPE OF (Unary_Boolean_Expression); SELF\unary_generic_expression.operand : Boolean_Expression; END_ENTITY;
ENTITY Null_Representation_Item SUBTYPE OF (Representation_Item); END_ENTITY;
ENTITY Numeric_Defined_Function ABSTRACT SUPERTYPE OF (ONEOF(Integer_Defined_Function, Real_Defined_Function)) SUBTYPE OF (Numeric_Expression, Defined_Function); END_ENTITY;
ENTITY Numeric_Expression ABSTRACT SUPERTYPE OF (ONEOF(Simple_Numeric_Expression, Unary_Numeric_Expression, Binary_Numeric_Expression, Multiple_Arity_Numeric_Expression, Length_Function, Value_Function, Numeric_Defined_Function)) SUBTYPE OF (Expression); DERIVE is_int : BOOLEAN := Is_Int_Expr(SELF); sql_mappable : BOOLEAN := Is_Sql_Mappable(SELF); END_ENTITY;
ENTITY Numeric_Variable SUPERTYPE OF (ONEOF(Int_Numeric_Variable, Real_Numeric_Variable)) SUBTYPE OF (Simple_Numeric_Expression, Variable); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(SELF)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Object_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Odd_Function SUBTYPE OF (Unary_Boolean_Expression); SELF\unary_generic_expression.operand : Numeric_Expression; WHERE WR1: Is_Int_Expr(operand); END_ENTITY;
ENTITY Offset_Curve_2d SUBTYPE OF (Curve); basis_curve : Curve; distance : Length_Measure; self_intersect : LOGICAL; WHERE WR1: basis_curve.dim = 2; END_ENTITY;
ENTITY Offset_Curve_3d SUBTYPE OF (Curve); basis_curve : Curve; distance : Length_Measure; self_intersect : LOGICAL; ref_direction : Direction; WHERE WR1: (basis_curve.dim = 3) AND (ref_direction.dim = 3); END_ENTITY;
ENTITY Offset_Surface SUBTYPE OF (Surface); basis_surface : Surface; distance : Length_Measure; self_intersect : LOGICAL; END_ENTITY;
ENTITY One_Direction_Repeat_Factor SUBTYPE OF (Geometric_Representation_Item); repeat_factor : Vector; END_ENTITY;
ENTITY Open_Closed_Shell SUBTYPE OF (Erroneous_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Open_Edge_Loop SUBTYPE OF (Erroneous_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Open_Path SUBTYPE OF (Path); DERIVE ne : INTEGER := SIZEOF(SELF\Path.edge_list); WHERE WR1: (SELF\Path.edge_list[1].edge_element.edge_start) :<>: (SELF\Path.edge_list[ne].edge_element.edge_end); END_ENTITY;
ENTITY Open_Path_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition)); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) = 1)))) = 0)))) = 0); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR6: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; END_ENTITY;
ENTITY Open_Shell SUBTYPE OF (Connected_Face_Set); END_ENTITY;
ENTITY Or_Expression SUBTYPE OF (Multiple_Arity_Boolean_Expression); END_ENTITY;
ENTITY Ordinal_Date SUBTYPE OF (Date); day_component : Day_In_Year_Number; WHERE WR1: (NOT Leap_Year(SELF.year_component) AND {1 <= day_component <= 365}) OR (Leap_Year(SELF.year_component) AND {1 <= day_component <= 366}); END_ENTITY;
ENTITY Ordinate_Dimension SUBTYPE OF (Projection_Directed_Callout); END_ENTITY;
ENTITY Organization; id : OPTIONAL Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Organization_Assignment ABSTRACT SUPERTYPE; assigned_organization : Organization; role : Organization_Role; END_ENTITY;
ENTITY Organization_Relationship; name : Label; description : OPTIONAL Text; relating_organization : Organization; related_organization : Organization; END_ENTITY;
ENTITY Organization_Role; name : Label; DERIVE description : Text := Get_Description_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY;
ENTITY Organization_Type; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Organization_Type_Assignment ABSTRACT SUPERTYPE; id : Identifier; name : Label; description : OPTIONAL Text; assigned_organization_type : Organization_Type; role : Organization_Type_Role; END_ENTITY;
ENTITY Organization_Type_Role; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Organizational_Address SUBTYPE OF (Address); organizations : SET [1 : ?] OF Organization; description : OPTIONAL Text; END_ENTITY;
ENTITY Organizational_Project; name : Label; description : OPTIONAL Text; responsible_organizations : SET [1 : ?] OF Organization; DERIVE id : Identifier := Get_Id_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Organizational_Project_Assignment ABSTRACT SUPERTYPE; assigned_organizational_project : Organizational_Project; role : Organizational_Project_Role; END_ENTITY;
ENTITY Organizational_Project_Relationship; name : Label; description : OPTIONAL Text; relating_organizational_project : Organizational_Project; related_organizational_project : Organizational_Project; END_ENTITY;
ENTITY Organizational_Project_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Oriented_Closed_Shell SUBTYPE OF (Closed_Shell); closed_shell_element : Closed_Shell; orientation : BOOLEAN; DERIVE SELF\connected_face_set.cfs_faces : SET [1 : ?] OF Face := Conditional_Reverse(SELF.Orientation, SELF.closed_shell_element.cfs_faces); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF(SELF.closed_shell_element)); END_ENTITY;
ENTITY Oriented_Edge SUBTYPE OF (Edge); edge_element : Edge; orientation : BOOLEAN; DERIVE SELF\edge.edge_start : Vertex := Boolean_Choose(SELF.Orientation, SELF.edge_element.edge_start, SELF.edge_element.edge_end); SELF\edge.edge_end : Vertex := Boolean_Choose(SELF.Orientation, SELF.edge_element.edge_end, SELF.edge_element.edge_start); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE' IN TYPEOF(SELF.edge_element)); END_ENTITY;
ENTITY Oriented_Face SUBTYPE OF (Face); face_element : Face; orientation : BOOLEAN; DERIVE SELF\face.bounds : SET [1 : ?] OF Face_Bound := Conditional_Reverse(SELF.Orientation, SELF.face_element.bounds); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN TYPEOF(SELF.face_element)); END_ENTITY;
ENTITY Oriented_Joint SUBTYPE OF (Oriented_Edge); SELF\oriented_edge.edge_element : Kinematic_Joint; END_ENTITY;
ENTITY Oriented_Open_Shell SUBTYPE OF (Open_Shell); open_shell_element : Open_Shell; orientation : BOOLEAN; DERIVE SELF\connected_face_set.cfs_faces : SET [1 : ?] OF Face := Conditional_Reverse(SELF.Orientation, SELF.open_shell_element.cfs_faces); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_OPEN_SHELL' IN TYPEOF(SELF.open_shell_element)); END_ENTITY;
ENTITY Oriented_Path SUBTYPE OF (Path); path_element : Path; orientation : BOOLEAN; DERIVE SELF\path.edge_list : LIST [1 : ?] OF UNIQUE Oriented_Edge := Conditional_Reverse(SELF.Orientation, SELF.path_element.edge_list); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_PATH' IN TYPEOF(SELF.path_element)); END_ENTITY;
ENTITY Oriented_Surface SUBTYPE OF (Surface); orientation : BOOLEAN; END_ENTITY;
ENTITY Oriented_Tolerance_Zone SUBTYPE OF (Tolerance_Zone_With_Datum); orientation : Oriented_Tolerance_Zone_Type; angle : OPTIONAL Plane_Angle_Measure_With_Unit; WHERE WR1: (Orientation <> Oriented_Tolerance_Zone_Type.Angular) XOR EXISTS(angle); END_ENTITY;
ENTITY Outer_Boundary_Curve SUBTYPE OF (Boundary_Curve); END_ENTITY;
ENTITY Outer_Round SUBTYPE OF (Feature_Definition); WHERE WR1: ((NOT (SELF\Characterized_Object.description = 'outer diameter')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 3))) = 1)) = 1)); WR2: ((NOT (SELF\Characterized_Object.description = 'outer diameter to shoulder')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ({2 <= SIZEOF(pdr.used_representation.items) <= 3}))) = 1)) = 1)); WR3: (SELF\Characterized_Object.description IN ['outer diameter','outer diameter to shoulder']); WR4: ((NOT (SELF\Characterized_Object.description = 'outer diameter')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'length')))) = 1)))) = 0)))) = 0)); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'diameter')))) = 1)))) = 0)))) = 0); WR6: ((NOT (SELF\Characterized_Object.description = 'outer diameter to shoulder')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'v-shape boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'v-shape')))) = 1)))) = 1)))) = 0)); WR7: ((NOT (SELF\Characterized_Object.description = 'outer diameter')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'reduced size occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'taper usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF(sdr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTER_ROUND' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition)) AND (sdr.name = 'reduced size')))) = 1)))) <= 1)))) = 0)); WR8: ((NOT (SELF\Characterized_Object.description = 'outer diameter to shoulder')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'length')))) <= 1)))) = 0)))) = 0)); WR9: ((NOT (SELF\Characterized_Object.description = 'outer diameter to shoulder')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'feature length')))) <= 1)))) = 0)))) = 0)); END_ENTITY;
ENTITY Outside_Profile SUBTYPE OF (Feature_Definition); WHERE WR1: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(pdr.used_representation.items) = 1))) = 1)) = 1; WR2: SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description IN ['boundary occurrence', 'non-planar boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence']))) = 1))) = 0; WR3: (NOT (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'boundary occurrence'))) = 1))) = 0)) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect.description = 'outside boundary'))) = 1))) = 1))) = 0); WR4: (NOT (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description IN ['complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence']))) = 1))) = 0)) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | NOT (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile floor usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROFILE_FLOOR' IN TYPEOF(sdr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTSIDE_PROFILE' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition))))) = 1))) = 0))) = 0); WR5: (NOT (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description IN ['outside boundary', 'complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence']))) = 1))) = 0)) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'path feature component usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT'] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.name = 'profile swept shape') AND (sdr.relating_shape_aspect.description = 'linear'))) = 1))) = 1))) = 0); WR6: (NOT (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'complex boundary occurrence'))) = 1))) = 0)) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * TYPEOF(sdr.relating_shape_aspect)) = 1))) = 1))) = 1))) = 0); WR7: (NOT (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'partial circular boundary occurrence'))) = 1))) = 0)) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR8: (NOT (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'closed circular boundary occurrence'))) = 1))) = 0)) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR9: (NOT (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'open rectangular boundary occurrence'))) = 1))) = 0)) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR10: (NOT (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'closed rectangular boundary occurrence'))) = 1))) = 0)) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR11: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description IN ['boundary occurrence', 'complex boundary occurrence', 'partial circular boundary occurrence', 'closed circular boundary occurrence', 'open rectangular boundary occurrence', 'closed rectangular boundary occurrence']))) = 1))) = 0) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'removal direction')))) = 1)))) = 0); WR12: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0; END_ENTITY;
ENTITY Over_Riding_Styled_Item SUBTYPE OF (Styled_Item); over_ridden_style : Styled_Item; END_ENTITY;
ENTITY Over_Used_Vertex SUBTYPE OF (Inapt_Topology); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Overcomplex_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Excessively_High_Degree_Curve, Excessively_High_Degree_Surface, Surface_With_Excessive_Patches_In_One_Direction, Curve_With_Excessive_Segments, High_Degree_Linear_Curve, High_Degree_Planar_Surface, High_Degree_Conic, High_Degree_Axi_Symmetric_Surface)) SUBTYPE OF (Inapt_Geometry); END_ENTITY;
ENTITY Overcomplex_Topology_And_Geometry_Relationship ABSTRACT SUPERTYPE OF (ONEOF(Unused_Patches, Edge_With_Excessive_Segments, Face_Surface_With_Excessive_Patches_In_One_Direction)) SUBTYPE OF (Inapt_Topology_And_Geometry_Relationship); END_ENTITY;
ENTITY Overlapping_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Partly_Overlapping_Curves, Partly_Overlapping_Surfaces)) SUBTYPE OF (Inapt_Geometry); END_ENTITY;
ENTITY Package_Product_Concept_Feature SUBTYPE OF (Product_Concept_Feature); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF(SELF)); WR2: SIZEOF(QUERY(cfr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr)) AND (SIZEOF(QUERY(ipcf <* USEDIN(cfr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDITIONAL_CONCEPT_FEATURE.CONDITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(ipcf))) = 1))) > 0; END_ENTITY;
ENTITY Pair_Representation_Relationship SUBTYPE OF (Geometric_Representation_Item, Representation_Relationship_With_Transformation); SELF\representation_relationship.rep_1 : Kinematic_Link_Representation; SELF\representation_relationship.rep_2 : Kinematic_Link_Representation; SELF\representation_relationship_with_transformation.transformation_operator : Kinematic_Pair; WHERE WR1: transformation_operator\Item_Defined_Transformation.transform_item_1 IN rep_1.items; WR2: transformation_operator\Item_Defined_Transformation.transform_item_2 IN rep_2.items; WR3: rep_1\Kinematic_Link_Representation.represented_link = transformation_operator\Kinematic_Pair.joint.edge_start; WR4: rep_2\Kinematic_Link_Representation.represented_link = transformation_operator\Kinematic_Pair.joint.edge_end; END_ENTITY;
ENTITY Pair_Value ABSTRACT SUPERTYPE OF (ONEOF(Sliding_Surface_Pair_Value, Rolling_Surface_Pair_Value, Revolute_Pair_Value, Prismatic_Pair_Value, Screw_Pair_Value, Cylindrical_Pair_Value, Spherical_Pair_Value, Sliding_Curve_Pair_Value, Rolling_Curve_Pair_Value, Gear_Pair_Value, Rack_And_Pinion_Pair_Value, Universal_Pair_Value, Planar_Pair_Value, Unconstrained_Pair_Value, Point_On_Surface_Pair_Value, Point_On_Planar_Curve_Pair_Value, Low_Order_Kinematic_Pair_Value)) SUBTYPE OF (Geometric_Representation_Item); applies_to_pair : Kinematic_Pair; END_ENTITY;
ENTITY Parabola SUBTYPE OF (Conic); focal_dist : Length_Measure; WHERE WR1: focal_dist <> 0.0; END_ENTITY;
ENTITY Parallel_Assembly_Constraint SUBTYPE OF (Binary_Assembly_Constraint, Parallel_Geometric_Constraint); END_ENTITY;
ENTITY Parallel_Assembly_Constraint_With_Dimension SUBTYPE OF (Parallel_Assembly_Constraint, Pgc_With_Dimension); END_ENTITY;
ENTITY Parallel_Composed_Function SUBTYPE OF (Maths_Function, Multiple_Arity_Generic_Expression); source_of_domain : Maths_Space_Or_Function; prep_functions : LIST [1 : ?] OF Maths_Function; final_function : Maths_Function_Select; DERIVE SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF Generic_Expression := Convert_To_Operands_Prcmfn(source_of_domain, prep_functions, final_function); WHERE WR1: No_Cyclic_Domain_Reference(source_of_domain, [SELF]); WR2: Expression_Is_Constant(Domain_From(source_of_domain)); WR3: Parallel_Composed_Function_Domain_Check(Domain_From(source_of_domain), prep_functions); WR4: Parallel_Composed_Function_Composability_Check(prep_functions, final_function); END_ENTITY;
ENTITY Parallel_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Linear_Geometry_Constraint_Element; SELF\explicit_constraint.reference_elements : SET [0 : 1] OF Linear_Geometry_Constraint_Element; END_ENTITY;
ENTITY Parallel_Offset SUBTYPE OF (Derived_Shape_Aspect); offset : Measure_With_Unit; WHERE WR1: SIZEOF(SELF\Derived_Shape_Aspect.deriving_relationships) = 1; END_ENTITY;
ENTITY Parallel_Offset_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Curve_Or_Surface_Constraint_Element; SELF\explicit_constraint.reference_elements : SET [0 : 1] OF Curve_Or_Surface_Constraint_Element; offset_type : Parallel_Offset_Type; WHERE WR1: NOT (((offset_type = Curve_2d_Offset) OR (offset_type = Curve_3d_Offset)) AND (SIZEOF(QUERY(q <* (SELF\Explicit_Constraint.constrained_elements + SELF\Explicit_Constraint.reference_elements) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(q))) > 0)); WR2: NOT ((offset_type = Surface_Offset) AND (SIZEOF(QUERY(q <* (SELF\Explicit_Constraint.constrained_elements + SELF\Explicit_Constraint.reference_elements) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(q))) > 0)); END_ENTITY;
ENTITY Parallelism_Tolerance SUBTYPE OF (Geometric_Tolerance_With_Datum_Reference); END_ENTITY;
ENTITY Parametric_Representation_Context SUBTYPE OF (Representation_Context); END_ENTITY;
ENTITY Part_Laminate_Table SUPERTYPE OF (ONEOF(Composite_Assembly_Table, Ply_Laminate_Table)) SUBTYPE OF (Laminate_Table); END_ENTITY;
ENTITY Partial_Circular_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition)); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) >= 3)))) = 0)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) = 1)))) = 0)))) = 0); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')))) = 1)))) = 0)))) = 0); WR6: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'sweep angle')))) = 1)))) = 0)))) = 0); WR7: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; END_ENTITY;
ENTITY Partial_Derivative_Expression SUBTYPE OF (Unary_Generic_Expression); d_variables : LIST [1 : ?] OF Maths_Variable; extension : Extension_Options; DERIVE derivand : Generic_Expression := SELF\Unary_Generic_Expression.operand; WHERE WR1: Has_Values_Space(derivand); WR2: Space_Is_Continuum(Values_Space_Of(derivand)); WR3: SIZEOF(QUERY(vbl <* d_variables | (NOT Subspace_Of(Values_Space_Of(vbl), The_Reals)) AND (NOT Subspace_Of(Values_Space_Of(vbl), The_Complex_Numbers)))) = 0; END_ENTITY;
ENTITY Partial_Derivative_Function SUBTYPE OF (Maths_Function, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Maths_Function; d_variables : LIST [1 : ?] OF Input_Selector; extension : Extension_Options; DERIVE derivand : Maths_Function := SELF\Unary_Generic_Expression.operand; WHERE WR1: Space_Is_Continuum(derivand.range); WR2: Partial_Derivative_Check(derivand.domain, d_variables); END_ENTITY;
ENTITY Partial_Document_With_Structured_Text_Representation_Assignment SUBTYPE OF (Applied_Document_Usage_Constraint_Assignment, Characterized_Object); END_ENTITY;
ENTITY Partly_Overlapping_Curves SUBTYPE OF (Overlapping_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; interference_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Partly_Overlapping_Edges SUBTYPE OF (Topology_Related_To_Overlapping_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; interference_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBEDGE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Partly_Overlapping_Faces SUBTYPE OF (Topology_Related_To_Overlapping_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; interference_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); END_ENTITY;
ENTITY Partly_Overlapping_Solids SUBTYPE OF (Inapt_Manifold_Solid_Brep); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; interference_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); END_ENTITY;
ENTITY Partly_Overlapping_Surfaces SUBTYPE OF (Overlapping_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; interference_tolerance : Length_Measure; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); END_ENTITY;
ENTITY Path SUPERTYPE OF (ONEOF(Open_Path, Edge_Loop, Oriented_Path)) SUBTYPE OF (Topological_Representation_Item); edge_list : LIST [1 : ?] OF UNIQUE Oriented_Edge; WHERE WR1: Path_Head_To_Tail(SELF); END_ENTITY;
ENTITY Path_Area_With_Parameters SUBTYPE OF (Complex_Area, Mapped_Item); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(SELF\Mapped_Item.mapping_target); WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE_PARAMETERS_REPRESENTATION' IN TYPEOF(SELF\Mapped_Item.mapping_source\Representation_Map.mapped_representation); WR3: SELF\Mapped_Item.mapping_source\Representation_Map.mapping_origin\Representation_Item.name = 'curve width'; END_ENTITY;
ENTITY Path_Feature_Component SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition)); WR2: (SELF.description IN ['partial circular','complete circular','linear','complex']); WR3: ((NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0)); WR4: ((SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) = 1)))) = 0)))) = 0)); WR5: ((NOT (SELF.description = 'partial circular')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 3)))) = 0)))) = 0)); WR6: ((NOT (SELF.description = 'partial circular')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')))) = 1)))) = 0)))) = 0)); WR7: ((NOT (SELF.description = 'partial circular')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'sweep angle')))) = 1)))) = 0)))) = 0)); WR8: ((NOT (SELF.description = 'complete circular')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = 0)))) = 0)); WR9: ((NOT (SELF.description = 'complete circular')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')))) = 1)))) = 0)))) = 0)); WR10: ((NOT (SELF.description = 'linear')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = 0)))) = 0)); WR11: ((NOT (SELF.description = 'linear')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'distance')))) = 1)))) = 0)))) = 0)); WR12: ((NOT (SELF.description = 'linear')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)))) = 1)))) = 0)); WR13: ((NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'sweep path') AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | (srwp_i.name = 'profile shape'))) = 1)))) = 1)))) = 0)); END_ENTITY;
ENTITY Path_Node ABSTRACT SUPERTYPE OF (ONEOF(Point_To_Point_Path, Circular_Path, Linear_Path, Curve_Based_Path)) SUBTYPE OF (Kinematic_Path_Segment); placement_end : Placement; END_ENTITY;
ENTITY Path_Parameter_Representation SUBTYPE OF (Definitional_Representation); SELF\representation.context_of_items : Path_Parameter_Representation_Context; SELF\representation.items : SET [1 : ?] OF Bounded_Curve; WHERE WR1: SELF\Representation.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 2; END_ENTITY;
ENTITY Path_Parameter_Representation_Context SUBTYPE OF (Geometric_Representation_Context, Parametric_Representation_Context); END_ENTITY;
ENTITY Path_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: (SIZEOF(SELF.items) >= 1); WR2: (SIZEOF(QUERY(i <* SELF.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH'] * TYPEOF(i)) = 1))) >= 1); END_ENTITY;
ENTITY Pattern_Offset_Membership SUBTYPE OF (Feature_Component_Relationship); WHERE WR1: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF.relating_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))) | ((SIZEOF(QUERY(pdr <* (QUERY(pd <* USEDIN(fcr.related_shape_aspect.of_shape, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN'] * TYPEOF(pdr.definition)) = 1)) = 0)))) = 0); WR2: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))) | (fcr.description = 'modified pattern') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN TYPEOF(fcr.relating_shape_aspect)))) >= 1); WR3: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN TYPEOF(fcr.relating_shape_aspect)) AND (NOT (SIZEOF(QUERY(modfcr <* QUERY(modsar <* USEDIN(fcr.relating_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN'] * TYPEOF(modsar.related_shape_aspect.of_shape.definition)) = 1) AND (modsar :<>: fcr))) | (NOT (modfcr.related_shape_aspect.of_shape.definition :=: SELF.relating_shape_aspect.of_shape.definition)))) = 0))))) = 0); WR4: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 2)))) = 0)); WR5: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1)))) = 0)); WR6: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(pdr.used_representation.items) = 2)))) = 0)))) = 0)); WR7: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'index number')))) = 1)))) = 0)))) = 0)); WR8: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF(it)) AND (it.name = 'offset')))) = 1)))) = 0)))) = 0)); WR9: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 3)))) = 0)))) = 0)); WR10: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'row index')))) = 1)))) = 0)))) = 0)); WR11: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'column index')))) = 1)))) = 0)))) = 0)); WR12: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it)) AND (it.name = 'offset distance')))) = 1)))) = 0)))) = 0)); WR13: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'offset direction')))) = 1)))) = 0)); END_ENTITY;
ENTITY Pattern_Omit_Membership SUBTYPE OF (Feature_Component_Relationship); WHERE WR1: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF.relating_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))) | ((SIZEOF(QUERY(pdr <* (QUERY(pd <* USEDIN(fcr.related_shape_aspect.of_shape, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN'] * TYPEOF(pdr.definition)) = 1)) = 0)))) = 0); WR2: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))) | (fcr.description = 'modified pattern') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN TYPEOF(fcr.relating_shape_aspect)))) >= 1); WR3: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (sar :<>: SELF))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MODIFIED_PATTERN' IN TYPEOF(fcr.relating_shape_aspect)) AND (NOT (SIZEOF(QUERY(modfcr <* QUERY(modsar <* USEDIN(fcr.relating_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN'] * TYPEOF(modsar.related_shape_aspect.of_shape.definition)) = 1) AND (modsar :<>: fcr))) | (NOT (modfcr.related_shape_aspect.of_shape.definition :=: SELF.relating_shape_aspect.of_shape.definition)))) = 0))))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')) = 1)))) = 0); WR5: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(pdr.used_representation.items) = 1)))) = 0)))) = 0)); WR6: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'index number')))) = 1)))) = 0)))) = 0)); WR7: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (NOT (SIZEOF(pdr.used_representation.items) = 2)))) = 0)))) = 0)); WR8: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'row index')))) = 1)))) = 0)))) = 0)); WR9: ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR (SIZEOF(QUERY(pd <* USEDIN(SELF.related_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'column index')))) = 1)))) = 0)))) = 0)); END_ENTITY;
ENTITY Pcurve SUBTYPE OF (Curve); basis_surface : Surface; reference_to_curve : Definitional_Representation; WHERE WR1: SIZEOF(reference_to_curve\Representation.items) = 1; WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(reference_to_curve\Representation.items[1]); WR3: reference_to_curve\Representation.items[1]\Geometric_Representation_Item.dim = 2; END_ENTITY;
ENTITY Pdgc_With_Dimension SUBTYPE OF (Point_Distance_Geometric_Constraint); distance_value : Non_Negative_Length_Measure; END_ENTITY;
ENTITY Percentage_Laminate_Table SUBTYPE OF (Zone_Structural_Makeup); END_ENTITY;
ENTITY Perpendicular_Assembly_Constraint SUBTYPE OF (Binary_Assembly_Constraint, Perpendicular_Geometric_Constraint); END_ENTITY;
ENTITY Perpendicular_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Linear_Geometry_Constraint_Element; SELF\explicit_constraint.reference_elements : SET [0 : 2] OF Linear_Geometry_Constraint_Element; WHERE WR1: NOT ((SIZEOF(SELF\Explicit_Constraint.reference_elements) = 2) AND NOT ((SIZEOF(QUERY(q <* SELF\Explicit_Constraint.constrained_elements + SELF\Explicit_Constraint.reference_elements | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' IN TYPEOF(q))) = SIZEOF(SELF\Explicit_Constraint.reference_elements + SELF\Explicit_Constraint.constrained_elements)) XOR (SIZEOF(QUERY(q <* SELF\Explicit_Constraint.constrained_elements + SELF\Explicit_Constraint.reference_elements | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(q))) = SIZEOF(SELF\Explicit_Constraint.reference_elements + SELF\Explicit_Constraint.constrained_elements)))); WR2: (SIZEOF(SELF\Explicit_Constraint.reference_elements) > 0) OR (SIZEOF(SELF\Explicit_Constraint.constrained_elements) IN [2,3]); WR3: NOT ((SIZEOF(SELF\Explicit_Constraint.reference_elements) = 0) AND (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 3)) AND NOT ((SIZEOF(QUERY(q <* SELF\Explicit_Constraint.constrained_elements | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE' IN TYPEOF(q))) = 3) XOR (SIZEOF(QUERY(q <* SELF\Explicit_Constraint.constrained_elements | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(q))) = 3)); END_ENTITY;
ENTITY Perpendicular_To SUBTYPE OF (Derived_Shape_Aspect); WHERE WR1: SIZEOF(SELF\Derived_Shape_Aspect.deriving_relationships) = 1; END_ENTITY;
ENTITY Perpendicularity_Tolerance SUBTYPE OF (Geometric_Tolerance_With_Datum_Reference); END_ENTITY;
ENTITY Person; id : Identifier; last_name : OPTIONAL Label; first_name : OPTIONAL Label; middle_names : OPTIONAL LIST [1 : ?] OF Label; prefix_titles : OPTIONAL LIST [1 : ?] OF Label; suffix_titles : OPTIONAL LIST [1 : ?] OF Label; WHERE WR1: EXISTS(last_name) OR EXISTS(first_name); END_ENTITY;
ENTITY Person_And_Organization; the_person : Person; the_organization : Organization; DERIVE name : Label := Get_Name_Value(SELF); description : Text := Get_Description_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY;
ENTITY Person_And_Organization_Address SUBTYPE OF (Organizational_Address, Personal_Address); SELF\organizational_address.organizations : SET [1 : 1] OF Organization; SELF\personal_address.people : SET [1 : 1] OF Person; WHERE WR1: SIZEOF(QUERY(pao <* USEDIN(SELF\Personal_Address.people[1], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PERSON_AND_ORGANIZATION.THE_PERSON') | pao.the_organization :=: SELF\Organizational_Address.organizations[1])) = 1; END_ENTITY;
ENTITY Person_And_Organization_Assignment ABSTRACT SUPERTYPE; assigned_person_and_organization : Person_And_Organization; role : Person_And_Organization_Role; END_ENTITY;
ENTITY Person_And_Organization_Role; name : Label; DERIVE description : Text := Get_Description_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY;
ENTITY Personal_Address SUBTYPE OF (Address); people : SET [1 : ?] OF Person; description : OPTIONAL Text; END_ENTITY;
ENTITY Pgc_With_Dimension SUBTYPE OF (Parallel_Geometric_Constraint); distance_value : Non_Negative_Length_Measure; negative_direction : BOOLEAN; WHERE WR1: (SIZEOF(SELF\Explicit_Constraint.reference_elements) = 1) OR (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 2); WR2: SIZEOF(QUERY(q <* (SELF\Explicit_Constraint.reference_elements + SELF\Explicit_Constraint.constrained_elements) | SIZEOF(TYPEOF(q) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR']) > 0)) = 0; END_ENTITY;
ENTITY Physical_Breakdown_Context SUBTYPE OF (Breakdown_Context); END_ENTITY;
ENTITY Physical_Component SUBTYPE OF (Assembly_Component); END_ENTITY;
ENTITY Physical_Component_Feature SUPERTYPE OF ((ONEOF(Physical_Component_Terminal, Physical_Component_Interface_Terminal))) SUBTYPE OF (Component_Feature); END_ENTITY;
ENTITY Physical_Component_Interface_Terminal SUBTYPE OF (Physical_Component_Feature); END_ENTITY;
ENTITY Physical_Component_Terminal SUBTYPE OF (Component_Terminal, Physical_Component_Feature); END_ENTITY;
ENTITY Physical_Element_Usage SUBTYPE OF (Breakdown_Element_Usage); END_ENTITY;
ENTITY Picture_Representation SUBTYPE OF (Presentation_View); SELF\representation.items : SET [2 : ?] OF Picture_Representation_Item_Select; INVERSE size : Presentation_Size FOR Unit; WHERE WR1: SIZEOF(QUERY(item <* items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(item))) = 1; WR2: SIZEOF(QUERY(se <* QUERY(item <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(item))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PICTURE_REPRESENTATION_ITEM' IN TYPEOF(se\Styled_Item.item)))) = 0; END_ENTITY;
ENTITY Picture_Representation_Item ABSTRACT SUPERTYPE OF (ONEOF(Externally_Defined_Picture_Representation_Item, Predefined_Picture_Representation_Item)) SUBTYPE OF (Bytes_Representation_Item); END_ENTITY;
ENTITY Placed_Datum_Target_Feature SUBTYPE OF (Datum_Target); DERIVE representation_associations : SET [0 : ?] OF Property_Definition_Representation := Get_Shape_Aspect_Property_Definition_Representations(SELF); WHERE WR1: SELF.description IN ['point','line','rectangle','circle','circular curve']; WR2: SIZEOF(QUERY(pdr <* representation_associations | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1; WR3: Valid_Datum_Target_Parameters(SELF); END_ENTITY;
ENTITY Placed_Feature SUBTYPE OF (Shape_Aspect); END_ENTITY;
ENTITY Placement SUPERTYPE OF (ONEOF(Axis1_Placement, Axis2_Placement_2d, Axis2_Placement_3d)) SUBTYPE OF (Geometric_Representation_Item); location : Cartesian_Point; END_ENTITY;
ENTITY Planar_Box SUBTYPE OF (Planar_Extent); placement : Axis2_Placement; END_ENTITY;
ENTITY Planar_Curve_Pair SUPERTYPE OF (ONEOF(Sliding_Curve_Pair, Rolling_Curve_Pair) ANDOR Planar_Curve_Pair_Range) SUBTYPE OF (High_Order_Kinematic_Pair); curve_1 : Curve; curve_2 : Curve; orientation : BOOLEAN; WHERE WR1: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT (curve_1 IN r.items))) = 0; WR2: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_2 | NOT (curve_2 IN r.items))) = 0; WR3: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Planar_Curve_Pair_Range SUBTYPE OF (Planar_Curve_Pair); range_on_curve_1 : Trimmed_Curve; range_on_curve_2 : Trimmed_Curve; WHERE WR1: SELF\Planar_Curve_Pair.curve_1 :=: range_on_curve_1.basis_curve; WR2: SELF\Planar_Curve_Pair.curve_2 :=: range_on_curve_2.basis_curve; WR3: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT (range_on_curve_1 IN r.items))) = 0; WR4: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_2 | NOT (range_on_curve_2 IN r.items))) = 0; END_ENTITY;
ENTITY Planar_Extent SUBTYPE OF (Geometric_Representation_Item); size_in_x : Length_Measure; size_in_y : Length_Measure; END_ENTITY;
ENTITY Planar_Pair SUBTYPE OF (Low_Order_Kinematic_Pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY;
ENTITY Planar_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Planar_Pair; actual_rotation : Plane_Angle_Measure; actual_translation_x : Length_Measure; actual_translation_y : Length_Measure; END_ENTITY;
ENTITY Planar_Pair_With_Range SUBTYPE OF (Planar_Pair); lower_limit_actual_rotation : OPTIONAL Plane_Angle_Measure; upper_limit_actual_rotation : OPTIONAL Plane_Angle_Measure; lower_limit_actual_translation_x : OPTIONAL Length_Measure; upper_limit_actual_translation_x : OPTIONAL Length_Measure; lower_limit_actual_translation_y : OPTIONAL Length_Measure; upper_limit_actual_translation_y : OPTIONAL Length_Measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); WR2: (NOT EXISTS(lower_limit_actual_translation_x) OR NOT EXISTS(upper_limit_actual_translation_x)) XOR (lower_limit_actual_translation_x < upper_limit_actual_translation_x); WR3: (NOT EXISTS(lower_limit_actual_translation_y) OR NOT EXISTS(upper_limit_actual_translation_y)) XOR (lower_limit_actual_translation_y < upper_limit_actual_translation_y); END_ENTITY;
ENTITY Planar_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(SELF.items) = 1; WR2: SIZEOF(QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(it)))) = 1; END_ENTITY;
ENTITY Plane SUBTYPE OF (Elementary_Surface); END_ENTITY;
ENTITY Plane_Angle_And_Length_Pair SUBTYPE OF (Founded_Item); plane_angle_value : Plane_Angle_Measure; length_value : Length_Measure; END_ENTITY;
ENTITY Plane_Angle_And_Ratio_Pair SUBTYPE OF (Founded_Item); plane_angle_value : Plane_Angle_Measure; ratio_value : Ratio_Measure; END_ENTITY;
ENTITY Plane_Angle_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Plane_Angle_Unit SUBTYPE OF (Named_Unit); WHERE WR1: (SELF\Named_Unit.dimensions.length_exponent = 0.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 0.0) AND (SELF\Named_Unit.dimensions.time_exponent = 0.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 0.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY;
ENTITY Plus_Expression SUBTYPE OF (Multiple_Arity_Numeric_Expression); END_ENTITY;
ENTITY Plus_Minus_Tolerance; range : Tolerance_Method_Definition; toleranced_dimension : Dimensional_Characteristic; UNIQUE UR1: toleranced_dimension; END_ENTITY;
ENTITY Ply_Angle_Representation SUBTYPE OF (Representation); SELF\representation.items : SET [1 : 1] OF Measure_Representation_Item; END_ENTITY;
ENTITY Ply_Laminate_Sequence_Definition SUBTYPE OF (Product_Definition); WHERE WR1: SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE' IN TYPEOF(pdr))) > 0; END_ENTITY;
ENTITY Ply_Laminate_Table SUBTYPE OF (Part_Laminate_Table); END_ENTITY;
ENTITY Ply_Orientation_Angle SUBTYPE OF (Representation_Relationship); SELF\representation_relationship.rep_1 : Reinforcement_Orientation_Basis; SELF\representation_relationship.rep_2 : Ply_Angle_Representation; END_ENTITY;
ENTITY Pmi_Requirement_Item_Association SUBTYPE OF (Item_Identified_Representation_Usage); requirement : Characterized_Object; END_ENTITY;
ENTITY Pocket SUBTYPE OF (Feature_Definition); WHERE WR1: (SELF\Characterized_Object.description IN ['closed rectangular','open rectangular','complex','circular cutout','complex cutout','recess']); WR2: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'pocket depth occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND (sar.name = 'pocket depth') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'linear')))) = 1)))) = 1)))) = 0); WR3: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1; WR4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ({1 <= SIZEOF(pdr.used_representation.items) <= 2}))) = 1)) = 1; WR5: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | (srwp_i.name = 'orientation') OR (srwp_i.name = 'fillet radius'))) = SIZEOF(pdr.used_representation.items)))) = 1)) = 1; WR6: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'fillet radius'))) <= 1))) = 0))) = 0; WR7: ((NOT (SELF\Characterized_Object.description IN ['complex','non-circular cutout','recess'])) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * TYPEOF(sdr.relating_shape_aspect)) = 1)))) = 1)))) = 1)))) = 0)); WR8: ((NOT (SELF\Characterized_Object.description = 'closed rectangular')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'closed boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect))))) = 1)))) = 1)))) = 0)); WR9: ((NOT (SELF\Characterized_Object.description = 'open rectangular')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'open boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE' IN TYPEOF(sdr.relating_shape_aspect))))) = 1)))) = 1)))) = 0)); WR10: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'bottom condition occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'pocket bottom usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition))))) = 1)))) = 1)))) = 0); WR11: ((NOT (SELF\Characterized_Object.description IN ['complex','non-circular cutout','recess'])) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'change in boundary occurrence') AND (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((sar.description = 'taper usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF(fcr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND (fcr.related_shape_aspect.description IN ['angle taper','directed taper'])))) = 1)))) <= 1)))) = 0)); WR12: (NOT (SELF\Characterized_Object.description = 'circular cutout')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'enclosed boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1))) = 1))) = 0); WR13: (NOT (SELF\Characterized_Object.description IN ['circular cutout','complex cutout'])) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'bottom condition occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'pocket bottom usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition)) AND (sdr.relating_shape_aspect.description = 'through')))) = 1))) = 1))) = 0); WR14: (NOT (SELF\Characterized_Object.description = 'recess')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'bottom condition occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'pocket bottom usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN TYPEOF(sdr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition)) AND (sdr.relating_shape_aspect.description IN ['planar','complex'])))) = 1))) = 1))) = 0); WR15: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0; WR16: ((NOT (SELF\Characterized_Object.description IN ['closed rectangular','open rectangular','complex','recess'])) OR (SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (csa.name = 'uncut volume') AND (SIZEOF(QUERY(sar <* csa.component_relationships | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROTRUSION'] * TYPEOF(sar.related_shape_aspect)) = 1))))) = 1)))) <= 1)))) = 1)); WR17: ((NOT (SELF\Characterized_Object.description IN ['closed rectangular','open rectangular'])) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'change in boundary occurrence') AND (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((sar.description = 'taper usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF(fcr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND (fcr.related_shape_aspect.description IN ['angle taper','directed taper'])))) >= 1)))) <= 1)))) = 0)); END_ENTITY;
ENTITY Pocket_Bottom SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['planar','complex','through']; WR3: ((NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION') IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor normal'))) = 1)))) = 0)); WR4: ((NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION') IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor location'))) = 1)))) = 0)); WR5: ((NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor face'))) = 1)))) = 0)); WR6: (NOT (SELF.description IN ['planar','complex']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1))) = 0)); WR7: (NOT (SELF.description IN ['planar','complex']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(impl_rep.used_representation.items) <= 1))) = 0))) = 0)); WR8: (NOT (SELF.description = 'through') OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 0))) = 0)); WR9: (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) <= 1))) = 0))) = 0); WR10: SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (sar.description = 'pocket bottom usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | ((fcr.related_shape_aspect.description = 'bottom condition occurrence') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POCKET_BOTTOM' IN TYPEOF(fcr.relating_shape_aspect))))) >= 1; WR11: ((NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (sar.description = 'pocket bottom usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | (fcr.related_shape_aspect.description = 'bottom condition occurrence') AND (fcr.related_shape_aspect.name IN ['pocket depth start','pocket depth end']))) = 0)); END_ENTITY;
ENTITY Pogc_With_Dimension SUBTYPE OF (Parallel_Offset_Geometric_Constraint); offset_value : Positive_Length_Measure; offset_direction_constrained : BOOLEAN; WHERE WR1: (SIZEOF(SELF\Explicit_Constraint.reference_elements) = 1) OR (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 2); WR2: (NOT (offset_direction_constrained = TRUE) AND ((offset_type = Curve_2d_Offset) OR (offset_type = Surface_Offset))); END_ENTITY;
ENTITY Point SUPERTYPE OF (ONEOF(Cartesian_Point, Point_On_Curve, Point_On_Surface, Point_In_Volume, Point_Replica, Degenerate_Pcurve)) SUBTYPE OF (Geometric_Representation_Item); END_ENTITY;
ENTITY Point_And_Vector SUBTYPE OF (Compound_Representation_Item, Geometric_Representation_Item); SELF\compound_representation_item.item_element : Point_And_Vector_Members; END_ENTITY;
ENTITY Point_Array SUBTYPE OF (Compound_Representation_Item, Geometric_Representation_Item); SELF\compound_representation_item.item_element : Point_Array_Members; END_ENTITY;
ENTITY Point_Cloud_Dataset SUBTYPE OF (Scanned_Data_Item); point_coordinates : LIST [1 : ?] OF LIST [3 : 3] OF REAL; END_ENTITY;
ENTITY Point_Cloud_Dataset_With_Colours SUBTYPE OF (Point_Cloud_Dataset); colour_indices : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; WHERE WR1: SIZEOF(colour_indices) = SIZEOF(SELF\Point_Cloud_Dataset.point_coordinates); END_ENTITY;
ENTITY Point_Cloud_Dataset_With_Intensities SUBTYPE OF (Point_Cloud_Dataset); intensities : LIST [1 : ?] OF REAL; WHERE WR1: SIZEOF(intensities) = SIZEOF(SELF\Point_Cloud_Dataset.point_coordinates); END_ENTITY;
ENTITY Point_Cloud_Dataset_With_Normals SUBTYPE OF (Point_Cloud_Dataset); normals : LIST [1 : ?] OF LIST [3 : 3] OF REAL; WHERE WR1: SIZEOF(normals) = SIZEOF(SELF\Point_Cloud_Dataset.point_coordinates); END_ENTITY;
ENTITY Point_Cloud_Superdataset SUBTYPE OF (Scanned_Data_Item); pts_per_sublist : INTEGER; sublists : LIST [2 : ?] OF Point_Cloud_Dataset; WHERE WR1: Consistent_Sizes(SELF.pts_per_sublist, SELF.sublists); END_ENTITY;
ENTITY Point_Distance_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Point; SELF\explicit_constraint.reference_elements : SET [0 : 4] OF Point_Curve_Or_Surface_Constraint_Element; WHERE WR1: (SIZEOF(SELF\Explicit_Constraint.reference_elements) > 0) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PDGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 2)); END_ENTITY;
ENTITY Point_In_Volume SUBTYPE OF (Point); basis_volume : Volume; point_parameter_u : Parameter_Value; point_parameter_v : Parameter_Value; point_parameter_w : Parameter_Value; END_ENTITY;
ENTITY Point_On_Curve SUBTYPE OF (Point); basis_curve : Curve; point_parameter : Parameter_Value; END_ENTITY;
ENTITY Point_On_Edge_Curve SUBTYPE OF (Point_On_Curve); basis_edge_curve : Edge_Curve; DERIVE SELF\point_on_curve.basis_curve : Curve := SELF.basis_edge_curve.edge_geometry; WHERE WR1: SIZEOF(Using_Representations(SELF.basis_edge_curve) * Relating_Shape_Representations_Of_Extreme_Values(SELF)) > 0; END_ENTITY;
ENTITY Point_On_Face_Surface SUBTYPE OF (Point_On_Surface); basis_face_surface : Face_Surface; DERIVE SELF\point_on_surface.basis_surface : Surface := SELF.basis_face_surface.face_geometry; WHERE WR1: SIZEOF(Using_Representations(SELF.basis_face_surface) * Relating_Shape_Representations_Of_Extreme_Values(SELF)) > 0; END_ENTITY;
ENTITY Point_On_Planar_Curve_Pair SUBTYPE OF (High_Order_Kinematic_Pair); pair_curve : Curve; orientation : BOOLEAN; WHERE WR1: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT (pair_curve IN r.items))) = 0; WR2: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Point_On_Planar_Curve_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Point_On_Planar_Curve_Pair; actual_point_on_curve : Point_On_Curve; input_orientation : Spatial_Rotation; DERIVE actual_orientation : Ypr_Rotation := Convert_Spatial_To_Ypr_Rotation(SELF\Pair_Value.applies_to_pair, input_orientation); WHERE WR1: SELF\Pair_Value.applies_to_pair\Point_On_Planar_Curve_Pair.pair_curve :=: actual_point_on_curve.basis_curve; END_ENTITY;
ENTITY Point_On_Planar_Curve_Pair_With_Range SUBTYPE OF (Point_On_Planar_Curve_Pair); range_on_pair_curve : Trimmed_Curve; lower_limit_yaw : OPTIONAL Plane_Angle_Measure; upper_limit_yaw : OPTIONAL Plane_Angle_Measure; lower_limit_pitch : OPTIONAL Plane_Angle_Measure; upper_limit_pitch : OPTIONAL Plane_Angle_Measure; lower_limit_roll : OPTIONAL Plane_Angle_Measure; upper_limit_roll : OPTIONAL Plane_Angle_Measure; WHERE WR1: (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); WR2: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); WR3: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); WR4: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT (range_on_pair_curve IN r.items))) = 0; END_ENTITY;
ENTITY Point_On_Surface SUBTYPE OF (Point); basis_surface : Surface; point_parameter_u : Parameter_Value; point_parameter_v : Parameter_Value; END_ENTITY;
ENTITY Point_On_Surface_Pair SUBTYPE OF (High_Order_Kinematic_Pair); pair_surface : Surface; WHERE WR1: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT (pair_surface IN r.items))) = 0; WR2: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Point_On_Surface_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Point_On_Surface_Pair; actual_point_on_surface : Point_On_Surface; input_orientation : Spatial_Rotation; DERIVE actual_orientation : Ypr_Rotation := Convert_Spatial_To_Ypr_Rotation(SELF\Pair_Value.applies_to_pair, input_orientation); WHERE WR1: SELF\Pair_Value.applies_to_pair\Point_On_Surface_Pair.pair_surface :=: actual_point_on_surface.basis_surface; END_ENTITY;
ENTITY Point_On_Surface_Pair_With_Range SUBTYPE OF (Point_On_Surface_Pair); range_on_pair_surface : Rectangular_Trimmed_Surface; lower_limit_yaw : OPTIONAL Plane_Angle_Measure; upper_limit_yaw : OPTIONAL Plane_Angle_Measure; lower_limit_pitch : OPTIONAL Plane_Angle_Measure; upper_limit_pitch : OPTIONAL Plane_Angle_Measure; lower_limit_roll : OPTIONAL Plane_Angle_Measure; upper_limit_roll : OPTIONAL Plane_Angle_Measure; WHERE WR1: (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); WR2: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); WR3: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); WR4: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT (range_on_pair_surface IN r.items))) = 0; END_ENTITY;
ENTITY Point_Path SUBTYPE OF (Compound_Representation_Item, Geometric_Representation_Item); SELF\compound_representation_item.item_element : Point_Path_Members; END_ENTITY;
ENTITY Point_Placement_Shape_Representation SUBTYPE OF (Shape_Representation); SELF\representation.items : SET [1 : ?] OF Point_Placement_Shape_Representation_Item; WHERE WR1: SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(i)) = 1)) > 0; END_ENTITY;
ENTITY Point_Replica SUBTYPE OF (Point); parent_pt : Point; transformation : Cartesian_Transformation_Operator; WHERE WR1: Transformation.dim = parent_pt.dim; WR2: Acyclic_Point_Replica(SELF, parent_pt); END_ENTITY;
ENTITY Point_Style SUBTYPE OF (Founded_Item); name : Label; marker : OPTIONAL Marker_Select; marker_size : OPTIONAL Size_Select; marker_colour : OPTIONAL Colour; WHERE WR1: EXISTS(marker) OR EXISTS(marker_size) OR EXISTS(marker_colour); END_ENTITY;
ENTITY Point_To_Point_Path SUBTYPE OF (Path_Node); DERIVE SELF\kinematic_path_segment.transition : Transition_Code := Discontinuous; END_ENTITY;
ENTITY Polar_11 SUBTYPE OF (Geometric_Representation_Item); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Polar_Complex_Number_Region SUBTYPE OF (Maths_Space, Generic_Literal); centre : Complex_Number_Literal; distance_constraint : Real_Interval; direction_constraint : Finite_Real_Interval; WHERE WR1: Min_Exists(distance_constraint) AND (Real_Min(distance_constraint) >= 0.0); WR2: {-PI <= direction_constraint.min < PI}; WR3: direction_constraint.max - direction_constraint.min <= 2.0 * PI; WR4: (direction_constraint.max - direction_constraint.min < 2.0 * PI) OR (direction_constraint.min_closure = Open); WR5: (direction_constraint.max - direction_constraint.min < 2.0 * PI) OR (direction_constraint.max_closure = Open) OR (direction_constraint.min = -PI); WR6: (Real_Min(distance_constraint) > 0.0) OR Max_Exists(distance_constraint) OR (direction_constraint.max - direction_constraint.min < 2.0 * PI) OR (direction_constraint.max_closure = Open); END_ENTITY;
ENTITY Polar_Point SUBTYPE OF (Cartesian_Point); r : Length_Measure; theta : Plane_Angle_Measure; DERIVE SELF\cartesian_point.coordinates : LIST [2 : 2] OF Length_Measure := [r * COS(theta),r * SIN(theta)]; WHERE WR1: r >= 0.0; END_ENTITY;
ENTITY Poly_Loop SUBTYPE OF (Loop, Geometric_Representation_Item); polygon : LIST [3 : ?] OF UNIQUE Cartesian_Point; END_ENTITY;
ENTITY Polygonal_Area SUBTYPE OF (Primitive_2d); bounds : LIST [3 : ?] OF UNIQUE Cartesian_Point; END_ENTITY;
ENTITY Polyline SUBTYPE OF (Bounded_Curve); points : LIST [2 : ?] OF Cartesian_Point; END_ENTITY;
ENTITY Position_Tolerance SUBTYPE OF (Geometric_Tolerance); END_ENTITY;
ENTITY Positioned_Sketch SUBTYPE OF (Geometric_Representation_Item); sketch_basis : Sketch_Basis_Select; auxiliary_elements : SET [0 : ?] OF Auxiliary_Geometric_Representation_Item; WHERE WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(sketch_basis)) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(sketch_basis\Curve_Bounded_Surface.basis_surface))); WR2: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(sketch_basis)) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(sketch_basis\Face_Surface.face_geometry))); WR3: SIZEOF(QUERY(q <* auxiliary_elements | (SIZEOF(TYPEOF(q) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']) = 0))) = 0; WR4: SIZEOF(QUERY(q <* auxiliary_elements | q\Geometric_Representation_Item.dim <> 3)) = 0; END_ENTITY;
ENTITY Positive_Length_Measure_With_Unit SUBTYPE OF (Length_Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(SELF\Measure_With_Unit.value_component); END_ENTITY;
ENTITY Positive_Plane_Angle_Measure_With_Unit SUBTYPE OF (Plane_Angle_Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(SELF\Measure_With_Unit.value_component); END_ENTITY;
ENTITY Power_Expression SUBTYPE OF (Binary_Numeric_Expression); END_ENTITY;
ENTITY Power_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POWER_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Power_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Watt); END_ENTITY;
ENTITY Pre_Defined_Character_Glyph SUBTYPE OF (Pre_Defined_Item); END_ENTITY;
ENTITY Pre_Defined_Colour SUBTYPE OF (Pre_Defined_Item, Colour); END_ENTITY;
ENTITY Pre_Defined_Curve_Font SUBTYPE OF (Pre_Defined_Item); END_ENTITY;
ENTITY Pre_Defined_Dimension_Symbol SUBTYPE OF (Pre_Defined_Symbol); WHERE WR1: SELF.name IN ['arc length', 'conical taper', 'counterbore', 'countersink', 'depth', 'diameter', 'plus minus', 'radius', 'slope', 'spherical diameter', 'spherical radius', 'square']; END_ENTITY;
ENTITY Pre_Defined_Geometrical_Tolerance_Symbol SUBTYPE OF (Pre_Defined_Symbol); WHERE WR1: SELF.name IN ['angularity', 'basic dimension', 'blanked datum reference', 'circular runout', 'circularity', 'concentricity', 'cylindricity', 'datum target identification', 'diameter', 'filled datum reference', 'flatness', 'least material condition', 'maximum material condition', 'parallelism', 'perpendicularity', 'position', 'profile of a line', 'profile of a surface', 'projected tolerance zone', 'regardless of feature size', 'straightness', 'symmetry', 'total runout']; END_ENTITY;
ENTITY Pre_Defined_Item; name : Label; END_ENTITY;
ENTITY Pre_Defined_Marker SUBTYPE OF (Pre_Defined_Item); END_ENTITY;
ENTITY Pre_Defined_Point_Marker_Symbol SUBTYPE OF (Pre_Defined_Marker, Pre_Defined_Symbol); WHERE WR1: SELF.name IN ['asterisk','circle','dot','plus','square','triangle','x']; END_ENTITY;
ENTITY Pre_Defined_Surface_Condition_Symbol SUBTYPE OF (Pre_Defined_Symbol); WHERE WR1: SELF.name IN ['000', '010', '020', '030', '040', '050', '060', '070', '001', '011', '021', '031', '041', '051', '061', '071', '100', '110', '120', '130', '140', '150', '160', '170', '101', '111', '121', '131', '141', '151', '161', '171', '200', '210', '220', '230', '240', '250', '260', '270', '201', '211', '221', '231', '241', '251', '261', '271']; END_ENTITY;
ENTITY Pre_Defined_Surface_Side_Style SUBTYPE OF (Pre_Defined_Item); END_ENTITY;
ENTITY Pre_Defined_Symbol SUBTYPE OF (Pre_Defined_Item); END_ENTITY;
ENTITY Pre_Defined_Terminator_Symbol SUBTYPE OF (Pre_Defined_Symbol); WHERE WR1: SELF.name IN ['blanked arrow', 'blanked box', 'blanked dot', 'blanked triangle', 'dimension origin', 'filled arrow', 'filled box', 'filled dot', 'integral symbol', 'open arrow', 'slash', 'unfilled arrow', 'unfilled triangle', 'filled triangle']; END_ENTITY;
ENTITY Pre_Defined_Text_Font SUBTYPE OF (Pre_Defined_Item); END_ENTITY;
ENTITY Pre_Defined_Tile SUBTYPE OF (Pre_Defined_Item); END_ENTITY;
ENTITY Precision_Qualifier; precision_value : INTEGER; END_ENTITY;
ENTITY Predefined_Picture_Representation_Item SUBTYPE OF (Picture_Representation_Item); WHERE WR1: SELF\Representation_Item.name IN Pre_Defined_Picture_Representation_Types; END_ENTITY;
ENTITY Prescribed_Path SUBTYPE OF (Link_Motion_Representation_Along_Path); controlling_joints : OPTIONAL SET [1 : 6] OF Kinematic_Joint; END_ENTITY;
ENTITY Presentation_Area SUBTYPE OF (Presentation_Representation); WHERE WR1: ((SIZEOF(QUERY(ais <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET.AREA') | SIZEOF(USEDIN(ais, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT')) = 1)) > 0) OR (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_SIZE.UNIT')) = 1)); END_ENTITY;
ENTITY Presentation_Layer_Assignment; name : Label; description : Text; assigned_items : SET [1 : ?] OF Layered_Item; END_ENTITY;
ENTITY Presentation_Representation SUPERTYPE OF (ONEOF(Presentation_Area, Presentation_View)) SUBTYPE OF (Representation); SELF\representation.context_of_items : Geometric_Representation_Context; WHERE WR1: SELF\Representation.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 2; WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_AREA' IN TYPEOF(SELF)) OR (SIZEOF(QUERY(prr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF(prr\Representation_Relationship.rep_1))) > 0) OR (SIZEOF(QUERY(rm <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION') | SIZEOF(QUERY(mi <* USEDIN(rm, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE') | SIZEOF(QUERY(rep <* Using_Representations(mi) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF(rep))) > 0)) > 0)) > 0); END_ENTITY;
ENTITY Presentation_Set; INVERSE areas : SET [1:?] OF Area_In_Set FOR in_set; END_ENTITY;
ENTITY Presentation_Size; unit : Presentation_Size_Assignment_Select; size : Planar_Box; UNIQUE UR1: Unit; WHERE WR1: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF(Unit)) AND Item_In_Context(size, Unit\Representation.context_of_items)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_IN_SET' IN TYPEOF(Unit)) AND (SIZEOF(QUERY(ais <* Unit\Area_In_Set.in_set.areas | NOT Item_In_Context(size, ais.Area\Representation.context_of_items))) = 0)); END_ENTITY;
ENTITY Presentation_Style_Assignment SUBTYPE OF (Founded_Item); styles : SET [1 : ?] OF Presentation_Style_Select; WHERE WR1: SIZEOF(QUERY(style1 <* styles | NOT (SIZEOF(QUERY(style2 <* (styles - style1) | NOT ((TYPEOF(style1) <> TYPEOF(style2)) OR (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_STYLE'] * TYPEOF(style1)) = 1)))) = 0))) = 0; WR2: SIZEOF(QUERY(style1 <* styles | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(style1))) <= 2; WR3: SIZEOF(QUERY(style1 <* styles | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(style1)) AND (SIZEOF(QUERY(style2 <* (styles - style1) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF(style2)) AND ((style1\Surface_Style_Usage.side = Both) OR (style2\Surface_Style_Usage.side = Both) OR (style1\Surface_Style_Usage.side = style2\Surface_Style_Usage.side)))) > 0))) = 0; END_ENTITY;
ENTITY Presentation_Style_By_Context SUBTYPE OF (Presentation_Style_Assignment); style_context : Style_Context_Select; END_ENTITY;
ENTITY Presentation_View SUBTYPE OF (Presentation_Representation); END_ENTITY;
ENTITY Presented_Item ABSTRACT SUPERTYPE; END_ENTITY;
ENTITY Presented_Item_Representation; presentation : Presentation_Representation_Select; item : Presented_Item; END_ENTITY;
ENTITY Pressure_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESSURE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Pressure_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Pascal); END_ENTITY;
ENTITY Previous_Change_Element_Assignment SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Previous_Element_Assignment_Select; items : SET [1 : ?] OF Change_Management_Object; END_ENTITY;
ENTITY Primitive_2d SUPERTYPE OF (ONEOF(Circular_Area, Elliptic_Area, Rectangular_Area, Polygonal_Area, Half_Space_2d)) SUBTYPE OF (Geometric_Representation_Item); WHERE WR1: SELF\Geometric_Representation_Item.dim = 2; END_ENTITY;
ENTITY Primitive_2d_With_Inner_Boundary SUBTYPE OF (Complex_Area, Compound_Representation_Item); SELF\compound_representation_item.item_element : Compound_Inner_Area_Boundary; DERIVE inner_boundary : Compound_Inner_Area_Boundary := SELF\Compound_Representation_Item.item_element; WHERE WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPTIC_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYGONAL_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_WITH_OUTER_BOUNDARY', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_AREA_WITH_PARAMETERS'] * TYPEOF(SELF)) > 0; WR2: SIZEOF(QUERY(inner <* inner_boundary | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF(inner))) = 0; WR3: Open_Path_Based_Inner_Boundary(inner_boundary); END_ENTITY;
ENTITY Prismatic_Pair SUBTYPE OF (Low_Order_Kinematic_Pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := FALSE; END_ENTITY;
ENTITY Prismatic_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Prismatic_Pair; actual_translation : Length_Measure; END_ENTITY;
ENTITY Prismatic_Pair_With_Range SUBTYPE OF (Prismatic_Pair); lower_limit_actual_translation : OPTIONAL Length_Measure; upper_limit_actual_translation : OPTIONAL Length_Measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_translation) OR NOT EXISTS(upper_limit_actual_translation)) XOR (lower_limit_actual_translation < upper_limit_actual_translation); END_ENTITY;
ENTITY Procedural_Representation SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Procedural_Representation_Sequence; END_ENTITY;
ENTITY Procedural_Representation_Sequence SUBTYPE OF (Representation_Item); elements : LIST [1 : ?] OF Representation_Item; suppressed_items : SET [0 : ?] OF Representation_Item; rationale : Text; WHERE WR1: SIZEOF(QUERY(q <* suppressed_items | NOT (q IN elements))) = 0; END_ENTITY;
ENTITY Procedural_Shape_Representation SUBTYPE OF (Procedural_Representation, Shape_Representation); SELF\representation.items : SET [1 : ?] OF Procedural_Shape_Representation_Sequence; END_ENTITY;
ENTITY Procedural_Shape_Representation_Sequence SUBTYPE OF (Geometric_Representation_Item, Procedural_Representation_Sequence); SELF\procedural_representation_sequence.elements : LIST [1 : ?] OF Shape_Representation_Item; END_ENTITY;
ENTITY Procedural_Solid_Representation_Sequence SUBTYPE OF (Procedural_Shape_Representation_Sequence); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_MODEL' IN TYPEOF(SELF); END_ENTITY;
ENTITY Process_Operation SUBTYPE OF (Action_Method); END_ENTITY;
ENTITY Process_Plan SUBTYPE OF (Action); WHERE WR1: SIZEOF(QUERY(ar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATED_ACTION') | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.relating_action)) <> 1)) = 0; WR2: SIZEOF(QUERY(ar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATING_ACTION') | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.related_action)) = 1) OR ((ar.name = 'process operation occurrence') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_OPERATION' IN TYPEOF(ar.related_action.chosen_method))))) = SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATING_ACTION')); END_ENTITY;
ENTITY Process_Product_Association; name : Label; description : Text; defined_product : Characterized_Product_Definition; process : Product_Definition_Process; END_ENTITY;
ENTITY Process_Property_Association; name : Label; description : Text; process : Property_Process; property_or_shape : Property_Or_Shape_Select; END_ENTITY;
ENTITY Product; id : Identifier; name : Label; description : OPTIONAL Text; frame_of_reference : SET [1 : ?] OF Product_Context; END_ENTITY;
ENTITY Product_As_Planned SUBTYPE OF (Product_Definition_Formation); END_ENTITY;
ENTITY Product_Category; name : Label; description : OPTIONAL Text; DERIVE id : Identifier := Get_Id_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Product_Category_Relationship; name : Label; description : OPTIONAL Text; category : Product_Category; sub_category : Product_Category; WHERE WR1: Acyclic_Product_Category_Relationship(SELF, [SELF.sub_category]); END_ENTITY;
ENTITY Product_Class SUBTYPE OF (Product_Concept, Characterized_Object); END_ENTITY;
ENTITY Product_Concept; id : Identifier; name : Label; description : OPTIONAL Text; market_context : Product_Concept_Context; UNIQUE UR1: id; END_ENTITY;
ENTITY Product_Concept_Context SUBTYPE OF (Application_Context_Element); market_segment_type : Label; END_ENTITY;
ENTITY Product_Concept_Feature; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Product_Concept_Feature_Association; name : Label; description : OPTIONAL Text; concept : Product_Concept; feature : Product_Concept_Feature; END_ENTITY;
ENTITY Product_Concept_Feature_Category SUBTYPE OF (Group); WHERE WR1: SIZEOF(QUERY(aga <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP_ASSIGNMENT.ASSIGNED_GROUP') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga)) AND ((aga\Group_Assignment.role\Object_Role.name <> 'specification category member') OR (SIZEOF(QUERY(i <* aga\Applied_Group_Assignment.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE' IN TYPEOF(i)) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF(i)))) <> SIZEOF(aga\Applied_Group_Assignment.items))))) = 0; END_ENTITY;
ENTITY Product_Concept_Feature_Category_Usage SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Product_Concept_Feature_Category; items : SET [1 : ?] OF Category_Usage_Item; WHERE WR1: SELF.role.name IN ['mandatory category usage','optional category usage']; END_ENTITY;
ENTITY Product_Concept_Relationship; name : Label; description : OPTIONAL Text; relating_product_concept : Product_Concept; related_product_concept : Product_Concept; END_ENTITY;
ENTITY Product_Context SUBTYPE OF (Application_Context_Element); discipline_type : Label; END_ENTITY;
ENTITY Product_Data_And_Data_Equivalence_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; product_data : Equivalence_Product_Data_Select; data_equivalence : Data_Equivalence_Definition; END_ENTITY;
ENTITY Product_Data_And_Data_Quality_Relationship; description : Text; product_data : Product_Definition; data_quality : Data_Quality_Definition; END_ENTITY;
ENTITY Product_Definition SUPERTYPE OF (ONEOF(Composite_Assembly_Sequence_Definition, Laminate_Table, Ply_Laminate_Sequence_Definition)); id : Identifier; description : OPTIONAL Text; formation : Product_Definition_Formation; frame_of_reference : Product_Definition_Context; DERIVE name : Label := Get_Name_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY;
ENTITY Product_Definition_Context SUBTYPE OF (Application_Context_Element); life_cycle_stage : Label; END_ENTITY;
ENTITY Product_Definition_Context_Association; definition : Product_Definition; frame_of_reference : Product_Definition_Context; role : Product_Definition_Context_Role; END_ENTITY;
ENTITY Product_Definition_Context_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Product_Definition_Effectivity SUBTYPE OF (Effectivity); usage : Product_Definition_Relationship; WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EFFECTIVITY_ASSIGNMENT.ASSIGNED_EFFECTIVITY')) = 0; END_ENTITY;
ENTITY Product_Definition_Element_Relationship SUBTYPE OF (Group); END_ENTITY;
ENTITY Product_Definition_Formation; id : Identifier; description : OPTIONAL Text; of_product : Product; UNIQUE UR1: id, of_product; END_ENTITY;
ENTITY Product_Definition_Formation_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; relating_product_definition_formation : Product_Definition_Formation; related_product_definition_formation : Product_Definition_Formation; END_ENTITY;
ENTITY Product_Definition_Formation_Resource SUBTYPE OF (Action_Resource, Product_Definition_Formation); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) > 0; WR2: SIZEOF(QUERY(prpc <* USEDIN(SELF\Product_Definition_Formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'part')) <> 0; WR3: SELF\Action_Resource.name = SELF\Product_Definition_Formation.id; WR4: SELF\Action_Resource.description = SELF\Product_Definition_Formation.description; END_ENTITY;
ENTITY Product_Definition_Formation_With_Specified_Source SUBTYPE OF (Product_Definition_Formation); make_or_buy : Source; END_ENTITY;
ENTITY Product_Definition_Group_Assignment SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Product_Definition_Element_Relationship; items : SET [1 : 1] OF Product_Definition_Or_Product_Definition_Relationship; END_ENTITY;
ENTITY Product_Definition_Kinematics SUBTYPE OF (Property_Definition); SELF\property_definition.definition : Product_Definition; INVERSE representation_relation : Kinematic_Property_Definition_Representation FOR definition; UNIQUE UR1: definition; END_ENTITY;
ENTITY Product_Definition_Occurrence SUPERTYPE OF (Product_Definition_Specified_Occurrence ANDOR Product_Definition_Occurrence_Reference_With_Local_Representation); id : Identifier; name : OPTIONAL Label; description : OPTIONAL Text; definition : OPTIONAL Product_Definition_Or_Reference_Or_Occurrence; quantity : OPTIONAL Measure_With_Unit; DERIVE descendant_occurrences : SET [0 : ?] OF Product_Definition_Specified_Occurrence := Get_Descendant_Occurrences(SELF); INVERSE assembly_usages : SET [0:?] OF Assembly_Component_Usage FOR related_product_definition; child_occurrences : SET [0:?] OF Product_Definition_Specified_Occurrence FOR occurrence_usage; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SPECIFIED_OCCURRENCE' IN TYPEOF(SELF)) XOR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OCCURRENCE' IN TYPEOF(definition)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OCCURRENCE_REFERENCE' IN TYPEOF(definition))); WR2: EXISTS(definition) OR (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_DESIGN.DESIGN')) > 0); WR3: (NOT ('NUMBER' IN TYPEOF(quantity.value_component))) OR (quantity.value_component > 0); END_ENTITY;
ENTITY Product_Definition_Occurrence_Reference SUBTYPE OF (Product_Definition_Reference); product_occurrence_id : Identifier; END_ENTITY;
ENTITY Product_Definition_Occurrence_Reference_With_Local_Representation SUBTYPE OF (Product_Definition_Occurrence, Generic_Product_Definition_Reference); END_ENTITY;
ENTITY Product_Definition_Occurrence_Relationship; name : Label; description : OPTIONAL Text; occurrence : Product_Definition; occurrence_usage : Assembly_Component_Usage; WHERE WR1: occurrence_usage.relating_product_definition :<>: occurrence; WR2: occurrence_usage.related_product_definition :<>: occurrence; WR3: occurrence.formation :=: occurrence_usage.related_product_definition.formation; END_ENTITY;
ENTITY Product_Definition_Process SUBTYPE OF (Action); identification : Identifier; INVERSE product_definitions : SET [1:?] OF Process_Product_Association FOR process; END_ENTITY;
ENTITY Product_Definition_Reference SUBTYPE OF (Generic_Product_Definition_Reference); product_id : Identifier; product_definition_formation_id : Identifier; product_definition_id : Identifier; id_owning_organization_name : OPTIONAL Label; END_ENTITY;
ENTITY Product_Definition_Reference_With_Local_Representation SUBTYPE OF (Generic_Product_Definition_Reference, Product_Definition); END_ENTITY;
ENTITY Product_Definition_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; relating_product_definition : Product_Definition_Or_Reference; related_product_definition : Product_Definition_Or_Reference; END_ENTITY;
ENTITY Product_Definition_Relationship_Kinematics SUBTYPE OF (Property_Definition); SELF\property_definition.definition : Product_Definition_Relationship; UNIQUE UR1: definition; END_ENTITY;
ENTITY Product_Definition_Relationship_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; relating : Product_Definition_Relationship; related : Product_Definition_Relationship; END_ENTITY;
ENTITY Product_Definition_Resource SUBTYPE OF (Action_Resource, Product_Definition); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) > 0; WR2: SELF\Product_Definition.frame_of_reference\Application_Context_Element.name IN ['part definition','part occurrence','physical occurrence']; WR3: SELF\Action_Resource.name = SELF\Product_Definition.name; WR4: SELF\Action_Resource.description = SELF\Product_Definition.description; END_ENTITY;
ENTITY Product_Definition_Shape SUBTYPE OF (Property_Definition); UNIQUE UR1: SELF\Property_Definition.definition; WHERE WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_OBJECT'] * TYPEOF(SELF\Property_Definition.definition)) > 0; END_ENTITY;
ENTITY Product_Definition_Specified_Occurrence SUBTYPE OF (Product_Definition_Occurrence); SELF\product_definition_occurrence.definition : Product_Definition_Occurrence_Or_Reference; occurrence_usage : Product_Definition_Occurrence_Or_Reference; UNIQUE UR1: occurrence_usage, id; WHERE WR1: SIZEOF(assembly_usages) = 0; WR2: Acyclic_Product_Definition_Specified_Occurrence(SELF, SELF\Product_Definition_Occurrence.definition); END_ENTITY;
ENTITY Product_Definition_Substitute; description : OPTIONAL Text; context_relationship : Product_Definition_Relationship; substitute_definition : Product_Definition; DERIVE name : Label := Get_Name_Value(SELF); WHERE WR1: context_relationship.related_product_definition :<>: substitute_definition; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY;
ENTITY Product_Definition_Usage SUPERTYPE OF (ONEOF(Make_From_Usage_Option, Assembly_Component_Usage)) SUBTYPE OF (Product_Definition_Relationship); UNIQUE UR1: SELF\Product_Definition_Relationship.id, SELF\Product_Definition_Relationship.relating_product_definition, SELF\Product_Definition_Relationship.related_product_definition; WHERE WR1: Acyclic_Product_Definition_Relationship(SELF, [SELF\Product_Definition_Relationship.related_product_definition], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE'); END_ENTITY;
ENTITY Product_Definition_Usage_Relationship SUBTYPE OF (Product_Definition_Relationship_Relationship); SELF\product_definition_relationship_relationship.relating : Product_Definition_Usage; SELF\product_definition_relationship_relationship.related : Product_Definition_Usage; WHERE WR1: relating.relating_product_definition :=: related.relating_product_definition; END_ENTITY;
ENTITY Product_Definition_With_Associated_Documents SUBTYPE OF (Product_Definition); documentation_ids : SET [1 : ?] OF Document; END_ENTITY;
ENTITY Product_Design_To_Individual SUBTYPE OF (Product_Relationship); DERIVE individual_product : Product := SELF\Product_Relationship.related_product; product_design : Product := SELF\Product_Relationship.relating_product; END_ENTITY;
ENTITY Product_Design_Version_To_Individual SUBTYPE OF (Product_Definition_Formation_Relationship); DERIVE individual_product : Product_Definition_Formation := SELF\Product_Definition_Formation_Relationship.related_product_definition_formation; product_design_version : Product_Definition_Formation := SELF\Product_Definition_Formation_Relationship.relating_product_definition_formation; END_ENTITY;
ENTITY Product_Group SUBTYPE OF (Group); END_ENTITY;
ENTITY Product_Group_Attribute_Assignment SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Product_Group_Attributes; attributes : SET [1 : 1] OF Attribute_Select; END_ENTITY;
ENTITY Product_Group_Attribute_Set SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Product_Group; product_group_attributes : SET [1 : 1] OF Product_Group_Attributes; END_ENTITY;
ENTITY Product_Group_Attributes SUBTYPE OF (Group); END_ENTITY;
ENTITY Product_Group_Context SUBTYPE OF (Descriptive_Representation_Item); END_ENTITY;
ENTITY Product_Group_Membership SUBTYPE OF (Characterized_Object, Group_Assignment); member : Product_Select; END_ENTITY;
ENTITY Product_Group_Membership_Rules SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Product_Group; product_group_rules : SET [1 : 1] OF Product_Group_Rules; END_ENTITY;
ENTITY Product_Group_Purpose SUBTYPE OF (Descriptive_Representation_Item); END_ENTITY;
ENTITY Product_Group_Relationship SUBTYPE OF (Group_Relationship); END_ENTITY;
ENTITY Product_Group_Rule SUBTYPE OF (Descriptive_Representation_Item); END_ENTITY;
ENTITY Product_Group_Rule_Assignment SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Product_Group_Rules; product_group_rules : SET [1 : ?] OF Product_Group_Rule; END_ENTITY;
ENTITY Product_Group_Rules SUBTYPE OF (Group); END_ENTITY;
ENTITY Product_Identification SUBTYPE OF (Configuration_Item, Characterized_Object); SELF\configuration_item.item_concept : Product_Class; WHERE WR1: SIZEOF(QUERY(cd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_DESIGN.CONFIGURATION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(cd.design)) AND (SIZEOF(QUERY(prpc <* USEDIN(cd.design\Product_Definition_Formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name IN ['part','raw material','tool'])) > 0))) <= 1; WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURABLE_ITEM' IN TYPEOF(SELF)) XOR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_SPECIFICATION' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Product_In_Attachment_Slot SUBTYPE OF (Product_Definition_Relationship); END_ENTITY;
ENTITY Product_Material_Composition_Relationship SUBTYPE OF (Product_Definition_Relationship); class : Label; constituent_amount : SET [1 : ?] OF Characterized_Product_Composition_Value; composition_basis : Label; determination_method : Text; END_ENTITY;
ENTITY Product_Planned_To_Realized SUBTYPE OF (Product_Definition_Formation_Relationship); DERIVE planned_product : Product_Definition_Formation := SELF\Product_Definition_Formation_Relationship.relating_product_definition_formation; realized_product : Product_Definition_Formation := SELF\Product_Definition_Formation_Relationship.related_product_definition_formation; END_ENTITY;
ENTITY Product_Process_Plan SUBTYPE OF (Product_Definition_Process); WHERE WR1: SIZEOF(QUERY(ar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATED_ACTION') | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.relating_action)) <> 1)) = 0; WR2: SIZEOF(QUERY(ar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATING_ACTION') | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PLAN', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_PROCESS_PLAN'] * TYPEOF(ar.related_action)) = 1) OR ((ar.name = 'process operation occurrence') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_OPERATION' IN TYPEOF(ar.related_action.chosen_method))))) = SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATING_ACTION')); WR3: SIZEOF(QUERY(ppa <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCESS_PRODUCT_ASSOCIATION.PROCESS') | (ppa.name <> 'produced output') OR NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(ppa.defined_product)))) = 0; END_ENTITY;
ENTITY Product_Related_Product_Category SUBTYPE OF (Product_Category); products : SET [1 : ?] OF Product; END_ENTITY;
ENTITY Product_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; relating_product : Product; related_product : Product; END_ENTITY;
ENTITY Product_Resource SUBTYPE OF (Action_Resource, Product); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REQUIREMENT_FOR_ACTION_RESOURCE.RESOURCES')) > 0; WR2: SIZEOF(QUERY(prpc <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'part')) <> 0; WR3: SELF\Action_Resource.name = SELF\Product.name; WR4: SELF\Action_Resource.description = SELF\Product.description; END_ENTITY;
ENTITY Product_Specification SUBTYPE OF (Product_Identification, Configurable_Item); END_ENTITY;
ENTITY Profile_Floor SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['planar','complex','through']; WR3: (NOT (SELF.description IN ['planar','complex']) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1))) = 0)); WR4: (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND (SIZEOF(impl_rep.used_representation.items) <= 2))) = 0))) = 0); WR5: (NOT (SELF.description = 'through') OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 0))) = 0)); WR6: (NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) = 1))) = 0))) = 0); WR7: SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (sar.description = 'profile floor usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OUTSIDE_PROFILE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROFILE_FLOOR' IN TYPEOF(fcr.relating_shape_aspect))))) >= 1; WR8: ((NOT (SELF.description IN ['planar','complex'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'shape profile floor orientation') AND (it.description IN ['shape profile start','shape profile end'])))) = 1)))) = 0)))) = 0)); WR9: (NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor'))) = 1))) = 1); WR10: (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'floor'))) = 1))) = 1); END_ENTITY;
ENTITY Projected_Zone_Definition SUBTYPE OF (Tolerance_Zone_Definition); projection_end : Shape_Aspect; projected_length : Length_Measure_With_Unit; WHERE WR1: ('NUMBER' IN TYPEOF(projected_length\Measure_With_Unit.value_component)) AND (projected_length\Measure_With_Unit.value_component > 0.0); WR2: (Derive_Dimensional_Exponents(projected_length\Measure_With_Unit.unit_component) = Dimensional_Exponents(1, 0, 0, 0, 0, 0, 0)); END_ENTITY;
ENTITY Projected_Zone_Definition_With_Offset SUBTYPE OF (Projected_Zone_Definition); offset : Length_Measure_With_Unit; END_ENTITY;
ENTITY Projection_Curve SUBTYPE OF (Annotation_Curve_Occurrence); END_ENTITY;
ENTITY Projection_Directed_Callout SUBTYPE OF (Draughting_Callout); WHERE WR1: SIZEOF(QUERY(p_1 <* SELF\Draughting_Callout.contents | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN (TYPEOF(p_1)))) <= 2; WR2: SIZEOF(SELF\Draughting_Callout.contents) >= 2; END_ENTITY;
ENTITY Promissory_Usage_Occurrence SUBTYPE OF (Assembly_Component_Usage); END_ENTITY;
ENTITY Property_Definition SUPERTYPE OF (ONEOF(Product_Definition_Kinematics, Product_Definition_Relationship_Kinematics, Product_Definition_Shape)); name : Label; description : OPTIONAL Text; definition : Characterized_Definition; DERIVE id : Identifier := Get_Id_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Property_Definition_Relationship; name : Label; description : Text; relating_property_definition : Property_Definition; related_property_definition : Property_Definition; END_ENTITY;
ENTITY Property_Definition_Representation; definition : Represented_Definition; used_representation : Representation; DERIVE description : Text := Get_Description_Value(SELF); name : Label := Get_Name_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')) <= 1; END_ENTITY;
ENTITY Property_Process SUBTYPE OF (Action); identification : Identifier; INVERSE properties : SET [1:?] OF Process_Property_Association FOR process; END_ENTITY;
ENTITY Protrusion SUBTYPE OF (Feature_Definition); WHERE WR1: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0); WR2: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'shape volume occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'volume shape usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (sdr.relating_shape_aspect.description = 'volume shape'))) = 1)))) = 1)))) = 0); WR3: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0; END_ENTITY;
ENTITY Pyramid_Volume SUBTYPE OF (Volume); position : Axis2_Placement_3d; xlength : Positive_Length_Measure; ylength : Positive_Length_Measure; height : Positive_Length_Measure; END_ENTITY;
ENTITY Qualified_Representation_Item SUBTYPE OF (Representation_Item); qualifiers : SET [1 : ?] OF Value_Qualifier; WHERE WR1: SIZEOF(QUERY(temp <* qualifiers | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRECISION_QUALIFIER' IN TYPEOF(temp)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATHS_VALUE_PRECISION_QUALIFIER' IN TYPEOF(temp)))) < 2; END_ENTITY;
ENTITY Qualitative_Uncertainty SUBTYPE OF (Uncertainty_Qualifier); uncertainty_value : Text; END_ENTITY;
ENTITY Quantified_Assembly_Component_Usage SUBTYPE OF (Assembly_Component_Usage); quantity : Measure_With_Unit; WHERE WR1: (NOT ('NUMBER' IN TYPEOF(quantity.value_component))) OR (quantity.value_component > 0); END_ENTITY;
ENTITY Quantifier_Expression ABSTRACT SUPERTYPE SUBTYPE OF (Multiple_Arity_Generic_Expression); variables : LIST [1 : ?] OF UNIQUE Generic_Variable; WHERE WR1: SIZEOF(QUERY(vrbl <* variables | NOT (vrbl IN SELF\Multiple_Arity_Generic_Expression.operands))) = 0; WR2: SIZEOF(QUERY(vrbl <* variables | NOT ((Schema_Prefix + 'BOUND_VARIABLE_SEMANTICS') IN TYPEOF(vrbl.interpretation.semantics)))) = 0; END_ENTITY;
ENTITY Quasi_Uniform_Curve SUBTYPE OF (B_Spline_Curve); END_ENTITY;
ENTITY Quasi_Uniform_Surface SUBTYPE OF (B_Spline_Surface); END_ENTITY;
ENTITY Quasi_Uniform_Volume SUBTYPE OF (B_Spline_Volume); END_ENTITY;
ENTITY Rack_And_Pinion_Pair SUBTYPE OF (Low_Order_Kinematic_Pair_With_Motion_Coupling); pinion_radius : Length_Measure; WHERE WR1: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Rack_And_Pinion_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Rack_And_Pinion_Pair; actual_displacement : Length_Measure; DERIVE actual_rotation : Plane_Angle_Measure := 0.0; END_ENTITY;
ENTITY Rack_And_Pinion_Pair_With_Range SUBTYPE OF (Rack_And_Pinion_Pair); lower_limit_rack_displacement : OPTIONAL Length_Measure; upper_limit_rack_displacement : OPTIONAL Length_Measure; WHERE WR1: (NOT EXISTS(lower_limit_rack_displacement) OR NOT EXISTS(upper_limit_rack_displacement)) XOR (lower_limit_rack_displacement < upper_limit_rack_displacement); END_ENTITY;
ENTITY Radioactivity_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIOACTIVITY_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Radioactivity_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Becquerel); END_ENTITY;
ENTITY Radius_Dimension SUBTYPE OF (Dimension_Curve_Directed_Callout); WHERE WR1: SIZEOF(QUERY(con <* SELF.contents | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_CURVE' IN TYPEOF(con))) <= 1; END_ENTITY;
ENTITY Radius_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Radial_Geometry_Constraint_Element; WHERE WR1: SIZEOF(SELF\Explicit_Constraint.reference_elements) = 0; END_ENTITY;
ENTITY Range_Characteristic SUBTYPE OF (Representation, Descriptive_Representation_Item); WHERE WR1: NOT (SELF\Representation.name IN ['tolerance', 'minimum tolerance', 'maximum tolerance', 'nominal tolerance', 'plus minus tolerance', 'symmetrical tolerance', 'statistical tolerance']); END_ENTITY;
ENTITY Ratio_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Ratio_Unit SUBTYPE OF (Named_Unit); WHERE WR1: (SELF\Named_Unit.dimensions.length_exponent = 0.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 0.0) AND (SELF\Named_Unit.dimensions.time_exponent = 0.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 0.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY;
ENTITY Rational_B_Spline_Curve SUBTYPE OF (B_Spline_Curve); weights_data : LIST [2 : ?] OF REAL; DERIVE weights : ARRAY [0 : upper_index_on_control_points] OF REAL := List_To_Array(weights_data, 0, upper_index_on_control_points); WHERE WR1: SIZEOF(weights_data) = SIZEOF(SELF\B_Spline_Curve.control_points_list); WR2: Curve_Weights_Positive(SELF); END_ENTITY;
ENTITY Rational_B_Spline_Surface SUBTYPE OF (B_Spline_Surface); weights_data : LIST [2 : ?] OF LIST [2 : ?] OF REAL; DERIVE weights : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF REAL := Make_Array_Of_Array(weights_data, 0, u_upper, 0, v_upper); WHERE WR1: (SIZEOF(weights_data) = SIZEOF(SELF\B_Spline_Surface.control_points_list)) AND (SIZEOF(weights_data[1]) = SIZEOF(SELF\B_Spline_Surface.control_points_list[1])); WR2: Surface_Weights_Positive(SELF); END_ENTITY;
ENTITY Rational_B_Spline_Volume SUBTYPE OF (B_Spline_Volume); weights_data : LIST [2 : ?] OF LIST [2 : ?] OF LIST [2 : ?] OF REAL; DERIVE weights : ARRAY [0 : u_upper] OF ARRAY [0 : v_upper] OF ARRAY [0 : w_upper] OF REAL := Make_Array_Of_Array_Of_Array(weights_data, 0, u_upper, 0, v_upper, 0, w_upper); WHERE WR1: (SIZEOF(weights_data) = SIZEOF(SELF\B_Spline_Volume.control_points_list)) AND (SIZEOF(weights_data[1]) = SIZEOF(SELF\B_Spline_Volume.control_points_list[1])) AND (SIZEOF(weights_data[1][1]) = SIZEOF(SELF\B_Spline_Volume.control_points_list[1][1])); WR2: Volume_Weights_Positive(SELF); END_ENTITY;
ENTITY Rational_Locally_Refined_Spline_Curve SUBTYPE OF (Locally_Refined_Spline_Curve); weights_data : LIST [2 : ?] OF REAL; WHERE WR1: SIZEOF(weights_data) = SIZEOF(SELF\Locally_Refined_Spline_Curve.control_points_list); WR2: Weights_Positive(SELF.weights_data); END_ENTITY;
ENTITY Rational_Locally_Refined_Spline_Surface SUBTYPE OF (Locally_Refined_Spline_Surface); weights_data : LIST [4 : ?] OF REAL; WHERE WR1: SIZEOF(weights_data) = SIZEOF(SELF\Locally_Refined_Spline_Surface.control_points_list); WR2: Weights_Positive(SELF.weights_data); END_ENTITY;
ENTITY Rational_Locally_Refined_Spline_Volume SUBTYPE OF (Locally_Refined_Spline_Volume); weights_data : LIST [8 : ?] OF REAL; WHERE WR1: SIZEOF(weights_data) = SIZEOF(SELF\Locally_Refined_Spline_Volume.control_points_list); WR2: Weights_Positive(SELF.weights_data); END_ENTITY;
ENTITY Rational_Representation_Item SUBTYPE OF (Representation_Item, Slash_Expression); WHERE WR1: SIZEOF(QUERY(operand <* SELF\Binary_Generic_Expression.operands | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_LITERAL' IN TYPEOF(operand)))) = 0; END_ENTITY;
ENTITY Rationalize_Function SUBTYPE OF (Maths_Function, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Maths_Function; DERIVE fun : Maths_Function := SELF\Unary_Generic_Expression.operand; WHERE WR1: (Space_Dimension(fun.domain) = 1) AND (Space_Dimension(fun.range) = 1); WR2: Number_Tuple_Subspace_Check(Factor1(fun.range)); WR3: Space_Dimension(Factor1(fun.range)) > 1; END_ENTITY;
ENTITY Real_Defined_Function ABSTRACT SUPERTYPE SUBTYPE OF (Numeric_Defined_Function); END_ENTITY;
ENTITY Real_Interval_From_Min SUBTYPE OF (Maths_Space, Generic_Literal); min : REAL; min_closure : Open_Closed; END_ENTITY;
ENTITY Real_Interval_To_Max SUBTYPE OF (Maths_Space, Generic_Literal); max : REAL; max_closure : Open_Closed; END_ENTITY;
ENTITY Real_Literal SUBTYPE OF (Literal_Number); SELF\literal_number.the_value : REAL; END_ENTITY;
ENTITY Real_Numeric_Variable SUBTYPE OF (Numeric_Variable); END_ENTITY;
ENTITY Real_Representation_Item SUBTYPE OF (Representation_Item, Real_Literal); END_ENTITY;
ENTITY Real_Tuple_Literal SUBTYPE OF (Generic_Literal); lit_value : LIST [1 : ?] OF REAL; END_ENTITY;
ENTITY Rectangular_Area SUBTYPE OF (Primitive_2d); position : Axis2_Placement_2d; x : Positive_Length_Measure; y : Positive_Length_Measure; END_ENTITY;
ENTITY Rectangular_Array_Placement_Group_Component SUBTYPE OF (Array_Placement_Group); END_ENTITY;
ENTITY Rectangular_Closed_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1))) = 0; WR3: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT ((SIZEOF(impl_rep.used_representation.items) >= 3) AND (SIZEOF(impl_rep.used_representation.items) <= 4)))) = 0))) = 0; WR4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | (srwp_i.name = 'orientation') OR (srwp_i.name = 'length') OR (srwp_i.name = 'width') OR (srwp_i.name = 'corner radius'))) = SIZEOF(pdr.used_representation.items)))) = 1)) = 1; WR5: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'length'))) = 1))) = 0))) = 0; WR8: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'corner radius'))) <= 1))) = 0))) = 0; END_ENTITY;
ENTITY Rectangular_Composite_Surface SUBTYPE OF (Bounded_Surface); segments : LIST [1 : ?] OF LIST [1 : ?] OF Surface_Patch; DERIVE n_u : INTEGER := SIZEOF(segments); n_v : INTEGER := SIZEOF(segments[1]); WHERE WR1: SIZEOF(QUERY(s <* segments | n_v <> SIZEOF(s))) = 0; WR2: Constraints_Rectangular_Composite_Surface(SELF); END_ENTITY;
ENTITY Rectangular_Composite_Surface_Transition_Locator SUBTYPE OF (Founded_Item); basis_surface : Rectangular_Composite_Surface; surface_parameter : U_Or_V_Parameter; u_transition_index : INTEGER; v_transition_index : INTEGER; WHERE WR1: SIZEOF(Using_Representations(SELF.basis_surface) * Relating_Shape_Representations_Of_Extreme_Values(SELF)) > 0; END_ENTITY;
ENTITY Rectangular_Pattern SUBTYPE OF (Replicate_Feature); WHERE WR1: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(sdr.related_shape_aspect)))) = 1)))) <= 5)))) = 0); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'row layout direction')))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'column layout direction')))) = 1)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 5)))) = 0)))) = 0); WR6: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'number of rows')))) = 1)))) = 0)))) = 0); WR7: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'number of columns')))) = 1)))) = 0)))) = 0); WR8: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'row spacing')))) = 1)))) = 0)))) = 0); WR9: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'column spacing')))) = 1)))) = 0)))) = 0); WR10: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation')))) = 1)))) = 0)))) = 0); END_ENTITY;
ENTITY Rectangular_Pyramid SUBTYPE OF (Geometric_Representation_Item); position : Axis2_Placement_3d; xlength : Positive_Length_Measure; ylength : Positive_Length_Measure; height : Positive_Length_Measure; END_ENTITY;
ENTITY Rectangular_Trimmed_Surface SUBTYPE OF (Bounded_Surface); basis_surface : Surface; u1 : Parameter_Value; u2 : Parameter_Value; v1 : Parameter_Value; v2 : Parameter_Value; usense : BOOLEAN; vsense : BOOLEAN; WHERE WR1: u1 <> u2; WR2: v1 <> v2; WR3: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(basis_surface)) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(basis_surface)))) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(basis_surface)) OR (usense = (u2 > u1)); WR4: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF(basis_surface)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOROIDAL_SURFACE' IN TYPEOF(basis_surface))) OR (vsense = (v2 > v1)); END_ENTITY;
ENTITY Referenced_Modified_Datum SUBTYPE OF (Datum_Reference); modifier : Limit_Condition; END_ENTITY;
ENTITY Regular_Table_Function SUBTYPE OF (Linearized_Table_Function); increments : LIST [1 : ?] OF INTEGER; WHERE WR1: SIZEOF(increments) = SIZEOF(SELF\Explicit_Table_Function.shape); WR2: Extremal_Position_Check(SELF); END_ENTITY;
ENTITY Reindexed_Array_Function SUBTYPE OF (Maths_Function, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Maths_Function; starting_indices : LIST [1 : ?] OF INTEGER; WHERE WR1: Function_Is_Array(SELF\Unary_Generic_Expression.operand); WR2: SIZEOF(starting_indices) = SIZEOF(Shape_Of_Array(SELF\Unary_Generic_Expression.operand)); END_ENTITY;
ENTITY Reinforcement_Orientation_Basis SUBTYPE OF (Representation); SELF\representation.items : SET [1 : 1] OF Basis_11_Direction_Member; END_ENTITY;
ENTITY Relative_Event_Occurrence SUBTYPE OF (Event_Occurrence); base_event : Event_Occurrence; offset : Time_Measure_With_Unit; END_ENTITY;
ENTITY Removal_Volume SUBTYPE OF (Feature_Definition); WHERE WR1: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0); WR2: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'shape volume occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'volume shape usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (sdr.relating_shape_aspect.description = 'volume shape'))) = 1)))) = 1)))) = 0); END_ENTITY;
ENTITY Rep_Item_Group SUBTYPE OF (Group, Representation_Item); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_LAYER_ASSIGNMENT.ASSIGNED_ITEMS')) > 0; WR2: SIZEOF(QUERY(r <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS') | r.name = 'group representation')) > 0; WR3: SIZEOF(QUERY(ga <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GROUP_ASSIGNMENT.ASSIGNED_GROUP') | ga.role.name <> 'group membership')) = 0; WR4: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOPOLOGICAL_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM'] * TYPEOF(SELF)) = 1; END_ENTITY;
ENTITY Repackaging_Function SUBTYPE OF (Maths_Function, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Maths_Function; input_repack : Repackage_Options; output_repack : Repackage_Options; selected_output : Nonnegative_Integer; WHERE WR1: (input_repack <> Ro_Wrap_As_Tuple) OR ((Space_Dimension(operand.domain) = 1) AND ((Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(Factor1(operand.domain)))); WR2: (output_repack <> Ro_Unwrap_Tuple) OR ((Space_Dimension(operand.range) = 1) AND ((Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(Factor1(operand.range)))); WR3: selected_output <= Space_Dimension(Repackage(operand.range, output_repack)); END_ENTITY;
ENTITY Reparametrised_Composite_Curve_Segment SUBTYPE OF (Composite_Curve_Segment); param_length : Parameter_Value; WHERE WR1: param_length > 0.0; END_ENTITY;
ENTITY Replicate_Feature SUPERTYPE OF (ONEOF(Circular_Pattern, Rectangular_Pattern, Feature_Pattern)) SUBTYPE OF (Feature_Definition); WHERE WR1: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR2: (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPLICATE_FEATURE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCED_FEATURE'] * TYPEOF(fcr.related_shape_aspect)) >= 1) AND (fcr.name = 'pattern basis')))) = 1); WR3: ((SIZEOF(QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))))) + SIZEOF(QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))))) = 0); END_ENTITY;
ENTITY Repositioned_Neutral_Sketch SUBTYPE OF (Mapped_Item, Geometric_Representation_Item); DERIVE map : Representation_Map := SELF\Mapped_Item.mapping_source; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF(map.mapped_representation); WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(map.mapping_origin); WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(SELF\Mapped_Item.mapping_target); END_ENTITY;
ENTITY Repositioned_Tessellated_Item SUBTYPE OF (Tessellated_Item); location : Axis2_Placement_3d; WHERE WR1: NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_CURVE_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_GEOMETRIC_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_POINT_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SURFACE_SET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHELL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SOLID', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_WIRE'] * TYPEOF(SELF)) = 0); END_ENTITY;
ENTITY Representation SUPERTYPE OF ((ONEOF(Reinforcement_Orientation_Basis, Ply_Angle_Representation)) ANDOR (ONEOF(Interpolated_Configuration_Representation, Link_Motion_Representation_Along_Path)) ANDOR (ONEOF(Kinematic_Link_Representation, Kinematic_Topology_Structure, Kinematic_Topology_Directed_Structure, Kinematic_Topology_Network_Structure, Mechanism_Representation, Shape_Representation)) ANDOR (ONEOF(Kinematic_Topology_Structure, Kinematic_Topology_Directed_Structure, Kinematic_Topology_Network_Structure))); name : Label; items : SET [1 : ?] OF Representation_Item; context_of_items : Representation_Context; DERIVE id : Identifier := Get_Id_Value(SELF); description : Text := Get_Description_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1; END_ENTITY;
ENTITY Representation_Context; context_identifier : Identifier; context_type : Text; INVERSE representations_in_context : SET [1:?] OF Representation FOR context_of_items; END_ENTITY;
ENTITY Representation_Context_Reference; context_identifier : Identifier; INVERSE representations_in_context : SET [1:?] OF Representation_Reference FOR context_of_items; END_ENTITY;
ENTITY Representation_Item SUPERTYPE OF ((ONEOF(Binary_Representation_Item, Compound_Representation_Item, Mapped_Item, Value_Representation_Item)) ANDOR ((ONEOF(Boolean_Representation_Item, Date_Representation_Item, Date_Time_Representation_Item, Integer_Representation_Item, Logical_Representation_Item, Rational_Representation_Item, Real_Representation_Item))) ANDOR (ONEOF(Mapped_Item, Styled_Item))); name : Label; WHERE WR1: SIZEOF(Using_Representations(SELF)) > 0; END_ENTITY;
ENTITY Representation_Item_Relationship; name : Label; description : OPTIONAL Text; relating_representation_item : Representation_Item; related_representation_item : Representation_Item; END_ENTITY;
ENTITY Representation_Map; mapping_origin : Representation_Item; mapped_representation : Representation; INVERSE map_usage : SET [1:?] OF Mapped_Item FOR mapping_source; WHERE WR1: Item_In_Context(mapping_origin, mapped_representation\Representation.context_of_items); END_ENTITY;
ENTITY Representation_Proxy_Item SUBTYPE OF (Representation_Item); item : Representation_Proxy_Select; END_ENTITY;
ENTITY Representation_Reference; id : Identifier; context_of_items : Representation_Context_Reference; END_ENTITY;
ENTITY Representation_Relationship; name : Label; description : OPTIONAL Text; rep_1 : Representation_Or_Representation_Reference; rep_2 : Representation_Or_Representation_Reference; END_ENTITY;
ENTITY Representation_Relationship_With_Transformation SUBTYPE OF (Representation_Relationship); transformation_operator : Transformation; WHERE WR1: SELF\Representation_Relationship.rep_1.context_of_items :<>: SELF\Representation_Relationship.rep_2.context_of_items; WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN TYPEOF(transformation_operator)) OR (Item_In_Context(transformation_operator\Item_Defined_Transformation.transform_item_1, SELF\Representation_Relationship.rep_1.context_of_items) AND Item_In_Context(transformation_operator\Item_Defined_Transformation.transform_item_2, SELF\Representation_Relationship.rep_2.context_of_items)); END_ENTITY;
ENTITY Representative_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: Unique_In_Product_Definition(SELF) OR Unique_In_Shape_Aspect(SELF); END_ENTITY;
ENTITY Requirement_Assigned_Object SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Requirement_Assignment; items : SET [1 : 1] OF Requirement_Assigned_Item; END_ENTITY;
ENTITY Requirement_Assignment SUBTYPE OF (Characterized_Object, Group); END_ENTITY;
ENTITY Requirement_For_Action_Resource SUBTYPE OF (Action_Resource_Requirement); resources : SET [1 : ?] OF Action_Resource; END_ENTITY;
ENTITY Requirement_Source SUBTYPE OF (Group); END_ENTITY;
ENTITY Requirement_View_Definition_Relationship SUBTYPE OF (Product_Definition_Relationship); END_ENTITY;
ENTITY Resistance_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RESISTANCE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Resistance_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensions_For_Si_Unit(Si_Unit_Name.Ohm); END_ENTITY;
ENTITY Resource_Property; name : Label; description : Text; resource : Characterized_Resource_Definition; END_ENTITY;
ENTITY Resource_Property_Representation; name : Label; description : Text; property : Resource_Property; representation : Representation; END_ENTITY;
ENTITY Resource_Requirement_Type; name : Label; description : Text; END_ENTITY;
ENTITY Restriction_Function SUBTYPE OF (Maths_Function, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Maths_Space; END_ENTITY;
ENTITY Resulting_Path SUBTYPE OF (Link_Motion_Representation_Along_Path); controlling_joints : SET [1 : ?] OF Kinematic_Joint; END_ENTITY;
ENTITY Retention SUBTYPE OF (Action); WHERE WR1: SIZEOF(QUERY(aa <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_ASSIGNMENT.ASSIGNED_ACTION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF(aa)) AND (aa.role.name = 'retention'))) >= 1; WR2: (SIZEOF(QUERY(atia <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | (atia.role.name = 'minimum retention period'))) = 1) AND (SIZEOF(QUERY(atia <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | (atia.role.name = 'maximum retention period'))) = 1) AND (SIZEOF(QUERY(atia1 <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | (atia1.role.name = 'minimum retention period') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF(atia1.assigned_time_interval)) AND (EXISTS(atia1.assigned_time_interval\Time_Interval_With_Bounds.secondary_bound) OR EXISTS(atia1.assigned_time_interval\Time_Interval_With_Bounds.duration)) AND (SIZEOF(QUERY(atia2 <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS') | (atia2.role.name = 'maximum retention period') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TIME_INTERVAL_WITH_BOUNDS' IN TYPEOF(atia2.assigned_time_interval)) AND (EXISTS(atia2.assigned_time_interval\Time_Interval_With_Bounds.secondary_bound) OR EXISTS(atia2.assigned_time_interval\Time_Interval_With_Bounds.duration)) AND (atia1.assigned_time_interval\Time_Interval_With_Bounds.primary_bound :=: atia2.assigned_time_interval\Time_Interval_With_Bounds.primary_bound))) = 1))) = 1); WR3: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATING_ACTION')) + SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_RELATIONSHIP.RELATED_ACTION')) = 0; END_ENTITY;
ENTITY Revolute_Pair SUBTYPE OF (Low_Order_Kinematic_Pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY;
ENTITY Revolute_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Revolute_Pair; actual_rotation : Plane_Angle_Measure; END_ENTITY;
ENTITY Revolute_Pair_With_Range SUBTYPE OF (Revolute_Pair); lower_limit_actual_rotation : OPTIONAL Plane_Angle_Measure; upper_limit_actual_rotation : OPTIONAL Plane_Angle_Measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); END_ENTITY;
ENTITY Revolved_Area_Solid SUBTYPE OF (Swept_Area_Solid); axis : Axis1_Placement; angle : Plane_Angle_Measure; DERIVE axis_line : Line := Representation_Item('') || Geometric_Representation_Item() || Curve() || Line(axis.Location, Representation_Item('') || Geometric_Representation_Item() || Vector(axis.z, 1.0)); END_ENTITY;
ENTITY Revolved_Face_Solid SUBTYPE OF (Swept_Face_Solid); axis : Axis1_Placement; angle : Plane_Angle_Measure; DERIVE axis_line : Line := Representation_Item('') || Geometric_Representation_Item() || Curve() || Line(axis.Location, Representation_Item('') || Geometric_Representation_Item() || Vector(axis.z, 1.0)); END_ENTITY;
ENTITY Revolved_Face_Solid_With_Trim_Conditions SUBTYPE OF (Revolved_Face_Solid); first_trim_condition : Trim_Condition_Select; second_trim_condition : Trim_Condition_Select; WHERE WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(first_trim_condition)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(second_trim_condition))); WR2: NOT ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(first_trim_condition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(second_trim_condition))) AND (first_trim_condition = second_trim_condition)); END_ENTITY;
ENTITY Revolved_Profile SUBTYPE OF (Feature_Definition); WHERE WR1: (SELF\Characterized_Object.description IN ['groove','flat','round','open profile']); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = 0)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')))) = 1)))) = 0)))) = 0); WR4: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'removal direction'))) = 1; WR5: ((NOT (SELF\Characterized_Object.description = 'open profile')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'outer edge shape occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'outer edge shape')))) = 1)))) = 1)))) = 0)); WR6: (NOT (SELF\Characterized_Object.description = 'flat')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'flat edge shape occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINEAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'flat edge shape')))) = 1)))) = 1)))) = 0); WR7: ((NOT (SELF\Characterized_Object.description = 'round')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'rounded edge shape occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'rounded edge shape')))) = 1)))) = 1)))) = 0)); WR8: ((NOT (SELF\Characterized_Object.description = 'groove')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'sweep occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect.description = 'sweep')))) = 1)))) = 1)))) = 0)); WR9: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0; END_ENTITY;
ENTITY Rgc_With_Dimension SUBTYPE OF (Radius_Geometric_Constraint); radius_value : Positive_Length_Measure; END_ENTITY;
ENTITY Rib_Top SUBTYPE OF (Feature_Definition); WHERE WR1: SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'rib top condition occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'rib top usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF(sdr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP' IN TYPEOF(sdr.related_shape_aspect.of_shape.definition))))) = 1))) = 1))) = 0; WR2: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'removal direction'))) = 1))) = 1; WR3: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0; END_ENTITY;
ENTITY Rib_Top_Floor SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['planar','complex']; WR3: SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (sar.description = 'rib top usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar))) | ((fcr.related_shape_aspect.description = 'rib top condition occurrence') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF(fcr.relating_shape_aspect))))) >= 1; WR4: (NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'rib top face'))) = 1))) = 0); WR5: (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'rib top face'))) = 1))) = 0); WR6: (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) | NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (sa_occ.description = 'boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))) | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NGON_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_CLOSED_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_PATH_PROFILE'] * TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.relating_shape_aspect.description = 'rib top floor boundary'))) = 1))) = 1))) = 0); END_ENTITY;
ENTITY Right_Angular_Wedge SUBTYPE OF (Geometric_Representation_Item); position : Axis2_Placement_3d; x : Positive_Length_Measure; y : Positive_Length_Measure; z : Positive_Length_Measure; ltx : Length_Measure; WHERE WR1: ((0.0 <= ltx) AND (ltx < X)); END_ENTITY;
ENTITY Right_Circular_Cone SUBTYPE OF (Geometric_Representation_Item); position : Axis1_Placement; height : Positive_Length_Measure; radius : Length_Measure; semi_angle : Plane_Angle_Measure; WHERE WR1: radius >= 0.0; END_ENTITY;
ENTITY Right_Circular_Cylinder SUBTYPE OF (Geometric_Representation_Item); position : Axis1_Placement; height : Positive_Length_Measure; radius : Positive_Length_Measure; END_ENTITY;
ENTITY Right_To_Usage_Association SUBTYPE OF (Action_Method_Relationship); SELF\action_method_relationship.relating_method : Information_Usage_Right; SELF\action_method_relationship.related_method : Information_Right; DERIVE right_applied : Information_Right := SELF\Action_Method_Relationship.related_method; right_usage : Information_Usage_Right := SELF\Action_Method_Relationship.relating_method; END_ENTITY;
ENTITY Rigid_Link_Representation SUBTYPE OF (Kinematic_Link_Representation); END_ENTITY;
ENTITY Rigid_Subsketch SUBTYPE OF (Subsketch); END_ENTITY;
ENTITY Role_Association; role : Object_Role; item_with_role : Role_Select; END_ENTITY;
ENTITY Rolling_Curve_Pair SUBTYPE OF (Planar_Curve_Pair); END_ENTITY;
ENTITY Rolling_Curve_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Rolling_Curve_Pair; actual_point_on_curve_1 : Point_On_Curve; WHERE WR1: SELF\Pair_Value.applies_to_pair\Planar_Curve_Pair.curve_1 :=: actual_point_on_curve_1.basis_curve; END_ENTITY;
ENTITY Rolling_Surface_Pair SUBTYPE OF (Surface_Pair); END_ENTITY;
ENTITY Rolling_Surface_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Rolling_Surface_Pair; actual_point_on_surface : Point_On_Surface; actual_rotation : Plane_Angle_Measure; WHERE WR1: SELF\Pair_Value.applies_to_pair\Surface_Pair.surface_1 :=: actual_point_on_surface.basis_surface; END_ENTITY;
ENTITY Rotation_About_Direction SUBTYPE OF (Geometric_Representation_Item); direction_of_axis : Direction; rotation_angle : Plane_Angle_Measure; WHERE WR1: SIZEOF(direction_of_axis.direction_ratios) = 3; END_ENTITY;
ENTITY Round_Hole SUBTYPE OF (Feature_Definition); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'diameter occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.name = 'diameter')))) = 1)))) = 1)))) = 0); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'hole depth occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.name = 'hole depth') AND (sdr.relating_shape_aspect.description = 'linear')))) = 1)))) = 1)))) = 0); WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'bottom condition occurrence') AND (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'hole bottom usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HOLE_BOTTOM' IN TYPEOF(fcr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) = 1)))) = 1)))) = 0); WR4: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'change in diameter occurrence') AND (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'taper usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAPER' IN TYPEOF(fcr.relating_shape_aspect)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUND_HOLE' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) = 1)))) <= 1)))) = 0); WR5: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_ROUND_HOLE' IN TYPEOF(SELF)) XOR (SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)))) = 1); END_ENTITY;
ENTITY Rounded_End SUBTYPE OF (Feature_Definition); WHERE WR1: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0); WR2: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'partial circular boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF(sdr.relating_shape_aspect))))) = 1)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'course of travel occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'linear')))) = 1)))) = 1)))) = 0); WR4: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0; END_ENTITY;
ENTITY Rounded_U_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition)); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR3: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | (NOT (SIZEOF(impl_rep.used_representation.items) >= 1) AND (SIZEOF(impl_rep.used_representation.items) <= 2)))) = 0))) = 0; WR4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | (srwp_i.name = 'orientation') OR (srwp_i.name = 'depth'))) = SIZEOF(pdr.used_representation.items)))) = 1)) = 1; WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'width')))) = 1)))) = 0)))) = 0); WR6: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; WR7: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'depth'))) <= 1))) = 0))) = 0; END_ENTITY;
ENTITY Roundness_Tolerance SUBTYPE OF (Geometric_Tolerance); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Row_Representation_Item SUBTYPE OF (Compound_Representation_Item); SELF\compound_representation_item.item_element : List_Representation_Item; END_ENTITY;
ENTITY Row_Value SUBTYPE OF (Compound_Representation_Item); END_ENTITY;
ENTITY Row_Variable SUBTYPE OF (Abstract_Variable); END_ENTITY;
ENTITY Rule_Action SUBTYPE OF (Action); END_ENTITY;
ENTITY Rule_Condition SUBTYPE OF (Atomic_Formula); END_ENTITY;
ENTITY Rule_Definition SUBTYPE OF (Rule_Software_Definition); END_ENTITY;
ENTITY Rule_Set SUBTYPE OF (Rule_Software_Definition); END_ENTITY;
ENTITY Rule_Set_Group SUBTYPE OF (Rule_Software_Definition); END_ENTITY;
ENTITY Rule_Software_Definition SUBTYPE OF (Product_Definition); END_ENTITY;
ENTITY Rule_Superseded_Assignment SUBTYPE OF (Action_Assignment); items : SET [1 : ?] OF Rule_Superseded_Item; END_ENTITY;
ENTITY Rule_Supersedence SUBTYPE OF (Rule_Action); END_ENTITY;
ENTITY Ruled_Surface_Swept_Area_Solid SUBTYPE OF (Surface_Curve_Swept_Area_Solid); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(SELF.reference_surface)) AND (SELF.reference_surface\B_Spline_Surface.u_degree = 1); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(SELF.directrix)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(SELF.directrix\Surface_Curve.Curve_3d)) AND (SELF.directrix\Surface_Curve.Curve_3d\B_Spline_Curve.degree = SELF.reference_surface\B_Spline_Surface.v_degree)); END_ENTITY;
ENTITY Runout_Zone_Definition SUBTYPE OF (Tolerance_Zone_Definition); orientation : Runout_Zone_Orientation; END_ENTITY;
ENTITY Runout_Zone_Orientation; angle : Plane_Angle_Measure_With_Unit; END_ENTITY;
ENTITY Runout_Zone_Orientation_Reference_Direction SUBTYPE OF (Runout_Zone_Orientation); orientation_defining_relationship : Shape_Aspect_Relationship; END_ENTITY;
ENTITY Same_As_External_Item_Assignment SUBTYPE OF (External_Identification_Assignment); items : SET [0 : ?] OF Same_As_Item; END_ENTITY;
ENTITY Satisfied_Requirement SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Satisfies_Requirement; items : SET [1 : 1] OF Product_Definition; END_ENTITY;
ENTITY Satisfies_Requirement SUBTYPE OF (Group); END_ENTITY;
ENTITY Satisfying_Item SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Satisfies_Requirement; items : SET [1 : 1] OF Requirement_Satisfaction_Item; END_ENTITY;
ENTITY Scalar_Variable SUBTYPE OF (Abstract_Variable); END_ENTITY;
ENTITY Scan_3d_Model SUBTYPE OF (Scanned_Data_Item); scanner_info : SET [1 : ?] OF Scanner_Property; scanned_points : SET [1 : ?] OF Scanned_Data_Item; WHERE WR1: SIZEOF(QUERY(tmp <* scanned_points | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SCAN_3D_MODEL' IN TYPEOF(tmp))) = 0; END_ENTITY;
ENTITY Scan_Data_Shape_Representation SUBTYPE OF (Shape_Representation); SELF\representation.items : SET [1 : ?] OF Scanned_Data_Item; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(SELF\Representation.context_of_items); END_ENTITY;
ENTITY Scanned_Data_Item SUPERTYPE OF (ONEOF(Point_Cloud_Dataset, Point_Cloud_Superdataset, Triangulated_Point_Cloud_Dataset, Scan_3d_Model)) SUBTYPE OF (Geometric_Representation_Item); WHERE WR1: SIZEOF(QUERY(using_rep <* Using_Representations(SELF) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SCAN_DATA_SHAPE_REPRESENTATION' IN TYPEOF(using_rep)))) = 0; END_ENTITY;
ENTITY Scanner_Basic_Properties SUBTYPE OF (Scanner_Property); scanner_identification : Label; scanner_location : Axis2_Placement_3d; scanner_uncertainty : OPTIONAL Positive_Length_Measure; END_ENTITY;
ENTITY Scanner_Property ABSTRACT SUPERTYPE SUBTYPE OF (Representation_Item); END_ENTITY;
ENTITY Screw_Pair SUBTYPE OF (Low_Order_Kinematic_Pair_With_Motion_Coupling); pitch : Length_Measure; WHERE WR1: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Screw_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Screw_Pair; actual_rotation : Plane_Angle_Measure; DERIVE actual_translation : Length_Measure := SELF\Pair_Value.applies_to_pair\Screw_Pair.Pitch * Plane_Angle_For_Pair_In_Radian(SELF\Pair_Value.applies_to_pair, actual_rotation) / (2 * PI); END_ENTITY;
ENTITY Screw_Pair_With_Range SUBTYPE OF (Screw_Pair); lower_limit_actual_rotation : OPTIONAL Plane_Angle_Measure; upper_limit_actual_rotation : OPTIONAL Plane_Angle_Measure; WHERE WR1: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); END_ENTITY;
ENTITY Sculptured_Solid SUBTYPE OF (Modified_Solid); sculpturing_element : Generalized_Surface_Select; positive_side : BOOLEAN; END_ENTITY;
ENTITY Sdgc_With_Dimension SUBTYPE OF (Surface_Distance_Geometric_Constraint); distance_value : Non_Negative_Length_Measure; END_ENTITY;
ENTITY Seam_Curve SUBTYPE OF (Surface_Curve); WHERE WR1: SIZEOF(SELF\Surface_Curve.associated_geometry) = 2; WR2: Associated_Surface(SELF\Surface_Curve.associated_geometry[1]) = Associated_Surface(SELF\Surface_Curve.associated_geometry[2]); WR3: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(SELF\Surface_Curve.associated_geometry[1]); WR4: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(SELF\Surface_Curve.associated_geometry[2]); END_ENTITY;
ENTITY Seam_Edge SUBTYPE OF (Oriented_Edge); pcurve_reference : Pcurve; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(edge_element)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SEAM_CURVE' IN TYPEOF(edge_element\Edge_Curve.edge_geometry)); WR2: pcurve_reference IN edge_element\Edge_Curve.edge_geometry\Surface_Curve.associated_geometry; END_ENTITY;
ENTITY Security_Classification; name : Label; purpose : Text; security_level : Security_Classification_Level; END_ENTITY;
ENTITY Security_Classification_Assignment ABSTRACT SUPERTYPE; assigned_security_classification : Security_Classification; DERIVE role : Object_Role := Get_Role(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1; END_ENTITY;
ENTITY Security_Classification_Level; name : Label; END_ENTITY;
ENTITY Selector_Function SUBTYPE OF (Maths_Function, Generic_Literal); selector : Input_Selector; source_of_domain : Maths_Space_Or_Function; WHERE WR1: No_Cyclic_Domain_Reference(source_of_domain, [SELF]); WR2: Expression_Is_Constant(Domain_From(source_of_domain)); END_ENTITY;
ENTITY Self_Intersecting_Curve SUBTYPE OF (Self_Intersecting_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; arc_length_separation_factor : REAL; interference_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE']); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Self_Intersecting_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Self_Intersecting_Curve, Self_Intersecting_Surface)) SUBTYPE OF (Inapt_Geometry); END_ENTITY;
ENTITY Self_Intersecting_Loop SUBTYPE OF (Topology_Related_To_Self_Intersecting_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; arc_length_distance_factor : REAL; interference_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Self_Intersecting_Shell SUBTYPE OF (Topology_Related_To_Self_Intersecting_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; geodesic_separation_factor : REAL; interference_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_FACE_SURFACE']); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Self_Intersecting_Surface SUBTYPE OF (Self_Intersecting_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; geodesic_separation_factor : REAL; interference_tolerance : Length_Measure; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Serial_Numbered_Effectivity SUBTYPE OF (Effectivity); effectivity_start_id : Identifier; effectivity_end_id : OPTIONAL Identifier; END_ENTITY;
ENTITY Series_Composed_Function SUBTYPE OF (Maths_Function, Multiple_Arity_Generic_Expression); SELF\multiple_arity_generic_expression.operands : LIST [2 : ?] OF Maths_Function; WHERE WR1: Composable_Sequence(SELF\Multiple_Arity_Generic_Expression.operands); END_ENTITY;
ENTITY Shape_Aspect SUPERTYPE OF ((ONEOF(Shape_Aspect_Occurrence, Component_Path_Shape_Aspect) ANDOR Constituent_Shape_Aspect) ANDOR (ONEOF(Harness_Node, Harness_Segment)) ANDOR (ONEOF(Contacting_Feature, Datum, Datum_Feature, Datum_Target, Datum_System, General_Datum_Reference)) ANDOR (ONEOF(Assembly_Shape_Constraint, Assembly_Shape_Joint, Connectivity_Definition, Contact_Feature, Transport_Feature))); name : Label; description : OPTIONAL Text; of_shape : Product_Definition_Shape; product_definitional : LOGICAL; DERIVE id : Identifier := Get_Id_Value(SELF); UNIQUE UR1: id, of_shape; WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Shape_Aspect_Associativity SUBTYPE OF (Shape_Aspect_Relationship); WHERE WR1: SELF.relating_shape_aspect.product_definitional; WR2: NOT (SELF.related_shape_aspect.product_definitional); END_ENTITY;
ENTITY Shape_Aspect_Deriving_Relationship SUBTYPE OF (Shape_Aspect_Relationship); SELF\shape_aspect_relationship.relating_shape_aspect : Derived_Shape_Aspect; END_ENTITY;
ENTITY Shape_Aspect_Occurrence SUBTYPE OF (Shape_Aspect); definition : Shape_Aspect_Or_Characterized_Object; WHERE WR1: Acyclic_Shape_Aspect_Occurrence(SELF, definition); END_ENTITY;
ENTITY Shape_Aspect_Relationship SUPERTYPE OF (ONEOF(Assembly_Shape_Joint_Item_Relationship, Assembly_Shape_Constraint_Item_Relationship, Connectivity_Definition_Item_Relationship, Shape_Feature_Fit_Relationship)); name : Label; description : OPTIONAL Text; relating_shape_aspect : Shape_Aspect; related_shape_aspect : Shape_Aspect; DERIVE id : Identifier := Get_Id_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Shape_Aspect_Relationship_Representation_Association; represented_shape_aspect_relationship : Shape_Aspect_Relationship; representing_representation_relationship : Representation_Relationship; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(representing_representation_relationship\Representation_Relationship.rep_1)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(representing_representation_relationship\Representation_Relationship.rep_2)); WR2: (represented_shape_aspect_relationship.relating_shape_aspect IN Using_Shape_Aspect_Of_Shape_Representation(representing_representation_relationship.rep_1)) AND (represented_shape_aspect_relationship.related_shape_aspect IN Using_Shape_Aspect_Of_Shape_Representation(representing_representation_relationship.rep_2)); WR3: ((Find_Representative_Shape_Representation_Of_Product_Definition(Using_Product_Definition_Of_Shape_Aspect(represented_shape_aspect_relationship.relating_shape_aspect)).context_of_items) :=: (Find_Representative_Shape_Representation_Of_Shape_Aspect(represented_shape_aspect_relationship.relating_shape_aspect).context_of_items)) AND ((Find_Representative_Shape_Representation_Of_Product_Definition(Using_Product_Definition_Of_Shape_Aspect(represented_shape_aspect_relationship.related_shape_aspect)).context_of_items) :=: (Find_Representative_Shape_Representation_Of_Shape_Aspect(represented_shape_aspect_relationship.related_shape_aspect).context_of_items)); WR4: Using_Product_Definition_Of_Shape_Aspect(represented_shape_aspect_relationship.relating_shape_aspect) :<>: Using_Product_Definition_Of_Shape_Aspect(represented_shape_aspect_relationship.related_shape_aspect); WR5: Find_Assembly_Root([Using_Product_Definition_Of_Shape_Aspect(represented_shape_aspect_relationship.relating_shape_aspect)]) :=: Find_Assembly_Root([Using_Product_Definition_Of_Shape_Aspect(represented_shape_aspect_relationship.related_shape_aspect)]); END_ENTITY;
ENTITY Shape_Criteria_Representation_With_Accuracy SUBTYPE OF (Shape_Data_Quality_Criteria_Representation); required_general_accuracy : SET [1 : ?] OF Shape_Measurement_Accuracy; END_ENTITY;
ENTITY Shape_Data_Quality_Assessment_By_Logical_Test SUBTYPE OF (Data_Quality_Assessment_Specification); END_ENTITY;
ENTITY Shape_Data_Quality_Assessment_By_Numerical_Test SUBTYPE OF (Data_Quality_Assessment_Specification); threshold : Shape_Data_Quality_Value_Limit_Type_Select; END_ENTITY;
ENTITY Shape_Data_Quality_Criteria_Representation SUBTYPE OF (Data_Quality_Criteria_Representation); WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_CRITERION' IN TYPEOF(q))) > 0; END_ENTITY;
ENTITY Shape_Data_Quality_Criterion SUPERTYPE OF (ONEOF(Erroneous_Data, Inapt_Data)) SUBTYPE OF (Data_Quality_Criterion, Data_Quality_Measurement_Requirement); assessment_specification : Shape_Data_Quality_Assessment_Specification_Select; WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.CRITERION')) = 0; WR2: SIZEOF(QUERY(i1 <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATED_REPRESENTATION_ITEM')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN TYPEOF(i1))) = 0; WR3: SIZEOF(QUERY(i1 <* Bag_To_Set(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM_RELATIONSHIP.RELATING_REPRESENTATION_ITEM')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' IN TYPEOF(i1))) = 0; END_ENTITY;
ENTITY Shape_Data_Quality_Criterion_And_Accuracy_Association; required_specific_accuracy : Shape_Measurement_Accuracy; shape_data_quality_criterion : Shape_Data_Quality_Criterion; END_ENTITY;
ENTITY Shape_Data_Quality_Inspected_Shape_And_Result_Relationship SUBTYPE OF (Shape_Representation_Relationship); SELF\representation_relationship.rep_1 : Shape_Representation; SELF\representation_relationship.rep_2 : Shape_Data_Quality_Inspection_Result_Representation; WHERE WR1: SIZEOF(Using_Product_Definition_Of_Shape_Representation(SELF.rep_1) * Bag_To_Set(Inspected_Product_Definition(SELF.rep_2))) > 0; WR2: SELF.rep_1\Representation.context_of_items :=: SELF.rep_2\Representation.context_of_items; END_ENTITY;
ENTITY Shape_Data_Quality_Inspection_Criterion_Report SUBTYPE OF (Data_Quality_Inspection_Criterion_Report); representative_measured_value : Measured_Value_Select; END_ENTITY;
ENTITY Shape_Data_Quality_Inspection_Instance_Report SUBTYPE OF (Data_Quality_Inspection_Instance_Report); SELF\data_quality_inspection_instance_report.inspected_instances : LIST [1 : ?] OF Shape_Data_Quality_Inspection_Instance_Report_Item; END_ENTITY;
ENTITY Shape_Data_Quality_Inspection_Instance_Report_Item SUBTYPE OF (Data_Quality_Inspection_Instance_Report_Item); SELF\data_quality_inspection_instance_report_item.inspected_elements : SET [1 : ?] OF Inspected_Shape_Element_Select; measured_value : Measured_Value_Select; END_ENTITY;
ENTITY Shape_Data_Quality_Inspection_Result SUBTYPE OF (Data_Quality_Inspection_Result); SELF\data_quality_inspection_result.criterion_inspected : Shape_Data_Quality_Criterion; END_ENTITY;
ENTITY Shape_Data_Quality_Inspection_Result_Representation SUBTYPE OF (Data_Quality_Inspection_Result_Representation); WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q))) > 0; WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF(SELF\Representation.context_of_items); WR3: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.REP_2')) > 0; END_ENTITY;
ENTITY Shape_Data_Quality_Lower_Value_Limit SUBTYPE OF (Shape_Data_Quality_Value_Limit); WHERE WR1: SELF\Qualified_Representation_Item.qualifiers[1].name = 'minimum'; END_ENTITY;
ENTITY Shape_Data_Quality_Upper_Value_Limit SUBTYPE OF (Shape_Data_Quality_Value_Limit); WHERE WR1: SELF\Qualified_Representation_Item.qualifiers[1].name = 'maximum'; END_ENTITY;
ENTITY Shape_Data_Quality_Value_Limit ABSTRACT SUPERTYPE OF (ONEOF(Shape_Data_Quality_Upper_Value_Limit, Shape_Data_Quality_Lower_Value_Limit)) SUBTYPE OF (Measure_Representation_Item, Qualified_Representation_Item); END_ENTITY;
ENTITY Shape_Data_Quality_Value_Range SUBTYPE OF (Compound_Representation_Item); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SET_REPRESENTATION_ITEM' IN TYPEOF(SELF\Compound_Representation_Item.item_element)) AND ((SIZEOF(SELF\Compound_Representation_Item.item_element) = 2) AND ((SIZEOF(QUERY(i1 <* SELF\Compound_Representation_Item.item_element | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)))) = 2) OR (SIZEOF(QUERY(i2 <* SELF\Compound_Representation_Item.item_element | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i2)))) = 2))); WR2: (SIZEOF(QUERY(i <* SELF\Compound_Representation_Item.item_element | (i.name = 'upper limit'))) = 1) AND (SIZEOF(QUERY(i <* SELF\Compound_Representation_Item.item_element | (i.name = 'lower limit'))) = 1); WR3: (SIZEOF(QUERY(i1 <* SELF\Compound_Representation_Item.item_element | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)) AND (SIZEOF(QUERY(i2 <* SELF\Compound_Representation_Item.item_element | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i2)) AND (i1 :<>: i2) AND (i1\Measure_With_Unit.unit_component :=: i2\Measure_With_Unit.unit_component))) = 1))) = 2) OR (SIZEOF(QUERY(i1 <* SELF\Compound_Representation_Item.item_element | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i1)) AND (SIZEOF(QUERY(i2 <* SELF\Compound_Representation_Item.item_element | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i2)) AND (i1 :<>: i2) AND (TYPEOF(i1\Value_Representation_Item.value_component) = TYPEOF(i2\Value_Representation_Item.value_component)))) = 1))) = 2); END_ENTITY;
ENTITY Shape_Defining_Relationship SUBTYPE OF (Shape_Aspect_Relationship); END_ENTITY;
ENTITY Shape_Definition_Representation SUBTYPE OF (Property_Definition_Representation); SELF\property_definition_representation.definition : Property_Definition; SELF\property_definition_representation.used_representation : Shape_Representation; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(definition)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION' IN TYPEOF(definition\Property_Definition.definition)); END_ENTITY;
ENTITY Shape_Dimension_Representation SUBTYPE OF (Shape_Representation); SELF\representation.items : SET [1 : ?] OF Shape_Dimension_Representation_Item; END_ENTITY;
ENTITY Shape_Feature_Definition SUBTYPE OF (Feature_Definition); END_ENTITY;
ENTITY Shape_Feature_Definition_Element_Relationship SUBTYPE OF (Shape_Aspect_Relationship, Characterized_Object); DERIVE SELF\characterized_object.name : Label := SELF\Shape_Aspect_Relationship.name; SELF\characterized_object.description : Text := SELF\Shape_Aspect_Relationship.description; END_ENTITY;
ENTITY Shape_Feature_Definition_Fit_Relationship SUBTYPE OF (Shape_Feature_Definition_Relationship); END_ENTITY;
ENTITY Shape_Feature_Definition_Relationship SUBTYPE OF (Characterized_Object_Relationship, Characterized_Object); SELF\characterized_object_relationship.relating_object : Shape_Feature_Definition; SELF\characterized_object_relationship.related_object : Shape_Feature_Definition; DERIVE SELF\characterized_object.name : Label := SELF\Characterized_Object_Relationship.name; SELF\characterized_object.description : Text := SELF\Characterized_Object_Relationship.description; END_ENTITY;
ENTITY Shape_Feature_Fit_Relationship SUBTYPE OF (Shape_Aspect_Relationship, Characterized_Object); DERIVE SELF\characterized_object.name : Label := SELF\Shape_Aspect_Relationship.name; SELF\characterized_object.description : Text := SELF\Shape_Aspect_Relationship.description; END_ENTITY;
ENTITY Shape_Inspection_Result_Accuracy_Association; applied_specific_accuracy : Shape_Measurement_Accuracy; shape_data_quality_result : Shape_Data_Quality_Inspection_Result; END_ENTITY;
ENTITY Shape_Inspection_Result_Representation_With_Accuracy SUBTYPE OF (Shape_Data_Quality_Inspection_Result_Representation); applied_general_accuracy : SET [1 : ?] OF Shape_Measurement_Accuracy; END_ENTITY;
ENTITY Shape_Measurement_Accuracy; description : Text; range : Shape_Data_Quality_Value_Limit_Type_Select; END_ENTITY;
ENTITY Shape_Representation SUBTYPE OF (Representation); END_ENTITY;
ENTITY Shape_Representation_Reference SUBTYPE OF (Representation_Reference); END_ENTITY;
ENTITY Shape_Representation_Relationship SUBTYPE OF (Representation_Relationship); WHERE WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_REFERENCE'] * (TYPEOF(SELF\Representation_Relationship.rep_1) + TYPEOF(SELF\Representation_Relationship.rep_2))) >= 1; END_ENTITY;
ENTITY Shape_Representation_With_Parameters SUBTYPE OF (Shape_Representation); SELF\representation.items : SET [1 : ?] OF Shape_Representation_With_Parameters_Items; END_ENTITY;
ENTITY Shape_Summary_Request_With_Representative_Value SUBTYPE OF (Summary_Report_Request); END_ENTITY;
ENTITY Shell_Based_Surface_Model SUBTYPE OF (Geometric_Representation_Item); sbsm_boundary : SET [1 : ?] OF Shell; WHERE WR1: Constraints_Geometry_Shell_Based_Surface_Model(SELF); END_ENTITY;
ENTITY Shell_Based_Wireframe_Model SUBTYPE OF (Geometric_Representation_Item); sbwm_boundary : SET [1 : ?] OF Shell; WHERE WR1: Constraints_Geometry_Shell_Based_Wireframe_Model(SELF); END_ENTITY;
ENTITY Shell_Based_Wireframe_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D'] * TYPEOF(it)) = 1))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM'] * TYPEOF(it)) = 1))) >= 1; WR3: SIZEOF(QUERY(sbwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(ws <* QUERY(sb <* sbwm\Shell_Based_Wireframe_Model.sbwm_boundary | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF(sb))) | NOT (SIZEOF(QUERY(eloop <* QUERY(wsb <* ws\Wire_Shell.wire_shell_extent | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(wsb))) | NOT (SIZEOF(QUERY(el <* eloop\Path.edge_list | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE' IN TYPEOF(el.edge_element)))) = 0))) = 0))) = 0))) = 0; WR4: SIZEOF(QUERY(sbwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(ws <* QUERY(sb <* sbwm\Shell_Based_Wireframe_Model.sbwm_boundary | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF(sb))) | NOT (SIZEOF(QUERY(eloop <* QUERY(wsb <* ws\Wire_Shell.wire_shell_extent | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(wsb))) | NOT (SIZEOF(QUERY(pline_el <* QUERY(el <* eloop\Path.edge_list | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(el.edge_element\Edge_Curve.edge_geometry))) | NOT (SIZEOF(pline_el.edge_element\Edge_Curve.edge_geometry\Polyline.points) > 2))) = 0))) = 0))) = 0))) = 0; WR5: SIZEOF(QUERY(sbwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(ws <* QUERY(sb <* sbwm\Shell_Based_Wireframe_Model.sbwm_boundary | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF(sb))) | NOT (SIZEOF(QUERY(eloop <* QUERY(wsb <* ws\Wire_Shell.wire_shell_extent | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(wsb))) | NOT (SIZEOF(QUERY(el <* eloop\Path.edge_list | NOT Valid_Wireframe_Edge_Curve(el.edge_element\Edge_Curve.edge_geometry))) = 0))) = 0))) = 0))) = 0; WR6: SIZEOF(QUERY(sbwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(ws <* QUERY(sb <* sbwm\Shell_Based_Wireframe_Model.sbwm_boundary | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF(sb))) | NOT (SIZEOF(QUERY(eloop <* QUERY(wsb <* ws\Wire_Shell.wire_shell_extent | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(wsb))) | NOT (SIZEOF(QUERY(el <* eloop\Path.edge_list | NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(el.edge_element.edge_start)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(el.edge_element.edge_end))))) = 0))) = 0))) = 0))) = 0; WR7: SIZEOF(QUERY(sbwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(ws <* QUERY(sb <* sbwm\Shell_Based_Wireframe_Model.sbwm_boundary | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF(sb))) | NOT (SIZEOF(QUERY(eloop <* QUERY(wsb <* ws\Wire_Shell.wire_shell_extent | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP' IN TYPEOF(wsb))) | NOT (SIZEOF(QUERY(el <* eloop\Path.edge_list | NOT (Valid_Wireframe_Vertex_Point(el.edge_element.edge_start\Vertex_Point.vertex_geometry) AND Valid_Wireframe_Vertex_Point(el.edge_element.edge_end\Vertex_Point.vertex_geometry)))) = 0))) = 0))) = 0))) = 0; WR8: SIZEOF(QUERY(sbwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(ws <* QUERY(sb <* sbwm\Shell_Based_Wireframe_Model.sbwm_boundary | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF(sb))) | NOT (SIZEOF(QUERY(vloop <* QUERY(wsb <* ws\Wire_Shell.wire_shell_extent | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF(wsb))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(vloop\Vertex_Loop.loop_vertex)))) = 0))) = 0))) = 0; WR9: SIZEOF(QUERY(sbwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(ws <* QUERY(sb <* sbwm\Shell_Based_Wireframe_Model.sbwm_boundary | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF(sb))) | NOT (SIZEOF(QUERY(vloop <* QUERY(wsb <* ws\Wire_Shell.wire_shell_extent | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_LOOP' IN TYPEOF(wsb))) | NOT Valid_Wireframe_Vertex_Point(vloop\Vertex_Loop.loop_vertex\Vertex_Point.vertex_geometry))) = 0))) = 0))) = 0; WR10: SIZEOF(QUERY(sbwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(vs <* QUERY(sb <* sbwm\Shell_Based_Wireframe_Model.sbwm_boundary | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_SHELL' IN TYPEOF(sb))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN TYPEOF(vs\Vertex_Shell.vertex_shell_extent.loop_vertex)))) = 0))) = 0; WR11: SIZEOF(QUERY(sbwm <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF(it))) | NOT (SIZEOF(QUERY(vs <* QUERY(sb <* sbwm\Shell_Based_Wireframe_Model.sbwm_boundary | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_SHELL' IN TYPEOF(sb))) | NOT Valid_Wireframe_Vertex_Point(vs\Vertex_Shell.vertex_shell_extent.loop_vertex\Vertex_Point.vertex_geometry))) = 0))) = 0; WR12: SIZEOF(QUERY(mi <* QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it))) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' IN TYPEOF(mi\Mapped_Item.mapping_source.mapped_representation)))) = 0; WR13: SELF.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 3; END_ENTITY;
ENTITY Shelled_Solid SUPERTYPE OF (ONEOF(Double_Offset_Shelled_Solid, Complex_Shelled_Solid)) SUBTYPE OF (Modified_Solid); deleted_face_set : SET [1 : ?] OF Face_Surface; thickness : Length_Measure; WHERE WR1: thickness <> 0; END_ENTITY;
ENTITY Short_Length_Curve SUBTYPE OF (Nearly_Degenerate_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Short_Length_Curve_Segment SUBTYPE OF (Geometry_With_Local_Near_Degeneracy); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE_SEGMENT']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Short_Length_Edge SUBTYPE OF (Topology_Related_To_Nearly_Degenerate_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_CURVE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Si_Absorbed_Dose_Unit SUBTYPE OF (Absorbed_Dose_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Gray; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Capacitance_Unit SUBTYPE OF (Capacitance_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Farad; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Conductance_Unit SUBTYPE OF (Conductance_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Siemens; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Dose_Equivalent_Unit SUBTYPE OF (Dose_Equivalent_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Sievert; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Electric_Charge_Unit SUBTYPE OF (Electric_Charge_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Coulomb; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Electric_Potential_Unit SUBTYPE OF (Electric_Potential_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Volt; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Energy_Unit SUBTYPE OF (Energy_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Joule; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Force_Unit SUBTYPE OF (Force_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Newton; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Frequency_Unit SUBTYPE OF (Frequency_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Hertz; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Illuminance_Unit SUBTYPE OF (Illuminance_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Lux; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Inductance_Unit SUBTYPE OF (Inductance_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Henry; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Magnetic_Flux_Density_Unit SUBTYPE OF (Magnetic_Flux_Density_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Tesla; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Magnetic_Flux_Unit SUBTYPE OF (Magnetic_Flux_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Weber; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Power_Unit SUBTYPE OF (Power_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Watt; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Pressure_Unit SUBTYPE OF (Pressure_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Pascal; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Radioactivity_Unit SUBTYPE OF (Radioactivity_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Becquerel; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Resistance_Unit SUBTYPE OF (Resistance_Unit, Si_Unit); WHERE WR1: SELF\Si_Unit.name = Si_Unit_Name.Ohm; WR2: NOT EXISTS(SELF\Derived_Unit.name); END_ENTITY;
ENTITY Si_Unit SUBTYPE OF (Named_Unit); prefix : OPTIONAL Si_Prefix; name : Si_Unit_Name; DERIVE SELF\named_unit.dimensions : Dimensional_Exponents := Dimensions_For_Si_Unit(name); WHERE WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MASS_UNIT' IN TYPEOF(SELF)) AND (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DERIVED_UNIT_ELEMENT.UNIT')) > 0)) OR (prefix = Si_Prefix.Kilo); END_ENTITY;
ENTITY Simple_Boolean_Expression ABSTRACT SUPERTYPE OF (ONEOF(Boolean_Literal, Boolean_Variable)) SUBTYPE OF (Boolean_Expression, Simple_Generic_Expression); END_ENTITY;
ENTITY Simple_Clause SUBTYPE OF (Compound_Representation_Item); END_ENTITY;
ENTITY Simple_Generic_Expression ABSTRACT SUPERTYPE OF (ONEOF(Generic_Literal, Generic_Variable)) SUBTYPE OF (Generic_Expression); END_ENTITY;
ENTITY Simple_Numeric_Expression ABSTRACT SUPERTYPE OF (ONEOF(Literal_Number, Numeric_Variable)) SUBTYPE OF (Numeric_Expression, Simple_Generic_Expression); END_ENTITY;
ENTITY Simple_String_Expression ABSTRACT SUPERTYPE OF (ONEOF(String_Literal, String_Variable)) SUBTYPE OF (String_Expression, Simple_Generic_Expression); END_ENTITY;
ENTITY Simplified_Counterbore_Hole_Definition SUBTYPE OF (Counterbore_Hole_Definition); WHERE WR1: SIZEOF(SELF\Explicit_Composite_Hole.Placement\Representation.items) = 1; END_ENTITY;
ENTITY Simplified_Counterdrill_Hole_Definition SUBTYPE OF (Counterdrill_Hole_Definition); WHERE WR1: SIZEOF(SELF\Explicit_Composite_Hole.Placement\Representation.items) = 1; END_ENTITY;
ENTITY Simplified_Countersink_Hole_Definition SUBTYPE OF (Countersink_Hole_Definition); WHERE WR1: SIZEOF(SELF\Explicit_Composite_Hole.Placement\Representation.items) = 1; END_ENTITY;
ENTITY Simplified_Spotface_Hole_Definition SUBTYPE OF (Spotface_Hole_Definition, Simplified_Counterbore_Hole_Definition); END_ENTITY;
ENTITY Simultaneous_Constraint_Group SUBTYPE OF (Variational_Representation_Item); constraint_group : SET [2 : ?] OF Constraint_Group_Member; WHERE WR1: SIZEOF(QUERY(q <* Using_Representations(SELF) | SIZEOF(QUERY(r <* q.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMULTANEOUS_CONSTRAINT_GROUP' IN TYPEOF(r)) AND (SIZEOF(QUERY(s <* constraint_group | (s IN r\Simultaneous_Constraint_Group.constraint_group) AND NOT (r :=: SELF))) > 0))) > 0)) = 0; WR2: SIZEOF(QUERY(q <* Using_Representations(constraint_group[1]) | (SIZEOF(QUERY(r <* constraint_group | Item_In_Context(r, q.context_of_items))) = SIZEOF(constraint_group)))) > 0; WR3: SIZEOF(QUERY(q <* constraint_group | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF(q)) AND (SIZEOF(QUERY(r <* q.constrained_elements | SIZEOF(QUERY(s <* constraint_group | r IN s.reference_elements)) > 0)) > 0)))) = 0; END_ENTITY;
ENTITY Sin_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Single_Area_Csg_2d_Shape_Representation SUBTYPE OF (Csg_2d_Shape_Representation); SELF\representation.items : SET [1 : ?] OF Csg_2d_Area_Select; WHERE WR1: SIZEOF(QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(it)))) = 0; WR2: SIZEOF(QUERY(it <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SOLID_2D' IN TYPEOF(it)))) = 1; END_ENTITY;
ENTITY Single_Boundary_Csg_2d_Shape_Representation SUBTYPE OF (Single_Area_Csg_2d_Shape_Representation); WHERE WR1: SIZEOF(QUERY(it <* SELF.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_PRIMITIVE_SOLID_2D' IN TYPEOF(it)) AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY') IN TYPEOF(it\Csg_Primitive_Solid_2d.tree_root_expression))))) = 0; END_ENTITY;
ENTITY Single_Property_Is_Definition SUBTYPE OF (Property_Definition); SELF\property_definition.definition : Product_Definition; UNIQUE UR1: definition; END_ENTITY;
ENTITY Single_Texture_Style_Tessellation_Specification SUBTYPE OF (Texture_Style_Tessellation_Specification); texture_image : Label; texture_coordinates : LIST [1 : ?] OF LIST [2 : 2] OF Non_Negative_Real; texture_format : Texture_File_Type; repeating_pattern : BOOLEAN; END_ENTITY;
ENTITY Skew_Line_Distance_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF Line; SELF\explicit_constraint.reference_elements : SET [0 : 1] OF Line; distance_value : Non_Negative_Length_Measure; WHERE WR1: SIZEOF(SELF\Explicit_Constraint.constrained_elements + SELF\Explicit_Constraint.reference_elements) = 2; END_ENTITY;
ENTITY Slash_Expression SUBTYPE OF (Binary_Numeric_Expression); END_ENTITY;
ENTITY Sliding_Curve_Pair SUBTYPE OF (Planar_Curve_Pair); END_ENTITY;
ENTITY Sliding_Curve_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Sliding_Curve_Pair; actual_point_on_curve_1 : Point_On_Curve; actual_point_on_curve_2 : Point_On_Curve; WHERE WR1: SELF\Pair_Value.applies_to_pair\Planar_Curve_Pair.curve_1 :=: actual_point_on_curve_1.basis_curve; WR2: SELF\Pair_Value.applies_to_pair\Planar_Curve_Pair.curve_2 :=: actual_point_on_curve_2.basis_curve; END_ENTITY;
ENTITY Sliding_Surface_Pair SUBTYPE OF (Surface_Pair); END_ENTITY;
ENTITY Sliding_Surface_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Sliding_Surface_Pair; actual_point_on_surface_1 : Point_On_Surface; actual_point_on_surface_2 : Point_On_Surface; actual_rotation : Plane_Angle_Measure; WHERE WR1: SELF\Pair_Value.applies_to_pair\Surface_Pair.surface_1 :=: actual_point_on_surface_1.basis_surface; WR2: SELF\Pair_Value.applies_to_pair\Surface_Pair.surface_2 :=: actual_point_on_surface_2.basis_surface; END_ENTITY;
ENTITY Slot SUBTYPE OF (Feature_Definition); WHERE WR1: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0; WR2: SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'swept shape occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar)))) | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARTIAL_CIRCULAR_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDED_U_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEE_PROFILE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_PATH_PROFILE'] * TYPEOF(sdr.relating_shape_aspect)) = 1))) = 1)))) = 1)))) = 0; WR3: SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'course of travel occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND ((sar.name = 'course of travel') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1)))) = 1)))) = 0; WR4: SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT ((SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'end condition occurrence') AND (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (((sar.description = 'slot end usage') AND (sar.name IN ['course of travel start', 'course of travel end'])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN TYPEOF(fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect.description IN ['open','radiused','flat','woodruff'])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) = 1)))) = 2) OR (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'end condition occurrence') AND (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (((sar.description = 'slot end usage') AND (sar.name IN ['course of travel start', 'course of travel end'])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN TYPEOF(fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect.description IN ['loop'])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) = 1)))) = 1))))) = 0; WR5: (NOT (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'end condition occurrence') AND (SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | (((sar.description = 'slot end usage') AND (sar.name IN ['course of travel start', 'course of travel end'])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN TYPEOF(fcr.relating_shape_aspect)) AND (fcr.relating_shape_aspect.description IN ['loop'])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))))) = 1)))) = 1)))) = 0) OR (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'course of travel occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND ((sar.name = 'course of travel') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF(sar))))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description IN ['complex','complete circular'])))) = 1)))) = 1)))) = 0)); WR6: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit')))) >= 0; END_ENTITY;
ENTITY Slot_End SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SELF.description IN ['open','radiused','flat','woodruff','loop']; WR3: (NOT (SELF.description IN ['open','radiused','loop'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 0)))) = 0); WR4: (NOT (SELF.description IN ['flat','woodruff'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR5: (NOT (SELF.description IN ['flat'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 2)))) = 0)))) = 0); WR6: (NOT (SELF.description = 'flat')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first radius')))) = 1)))) = 0)))) = 0); WR7: (NOT (SELF.description = 'flat')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second radius')))) = 1)))) = 0)))) = 0); WR8: (NOT (SELF.description = 'woodruff')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it)) AND (it.name = 'radius')))) = 1)))) = 0)))) = 0); WR9: (NOT (SELF.description IN ['woodruff'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0); WR10: SIZEOF(QUERY(fcr <* QUERY(sar <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (((sar.description = 'slot end usage') AND (sar.name IN ['course of travel start','course of travel end'])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)))) | (((fcr.related_shape_aspect.description = 'end condition occurrence') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT' IN TYPEOF(fcr.related_shape_aspect.of_shape.definition))) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLOT_END' IN TYPEOF(fcr.relating_shape_aspect))))) >= 1; END_ENTITY;
ENTITY Small_Area_Face SUBTYPE OF (Topology_Related_To_Nearly_Degenerate_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); END_ENTITY;
ENTITY Small_Area_Surface SUBTYPE OF (Nearly_Degenerate_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); END_ENTITY;
ENTITY Small_Area_Surface_Patch SUBTYPE OF (Geometry_With_Local_Near_Degeneracy); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_PATCH']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE']); END_ENTITY;
ENTITY Small_Volume_Solid SUBTYPE OF (Inapt_Manifold_Solid_Brep); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE']); END_ENTITY;
ENTITY Smeared_Material_Definition SUBTYPE OF (Zone_Structural_Makeup); END_ENTITY;
ENTITY Software_For_Data_Quality_Check; description : Text; software_name : Text; software_version : Text; data_quality : Data_Quality_Definition_Representation_Relationship; END_ENTITY;
ENTITY Solid_Angle_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_ANGLE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Solid_Angle_Unit SUBTYPE OF (Named_Unit); WHERE WR1: (SELF\Named_Unit.dimensions.length_exponent = 0.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 0.0) AND (SELF\Named_Unit.dimensions.time_exponent = 0.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 0.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY;
ENTITY Solid_Curve_Font SUBTYPE OF (Pre_Defined_Curve_Font); END_ENTITY;
ENTITY Solid_Model SUPERTYPE OF (ONEOF(Csg_Solid, Manifold_Solid_Brep, Swept_Face_Solid, Swept_Area_Solid, Swept_Disk_Solid, Solid_Replica)) SUBTYPE OF (Geometric_Representation_Item); END_ENTITY;
ENTITY Solid_Replica SUBTYPE OF (Solid_Model); parent_solid : Solid_Model; transformation : Cartesian_Transformation_Operator_3d; WHERE WR1: Acyclic_Solid_Replica(SELF, parent_solid); WR2: parent_solid\Geometric_Representation_Item.dim = 3; END_ENTITY;
ENTITY Solid_With_Angle_Based_Chamfer SUBTYPE OF (Solid_With_Chamfered_Edges); offset_distance : Positive_Length_Measure; left_offset : BOOLEAN; offset_angle : Positive_Plane_Angle_Measure; END_ENTITY;
ENTITY Solid_With_Chamfered_Edges ABSTRACT SUPERTYPE OF (ONEOF(Solid_With_Single_Offset_Chamfer, Solid_With_Double_Offset_Chamfer, Solid_With_Angle_Based_Chamfer)) SUBTYPE OF (Edge_Blended_Solid); END_ENTITY;
ENTITY Solid_With_Circular_Pattern SUPERTYPE OF (Solid_With_Incomplete_Circular_Pattern) SUBTYPE OF (Solid_With_Shape_Element_Pattern); replicate_count : Positive_Integer; angular_spacing : Plane_Angle_Measure; radial_alignment : BOOLEAN; reference_point : Point; END_ENTITY;
ENTITY Solid_With_Circular_Pocket SUBTYPE OF (Solid_With_Pocket); pocket_radius : Positive_Length_Measure; WHERE WR1: SELF\Solid_With_Pocket.floor_blend_radius <= pocket_radius; END_ENTITY;
ENTITY Solid_With_Circular_Protrusion SUBTYPE OF (Solid_With_Protrusion); protrusion_radius : Positive_Length_Measure; END_ENTITY;
ENTITY Solid_With_Conical_Bottom_Round_Hole SUBTYPE OF (Solid_With_Stepped_Round_Hole); semi_apex_angle : Positive_Plane_Angle_Measure; tip_radius : Non_Negative_Length_Measure; WHERE WR1: tip_radius < SELF\Solid_With_Stepped_Round_Hole.segment_radii[segments]; END_ENTITY;
ENTITY Solid_With_Constant_Radius_Edge_Blend SUBTYPE OF (Edge_Blended_Solid); radius : Positive_Length_Measure; END_ENTITY;
ENTITY Solid_With_Curved_Slot SUBTYPE OF (Solid_With_Slot); slot_centreline : Bounded_Curve; END_ENTITY;
ENTITY Solid_With_Depression ABSTRACT SUPERTYPE OF (Solid_With_Through_Depression ANDOR ONEOF(Solid_With_Hole, Solid_With_Pocket, Solid_With_Slot, Solid_With_Groove)) SUBTYPE OF (Modified_Solid_With_Placed_Configuration); depth : Positive_Length_Measure; END_ENTITY;
ENTITY Solid_With_Double_Offset_Chamfer SUBTYPE OF (Solid_With_Chamfered_Edges); left_offset_distance : Positive_Length_Measure; right_offset_distance : Positive_Length_Measure; END_ENTITY;
ENTITY Solid_With_Excessive_Number_Of_Voids SUBTYPE OF (Inapt_Manifold_Solid_Brep); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Solid_With_Flat_Bottom_Round_Hole SUBTYPE OF (Solid_With_Stepped_Round_Hole); fillet_radius : Non_Negative_Length_Measure; WHERE WR1: fillet_radius < SELF\Solid_With_Stepped_Round_Hole.segment_radii[segments]; END_ENTITY;
ENTITY Solid_With_General_Pocket SUBTYPE OF (Solid_With_Pocket); profile : Positioned_Sketch; reference_point : Point; WHERE WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1; WR2: profile IN Using_Items(reference_point, []); END_ENTITY;
ENTITY Solid_With_General_Protrusion SUBTYPE OF (Solid_With_Protrusion); profile : Positioned_Sketch; reference_point : Point; WHERE WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE'] * TYPEOF(profile.sketch_basis)) = 1; WR2: profile IN Using_Items(reference_point, []); END_ENTITY;
ENTITY Solid_With_Groove SUBTYPE OF (Solid_With_Depression); groove_radius : Positive_Length_Measure; groove_width : Positive_Length_Measure; draft_angle : Plane_Angle_Measure; floor_fillet_radius : Non_Negative_Length_Measure; external_groove : BOOLEAN; WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Solid_With_Hole ABSTRACT SUPERTYPE OF (Solid_With_Stepped_Round_Hole) SUBTYPE OF (Solid_With_Depression); END_ENTITY;
ENTITY Solid_With_Incomplete_Circular_Pattern SUBTYPE OF (Solid_With_Circular_Pattern); omitted_instances : SET [1 : ?] OF Positive_Integer; WHERE WR1: SIZEOF(omitted_instances) < SELF\Solid_With_Circular_Pattern.replicate_count; WR2: SIZEOF(QUERY(q <* omitted_instances | q > SELF\Solid_With_Circular_Pattern.replicate_count)) = 0; END_ENTITY;
ENTITY Solid_With_Incomplete_Rectangular_Pattern SUBTYPE OF (Solid_With_Rectangular_Pattern); omitted_instances : SET [1 : ?] OF LIST [2 : 2] OF Positive_Integer; WHERE WR1: NOT ([1,1] IN omitted_instances); WR2: SIZEOF(omitted_instances) < ((SELF\Solid_With_Rectangular_Pattern.row_count * SELF\Solid_With_Rectangular_Pattern.column_count) - 1); WR3: SIZEOF(QUERY(q <* omitted_instances | ((q[1] > SELF\Solid_With_Rectangular_Pattern.row_count) OR (q[2] > SELF\Solid_With_Rectangular_Pattern.column_count)))) = 0; END_ENTITY;
ENTITY Solid_With_Pocket ABSTRACT SUPERTYPE OF (ONEOF(Solid_With_Rectangular_Pocket, Solid_With_Circular_Pocket, Solid_With_General_Pocket)) SUBTYPE OF (Solid_With_Depression); floor_blend_radius : Non_Negative_Length_Measure; draft_angle : Plane_Angle_Measure; END_ENTITY;
ENTITY Solid_With_Protrusion ABSTRACT SUPERTYPE OF (ONEOF(Solid_With_Circular_Protrusion, Solid_With_Rectangular_Protrusion, Solid_With_General_Protrusion)) SUBTYPE OF (Modified_Solid_With_Placed_Configuration); protrusion_height : Positive_Length_Measure; protrusion_draft_angle : Plane_Angle_Measure; END_ENTITY;
ENTITY Solid_With_Rectangular_Pattern SUPERTYPE OF (Solid_With_Incomplete_Rectangular_Pattern) SUBTYPE OF (Solid_With_Shape_Element_Pattern); row_count : Positive_Integer; column_count : Positive_Integer; row_spacing : Length_Measure; column_spacing : Length_Measure; WHERE WR1: (row_count * column_count) > 1; END_ENTITY;
ENTITY Solid_With_Rectangular_Pocket SUBTYPE OF (Solid_With_Pocket); pocket_length : Positive_Length_Measure; pocket_width : Positive_Length_Measure; corner_radius : Non_Negative_Length_Measure; WHERE WR1: (corner_radius < pocket_width / 2) AND (corner_radius < pocket_length / 2); END_ENTITY;
ENTITY Solid_With_Rectangular_Protrusion SUBTYPE OF (Solid_With_Protrusion); protrusion_length : Positive_Length_Measure; protrusion_width : Positive_Length_Measure; protrusion_corner_radius : Non_Negative_Length_Measure; WHERE WR1: (protrusion_corner_radius <= protrusion_width / 2) AND (protrusion_corner_radius <= protrusion_length / 2); END_ENTITY;
ENTITY Solid_With_Shape_Element_Pattern ABSTRACT SUPERTYPE OF (ONEOF(Solid_With_Circular_Pattern, Solid_With_Rectangular_Pattern)) SUBTYPE OF (Modified_Solid_With_Placed_Configuration); replicated_element : Modified_Solid_With_Placed_Configuration; END_ENTITY;
ENTITY Solid_With_Single_Offset_Chamfer SUBTYPE OF (Solid_With_Chamfered_Edges); offset_distance : Positive_Length_Measure; END_ENTITY;
ENTITY Solid_With_Slot ABSTRACT SUPERTYPE OF ((ONEOF(Solid_With_Trapezoidal_Section_Slot, Solid_With_Tee_Section_Slot)) AND (ONEOF(Solid_With_Straight_Slot, Solid_With_Curved_Slot))) SUBTYPE OF (Solid_With_Depression); slot_width : Positive_Length_Measure; closed_ends : LIST [2 : 2] OF LOGICAL; end_exit_faces : LIST [2 : 2] OF SET [0 : ?] OF Face_Surface; WHERE WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)) AND (closed_ends = [FALSE,FALSE])); WR2: NOT (((closed_ends[1] = TRUE) AND (SIZEOF(end_exit_faces[1]) <> 0)) OR ((closed_ends[2] = TRUE) AND (SIZEOF(end_exit_faces[2]) <> 0))); END_ENTITY;
ENTITY Solid_With_Spherical_Bottom_Round_Hole SUBTYPE OF (Solid_With_Stepped_Round_Hole); sphere_radius : Positive_Length_Measure; WHERE WR1: sphere_radius >= SELF\Solid_With_Stepped_Round_Hole.segment_radii[segments]; END_ENTITY;
ENTITY Solid_With_Stepped_Round_Hole SUPERTYPE OF (Solid_With_Stepped_Round_Hole_And_Conical_Transitions ANDOR ONEOF(Solid_With_Flat_Bottom_Round_Hole, Solid_With_Conical_Bottom_Round_Hole, Solid_With_Spherical_Bottom_Round_Hole)) SUBTYPE OF (Solid_With_Hole); segments : Positive_Integer; segment_radii : LIST [1 : segments] OF Positive_Length_Measure; segment_depths : LIST [1 : segments] OF Positive_Length_Measure; DERIVE SELF\solid_with_depression.depth : Positive_Length_Measure := Compute_Total_Depth(SELF); WHERE WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)) AND (SIZEOF(TYPEOF(SELF) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE']) <> 0)); END_ENTITY;
ENTITY Solid_With_Stepped_Round_Hole_And_Conical_Transitions SUBTYPE OF (Solid_With_Stepped_Round_Hole); conical_transitions : SET [1 : ?] OF Conical_Stepped_Hole_Transition; WHERE WR1: SIZEOF(conical_transitions) <= (SELF\Solid_With_Stepped_Round_Hole.segments + 1); WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF(SELF)) XOR (SIZEOF(conical_transitions) <= SELF\Solid_With_Stepped_Round_Hole.segments); WR3: Validate_Countersink_Radii(SELF); END_ENTITY;
ENTITY Solid_With_Straight_Slot SUBTYPE OF (Solid_With_Slot); slot_length : Positive_Length_Measure; END_ENTITY;
ENTITY Solid_With_Tee_Section_Slot SUBTYPE OF (Solid_With_Slot); tee_section_width : Positive_Length_Measure; collar_depth : Positive_Length_Measure; WHERE WR1: collar_depth < SELF\Solid_With_Depression.depth; WR2: tee_section_width > SELF\Solid_With_Slot.slot_width; END_ENTITY;
ENTITY Solid_With_Through_Depression SUBTYPE OF (Solid_With_Depression); exit_faces : SET [1 : ?] OF Face_Surface; WHERE WR1: SIZEOF(TYPEOF(SELF) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_HOLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_POCKET', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_SLOT']) = 1; END_ENTITY;
ENTITY Solid_With_Trapezoidal_Section_Slot SUBTYPE OF (Solid_With_Slot); draft_angle : Plane_Angle_Measure; floor_fillet_radius : Non_Negative_Length_Measure; END_ENTITY;
ENTITY Solid_With_Variable_Radius_Edge_Blend SUBTYPE OF (Track_Blended_Solid); point_list : LIST [2 : ?] OF Point; radius_list : LIST [2 : ?] OF Positive_Length_Measure; edge_function_list : LIST [1 : ?] OF Blend_Radius_Variation_Type; WHERE WR1: SIZEOF(point_list) = SIZEOF(radius_list); WR2: SIZEOF(edge_function_list) = SIZEOF(radius_list) - 1; WR3: NOT ((point_list[1] = point_list[HIINDEX(point_list)]) AND NOT (radius_list[1] = radius_list[HIINDEX(radius_list)])); END_ENTITY;
ENTITY Solid_With_Wrong_Number_Of_Voids SUBTYPE OF (Erroneous_Manifold_Solid_Brep); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Source_For_Requirement SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Requirement_Source; items : SET [1 : 1] OF Requirement_Source_Item; END_ENTITY;
ENTITY Sourced_Requirement SUBTYPE OF (Group_Assignment); SELF\group_assignment.assigned_group : Requirement_Source; items : SET [1 : 1] OF Product_Definition; END_ENTITY;
ENTITY Specification_Definition SUBTYPE OF (Product_Definition); END_ENTITY;
ENTITY Specified_Higher_Usage_Occurrence SUBTYPE OF (Assembly_Component_Usage); upper_usage : Assembly_Component_Usage; next_usage : Next_Assembly_Usage_Occurrence; UNIQUE UR1: upper_usage, next_usage; WHERE WR1: SELF :<>: upper_usage; WR2: SELF\Product_Definition_Relationship.relating_product_definition :=: upper_usage.relating_product_definition; WR3: SELF\Product_Definition_Relationship.related_product_definition :=: next_usage.related_product_definition; WR4: (upper_usage.related_product_definition :=: next_usage.relating_product_definition) OR (SIZEOF(QUERY(pdr <* USEDIN(upper_usage.related_product_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr.relating_product_definition :=: next_usage.relating_product_definition)) = 1); WR5: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE'] * TYPEOF(upper_usage)) = 1; END_ENTITY;
ENTITY Sphere SUBTYPE OF (Geometric_Representation_Item); radius : Positive_Length_Measure; centre : Point; END_ENTITY;
ENTITY Spherical_Cap SUBTYPE OF (Feature_Definition); WHERE WR1: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 3)))) = 0)))) = 0); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius')))) = 1)))) = 0)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'internal angle')))) = 1)))) = 0)))) = 0); END_ENTITY;
ENTITY Spherical_Pair SUBTYPE OF (Low_Order_Kinematic_Pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY;
ENTITY Spherical_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Spherical_Pair_Select; input_orientation : Spatial_Rotation; DERIVE actual_orientation : Ypr_Rotation := Convert_Spatial_To_Ypr_Rotation(SELF\Pair_Value.applies_to_pair, input_orientation); END_ENTITY;
ENTITY Spherical_Pair_With_Pin SUBTYPE OF (Low_Order_Kinematic_Pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY;
ENTITY Spherical_Pair_With_Pin_And_Range SUBTYPE OF (Spherical_Pair_With_Pin); lower_limit_yaw : OPTIONAL Plane_Angle_Measure; upper_limit_yaw : OPTIONAL Plane_Angle_Measure; lower_limit_roll : OPTIONAL Plane_Angle_Measure; upper_limit_roll : OPTIONAL Plane_Angle_Measure; WHERE WR1: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); WR2: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); END_ENTITY;
ENTITY Spherical_Pair_With_Range SUBTYPE OF (Spherical_Pair); lower_limit_yaw : OPTIONAL Plane_Angle_Measure; upper_limit_yaw : OPTIONAL Plane_Angle_Measure; lower_limit_pitch : OPTIONAL Plane_Angle_Measure; upper_limit_pitch : OPTIONAL Plane_Angle_Measure; lower_limit_roll : OPTIONAL Plane_Angle_Measure; upper_limit_roll : OPTIONAL Plane_Angle_Measure; WHERE WR1: (NOT EXISTS(lower_limit_yaw) OR NOT EXISTS(upper_limit_yaw)) XOR (lower_limit_yaw < upper_limit_yaw); WR2: (NOT EXISTS(lower_limit_pitch) OR NOT EXISTS(upper_limit_pitch)) XOR (lower_limit_pitch < upper_limit_pitch); WR3: (NOT EXISTS(lower_limit_roll) OR NOT EXISTS(upper_limit_roll)) XOR (lower_limit_roll < upper_limit_roll); END_ENTITY;
ENTITY Spherical_Point SUBTYPE OF (Cartesian_Point); r : Length_Measure; theta : Plane_Angle_Measure; phi : Plane_Angle_Measure; DERIVE SELF\cartesian_point.coordinates : LIST [3 : 3] OF Length_Measure := [r * SIN(theta) * COS(phi), r * SIN(theta) * SIN(phi), r * COS(theta)]; WHERE WR1: r >= 0.0; END_ENTITY;
ENTITY Spherical_Surface SUBTYPE OF (Elementary_Surface); radius : Positive_Length_Measure; END_ENTITY;
ENTITY Spherical_Volume SUBTYPE OF (Volume); position : Axis2_Placement_3d; radius : Positive_Length_Measure; END_ENTITY;
ENTITY Spotface_Definition SUBTYPE OF (Explicit_Round_Hole); spotface_radius : Positive_Length_Measure_With_Unit; spotface_radius_tolerance : OPTIONAL Tolerance_Value; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(spotface_radius_tolerance\Tolerance_Value.lower_bound); WR2: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(spotface_radius_tolerance\Tolerance_Value.upper_bound); END_ENTITY;
ENTITY Spotface_Hole_Definition SUBTYPE OF (Counterbore_Hole_Definition); SELF\counterbore_hole_definition.counterbore : LIST [1 : ?] OF UNIQUE Spotface_Definition; DERIVE spotface : LIST [1 : ?] OF UNIQUE Spotface_Definition := SELF\Counterbore_Hole_Definition.counterbore; END_ENTITY;
ENTITY Spotface_Occurrence SUBTYPE OF (Counterbore_Hole_Occurrence); SELF\counterbore_hole_occurrence.definition : Spotface_Hole_Definition; END_ENTITY;
ENTITY Spotface_Occurrence_In_Assembly SUBTYPE OF (Counterbore_Hole_Occurrence_In_Assembly); SELF\counterbore_hole_occurrence.definition : Spotface_Hole_Definition; END_ENTITY;
ENTITY Sql_Mappable_Defined_Function ABSTRACT SUPERTYPE SUBTYPE OF (Defined_Function); END_ENTITY;
ENTITY Square_Root_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Square_U_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1))) = 0; WR3: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | (NOT (SIZEOF(impl_rep.used_representation.items) >= 4) AND (SIZEOF(impl_rep.used_representation.items) <= 7)))) = 0))) = 0; WR4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | (srwp_i.name = 'orientation') OR (srwp_i.name = 'width') OR (srwp_i.name = 'first angle') OR (srwp_i.name = 'second angle') OR (srwp_i.name = 'first radius') OR (srwp_i.name = 'second radius') OR (srwp_i.name = 'profile limit') OR (srwp_i.name = 'depth'))) = SIZEOF(pdr.used_representation.items)))) = 1)) = 1; WR5: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first radius'))) <= 1))) = 0))) = 0; WR8: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second radius'))) <= 1))) = 0))) = 0; WR9: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first angle'))) = 1))) = 0))) = 0; WR10: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second angle'))) = 1))) = 0))) = 0; WR11: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; WR12: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'depth'))) <= 1))) = 0))) = 0; END_ENTITY;
ENTITY Standard_Table_Function SUBTYPE OF (Linearized_Table_Function); order : Ordering_Type; WHERE WR1: Extremal_Position_Check(SELF); END_ENTITY;
ENTITY Standard_Uncertainty SUPERTYPE OF (Expanded_Uncertainty) SUBTYPE OF (Uncertainty_Qualifier); uncertainty_value : REAL; END_ENTITY;
ENTITY Start_Request SUBTYPE OF (Action_Request_Assignment); items : SET [1 : ?] OF Start_Request_Item; END_ENTITY;
ENTITY Start_Work SUBTYPE OF (Action_Assignment); items : SET [1 : ?] OF Work_Item; END_ENTITY;
ENTITY State_Definition_To_State_Assignment_Relationship SUBTYPE OF (Ascribable_State_Relationship); relation_type : STRING; WHERE WR1: Acyclic_State_Definition_To_State_Assignment_Relationship(SELF, [SELF\Ascribable_State_Relationship.related_ascribable_state], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STATE_DEFINITION_TO_STATE_ASSIGNMENT_RELATIONSHIP'); END_ENTITY;
ENTITY State_Observed; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY State_Observed_Assignment ABSTRACT SUPERTYPE; assigned_state_observed : State_Observed; role : State_Observed_Role; END_ENTITY;
ENTITY State_Observed_Relationship; name : Label; description : OPTIONAL Text; relating_state_observed : SET [1 : ?] OF State_Observed; related_state_observed : SET [1 : ?] OF State_Observed; END_ENTITY;
ENTITY State_Observed_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY State_Predicted SUBTYPE OF (State_Observed); END_ENTITY;
ENTITY State_Type; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY State_Type_Assignment ABSTRACT SUPERTYPE; assigned_state_type : State_Type; role : State_Type_Role; END_ENTITY;
ENTITY State_Type_Relationship; name : Label; description : OPTIONAL Text; relating_state_type : SET [1 : ?] OF State_Type; related_state_type : SET [1 : ?] OF State_Type; END_ENTITY;
ENTITY State_Type_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Statechar_Applied_Object SUBTYPE OF (Characterized_Object, State_Observed_Assignment); END_ENTITY;
ENTITY Statechar_Object SUBTYPE OF (Characterized_Object, State_Observed); END_ENTITY;
ENTITY Statechar_Relationship_Object SUBTYPE OF (Characterized_Object, State_Observed_Relationship); END_ENTITY;
ENTITY Statechar_Type_Applied_Object SUBTYPE OF (Characterized_Object, State_Type_Assignment); END_ENTITY;
ENTITY Statechar_Type_Object SUBTYPE OF (Characterized_Object, State_Type); END_ENTITY;
ENTITY Statechar_Type_Relationship_Object SUBTYPE OF (Characterized_Object, State_Type_Relationship); END_ENTITY;
ENTITY Steep_Angle_Between_Adjacent_Edges SUBTYPE OF (Steep_Geometry_Transition_Across_Edge); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_LOOP']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']); END_ENTITY;
ENTITY Steep_Angle_Between_Adjacent_Faces SUBTYPE OF (Steep_Geometry_Transition_Across_Edge); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_EDGE_CURVE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']); END_ENTITY;
ENTITY Steep_Geometry_Transition_Across_Edge ABSTRACT SUPERTYPE OF (ONEOF(Steep_Angle_Between_Adjacent_Edges, Steep_Angle_Between_Adjacent_Faces)) SUBTYPE OF (Inapt_Topology_And_Geometry_Relationship); END_ENTITY;
ENTITY Step SUBTYPE OF (Feature_Definition); WHERE WR1: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0); WR2: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'course of travel occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'path feature component usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF(sdr.relating_shape_aspect)) AND (sdr.relating_shape_aspect.description = 'linear')))) = 1)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'removal boundary occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'profile usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VEE_PROFILE' IN TYPEOF(sdr.relating_shape_aspect)))) = 1)))) = 1)))) = 0); WR4: SIZEOF(QUERY(pdr <* Get_Property_Definition_Representations(SELF) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'maximum feature limit'))) >= 0; WR5: SIZEOF(QUERY(pds <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pds)) AND (SIZEOF(QUERY(csa <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF(csa)) AND (csa.name = 'uncut volume') AND (SIZEOF(QUERY(sar <* csa.component_relationships | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF(sar)) AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOSS', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROTRUSION'] * TYPEOF(sar.related_shape_aspect)) = 1)))) = 1)))) <= 1)))) = 1; END_ENTITY;
ENTITY Straightness_Tolerance SUBTYPE OF (Geometric_Tolerance); WHERE WR1: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Strict_Triangular_Matrix SUBTYPE OF (Triangular_Matrix); main_diagonal_value : Maths_Value; END_ENTITY;
ENTITY String_Defined_Function ABSTRACT SUPERTYPE SUBTYPE OF (Defined_Function, String_Expression); END_ENTITY;
ENTITY String_Expression ABSTRACT SUPERTYPE OF (ONEOF(Simple_String_Expression, Index_Expression, Substring_Expression, Concat_Expression, Format_Function, String_Defined_Function)) SUBTYPE OF (Expression); END_ENTITY;
ENTITY String_Literal SUBTYPE OF (Simple_String_Expression, Generic_Literal); the_value : STRING; END_ENTITY;
ENTITY String_Variable SUBTYPE OF (Simple_String_Expression, Variable); END_ENTITY;
ENTITY Structured_Dimension_Callout SUBTYPE OF (Draughting_Callout); WHERE WR1: SIZEOF(TYPEOF(SELF) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_FEATURE_CALLOUT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_TARGET_CALLOUT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LEADER_DIRECTED_CALLOUT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROJECTION_DIRECTED_CALLOUT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT']) = 0; WR2: SIZEOF(QUERY(ato <* QUERY(con <* SELF.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) | NOT (ato.name IN ['dimension value','tolerance value','unit text','prefix text','suffix text']))) = 0; WR3: SIZEOF(QUERY(ato <* QUERY(con <* SELF.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) | (ato.name = 'dimension value'))) >= 1; WR4: SIZEOF(QUERY(dcr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'prefix'))) <= 1; WR5: SIZEOF(QUERY(dcr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'suffix'))) <= 1; WR6: NOT ((SIZEOF(QUERY(ato <* QUERY(con <* SELF.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) | (ato.name = 'prefix text'))) > 0)) OR (SIZEOF(QUERY(dcr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'prefix'))) = 1); WR7: NOT (SIZEOF(QUERY(ato <* QUERY(con <* SELF.contents | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF(con))) | (ato.name = 'suffix text'))) > 0) OR (SIZEOF(QUERY(dcr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DRAUGHTING_CALLOUT_RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' IN TYPEOF(dcr)) AND (dcr.name = 'suffix'))) = 1); END_ENTITY;
ENTITY Structured_Message SUBTYPE OF (Product); END_ENTITY;
ENTITY Structured_Text_Composition SUBTYPE OF (Compound_Representation_Item); END_ENTITY;
ENTITY Structured_Text_Representation SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF String_Representation_Item_Select; END_ENTITY;
ENTITY Styled_Item SUBTYPE OF (Representation_Item); styles : SET [0 : ?] OF Presentation_Style_Assignment; item : Styled_Item_Target; WHERE WR1: (SIZEOF(styles) = 0) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_TESSELLATED_ITEM_WITH_COLOURS' IN TYPEOF(SELF)) OR (SIZEOF(styles) = 1) OR (SIZEOF(styles) > 1) AND (SIZEOF(QUERY(pres_style <* styles | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESENTATION_STYLE_BY_CONTEXT' IN TYPEOF(pres_style)))) = 0); WR2: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STYLED_ITEM' IN TYPEOF(item)); WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(item)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM' IN TYPEOF(SELF)); END_ENTITY;
ENTITY Styled_Tessellated_Item_With_Colours SUBTYPE OF (Styled_Item); SELF\styled_item.item : Tessellated_Surface_Item; colour_type : Colour_Type_Enum; colour_values : LIST [1 : ?] OF LIST [3 : 4] OF Unsigned_8_Bit_Integer; DERIVE coloured_coordinate_values : Coordinates_List := Get_Coordinate_Values(item); WHERE WR1: SIZEOF(SELF\Styled_Item.styles) = 0; WR2: ((colour_type = Rgb8) AND (SIZEOF(QUERY(clist <* colour_values | NOT (SIZEOF(clist) = 3))) = 0)) OR ((colour_type = Rgbt8) AND (SIZEOF(QUERY(clist <* colour_values | NOT (SIZEOF(clist) = 4))) = 0)); WR3: SIZEOF(colour_values) = coloured_coordinate_values\Coordinates_List.npoints; END_ENTITY;
ENTITY Su_Parameters SUBTYPE OF (Geometric_Representation_Item); a : Length_Measure; alpha : Plane_Angle_Measure; b : Length_Measure; beta : Plane_Angle_Measure; c : Length_Measure; gamma : Plane_Angle_Measure; WHERE WR1: SELF\Geometric_Representation_Item.dim = 3; END_ENTITY;
ENTITY Subedge SUBTYPE OF (Edge); parent_edge : Edge; END_ENTITY;
ENTITY Subface SUBTYPE OF (Face); parent_face : Face; WHERE WR1: NOT (Mixed_Loop_Type_Set(List_To_Set(List_Face_Loops(SELF)) + List_To_Set(List_Face_Loops(parent_face)))); END_ENTITY;
ENTITY Subsketch SUBTYPE OF (Geometric_Representation_Item); subsketch_elements : SET [1 : ?] OF Sketch_Element_Select; owning_sketch : Sketch_Type_Select; WHERE WR1: (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF(owning_sketch)) AND (SIZEOF(QUERY(q <* subsketch_elements | NOT (owning_sketch IN Using_Representations(q)))) = 0)) XOR ((SIZEOF(TYPEOF(owning_sketch) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIONED_SKETCH', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBSKETCH']) = 1) AND (SIZEOF(QUERY(q <* subsketch_elements | NOT (owning_sketch IN Using_Items(q, [])))) = 0)); END_ENTITY;
ENTITY Substring_Expression SUBTYPE OF (String_Expression, Multiple_Arity_Generic_Expression); DERIVE operand : Generic_Expression := SELF\Multiple_Arity_Generic_Expression.operands[1]; index1 : Generic_Expression := SELF\Multiple_Arity_Generic_Expression.operands[2]; index2 : Generic_Expression := SELF\Multiple_Arity_Generic_Expression.operands[3]; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_EXPRESSION' IN TYPEOF(operand)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(index1)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF(index2)); WR2: SIZEOF(SELF\Multiple_Arity_Generic_Expression.operands) = 3; WR3: Is_Int_Expr(index1); WR4: Is_Int_Expr(index2); END_ENTITY;
ENTITY Summary_Report_Request SUBTYPE OF (Data_Quality_Report_Request); summary_report_request_type : Summary_Report_Type; END_ENTITY;
ENTITY Summary_Report_Request_With_Number_Of_Instances SUBTYPE OF (Data_Equivalence_Report_Request); report_request_type : SET [1 : 3] OF Summary_Report_Style_Type; END_ENTITY;
ENTITY Supplied_Part_Relationship SUBTYPE OF (Product_Definition_Relationship); END_ENTITY;
ENTITY Surface SUPERTYPE OF (ONEOF(Elementary_Surface, Swept_Surface, Bounded_Surface, Offset_Surface, Surface_Replica)) SUBTYPE OF (Geometric_Representation_Item); END_ENTITY;
ENTITY Surface_Condition_Callout SUBTYPE OF (Draughting_Callout); WHERE WR1: SIZEOF(QUERY(c <* SELF.contents | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_CURVE_OCCURRENCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_OCCURRENCE'] * TYPEOF(c)) <> 1)) = 0; END_ENTITY;
ENTITY Surface_Curve SUPERTYPE OF (ONEOF(Intersection_Curve, Seam_Curve) ANDOR Bounded_Surface_Curve) SUBTYPE OF (Curve); curve_3d : Curve; associated_geometry : LIST [1 : 2] OF Pcurve_Or_Surface; master_representation : Preferred_Surface_Curve_Representation; DERIVE basis_surface : SET [1 : 2] OF Surface := Get_Basis_Surface(SELF); WHERE WR1: Curve_3d.dim = 3; WR2: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[1])) OR (master_representation <> Pcurve_S1); WR3: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(associated_geometry[2])) OR (master_representation <> Pcurve_S2); WR4: NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(Curve_3d)); END_ENTITY;
ENTITY Surface_Curve_Swept_Area_Solid SUBTYPE OF (Swept_Area_Solid); directrix : Curve; start_param : REAL; end_param : REAL; reference_surface : Surface; WHERE WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(directrix))) OR (reference_surface IN (directrix\Surface_Curve.basis_surface)); END_ENTITY;
ENTITY Surface_Curve_Swept_Surface SUBTYPE OF (Swept_Surface); directrix : Curve; reference_surface : Surface; WHERE WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(directrix))) OR (reference_surface IN (directrix\Surface_Curve.basis_surface)); END_ENTITY;
ENTITY Surface_Distance_Assembly_Constraint_With_Dimension SUBTYPE OF (Binary_Assembly_Constraint, Sdgc_With_Dimension); END_ENTITY;
ENTITY Surface_Distance_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : 2] OF Surface; SELF\explicit_constraint.reference_elements : SET [0 : 4] OF Point_Curve_Or_Surface_Constraint_Element; near_points : SET [0 : 4] OF Near_Point_Relationship; WHERE WR1: (SIZEOF(SELF\Explicit_Constraint.reference_elements) > 0) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SDGC_WITH_DIMENSION' IN TYPEOF(SELF)) AND (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 2)); WR2: SIZEOF(near_points) <= SIZEOF(SELF\Explicit_Constraint.reference_elements); WR3: SIZEOF(QUERY(q <* near_points | NOT (q\Representation_Item_Relationship.relating_representation_item IN SELF\Explicit_Constraint.reference_elements))) = 0; END_ENTITY;
ENTITY Surface_Of_Linear_Extrusion SUBTYPE OF (Swept_Surface); extrusion_axis : Vector; END_ENTITY;
ENTITY Surface_Of_Revolution SUBTYPE OF (Swept_Surface); axis_position : Axis1_Placement; DERIVE axis_line : Line := Representation_Item('') || Geometric_Representation_Item() || Curve() || Line(axis_position.Location, Representation_Item('') || Geometric_Representation_Item() || Vector(axis_position.z, 1.0)); END_ENTITY;
ENTITY Surface_Pair ABSTRACT SUPERTYPE OF (ONEOF(Sliding_Surface_Pair, Rolling_Surface_Pair) ANDOR Surface_Pair_With_Range) SUBTYPE OF (High_Order_Kinematic_Pair); surface_1 : Surface; surface_2 : Surface; orientation : BOOLEAN; WHERE WR1: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT (surface_1 IN r.items))) = 0; WR2: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_2 | NOT (surface_2 IN r.items))) = 0; WR3: SIZEOF(QUERY(lr <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF(lr)))) = 0; END_ENTITY;
ENTITY Surface_Pair_With_Range SUBTYPE OF (Surface_Pair); range_on_surface_1 : Rectangular_Trimmed_Surface; range_on_surface_2 : Rectangular_Trimmed_Surface; lower_limit_actual_rotation : OPTIONAL Plane_Angle_Measure; upper_limit_actual_rotation : OPTIONAL Plane_Angle_Measure; WHERE WR1: SELF\Surface_Pair.surface_1 :=: range_on_surface_1.basis_surface; WR2: SELF\Surface_Pair.surface_2 :=: range_on_surface_2.basis_surface; WR3: (NOT EXISTS(lower_limit_actual_rotation) OR NOT EXISTS(upper_limit_actual_rotation)) XOR (lower_limit_actual_rotation < upper_limit_actual_rotation); WR4: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_1 | NOT (range_on_surface_1 IN r.items))) = 0; WR5: SIZEOF(QUERY(r <* SELF\Kinematic_Pair.associated_link_representations_2 | NOT (range_on_surface_2 IN r.items))) = 0; END_ENTITY;
ENTITY Surface_Patch SUBTYPE OF (Founded_Item); parent_surface : Bounded_Surface; u_transition : Transition_Code; v_transition : Transition_Code; u_sense : BOOLEAN; v_sense : BOOLEAN; INVERSE using_surfaces : BAG [1:?] OF Rectangular_Composite_Surface FOR segments; WHERE WR1: (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(parent_surface))); END_ENTITY;
ENTITY Surface_Patch_Set SUBTYPE OF (Geometric_Representation_Item); patches : SET [1 : ?] OF Surface_Patch; END_ENTITY;
ENTITY Surface_Profile_Tolerance SUBTYPE OF (Geometric_Tolerance); END_ENTITY;
ENTITY Surface_Rendering_Properties; rendered_colour : Colour; END_ENTITY;
ENTITY Surface_Replica SUBTYPE OF (Surface); parent_surface : Surface; transformation : Cartesian_Transformation_Operator_3d; WHERE WR1: Acyclic_Surface_Replica(SELF, parent_surface); END_ENTITY;
ENTITY Surface_Side_Style SUBTYPE OF (Founded_Item); name : Label; styles : SET [1 : 7] OF Surface_Style_Element_Select; WHERE WR1: SIZEOF(QUERY(style1 <* styles | SIZEOF(QUERY(style2 <* styles - style1 | TYPEOF(style1) = TYPEOF(style2))) > 0)) = 0; END_ENTITY;
ENTITY Surface_Smoothness_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : 1] OF Surface_Patch_Set; u_smoothness : Transition_Code; v_smoothness : Transition_Code; WHERE WR1: SIZEOF(SELF\Explicit_Constraint.reference_elements) = 0; END_ENTITY;
ENTITY Surface_Style_Boundary SUBTYPE OF (Founded_Item); style_of_boundary : Curve_Or_Render; END_ENTITY;
ENTITY Surface_Style_Control_Grid SUBTYPE OF (Founded_Item); style_of_control_grid : Curve_Or_Render; END_ENTITY;
ENTITY Surface_Style_Fill_Area SUBTYPE OF (Founded_Item); fill_area : Fill_Area_Style; END_ENTITY;
ENTITY Surface_Style_Parameter_Line SUBTYPE OF (Founded_Item); style_of_parameter_lines : Curve_Or_Render; direction_counts : SET [1 : 2] OF Direction_Count_Select; WHERE WR1: (HIINDEX(direction_counts) = 1) XOR (TYPEOF(direction_counts[1]) <> TYPEOF(direction_counts[2])); END_ENTITY;
ENTITY Surface_Style_Reflectance_Ambient; ambient_reflectance : REAL; END_ENTITY;
ENTITY Surface_Style_Reflectance_Ambient_Diffuse SUBTYPE OF (Surface_Style_Reflectance_Ambient); diffuse_reflectance : REAL; END_ENTITY;
ENTITY Surface_Style_Reflectance_Ambient_Diffuse_Specular SUBTYPE OF (Surface_Style_Reflectance_Ambient_Diffuse); specular_reflectance : REAL; specular_exponent : REAL; specular_colour : Colour; END_ENTITY;
ENTITY Surface_Style_Rendering; rendering_method : Shading_Surface_Method; surface_colour : Colour; END_ENTITY;
ENTITY Surface_Style_Rendering_With_Properties SUBTYPE OF (Surface_Style_Rendering); properties : SET [1 : 2] OF Rendering_Properties_Select; WHERE WR1: (HIINDEX(properties) = 1) XOR (TYPEOF(properties[1]) <> TYPEOF(properties[2])); END_ENTITY;
ENTITY Surface_Style_Segmentation_Curve SUBTYPE OF (Founded_Item); style_of_segmentation_curve : Curve_Or_Render; END_ENTITY;
ENTITY Surface_Style_Silhouette SUBTYPE OF (Founded_Item); style_of_silhouette : Curve_Or_Render; END_ENTITY;
ENTITY Surface_Style_Transparent; transparency : REAL; WHERE WR1: {0.0 <= transparency <= 1.0}; END_ENTITY;
ENTITY Surface_Style_Usage SUBTYPE OF (Founded_Item); side : Surface_Side; style : Surface_Side_Style_Select; END_ENTITY;
ENTITY Surface_Texture_Representation SUBTYPE OF (Representation); WHERE WR1: SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF(i)) <> 1)) = 0; WR2: (SIZEOF(QUERY(i <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i))) = 1) AND (SIZEOF(QUERY(i <* SELF.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'measuring method'))) = 1); WR3: SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * TYPEOF(i)) = 1)) > 0; WR4: (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1')) <= 1) AND (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2')) = 0) AND (SIZEOF(QUERY(rr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1') | rr.rep_2.name = 'measuring direction')) = SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_1'))); WR5: (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF(QUERY(gpa <* USEDIN(pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition)) AND (gpa\General_Property_Association.base_definition\General_Property.name = 'surface_condition'))) = 1)) = 1); END_ENTITY;
ENTITY Surface_With_Excessive_Patches_In_One_Direction SUBTYPE OF (Overcomplex_Geometry); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, []); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Surface_With_Small_Curvature_Radius SUBTYPE OF (Geometry_With_Local_Near_Degeneracy); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Surfaced_Open_Shell SUBTYPE OF (Open_Shell); WHERE WR1: SIZEOF(QUERY(q <* SELF\Connected_Face_Set.cfs_faces | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(q)))) = 0; END_ENTITY;
ENTITY Swept_Area_Solid SUPERTYPE OF (ONEOF(Revolved_Area_Solid, Extruded_Area_Solid, Surface_Curve_Swept_Area_Solid)) SUBTYPE OF (Solid_Model); swept_area : Curve_Bounded_Surface; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(swept_area.basis_surface); END_ENTITY;
ENTITY Swept_Curve_Surface_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Surface; SELF\explicit_constraint.reference_elements : SET [1 : 1] OF Swept_Surface_Or_Solid; END_ENTITY;
ENTITY Swept_Disk_Solid SUBTYPE OF (Solid_Model); directrix : Curve; radius : Positive_Length_Measure; inner_radius : OPTIONAL Positive_Length_Measure; start_param : REAL; end_param : REAL; WHERE WR1: directrix.dim = 3; WR2: (NOT EXISTS(inner_radius)) OR (radius > inner_radius); END_ENTITY;
ENTITY Swept_Face_Solid SUPERTYPE OF (ONEOF(Extruded_Face_Solid, Revolved_Face_Solid)) SUBTYPE OF (Solid_Model); swept_face : Face_Surface; WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(swept_face.face_geometry); END_ENTITY;
ENTITY Swept_Point_Curve_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Curve; SELF\explicit_constraint.reference_elements : SET [1 : 1] OF Swept_Face_Solid; END_ENTITY;
ENTITY Swept_Surface SUPERTYPE OF (ONEOF(Surface_Of_Linear_Extrusion, Surface_Of_Revolution, Surface_Curve_Swept_Surface, Fixed_Reference_Swept_Surface)) SUBTYPE OF (Surface); swept_curve : Curve; END_ENTITY;
ENTITY Symbol SUBTYPE OF (Representation_Item); END_ENTITY;
ENTITY Symbol_Colour; colour_of_symbol : Colour; END_ENTITY;
ENTITY Symbol_Representation SUBTYPE OF (Representation); END_ENTITY;
ENTITY Symbol_Representation_Map SUBTYPE OF (Representation_Map); SELF\representation_map.mapped_representation : Symbol_Representation; SELF\representation_map.mapping_origin : Axis2_Placement; WHERE WR1: SIZEOF(QUERY(mi <* SELF\Representation_Map.map_usage | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF(mi)))) = 0; END_ENTITY;
ENTITY Symbol_Style SUBTYPE OF (Founded_Item); name : Label; style_of_symbol : Symbol_Style_Select; END_ENTITY;
ENTITY Symbol_Target SUBTYPE OF (Geometric_Representation_Item); placement : Axis2_Placement; x_scale : Positive_Ratio_Measure; y_scale : Positive_Ratio_Measure; END_ENTITY;
ENTITY Symmetric_Banded_Matrix SUBTYPE OF (Symmetric_Matrix); default_entry : Maths_Value; above : Nonnegative_Integer; WHERE WR1: Member_Of(default_entry, Factor1(SELF\Linearized_Table_Function.Source.range)); END_ENTITY;
ENTITY Symmetric_Matrix SUBTYPE OF (Linearized_Table_Function); symmetry : Symmetry_Type; triangle : Lower_Upper; order : Ordering_Type; WHERE WR1: SIZEOF(SELF\Explicit_Table_Function.shape) = 2; WR2: SELF\Explicit_Table_Function.shape[1] = SELF\Explicit_Table_Function.shape[2]; WR3: NOT (symmetry = Symmetry_Type.Skew) OR ((Space_Dimension(SELF\Linearized_Table_Function.Source.range) = 1) AND Subspace_Of_Es(Factor1(SELF\Linearized_Table_Function.Source.range), Es_Numbers)); WR4: NOT ((symmetry = Symmetry_Type.Hermitian) OR (symmetry = Symmetry_Type.Skew_Hermitian)) OR ((Space_Dimension(SELF\Linearized_Table_Function.Source.range) = 1) AND Subspace_Of_Es(Factor1(SELF\Linearized_Table_Function.Source.range), Es_Complex_Numbers)); END_ENTITY;
ENTITY Symmetric_Shape_Aspect SUBTYPE OF (Shape_Aspect); INVERSE basis_relationships : SET [1:?] OF Shape_Aspect_Deriving_Relationship FOR related_shape_aspect; END_ENTITY;
ENTITY Symmetry_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [2 : 2] OF Geometric_Representation_Item; mirror_element : Linear_Geometry_Constraint_Element; WHERE WR1: SIZEOF(SELF\Explicit_Constraint.reference_elements) = 0; WR2: SIZEOF(TYPEOF(mirror_element) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR']) = 0; WR3: NOT ((SELF\Geometric_Representation_Item.dim = 2) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(mirror_element))); END_ENTITY;
ENTITY Symmetry_Tolerance SUBTYPE OF (Geometric_Tolerance_With_Datum_Reference); END_ENTITY;
ENTITY System_Breakdown_Context SUBTYPE OF (Breakdown_Context); END_ENTITY;
ENTITY System_Element_Usage SUBTYPE OF (Breakdown_Element_Usage); END_ENTITY;
ENTITY Table_Representation_Item SUBTYPE OF (Compound_Representation_Item); WHERE WR1: SIZEOF(QUERY(itet <* SELF\Compound_Representation_Item.item_element | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROW_REPRESENTATION_ITEM' IN TYPEOF(itet)))) = 0; END_ENTITY;
ENTITY Tactile_Appearance_Representation SUBTYPE OF (Representation); WHERE WR1: SIZEOF(QUERY(i <* SELF.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * TYPEOF(i)) <> 1)) = 0; WR2: SIZEOF(QUERY(i <* SELF.items | name = 'depth')) <= 1; WR3: (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF(QUERY(gpa <* USEDIN(pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition)) AND (gpa\General_Property_Association.base_definition\General_Property.name = 'surface_condition'))) = 1)) = 1); END_ENTITY;
ENTITY Tagged_Text_Format SUBTYPE OF (Representation_Context); END_ENTITY;
ENTITY Tagged_Text_Item SUBTYPE OF (Descriptive_Representation_Item); END_ENTITY;
ENTITY Tan_Function SUBTYPE OF (Unary_Function_Call); END_ENTITY;
ENTITY Tangent SUBTYPE OF (Derived_Shape_Aspect); WHERE WR1: SIZEOF(SELF\Derived_Shape_Aspect.deriving_relationships) = 1; END_ENTITY;
ENTITY Tangent_Assembly_Constraint SUBTYPE OF (Binary_Assembly_Constraint, Tangent_Geometric_Constraint); END_ENTITY;
ENTITY Tangent_Geometric_Constraint SUBTYPE OF (Explicit_Geometric_Constraint); SELF\explicit_constraint.constrained_elements : SET [1 : ?] OF Curve_Or_Surface_Constraint_Element; SELF\explicit_constraint.reference_elements : SET [0 : ?] OF Curve_Or_Surface_Constraint_Element; near_points : SET [0 : ?] OF Near_Point_Relationship; tangent_contact : Tangent_Contact_Type; WHERE WR1: (SIZEOF(SELF\Explicit_Constraint.reference_elements) > 0) OR (SIZEOF(SELF\Explicit_Constraint.constrained_elements) = 2); WR2: NOT ((SELF\Geometric_Representation_Item.dim = 2) AND (tangent_contact = Surface_Contact)); WR3: SIZEOF(QUERY(q <* near_points | NOT (q\Representation_Item_Relationship.relating_representation_item IN SELF\Explicit_Constraint.reference_elements))) = 0; END_ENTITY;
ENTITY Taper SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition)); WR2: (SELF.description IN ['angle taper','diameter taper','directed taper']); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 1)))) = 0)))) = 0); WR5: ((NOT (SELF.description = 'angle taper')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'taper angle')))) = 1)))) = 0)))) = 0)); WR6: ((NOT (SELF.description = 'diameter taper')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'final diameter')))) = 1)))) = 0)))) = 0)); WR7: ((NOT (SELF.description = 'directed taper')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'angle')))) = 1)))) = 0)))) = 0)); WR8: ((NOT (SELF.description = 'directed taper')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'direction'))) = 1)))) = 0)); END_ENTITY;
ENTITY Tee_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1))) = 0; WR3: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | (NOT (SIZEOF(impl_rep.used_representation.items) >= 9) AND (SIZEOF(impl_rep.used_representation.items) <= 10)))) = 0))) = 0; WR4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | (srwp_i.name = 'orientation') OR (srwp_i.name = 'width') OR (srwp_i.name = 'depth') OR (srwp_i.name = 'cross bar width') OR (srwp_i.name = 'cross bar depth') OR (srwp_i.name = 'first offset') OR (srwp_i.name = 'second offset') OR (srwp_i.name = 'first angle') OR (srwp_i.name = 'second angle') OR (srwp_i.name = 'radius'))) = SIZEOF(pdr.used_representation.items)))) = 1)) = 1; WR5: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'width'))) = 1))) = 0))) = 0; WR7: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'depth'))) = 1))) = 0))) = 0; WR8: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'cross bar width'))) = 1))) = 0))) = 0; WR9: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'cross bar depth'))) = 1))) = 0))) = 0; WR10: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first offset'))) = 1))) = 0))) = 0; WR11: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second offset'))) = 1))) = 0))) = 0; WR12: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'first angle'))) = 1))) = 0))) = 0; WR13: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'second angle'))) = 1))) = 0))) = 0; WR14: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'radius'))) <= 1))) = 0))) = 0; WR15: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; END_ENTITY;
ENTITY Terminal_Feature SUBTYPE OF (Contact_Feature); END_ENTITY;
ENTITY Terminal_Location_Group SUBTYPE OF (Terminal_Feature); END_ENTITY;
ENTITY Terminator_Symbol SUBTYPE OF (Annotation_Symbol_Occurrence); annotated_curve : Annotation_Curve_Occurrence; END_ENTITY;
ENTITY Tessellated_Annotation_Occurrence SUBTYPE OF (Annotation_Occurrence); SELF\styled_item.item : Tessellated_Geometric_Set; END_ENTITY;
ENTITY Tessellated_Connecting_Edge SUBTYPE OF (Tessellated_Edge); smooth : LOGICAL; face1 : Tessellated_Face; face2 : Tessellated_Face; line_strip_face1 : LIST [2 : ?] OF INTEGER; line_strip_face2 : LIST [2 : ?] OF INTEGER; WHERE WR1: SIZEOF(line_strip_face1) = SIZEOF(line_strip_face2); WR2: SIZEOF(line_strip_face1) = SIZEOF(SELF\Tessellated_Edge.line_strip); WR3: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CUBIC_BEZIER_TRIANGULATED_FACE') IN TYPEOF(face1)); WR4: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CUBIC_BEZIER_TRIANGULATED_FACE') IN TYPEOF(face2)); END_ENTITY;
ENTITY Tessellated_Curve_Set SUBTYPE OF (Tessellated_Item); coordinates : Coordinates_List; line_strips : LIST [1 : ?] OF LIST [2 : ?] OF INTEGER; END_ENTITY;
ENTITY Tessellated_Edge SUPERTYPE OF (ONEOF(Tessellated_Connecting_Edge, Cubic_Bezier_Tessellated_Edge)) SUBTYPE OF (Tessellated_Structured_Item); coordinates : Coordinates_List; geometric_link : OPTIONAL Edge_Or_Curve; line_strip : LIST [2 : ?] OF INTEGER; END_ENTITY;
ENTITY Tessellated_Face ABSTRACT SUPERTYPE OF (ONEOF(Triangulated_Face, Complex_Triangulated_Face, Cubic_Bezier_Triangulated_Face)) SUBTYPE OF (Tessellated_Structured_Item); coordinates : Coordinates_List; pnmax : INTEGER; normals : LIST [0 : ?] OF LIST [3 : 3] OF REAL; geometric_link : OPTIONAL Face_Or_Surface; WHERE WR1: ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1) OR (SIZEOF(normals) = pnmax)); END_ENTITY;
ENTITY Tessellated_Geometric_Set SUBTYPE OF (Tessellated_Item); children : SET [1 : ?] OF Tessellated_Item; END_ENTITY;
ENTITY Tessellated_Item ABSTRACT SUPERTYPE OF (ONEOF(Coordinates_List, Tessellated_Solid, Tessellated_Shell, Tessellated_Wire, Tessellated_Geometric_Set, Tessellated_Curve_Set, Tessellated_Point_Set, Tessellated_Surface_Set, Tessellated_Structured_Item)) SUBTYPE OF (Geometric_Representation_Item); WHERE WR1: SIZEOF(QUERY(using_rep <* Using_Representations(SELF) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' IN TYPEOF(using_rep)))) = 0; END_ENTITY;
ENTITY Tessellated_Point_Set SUBTYPE OF (Tessellated_Item); coordinates : Coordinates_List; point_list : LIST [1 : ?] OF INTEGER; END_ENTITY;
ENTITY Tessellated_Shape_Representation SUBTYPE OF (Shape_Representation); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(SELF\Representation.context_of_items); WR2: NOT (SIZEOF(QUERY(it <* SELF.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_ITEM' IN TYPEOF(it))) = 0); END_ENTITY;
ENTITY Tessellated_Shape_Representation_With_Accuracy_Parameters SUBTYPE OF (Tessellated_Shape_Representation); tessellation_accuracy_parameters : SET [1 : ?] OF Tessellation_Accuracy_Parameter_Item; END_ENTITY;
ENTITY Tessellated_Shell SUBTYPE OF (Tessellated_Item); items : SET [1 : ?] OF Tessellated_Structured_Item; topological_link : OPTIONAL Connected_Face_Set; END_ENTITY;
ENTITY Tessellated_Solid SUBTYPE OF (Tessellated_Item); items : SET [1 : ?] OF Tessellated_Structured_Item; geometric_link : OPTIONAL Manifold_Solid_Brep; END_ENTITY;
ENTITY Tessellated_Structured_Item SUPERTYPE OF (ONEOF(Tessellated_Face, Tessellated_Edge, Tessellated_Vertex)) SUBTYPE OF (Tessellated_Item); END_ENTITY;
ENTITY Tessellated_Surface_Set ABSTRACT SUPERTYPE OF (ONEOF(Triangulated_Surface_Set, Complex_Triangulated_Surface_Set)) SUBTYPE OF (Tessellated_Item); coordinates : Coordinates_List; pnmax : INTEGER; normals : LIST [0 : ?] OF LIST [3 : 3] OF REAL; WHERE WR1: ((SIZEOF(normals) = 0) OR (SIZEOF(normals) = 1) OR (SIZEOF(normals) = pnmax)); END_ENTITY;
ENTITY Tessellated_Vertex SUBTYPE OF (Tessellated_Structured_Item); coordinates : Coordinates_List; topological_link : OPTIONAL Vertex_Point; point_index : INTEGER; END_ENTITY;
ENTITY Tessellated_Wire SUBTYPE OF (Tessellated_Item); items : SET [1 : ?] OF Tessellated_Edge_Or_Vertex; geometric_model_link : OPTIONAL Path_Or_Composite_Curve; END_ENTITY;
ENTITY Tetrahedron SUBTYPE OF (Faceted_Primitive); WHERE WR1: SIZEOF(points) = 4; WR2: Above_Plane(points[1], points[2], points[3], points[4]) <> 0.0; END_ENTITY;
ENTITY Tetrahedron_Volume SUBTYPE OF (Volume); point_1 : Cartesian_Point; point_2 : Cartesian_Point; point_3 : Cartesian_Point; point_4 : Cartesian_Point; WHERE WR1: point_1.dim = 3; WR2: Above_Plane(point_1, point_2, point_3, point_4) <> 0.0; END_ENTITY;
ENTITY Text_Font; id : Identifier; name : Label; description : Text; INVERSE glyphs : SET [1:?] OF Character_Glyph_Font_Usage FOR font; END_ENTITY;
ENTITY Text_Font_Family; id : Identifier; name : Label; description : Text; INVERSE fonts : SET [1:?] OF Text_Font_In_Family FOR family; END_ENTITY;
ENTITY Text_Font_In_Family; font : Text_Font; family : Text_Font_Family; END_ENTITY;
ENTITY Text_Literal SUBTYPE OF (Geometric_Representation_Item); literal : Presentable_Text; placement : Axis2_Placement; alignment : Text_Alignment; path : Text_Path; font : Font_Select; END_ENTITY;
ENTITY Text_Literal_With_Associated_Curves SUBTYPE OF (Text_Literal); associated_curves : SET [1 : ?] OF Curve; END_ENTITY;
ENTITY Text_Literal_With_Blanking_Box SUBTYPE OF (Text_Literal); blanking : Planar_Box; END_ENTITY;
ENTITY Text_Literal_With_Delineation SUBTYPE OF (Text_Literal); delineation : Text_Delineation; END_ENTITY;
ENTITY Text_Literal_With_Extent SUBTYPE OF (Text_Literal); extent : Planar_Extent; END_ENTITY;
ENTITY Text_String_Representation SUBTYPE OF (Representation); SELF\representation.items : SET [1 : ?] OF Text_String_Representation_Item; WHERE WR1: SIZEOF(QUERY(item <* SELF\Representation.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_CHARACTER', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEFINED_CHARACTER_GLYPH', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT'] * TYPEOF(item)) = 0))) >= 1; WR2: SIZEOF(QUERY(a2p <* QUERY(item <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF(item)) | NOT ((SIZEOF(QUERY(at <* QUERY(item <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT' IN TYPEOF(item)) | (at\Mapped_Item.mapping_target :=: a2p))) >= 1) OR (SIZEOF(QUERY(atc <* QUERY(item <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT_CHARACTER' IN TYPEOF(item)) | (atc\Mapped_Item.mapping_target :=: a2p))) >= 1)))) = 0; END_ENTITY;
ENTITY Text_Style SUBTYPE OF (Founded_Item); name : Label; character_appearance : Character_Style_Select; END_ENTITY;
ENTITY Text_Style_For_Defined_Font; text_colour : Colour; END_ENTITY;
ENTITY Text_Style_With_Box_Characteristics SUBTYPE OF (Text_Style); characteristics : SET [1 : 4] OF Box_Characteristic_Select; WHERE WR1: SIZEOF(QUERY(c1 <* characteristics | SIZEOF(QUERY(c2 <* characteristics - c1 | TYPEOF(c1) = TYPEOF(c2))) > 0)) = 0; END_ENTITY;
ENTITY Text_Style_With_Mirror SUBTYPE OF (Text_Style); mirror_placement : Axis2_Placement; END_ENTITY;
ENTITY Text_Style_With_Spacing SUBTYPE OF (Text_Style); character_spacing : Character_Spacing_Select; END_ENTITY;
ENTITY Texture_Style_Specification ABSTRACT SUPERTYPE SUBTYPE OF (Founded_Item); END_ENTITY;
ENTITY Texture_Style_Tessellation_Specification ABSTRACT SUPERTYPE SUBTYPE OF (Texture_Style_Specification); END_ENTITY;
ENTITY Thermal_Component SUBTYPE OF (Assembly_Component); END_ENTITY;
ENTITY Thermal_Resistance_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THERMAL_RESISTANCE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Thermal_Resistance_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensional_Exponents(-1.0, -1.0, -3.0, 0.0, 1.0, 0.0, 0.0); END_ENTITY;
ENTITY Thermodynamic_Temperature_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THERMODYNAMIC_TEMPERATURE_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Thermodynamic_Temperature_Unit SUBTYPE OF (Named_Unit); WHERE WR1: (SELF\Named_Unit.dimensions.length_exponent = 0.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 0.0) AND (SELF\Named_Unit.dimensions.time_exponent = 0.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 0.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 1.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY;
ENTITY Thickened_Face_Solid SUBTYPE OF (Solid_Model); base_element : Generalized_Surface_Select; offset1 : Length_Measure; offset2 : Length_Measure; WHERE WR1: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(base_element)) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_SURFACE' IN TYPEOF(base_element)))); WR2: offset1 <> offset2; END_ENTITY;
ENTITY Thickness_Laminate_Table SUBTYPE OF (Zone_Structural_Makeup); END_ENTITY;
ENTITY Thread SUBTYPE OF (Feature_Definition); WHERE WR1: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)) AND (8 <= SIZEOF(pdr.used_representation.items)) AND (SIZEOF(pdr.used_representation.items) <= 11)))) = 1))) = 1); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'major diameter')))) = 1)))) = 0)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'minor diameter')))) <= 1)))) = 0)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'pitch diameter')))) <= 1)))) = 0)))) = 0); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'number of threads')))) = 1)))) = 0)))) = 0); WR6: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class')))) = 1)))) = 0)))) = 0); WR7: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'form')))) = 1)))) = 0)))) = 0); WR8: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'hand') AND (it.description IN ['left','right'])))) = 1)))) = 0)))) = 0); WR9: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'qualifier')))) <= 1)))) = 0)))) = 0); WR10: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'thread side') AND ((it.description = 'internal') OR (it.description = 'external'))))) = 1)))) = 0)))) = 0); WR11: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'crest')))) <= 1)))) = 0)))) = 0); WR12: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'partial area occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'applied area usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_AREA' IN TYPEOF(sdr.relating_shape_aspect)))) = 1)))) = 1)))) = 0); WR13: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'applied shape') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1)))) = 1)))) = 0); WR14: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'fit class 2')))) <= 1)))) = 0)))) = 0); WR15: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'nominal size')))) <= 1)))) = 0)))) = 0); WR16: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'thread runout') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'thread runout usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THREAD_RUNOUT' IN TYPEOF(sdr.relating_shape_aspect)))) <= 1)))) = 1)))) = 0); END_ENTITY;
ENTITY Thread_Runout SUBTYPE OF (Shape_Aspect); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(SELF.of_shape)); WR2: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation)))) = 1)))) = 0); WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(impl_rep.used_representation.items) = 3)))) = 0)))) = 0); WR4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | NOT (srwp_i.name IN ['length of runout', 'pitch or dimension', 'included or extra']))) > 0))) = 0))) = 0; WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'length of runout')))) = 1)))) = 0)))) <= 1); WR6: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'pitch or dimension') AND (it.description IN ['pitch','pitch or dimension'])))) = 1)))) = 0)))) = 0); WR7: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'included or extra') AND (it.description IN ['included','extra'])))) = 1)))) = 0)))) = 0); END_ENTITY;
ENTITY Time_Interval; id : Identifier; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Time_Interval_Assignment ABSTRACT SUPERTYPE; assigned_time_interval : Time_Interval; role : Time_Interval_Role; END_ENTITY;
ENTITY Time_Interval_Based_Effectivity SUBTYPE OF (Effectivity); effectivity_period : Time_Interval; END_ENTITY;
ENTITY Time_Interval_Relationship; name : Label; description : OPTIONAL Text; relating_time_interval : Time_Interval; related_time_interval : Time_Interval; END_ENTITY;
ENTITY Time_Interval_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Time_Interval_With_Bounds SUBTYPE OF (Time_Interval); primary_bound : OPTIONAL Date_Time_Or_Event_Occurrence; secondary_bound : OPTIONAL Date_Time_Or_Event_Occurrence; duration : OPTIONAL Time_Measure_With_Unit; WHERE WR1: EXISTS(primary_bound) OR EXISTS(secondary_bound); WR2: NOT (EXISTS(primary_bound) AND EXISTS(secondary_bound) AND EXISTS(duration)); WR3: EXISTS(primary_bound) AND NOT EXISTS(secondary_bound) AND (NOT EXISTS(duration) OR Duration_Is_Positive(duration)); WR4: EXISTS(secondary_bound) AND NOT EXISTS(primary_bound) AND EXISTS(duration) AND Duration_Is_Negative(duration); END_ENTITY;
ENTITY Time_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TIME_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Time_Unit SUBTYPE OF (Named_Unit); WHERE WR1: (SELF\Named_Unit.dimensions.length_exponent = 0.0) AND (SELF\Named_Unit.dimensions.mass_exponent = 0.0) AND (SELF\Named_Unit.dimensions.time_exponent = 1.0) AND (SELF\Named_Unit.dimensions.electric_current_exponent = 0.0) AND (SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0.0) AND (SELF\Named_Unit.dimensions.amount_of_substance_exponent = 0.0) AND (SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0.0); END_ENTITY;
ENTITY Tolerance_Value; lower_bound : Measure_With_Unit; upper_bound : Measure_With_Unit; DERIVE ubvc : REAL := upper_bound\Measure_With_Unit.value_component; lbvc : REAL := lower_bound\Measure_With_Unit.value_component; WHERE WR1: ubvc > lbvc; WR2: upper_bound\Measure_With_Unit.unit_component = lower_bound\Measure_With_Unit.unit_component; END_ENTITY;
ENTITY Tolerance_Zone SUBTYPE OF (Shape_Aspect); defining_tolerance : SET [1 : ?] OF Tolerance_Zone_Target; form : Tolerance_Zone_Form; END_ENTITY;
ENTITY Tolerance_Zone_Definition SUPERTYPE OF (ONEOF(Projected_Zone_Definition, Non_Uniform_Zone_Definition, Runout_Zone_Definition)); zone : Tolerance_Zone; boundaries : SET [0 : ?] OF Shape_Aspect; END_ENTITY;
ENTITY Tolerance_Zone_Form; name : Label; END_ENTITY;
ENTITY Tolerance_Zone_With_Datum SUPERTYPE OF (ONEOF(Directed_Tolerance_Zone, Oriented_Tolerance_Zone)) SUBTYPE OF (Tolerance_Zone); datum_reference : Datum_System; END_ENTITY;
ENTITY Topological_Representation_Item SUPERTYPE OF (ONEOF(Vertex, Edge, Face_Bound, Face, Vertex_Shell, Wire_Shell, Connected_Edge_Set, Connected_Face_Set, Connected_Volume_Set, Volume_With_Faces, (Loop ANDOR Path))) SUBTYPE OF (Representation_Item); DERIVE permanent_id : Identifier := Get_Id_Value(SELF); permanent_aggregate_id : Identifier := Get_Aggregate_Id_Value(SELF); WHERE WR1: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; WR2: SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AGGREGATE_ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1; END_ENTITY;
ENTITY Topology_Related_To_Multiply_Defined_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Multiply_Defined_Faces, Multiply_Defined_Vertices, Multiply_Defined_Edges)) SUBTYPE OF (Inapt_Topology_And_Geometry_Relationship); END_ENTITY;
ENTITY Topology_Related_To_Nearly_Degenerate_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Short_Length_Edge, Small_Area_Face, Entirely_Narrow_Face)) SUBTYPE OF (Inapt_Topology_And_Geometry_Relationship); END_ENTITY;
ENTITY Topology_Related_To_Overlapping_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Partly_Overlapping_Faces, Partly_Overlapping_Edges)) SUBTYPE OF (Inapt_Topology_And_Geometry_Relationship); END_ENTITY;
ENTITY Topology_Related_To_Self_Intersecting_Geometry ABSTRACT SUPERTYPE OF (ONEOF(Self_Intersecting_Loop, Self_Intersecting_Shell, Intersecting_Connected_Face_Sets)) SUBTYPE OF (Inapt_Topology_And_Geometry_Relationship); END_ENTITY;
ENTITY Toroidal_Surface SUBTYPE OF (Elementary_Surface); major_radius : Positive_Length_Measure; minor_radius : Positive_Length_Measure; END_ENTITY;
ENTITY Toroidal_Volume SUBTYPE OF (Volume); position : Axis2_Placement_3d; major_radius : Positive_Length_Measure; minor_radius : Positive_Length_Measure; WHERE WR1: minor_radius < major_radius; END_ENTITY;
ENTITY Torus SUBTYPE OF (Geometric_Representation_Item); position : Axis1_Placement; major_radius : Positive_Length_Measure; minor_radius : Positive_Length_Measure; WHERE WR1: major_radius > minor_radius; END_ENTITY;
ENTITY Total_Runout_Tolerance SUBTYPE OF (Geometric_Tolerance_With_Datum_Reference); END_ENTITY;
ENTITY Track_Blended_Solid ABSTRACT SUPERTYPE SUBTYPE OF (Edge_Blended_Solid); WHERE WR1: Check_Continuous_Edges(SELF\Edge_Blended_Solid.blended_edges); END_ENTITY;
ENTITY Track_Blended_Solid_With_End_Conditions SUBTYPE OF (Track_Blended_Solid); end_conditions : LIST [2 : 2] OF Blend_End_Condition_Select; WHERE WR1: SIZEOF(TYPEOF(SELF) * ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_WITH_CHAMFERED_EDGES']) = 1; WR2: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2]))); WR3: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF(end_conditions[1])) AND (NOT ((end_conditions[1] :=: SELF\Edge_Blended_Solid.blended_edges[1].edge_start) XOR (end_conditions[1] :=: SELF\Edge_Blended_Solid.blended_edges[1].edge_end)))); WR4: NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX' IN TYPEOF(end_conditions[2])) AND (NOT ((end_conditions[2] :=: SELF\Edge_Blended_Solid.blended_edges[HIINDEX(SELF\Edge_Blended_Solid.blended_edges)].edge_start) XOR (end_conditions[2] :=: SELF\Edge_Blended_Solid.blended_edges[HIINDEX(SELF\Edge_Blended_Solid.blended_edges)].edge_end)))); END_ENTITY;
ENTITY Transformation_With_Derived_Angle SUPERTYPE OF (ONEOF(Draped_Defined_Transformation, Laid_Defined_Transformation)) SUBTYPE OF (Item_Defined_Transformation); SELF\item_defined_transformation.transform_item_1 : Angle_Direction_Reference_With_A2p3d_Select; SELF\item_defined_transformation.transform_item_2 : Axis2_Placement_3d; DERIVE orientation_angle : Plane_Angle_Measure := Derive_Angle(SELF\Item_Defined_Transformation.transform_item_1, SELF\Item_Defined_Transformation.transform_item_2); WHERE WR1: (SELF\Item_Defined_Transformation.transform_item_1\Axis2_Placement_3d.p[3].direction_ratios[1] = SELF\Item_Defined_Transformation.transform_item_2\Axis2_Placement_3d.p[3].direction_ratios[1]) AND (SELF\Item_Defined_Transformation.transform_item_1\Axis2_Placement_3d.p[3].direction_ratios[2] = SELF\Item_Defined_Transformation.transform_item_2\Axis2_Placement_3d.p[3].direction_ratios[2]) AND (SELF\Item_Defined_Transformation.transform_item_1\Axis2_Placement_3d.p[3].direction_ratios[3] = SELF\Item_Defined_Transformation.transform_item_2\Axis2_Placement_3d.p[3].direction_ratios[3]); END_ENTITY;
ENTITY Transition_Feature SUPERTYPE OF (ONEOF(Chamfer, Edge_Round, Fillet)) SUBTYPE OF (Shape_Aspect); WHERE WR1: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_FEATURE'] * TYPEOF(SELF.of_shape.definition)) = 1; WR2: SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHAMFER', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_ROUND', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FILLET'] * TYPEOF(SELF)) = 1; END_ENTITY;
ENTITY Transport_Feature SUBTYPE OF (Shape_Aspect); END_ENTITY;
ENTITY Triangular_Matrix SUBTYPE OF (Linearized_Table_Function); default_entry : Maths_Value; lo_up : Lower_Upper; order : Ordering_Type; WHERE WR1: SIZEOF(SELF\Explicit_Table_Function.shape) = 2; WR2: Member_Of(default_entry, SELF\Maths_Function.range); END_ENTITY;
ENTITY Triangulated_Face SUBTYPE OF (Tessellated_Face); pnindex : LIST [0 : ?] OF INTEGER; triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; WHERE WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\Tessellated_Face.pnmax)); WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\Tessellated_Face.pnmax <> coordinates.npoints)); END_ENTITY;
ENTITY Triangulated_Point_Cloud_Dataset SUBTYPE OF (Scanned_Data_Item); points : Point_Cloud_Set_Or_Superset; triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; END_ENTITY;
ENTITY Triangulated_Surface_Set SUBTYPE OF (Tessellated_Surface_Set); pnindex : LIST [0 : ?] OF INTEGER; triangles : LIST [1 : ?] OF LIST [3 : 3] OF INTEGER; WHERE WR1: ((SIZEOF(pnindex) = 0) OR (SIZEOF(pnindex) = SELF\Tessellated_Surface_Set.pnmax)); WR2: NOT ((SIZEOF(pnindex) = 0) AND (SELF\Tessellated_Surface_Set.pnmax <> coordinates.npoints)); END_ENTITY;
ENTITY Trimmed_Curve SUBTYPE OF (Bounded_Curve); basis_curve : Curve; trim_1 : SET [1 : 2] OF Trimming_Select; trim_2 : SET [1 : 2] OF Trimming_Select; sense_agreement : BOOLEAN; master_representation : Trimming_Preference; WHERE WR1: (HIINDEX(trim_1) = 1) OR (TYPEOF(trim_1[1]) <> TYPEOF(trim_1[2])); WR2: (HIINDEX(trim_2) = 1) OR (TYPEOF(trim_2[1]) <> TYPEOF(trim_2[2])); END_ENTITY;
ENTITY Turned_Knurl SUBTYPE OF (Feature_Definition); WHERE WR1: (SELF\Characterized_Object.description IN ['diamond','diagonal','straight']); WR2: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND ({6 <= SIZEOF(pdr.used_representation.items) <= 9}))) = 1)) = 1; WR3: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'number of teeth')))) <= 1)))) = 0)))) = 0); WR4: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'major diameter')))) = 1)))) = 0)))) = 0); WR5: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'nominal diameter')))) = 1)))) = 0)))) = 0); WR6: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tooth depth')))) <= 1)))) = 0)))) = 0); WR7: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'root fillet')))) <= 1)))) = 0)))) = 0); WR8: (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'diametral pitch')))) = 1)))) = 0)))) = 0); WR9: ((NOT (SELF\Characterized_Object.description IN ['diamond','diagonal'])) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'helix angle')))) = 1)))) = 0)))) = 0)); WR10: ((NOT (SELF\Characterized_Object.description = 'diagonal')) OR (SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.used_representation))) | (NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND (it.name = 'helix hand')))) = 1)))) = 0)))) = 0)); WR11: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((sa_occ.description = 'partial area occurrence') AND (SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'applied area usage') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_AREA' IN TYPEOF(sdr.relating_shape_aspect)))) = 1)))) = 1)))) = 0); WR12: (SIZEOF(QUERY(pds <* QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))) | (NOT (SIZEOF(QUERY(sa_occ <* USEDIN(pds, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE') | ((SIZEOF(QUERY(sdr <* QUERY(sar <* USEDIN(sa_occ, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT') | ((sar.description = 'applied shape') AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar)))) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(sdr.relating_shape_aspect)))) = 1)))) = 1)))) = 0); END_ENTITY;
ENTITY Twisted_Cross_Sectional_Group_Shape_Element SUBTYPE OF (Cross_Sectional_Group_Shape_Element); END_ENTITY;
ENTITY Two_Direction_Repeat_Factor SUBTYPE OF (One_Direction_Repeat_Factor); second_repeat_factor : Vector; END_ENTITY;
ENTITY Type_Qualifier; name : Label; END_ENTITY;
ENTITY Unary_Boolean_Expression ABSTRACT SUPERTYPE OF (ONEOF(Not_Expression, Odd_Function)) SUBTYPE OF (Boolean_Expression, Unary_Generic_Expression); END_ENTITY;
ENTITY Unary_Function_Call ABSTRACT SUPERTYPE OF (ONEOF(Abs_Function, Minus_Function, Sin_Function, Cos_Function, Tan_Function, Asin_Function, Acos_Function, Exp_Function, Log_Function, Log2_Function, Log10_Function, Square_Root_Function)) SUBTYPE OF (Unary_Numeric_Expression); END_ENTITY;
ENTITY Unary_Generic_Expression ABSTRACT SUPERTYPE SUBTYPE OF (Generic_Expression); operand : Generic_Expression; END_ENTITY;
ENTITY Unary_Numeric_Expression ABSTRACT SUPERTYPE SUBTYPE OF (Numeric_Expression, Unary_Generic_Expression); SELF\unary_generic_expression.operand : Numeric_Expression; END_ENTITY;
ENTITY Unbound_Parameter_Environment SUBTYPE OF (Environment); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF(SELF\Environment.syntactic_representation)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER_SEMANTICS' IN TYPEOF(SELF\Environment.semantics)); END_ENTITY;
ENTITY Unbound_Variational_Parameter SUBTYPE OF (Variational_Parameter); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_PARAMETER_ENVIRONMENT' IN TYPEOF(SELF\Generic_Variable.interpretation); END_ENTITY;
ENTITY Unbound_Variational_Parameter_Semantics SUBTYPE OF (Variable_Semantics); END_ENTITY;
ENTITY Uncertainty_Assigned_Representation SUBTYPE OF (Representation); uncertainty : SET [1 : ?] OF Uncertainty_Measure_With_Unit; END_ENTITY;
ENTITY Uncertainty_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); name : Label; description : OPTIONAL Text; WHERE WR1: Valid_Measure_Value(SELF\Measure_With_Unit.value_component); END_ENTITY;
ENTITY Uncertainty_Qualifier SUPERTYPE OF (ONEOF(Standard_Uncertainty, Qualitative_Uncertainty)); measure_name : Label; description : Text; END_ENTITY;
ENTITY Unconstrained_Pair SUBTYPE OF (Low_Order_Kinematic_Pair); DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; END_ENTITY;
ENTITY Unconstrained_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Unconstrained_Pair; actual_placement : Axis2_Placement_3d; END_ENTITY;
ENTITY Unequally_Disposed_Geometric_Tolerance SUBTYPE OF (Geometric_Tolerance); displacement : Length_Measure_With_Unit; WHERE WR1: 'NUMBER' IN TYPEOF(displacement\Measure_With_Unit.value_component); END_ENTITY;
ENTITY Uniform_Curve SUBTYPE OF (B_Spline_Curve); END_ENTITY;
ENTITY Uniform_Product_Space SUBTYPE OF (Maths_Space, Generic_Literal); base : Maths_Space; exponent : Positive_Integer; WHERE WR1: Expression_Is_Constant(base); WR2: No_Cyclic_Space_Reference(SELF, []); WR3: base <> The_Empty_Space; END_ENTITY;
ENTITY Uniform_Resource_Identifier SUBTYPE OF (Descriptive_Representation_Item); END_ENTITY;
ENTITY Uniform_Surface SUBTYPE OF (B_Spline_Surface); END_ENTITY;
ENTITY Uniform_Volume SUBTYPE OF (B_Spline_Volume); END_ENTITY;
ENTITY Universal_Pair SUBTYPE OF (Low_Order_Kinematic_Pair); input_skew_angle : OPTIONAL Plane_Angle_Measure; DERIVE SELF\low_order_kinematic_pair.t_x : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.t_z : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_x : BOOLEAN := TRUE; SELF\low_order_kinematic_pair.r_y : BOOLEAN := FALSE; SELF\low_order_kinematic_pair.r_z : BOOLEAN := TRUE; skew_angle : Plane_Angle_Measure := NVL(input_skew_angle, 0.0); WHERE WR1: COS(Plane_Angle_For_Pair_In_Radian(SELF, skew_angle)) > 0.0; END_ENTITY;
ENTITY Universal_Pair_Value SUBTYPE OF (Pair_Value); SELF\pair_value.applies_to_pair : Universal_Pair; first_rotation_angle : Plane_Angle_Measure; second_rotation_angle : Plane_Angle_Measure; END_ENTITY;
ENTITY Universal_Pair_With_Range SUBTYPE OF (Universal_Pair); lower_limit_first_rotation : OPTIONAL Plane_Angle_Measure; upper_limit_first_rotation : OPTIONAL Plane_Angle_Measure; lower_limit_second_rotation : OPTIONAL Plane_Angle_Measure; upper_limit_second_rotation : OPTIONAL Plane_Angle_Measure; WHERE WR1: (NOT EXISTS(lower_limit_first_rotation) OR NOT EXISTS(upper_limit_first_rotation)) XOR (lower_limit_first_rotation < upper_limit_first_rotation); WR2: (NOT EXISTS(lower_limit_second_rotation) OR NOT EXISTS(upper_limit_second_rotation)) XOR (lower_limit_second_rotation < upper_limit_second_rotation); END_ENTITY;
ENTITY Unused_Patches SUBTYPE OF (Overcomplex_Topology_And_Geometry_Relationship); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE_STRIP']); WR5: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Unused_Shape_Element SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM']); END_ENTITY;
ENTITY Usage_Association SUBTYPE OF (Action_Method_Relationship); SELF\action_method_relationship.relating_method : Information_Usage_Right; SELF\action_method_relationship.related_method : Information_Usage_Right; DERIVE related : Information_Usage_Right := SELF\Action_Method_Relationship.related_method; relating : Information_Usage_Right := SELF\Action_Method_Relationship.relating_method; END_ENTITY;
ENTITY User_Defined_11 SUBTYPE OF (Representation_Item); END_ENTITY;
ENTITY User_Defined_Curve_Font SUBTYPE OF (Curve_Style_Font, Mapped_Item); END_ENTITY;
ENTITY User_Defined_Marker SUBTYPE OF (Mapped_Item, Pre_Defined_Marker); END_ENTITY;
ENTITY User_Defined_Terminator_Symbol SUBTYPE OF (Mapped_Item, Pre_Defined_Symbol); END_ENTITY;
ENTITY User_Selected_Elements SUBTYPE OF (Representation_Item); picked_items : SET [1 : ?] OF Representation_Item; END_ENTITY;
ENTITY User_Selected_Shape_Elements SUBTYPE OF (User_Selected_Elements); SELF\user_selected_elements.picked_items : SET [1 : ?] OF Shape_Representation_Item; END_ENTITY;
ENTITY Validation SUBTYPE OF (Group); END_ENTITY;
ENTITY Validation_Software_Identification; id : Identifier; name : Label; description : OPTIONAL Text; software_name : Label; additional_name : Label; validation_criteria_or_results : Validation_Criteria_Or_Results_Select; END_ENTITY;
ENTITY Value_Format_Type_Qualifier; format_type : Value_Format_Type; END_ENTITY;
ENTITY Value_Function SUPERTYPE OF (Int_Value_Function) SUBTYPE OF (Numeric_Expression, Unary_Generic_Expression); SELF\unary_generic_expression.operand : String_Expression; END_ENTITY;
ENTITY Value_Range SUBTYPE OF (Compound_Representation_Item); WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SET_REPRESENTATION_ITEM' IN TYPEOF(item_element)) AND Value_Range_Wr1(item_element); WR2: Value_Range_Wr2(item_element); WR3: Value_Range_Wr3(item_element); END_ENTITY;
ENTITY Value_Representation_Item SUBTYPE OF (Representation_Item); value_component : Measure_Value; WHERE WR1: SIZEOF(QUERY(rep <* Using_Representations(SELF) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(rep.context_of_items)))) = 0; END_ENTITY;
ENTITY Variable ABSTRACT SUPERTYPE OF (ONEOF(Numeric_Variable, Boolean_Variable, String_Variable)) SUBTYPE OF (Generic_Variable); END_ENTITY;
ENTITY Variable_Expression SUBTYPE OF (Variable_Semantics); property_associated : Property_Variable_Rep_Select; END_ENTITY;
ENTITY Variable_Semantics ABSTRACT SUPERTYPE; END_ENTITY;
ENTITY Variational_Current_Representation_Relationship SUBTYPE OF (Representation_Relationship); SELF\representation_relationship.rep_1 : Variational_Representation; current_result : Representation; UNIQUE UR1: current_result; WHERE WR1: QUERY(q <* SELF\Representation_Relationship.rep_1.items | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF(q))) = SELF\Representation_Relationship.rep_2.items; WR2: SELF\Representation_Relationship.rep_1.context_of_items :=: SELF\Representation_Relationship.rep_2.context_of_items; WR3: SIZEOF(QUERY(q <* SELF\Representation_Relationship.rep_2.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF(q))) = 0; WR4: TYPEOF(SELF\Representation_Relationship.rep_1) - TYPEOF(SELF\Representation_Relationship.rep_2) = ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION']; WR5: current_result :=: SELF\Representation_Relationship.rep_2; END_ENTITY;
ENTITY Variational_Parameter ABSTRACT SUPERTYPE OF (ONEOF(Bound_Variational_Parameter, Unbound_Variational_Parameter)) SUBTYPE OF (Variational_Representation_Item, Maths_Variable); parameter_description : OPTIONAL Text; parameter_current_value : Maths_Value; WHERE WR1: Member_Of(parameter_current_value, SELF\Maths_Variable.values_space); WR2: SELF\Maths_Variable.name = SELF\Representation_Item.name; END_ENTITY;
ENTITY Variational_Representation SUBTYPE OF (Representation); INVERSE cm_link : Variational_Current_Representation_Relationship FOR rep_1; WHERE WR1: SIZEOF(QUERY(q <* SELF\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF(q))) > 0; WR2: SIZEOF(QUERY(q <* (SELF\Representation.items - cm_link.rep_2.items) | Invalidate_Vrep_Item(q))) = 0; END_ENTITY;
ENTITY Variational_Representation_Item ABSTRACT SUPERTYPE OF (Auxiliary_Geometric_Representation_Item) SUBTYPE OF (Representation_Item); WHERE WR1: SIZEOF(QUERY(q <* Using_Representations(SELF) | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VARIATIONAL_REPRESENTATION' IN TYPEOF(q)))) = 0; WR2: SIZEOF(QUERY(q <* Using_Representations(SELF) | NOT (SELF IN q.items))) = 0; END_ENTITY;
ENTITY Vector SUBTYPE OF (Geometric_Representation_Item); orientation : Direction; magnitude : Length_Measure; WHERE WR1: magnitude >= 0.0; END_ENTITY;
ENTITY Vector_Style SUBTYPE OF (Curve_Style, Pre_Defined_Terminator_Symbol); END_ENTITY;
ENTITY Vee_Profile SUBTYPE OF (Shape_Aspect); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF(SELF.of_shape.definition); WR2: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation))) = 1))) = 0; WR3: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | (NOT (SIZEOF(impl_rep.used_representation.items) >= 3) AND (SIZEOF(impl_rep.used_representation.items) <= 6)))) = 0))) = 0; WR4: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) AND (SIZEOF(QUERY(srwp_i <* pdr.used_representation.items | (srwp_i.name = 'orientation') OR (srwp_i.name = 'profile angle') OR (srwp_i.name = 'tilt angle') OR (srwp_i.name = 'profile radius') OR (srwp_i.name = 'first length') OR (srwp_i.name = 'second length'))) = SIZEOF(pdr.used_representation.items)))) = 1)) = 1; WR5: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(it)) AND (it.name = 'orientation'))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'profile radius'))) <= 1))) = 0))) = 0; WR7: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'profile angle'))) = 1))) = 0))) = 0; WR8: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT'] * TYPEOF(it)) = 2) AND (it.name = 'tilt angle'))) = 1))) = 0))) = 0; WR9: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'profile limit'))) <= 1))) = 0; WR10: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'first length'))) <= 1))) = 0))) = 0; WR11: SIZEOF(QUERY(pd <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | NOT (SIZEOF(QUERY(impl_rep <* QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(pdr.used_representation)) | NOT (SIZEOF(QUERY(it <* impl_rep.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(it)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT' IN TYPEOF(it\Measure_With_Unit.value_component)) AND (it.name = 'second length'))) <= 1))) = 0))) = 0; END_ENTITY;
ENTITY Velocity_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VELOCITY_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Velocity_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensional_Exponents(1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0); END_ENTITY;
ENTITY Verification SUBTYPE OF (Group); END_ENTITY;
ENTITY Verification_Relationship SUBTYPE OF (Group_Relationship); SELF\group_relationship.relating_group : Verification; SELF\group_relationship.related_group : Verification; END_ENTITY;
ENTITY Versioned_Action_Request; id : Identifier; version : OPTIONAL Label; purpose : Text; description : OPTIONAL Text; END_ENTITY;
ENTITY Versioned_Action_Request_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; relating_versioned_action_request : Versioned_Action_Request; related_versioned_action_request : Versioned_Action_Request; END_ENTITY;
ENTITY Vertex SUBTYPE OF (Topological_Representation_Item); END_ENTITY;
ENTITY Vertex_Loop SUBTYPE OF (Loop); loop_vertex : Vertex; END_ENTITY;
ENTITY Vertex_On_Edge SUBTYPE OF (Vertex); parent_edge : Edge_With_Length; distance_from_start : Positive_Length_Measure; WHERE WR1: distance_from_start < parent_edge.edge_length; END_ENTITY;
ENTITY Vertex_Point SUBTYPE OF (Vertex, Geometric_Representation_Item); vertex_geometry : Point; END_ENTITY;
ENTITY Vertex_Shell SUBTYPE OF (Topological_Representation_Item); vertex_shell_extent : Vertex_Loop; END_ENTITY;
ENTITY View_Volume SUBTYPE OF (Founded_Item); projection_type : Central_Or_Parallel; projection_point : Cartesian_Point; view_plane_distance : Length_Measure; front_plane_distance : Length_Measure; front_plane_clipping : BOOLEAN; back_plane_distance : Length_Measure; back_plane_clipping : BOOLEAN; view_volume_sides_clipping : BOOLEAN; view_window : Planar_Box; INVERSE camera_usages : SET [1:?] OF Camera_Model_D3 FOR perspective_of_volume; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF(SELF\View_Volume.view_window.Placement)) OR (Dot_Product((Representation_Item(' ') || Geometric_Representation_Item() || Direction([0.0,0.0,1.0])), view_window\Planar_Box.Placement\Axis2_Placement_3d.p[3]) = 1.0); WR2: view_plane_distance = view_window.Placement\Placement.Location.coordinates[3]; END_ENTITY;
ENTITY Visual_Appearance_Representation SUBTYPE OF (Representation); WHERE WR1: ({3 <= SIZEOF(SELF.items) <= 9}) AND (SIZEOF(QUERY(i <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name IN ['colour id','colour name','lustre','pattern','transparency','orientation']))) + SIZEOF(QUERY(i <* items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * TYPEOF(i)) = 1) AND (i.name IN ['refraction index','opacity']))) + SIZEOF(QUERY(i <* items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOCUMENT_FILE' IN TYPEOF(i)) AND (i.name IN ['texture map']))) = SIZEOF(SELF.items)); WR2: SIZEOF(QUERY(i <* SELF.items | i.name = 'colour id')) = 1; WR3: SIZEOF(QUERY(i <* SELF.items | i.name = 'lustre')) = 1; WR4: SIZEOF(QUERY(i <* SELF.items | i.name = 'colour name')) <= 1; WR5: SIZEOF(QUERY(i <* SELF.items | i.name = 'pattern')) <= 1; WR6: SIZEOF(QUERY(i <* SELF.items | i.name = 'transparency')) <= 1; WR7: SIZEOF(QUERY(i <* SELF.items | i.name = 'texture map')) <= 1; WR8: SIZEOF(QUERY(i <* SELF.items | i.name = 'refraction index')) <= 1; WR9: SIZEOF(QUERY(i <* SELF.items | i.name = 'opacity')) <= 1; WR10: SIZEOF(QUERY(i <* SELF.items | i.name = 'orientation')) <= 1; WR11: (SIZEOF(USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) = 1) AND (SIZEOF(QUERY(pdr <* USEDIN(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF(QUERY(gpa <* USEDIN(pdr.definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY_ASSOCIATION.DERIVED_DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_PROPERTY' IN TYPEOF(gpa.base_definition)) AND (gpa\General_Property_Association.base_definition\General_Property.name = 'surface_condition'))) = 1)) = 1); END_ENTITY;
ENTITY Volume SUPERTYPE OF (ONEOF(Block_Volume, Wedge_Volume, Spherical_Volume, Cylindrical_Volume, Eccentric_Conical_Volume, Toroidal_Volume, Pyramid_Volume, B_Spline_Volume, Ellipsoid_Volume, Tetrahedron_Volume, Hexahedron_Volume, Locally_Refined_Spline_Volume)) SUBTYPE OF (Geometric_Representation_Item); WHERE WR1: SELF\Geometric_Representation_Item.dim = 3; END_ENTITY;
ENTITY Volume_Measure_With_Unit SUBTYPE OF (Measure_With_Unit); WHERE WR1: 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_UNIT' IN TYPEOF(SELF\Measure_With_Unit.unit_component); END_ENTITY;
ENTITY Volume_Unit SUBTYPE OF (Derived_Unit); WHERE WR1: Derive_Dimensional_Exponents(SELF) = Dimensional_Exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); END_ENTITY;
ENTITY Volume_With_Faces ABSTRACT SUPERTYPE OF (ONEOF(Volume_With_Shell, Volume_With_Parametric_Boundary)) SUBTYPE OF (Geometric_Representation_Item, Topological_Representation_Item); volume_geometry : Volume; END_ENTITY;
ENTITY Volume_With_Parametric_Boundary SUBTYPE OF (Volume_With_Faces); outer_bound : LIST [6 : 6] OF Face; END_ENTITY;
ENTITY Volume_With_Shell SUBTYPE OF (Volume_With_Faces); outer_bound : Closed_Shell; END_ENTITY;
ENTITY Wedge_Volume SUBTYPE OF (Volume); position : Axis2_Placement_3d; x : Positive_Length_Measure; y : Positive_Length_Measure; z : Positive_Length_Measure; ltx : Length_Measure; WHERE WR1: ((0.0 <= ltx) AND (ltx < X)); END_ENTITY;
ENTITY Week_Of_Year_And_Day_Date SUBTYPE OF (Date); week_component : Week_In_Year_Number; day_component : OPTIONAL Day_In_Week_Number; WHERE WR1: NOT (Leap_Year(SELF\Date.year_component)) OR {1 <= (day_component + (7 * (week_component - 1))) <= 366}; WR2: Leap_Year(SELF\Date.year_component) OR {1 <= (day_component + (7 * (week_component - 1))) <= 365}; END_ENTITY;
ENTITY Wire_Shell SUBTYPE OF (Topological_Representation_Item); wire_shell_extent : SET [1 : ?] OF Loop; WHERE WR1: NOT Mixed_Loop_Type_Set(wire_shell_extent); END_ENTITY;
ENTITY Wrong_Element_Name SUBTYPE OF (Externally_Conditioned_Data_Quality_Criterion); WHERE WR1: Validate_Ecdq_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM']); END_ENTITY;
ENTITY Wrongly_Oriented_Void SUBTYPE OF (Erroneous_Manifold_Solid_Brep); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Wrongly_Placed_Loop SUBTYPE OF (Erroneous_Topology_And_Geometry_Relationship); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BOUND']); WR4: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE']); END_ENTITY;
ENTITY Wrongly_Placed_Void SUBTYPE OF (Erroneous_Manifold_Solid_Brep); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Logical_Test; WHERE WR1: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE'); WR2: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BREP_WITH_VOIDS']); WR3: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL']); WR4: Validate_Accuracy_Types(SELF, []); END_ENTITY;
ENTITY Xor_Expression SUBTYPE OF (Binary_Boolean_Expression); SELF\binary_generic_expression.operands : LIST [2 : 2] OF Boolean_Expression; END_ENTITY;
ENTITY Year_Month SUBTYPE OF (Date); month_component : Month_In_Year_Number; END_ENTITY;
ENTITY Zero_Surface_Normal SUBTYPE OF (Geometry_With_Local_Irregularity); SELF\shape_data_quality_criterion.assessment_specification : Shape_Data_Quality_Assessment_By_Numerical_Test; WHERE WR1: ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' IN TYPEOF(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN Value_Limit_Type(SELF\Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold)); WR2: Validate_Measured_Data_Type(SELF, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE'); WR3: Validate_Inspected_Elements_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE']); WR4: Validate_Locations_Of_Extreme_Value_Type(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE']); WR5: Validate_Accuracy_Types(SELF, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE']); END_ENTITY;
ENTITY Zone_Breakdown_Context SUBTYPE OF (Breakdown_Context); END_ENTITY;
ENTITY Zone_Element_Usage SUBTYPE OF (Breakdown_Element_Usage); END_ENTITY;
ENTITY Zone_Structural_Makeup SUPERTYPE OF (ONEOF((Smeared_Material_Definition AND Thickness_Laminate_Table), (Smeared_Material_Definition AND Percentage_Laminate_Table), Thickness_Laminate_Table, Percentage_Laminate_Table, Smeared_Material_Definition)) SUBTYPE OF (Laminate_Table); END_ENTITY;
FUNCTION A3ma_Get_Accuracy_Types(ei : SET [0 : ?] OF A3m_Equivalence_Accuracy_Association) : SET [0 : ?] OF A3ma_Accuracy_Type_Name; LOCAL type_out : A3ma_Measured_Data_Type_Name; retval : SET OF A3ma_Accuracy_Type_Name := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(ei); type_out := A3ma_Get_Value_Limit_Type(ei[i].specific_accuracy.range); retval := retval + [Atna_Others]; END_REPEAT; RETURN(retval); END_FUNCTION;
FUNCTION A3ma_Get_Detected_Difference_Type(ei : LIST [0 : ?] OF Equivalence_Detected_Difference_Select) : A3ma_Detected_Difference_Type_Name; LOCAL type_out : SET OF STRING; sizeei : INTEGER; END_LOCAL; sizeei := SIZEOF(ei); IF (sizeei = 0) THEN RETURN(Ddna_No_Element); END_IF; type_out := TYPEOF(ei[1]); IF (SIZEOF(ei) > 1) THEN RETURN(Ddna_Others); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN type_out) THEN RETURN(Ddna_Assembly_Component_Usage); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BINARY_ASSEMBLY_CONSTRAINT' IN type_out) THEN RETURN(Ddna_Binary_Assembly_Constraint); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN type_out) THEN RETURN(Ddna_Cartesian_Point); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_SHAPE_REPRESENTATION' IN type_out) THEN RETURN(Ddna_Context_Dependent_Shape_Representation); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN type_out) THEN RETURN(Ddna_Count_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULTI_LEVEL_REFERENCE_DESIGNATOR' IN type_out) THEN RETURN(Ddna_Multi_Level_Reference_Designator); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) THEN RETURN(Ddna_Volume_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MS_INSPECTED_EQUIVALENCE_ELEMENT_SELECT' IN type_out) THEN RETURN(Ddna_A3ms_Inspected_Equivalence_Element_Select); END_IF; RETURN(Ddna_Others); END_FUNCTION;
FUNCTION A3ma_Get_Element_Type(ei : SET [1 : ?] OF Inspected_Equivalence_Element_Select) : A3ma_Element_Type_Name; LOCAL type_out : SET OF STRING; END_LOCAL; type_out := TYPEOF(ei[1]); IF (SIZEOF(ei) > 1) THEN RETURN(Etna_Others); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OR_REFERENCE' IN type_out) THEN RETURN(Etna_Product_Definition_Or_Reference); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN type_out) THEN RETURN(Etna_Shape_Representation); END_IF; RETURN(Etna_Others); END_FUNCTION;
FUNCTION A3ma_Get_Measured_Type(ei : Equivalence_Measured_Value_Select) : A3ma_Measured_Data_Type_Name; LOCAL type_out : SET OF STRING; END_LOCAL; type_out := TYPEOF(ei); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' IN type_out) THEN RETURN(Mdna_Boolean_Value); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_MEASURE' IN type_out) THEN RETURN(Mdna_Context_Dependent_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out) THEN RETURN(Mdna_Length_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3MA_LENGTH_MEASURE_AND_CONTEXT_DEPENDENT_MEASURE_PAIR' IN type_out) THEN RETURN(Mdna_Length_Measure_And_Context_Dependent_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out) THEN RETURN(Mdna_Plane_Angle_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) THEN RETURN(Mdna_Volume_Measure); END_IF; RETURN(Mdna_Others); END_FUNCTION;
FUNCTION A3ma_Get_Value_Limit_Type(ei : Shape_Data_Quality_Value_Limit_Type_Select) : A3ma_Measured_Data_Type_Name; LOCAL type_out : SET OF STRING; END_LOCAL; type_out := Value_Limit_Type(ei); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTEXT_DEPENDENT_MEASURE' IN type_out) THEN RETURN(Mdna_Context_Dependent_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out) THEN RETURN(Mdna_Length_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out) THEN RETURN(Mdna_Plane_Angle_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) THEN RETURN(Mdna_Volume_Measure); END_IF; RETURN(Mdna_Others); END_FUNCTION;
FUNCTION A3ma_Validate_Accuracy_Types(ei : Accuracy_Associated_Target_Select; cr : A3m_Equivalence_Criterion_For_Assembly) : LOGICAL; LOCAL aeaa : SET OF A3m_Equivalence_Accuracy_Association; rp : SET OF Representation; tp : SET OF A3ma_Accuracy_Type_Name := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(cr.accuracy_types); tp := tp + [cr.accuracy_types[i]]; END_REPEAT; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(ei)) THEN aeaa := Bag_To_Set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET')); IF (SIZEOF(cr.accuracy_types) = 0) THEN IF (SIZEOF(aeaa) = 0) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END_IF; IF (A3ma_Get_Accuracy_Types(aeaa) = tp) THEN RETURN(TRUE); END_IF; rp := Bag_To_Set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')); ELSE IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION' IN TYPEOF(ei)) THEN rp := [ei]; ELSE rp := []; END_IF; END_IF; aeaa := []; REPEAT i := 1 TO SIZEOF(rp); aeaa := aeaa + Bag_To_Set(USEDIN(rp[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET')); END_REPEAT; IF (A3ma_Get_Accuracy_Types(aeaa) >= tp) THEN RETURN(TRUE); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION A3ma_Validate_Detected_Difference_Types(ei : Data_Equivalence_Inspection_Report; cr : A3m_Equivalence_Criterion_For_Assembly) : LOGICAL; LOCAL deiir : Data_Equivalence_Inspection_Instance_Report; eiriwei : Equivalence_Instance_Report_Item_With_Notable_Instances; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) THEN deiir := ei; REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN TYPEOF(deiir.inspected_instances[i])) THEN eiriwei := deiir.inspected_instances[i]; REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances); IF (NOT (A3ma_Get_Detected_Difference_Type(eiriwei.notable_instances[j].comparing_elements) IN cr.detected_difference_types)) THEN RETURN(FALSE); END_IF; IF (NOT (A3ma_Get_Detected_Difference_Type(eiriwei.notable_instances[j].compared_elements) IN cr.detected_difference_types)) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION A3ma_Validate_Element_Types(ei : Data_Equivalence_Inspection_Report; cr : A3m_Equivalence_Criterion_For_Assembly) : LOGICAL; LOCAL compared_et : A3ma_Element_Type_Name; comparing_et : A3ma_Element_Type_Name; deiir : Data_Equivalence_Inspection_Instance_Report; aeiiri : A3m_Equivalence_Inspection_Instance_Report_Item; deiep : Data_Equivalence_Inspected_Element_Pair; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) THEN deiir := ei; REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(deiir.inspected_instances[i])) THEN aeiiri := deiir.inspected_instances[i]; deiep := aeiiri.Inspected_Element; compared_et := A3ma_Get_Element_Type(deiep.compared_elements); comparing_et := A3ma_Get_Element_Type(deiep.comparing_elements); IF (NOT (compared_et IN cr.compared_element_types) OR NOT (comparing_et IN cr.comparing_element_types)) THEN RETURN(FALSE); END_IF; IF (compared_et <> comparing_et) THEN RETURN(FALSE); END_IF; END_IF; END_REPEAT; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION A3ma_Validate_Measured_Type(ei : Data_Equivalence_Inspection_Report; cr : A3m_Equivalence_Criterion_For_Assembly) : LOGICAL; LOCAL amdtn : A3ma_Measured_Data_Type_Name; deicr : Data_Equivalence_Inspection_Criterion_Report; acriwmv : A3m_Equivalence_Criterion_Report_Item_With_Measured_Value; deiir : Data_Equivalence_Inspection_Instance_Report; aeiiri : A3m_Equivalence_Inspection_Instance_Report_Item; eiriwei : Equivalence_Instance_Report_Item_With_Notable_Instances; END_LOCAL; amdtn := cr.measured_data_type; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_CRITERION_REPORT' IN TYPEOF(ei)) THEN deicr := ei; REPEAT i := 1 TO SIZEOF(deicr.statistical_values); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_CRITERION_REPORT_ITEM_WITH_MEASURED_VALUE' IN TYPEOF(deicr.statistical_values[i])) THEN acriwmv := deicr.statistical_values[i]; IF (A3ma_Get_Measured_Type(acriwmv.representative_measured_value) <> amdtn) THEN RETURN(FALSE); END_IF; END_IF; END_REPEAT; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) THEN deiir := ei; REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(deiir.inspected_instances[i])) THEN aeiiri := deiir.inspected_instances[i]; IF (A3ma_Get_Measured_Type(aeiiri.measured_value_for_inspected_element) <> amdtn) THEN RETURN(FALSE); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN TYPEOF(deiir.inspected_instances[i])) THEN eiriwei := deiir.inspected_instances[i]; REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances); IF (A3ma_Get_Measured_Type(eiriwei.notable_instances[j].measured_value) <> amdtn) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION A3ms_Get_Accuracy_Types(ei : SET [0 : ?] OF A3m_Equivalence_Accuracy_Association) : SET [0 : ?] OF A3ms_Accuracy_Type_Name; LOCAL type_out : A3ms_Measured_Data_Type_Name; retval : SET OF A3ms_Accuracy_Type_Name := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(ei); type_out := A3ms_Get_Value_Limit_Type(ei[i].specific_accuracy.range); IF (type_out = Mdns_Area_Measure) THEN retval := retval + [Atns_Area_Measure]; ELSE IF (type_out = Mdns_Length_Measure) THEN retval := retval + [Atns_Length_Measure]; ELSE IF (type_out = Mdns_Plane_Angle_Measure) THEN retval := retval + [Atns_Plane_Angle_Measure]; ELSE IF (type_out = Mdns_Volume_Measure) THEN retval := retval + [Atns_Volume_Measure]; ELSE retval := retval + [Atns_Others]; END_IF; END_IF; END_IF; END_IF; END_REPEAT; RETURN(retval); END_FUNCTION;
FUNCTION A3ms_Get_Detected_Difference_Type(ei : LIST [0 : ?] OF Equivalence_Detected_Difference_Select) : A3ms_Detected_Difference_Type_Name; LOCAL type_out : SET OF STRING; sizeei : INTEGER; END_LOCAL; sizeei := SIZEOF(ei); IF (sizeei = 0) THEN RETURN(Ddns_No_Element); ELSE type_out := TYPEOF(ei[1]); REPEAT i := 2 TO sizeei; IF (TYPEOF(ei[i]) <> type_out) THEN RETURN(Ddns_Others); END_IF; END_REPEAT; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN type_out) THEN IF (sizeei = 1) THEN RETURN(Ddns_Area_Measure); ELSE RETURN(Ddns_Others); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN type_out) THEN IF (sizeei = 1) THEN RETURN(Ddns_Cartesian_Point); ELSE IF (sizeei = 2) THEN RETURN(Ddns_Two_Cartesian_Points); ELSE RETURN(Ddns_Others); END_IF; END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET' IN type_out) THEN IF (sizeei = 1) THEN RETURN(Ddns_Connected_Face_Set); ELSE RETURN(Ddns_Others); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COUNT_MEASURE' IN type_out) THEN IF (sizeei = 1) THEN RETURN(Ddns_Count_Measure); ELSE IF (sizeei = 2) THEN RETURN(Ddns_Two_Count_Measure); ELSE IF (sizeei = 3) THEN RETURN(Ddns_Three_Count_Measure); ELSE IF (sizeei = 4) THEN RETURN(Ddns_Four_Count_Measure); ELSE IF (sizeei = 5) THEN RETURN(Ddns_Five_Count_Measure); ELSE RETURN(Ddns_Others); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE' IN type_out) THEN IF (sizeei = 1) THEN RETURN(Ddns_Edge); ELSE RETURN(Ddns_Several_Edges); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE' IN type_out) THEN IF (sizeei = 1) THEN RETURN(Ddns_Face); ELSE RETURN(Ddns_Several_Faces); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out) THEN IF (sizeei = 1) THEN RETURN(Ddns_Length_Measure); ELSE RETURN(Ddns_Others); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' IN type_out) THEN IF (sizeei = 1) THEN RETURN(Ddns_Point_On_Curve); ELSE RETURN(Ddns_Others); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' IN type_out) THEN IF (sizeei = 1) THEN RETURN(Ddns_Point_On_Surface); ELSE RETURN(Ddns_Others); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) THEN IF (sizeei = 1) THEN RETURN(Ddns_Volume_Measure); ELSE RETURN(Ddns_Others); END_IF; END_IF; END_IF; RETURN(Ddns_Others); END_FUNCTION;
FUNCTION A3ms_Get_Element_Type(ei : SET [1 : ?] OF Inspected_Equivalence_Element_Select) : A3ms_Element_Type_Name; LOCAL type_out : SET OF STRING; END_LOCAL; type_out := TYPEOF(ei[1]); IF (SIZEOF(ei) > 1) THEN RETURN(Etns_Others); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_EDGE_SET' IN type_out) THEN RETURN(Etns_Connected_Edge_Set); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONNECTED_FACE_SET' IN type_out) THEN RETURN(Etns_Connected_Face_Set); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SOLID_BREP' IN type_out) THEN RETURN(Etns_Manifold_Solid_Brep); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_CLOUD_DATASET' IN type_out) THEN RETURN(Etns_Point_Cloud_Dataset); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN type_out) THEN RETURN(Etns_Shell_Based_Surface_Model); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_MODEL' IN type_out) THEN RETURN(Etns_Shell_Based_Wireframe_Model); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_POINT' IN type_out) THEN RETURN(Etns_Vertex_Point); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_REPRESENTATION_ITEM' IN type_out) THEN RETURN(Etns_External_Representation_Item); END_IF; RETURN(Etns_Others); END_FUNCTION;
FUNCTION A3ms_Get_Measured_Type(ei : Equivalence_Measured_Value_Select) : A3ms_Measured_Data_Type_Name; LOCAL type_out : SET OF STRING; END_LOCAL; type_out := TYPEOF(ei); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN type_out) THEN RETURN(Mdns_Area_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' IN type_out) THEN RETURN(Mdns_Boolean_Value); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out) THEN RETURN(Mdns_Length_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out) THEN RETURN(Mdns_Plane_Angle_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) THEN RETURN(Mdns_Volume_Measure); END_IF; RETURN(Mdns_Others); END_FUNCTION;
FUNCTION A3ms_Get_Value_Limit_Type(ei : Shape_Data_Quality_Value_Limit_Type_Select) : A3ms_Measured_Data_Type_Name; LOCAL type_out : SET OF STRING; END_LOCAL; type_out := Value_Limit_Type(ei); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN type_out) THEN RETURN(Mdns_Area_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_VALUE' IN type_out) THEN RETURN(Mdns_Boolean_Value); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN type_out) THEN RETURN(Mdns_Length_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN type_out) THEN RETURN(Mdns_Plane_Angle_Measure); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN type_out) THEN RETURN(Mdns_Volume_Measure); END_IF; RETURN(Mdns_Others); END_FUNCTION;
FUNCTION A3ms_Validate_Accuracy_Types(ei : Accuracy_Associated_Target_Select; cr : A3m_Equivalence_Criterion_For_Shape) : LOGICAL; LOCAL aeaa : SET OF A3m_Equivalence_Accuracy_Association; rp : SET OF Representation; tp : SET OF A3ms_Accuracy_Type_Name := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(cr.accuracy_types); tp := tp + [cr.accuracy_types[i]]; END_REPEAT; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(ei)) THEN aeaa := Bag_To_Set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET')); IF (SIZEOF(cr.accuracy_types) = 0) THEN IF (SIZEOF(aeaa) = 0) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END_IF; IF (A3ms_Get_Accuracy_Types(aeaa) = tp) THEN RETURN(TRUE); END_IF; rp := Bag_To_Set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')); ELSE IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION' IN TYPEOF(ei)) THEN rp := [ei]; ELSE rp := []; END_IF; END_IF; aeaa := []; REPEAT i := 1 TO SIZEOF(rp); aeaa := aeaa + Bag_To_Set(USEDIN(rp[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_ACCURACY_ASSOCIATION.EQUIVALENCE_TARGET')); END_REPEAT; IF (A3ms_Get_Accuracy_Types(aeaa) >= tp) THEN RETURN(TRUE); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION A3ms_Validate_Detected_Difference_Types(ei : Data_Equivalence_Inspection_Report; cr : A3m_Equivalence_Criterion_For_Shape) : LOGICAL; LOCAL deiir : Data_Equivalence_Inspection_Instance_Report; eiriwei : Equivalence_Instance_Report_Item_With_Notable_Instances; addtn : A3ms_Detected_Difference_Type_Name; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) THEN deiir := ei; REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN TYPEOF(deiir.inspected_instances[i])) THEN eiriwei := deiir.inspected_instances[i]; REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MISMATCH_OF_POINT_CLOUD_AND_RELATED_GEOMETRY' IN TYPEOF(cr)) THEN addtn := A3ms_Get_Detected_Difference_Type(eiriwei.notable_instances[j].comparing_elements); IF (A3ms_Get_Element_Type(eiriwei.Inspected_Element.comparing_elements) = Etns_Connected_Edge_Set) THEN IF (addtn <> Ddns_Point_On_Curve) THEN RETURN(FALSE); END_IF; ELSE IF (A3ms_Get_Element_Type(eiriwei.Inspected_Element.comparing_elements) = Etns_Connected_Face_Set) THEN IF (addtn <> Ddns_Point_On_Surface) THEN RETURN(FALSE); END_IF; ELSE IF (A3ms_Get_Element_Type(eiriwei.Inspected_Element.comparing_elements) <> Etns_External_Representation_Item) THEN RETURN(FALSE); END_IF; END_IF; END_IF; IF (NOT (A3ms_Get_Detected_Difference_Type(eiriwei.notable_instances[j].compared_elements) IN cr.detected_difference_types)) THEN RETURN(FALSE); END_IF; ELSE IF (NOT (A3ms_Get_Detected_Difference_Type(eiriwei.notable_instances[j].comparing_elements) IN cr.detected_difference_types)) THEN RETURN(FALSE); END_IF; IF (NOT (A3ms_Get_Detected_Difference_Type(eiriwei.notable_instances[j].compared_elements) IN cr.detected_difference_types)) THEN RETURN(FALSE); END_IF; END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION A3ms_Validate_Element_Types(ei : Data_Equivalence_Inspection_Report; cr : A3m_Equivalence_Criterion_For_Shape) : LOGICAL; LOCAL compared_et : A3ms_Element_Type_Name; comparing_et : A3ms_Element_Type_Name; deiir : Data_Equivalence_Inspection_Instance_Report; aeiiri : A3m_Equivalence_Inspection_Instance_Report_Item; deiep : Data_Equivalence_Inspected_Element_Pair; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) THEN deiir := ei; REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(deiir.inspected_instances[i])) THEN aeiiri := deiir.inspected_instances[i]; deiep := aeiiri.Inspected_Element; compared_et := A3ms_Get_Element_Type(deiep.compared_elements); comparing_et := A3ms_Get_Element_Type(deiep.comparing_elements); IF ((NOT (compared_et IN cr.compared_element_types) AND (compared_et <> Etns_External_Representation_Item)) OR (NOT (comparing_et IN cr.comparing_element_types) AND (comparing_et <> Etns_External_Representation_Item))) THEN RETURN(FALSE); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MISMATCH_OF_POINT_CLOUD_AND_RELATED_GEOMETRY' IN TYPEOF(cr)) THEN IF (((comparing_et <> Etns_External_Representation_Item) AND (compared_et <> Etns_External_Representation_Item)) AND (compared_et = comparing_et)) THEN RETURN(FALSE); END_IF; ELSE IF (((comparing_et <> Etns_External_Representation_Item) AND (compared_et <> Etns_External_Representation_Item)) AND (compared_et <> comparing_et)) THEN RETURN(FALSE); END_IF; END_IF; END_IF; END_REPEAT; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION A3ms_Validate_Measured_Type(ei : Data_Equivalence_Inspection_Report; cr : A3m_Equivalence_Criterion_For_Shape) : LOGICAL; LOCAL amdtn : A3ms_Measured_Data_Type_Name; deicr : Data_Equivalence_Inspection_Criterion_Report; acriwmv : A3m_Equivalence_Criterion_Report_Item_With_Measured_Value; deiir : Data_Equivalence_Inspection_Instance_Report; aeiiri : A3m_Equivalence_Inspection_Instance_Report_Item; eiriwei : Equivalence_Instance_Report_Item_With_Notable_Instances; END_LOCAL; amdtn := cr.measured_data_type; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_CRITERION_REPORT' IN TYPEOF(ei)) THEN deicr := ei; REPEAT i := 1 TO SIZEOF(deicr.statistical_values); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_CRITERION_REPORT_ITEM_WITH_MEASURED_VALUE' IN TYPEOF(deicr.statistical_values[i])) THEN acriwmv := deicr.statistical_values[i]; IF (A3ms_Get_Measured_Type(acriwmv.representative_measured_value) <> amdtn) THEN RETURN(FALSE); END_IF; END_IF; END_REPEAT; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_EQUIVALENCE_INSPECTION_INSTANCE_REPORT' IN TYPEOF(ei)) THEN deiir := ei; REPEAT i := 1 TO SIZEOF(deiir.inspected_instances); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.A3M_EQUIVALENCE_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(deiir.inspected_instances[i])) THEN aeiiri := deiir.inspected_instances[i]; IF (A3ms_Get_Measured_Type(aeiiri.measured_value_for_inspected_element) <> amdtn) THEN RETURN(FALSE); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUIVALENCE_INSTANCE_REPORT_ITEM_WITH_NOTABLE_INSTANCES' IN TYPEOF(deiir.inspected_instances[i])) THEN eiriwei := deiir.inspected_instances[i]; REPEAT j := 1 TO SIZEOF(eiriwei.notable_instances); IF (A3ms_Get_Measured_Type(eiriwei.notable_instances[j].measured_value) <> amdtn) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; END_REPEAT; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Above_Plane(p1 : Cartesian_Point; p2 : Cartesian_Point; p3 : Cartesian_Point; p4 : Cartesian_Point) : REAL; LOCAL dir2 : Direction := Dummy_Gri || Direction([1.0,0.0,0.0]); dir3 : Direction := Dummy_Gri || Direction([1.0,0.0,0.0]); dir4 : Direction := Dummy_Gri || Direction([1.0,0.0,0.0]); val : REAL; mag : REAL; END_LOCAL; IF (p1.dim <> 3) THEN RETURN(?); END_IF; REPEAT i := 1 TO 3; dir2.direction_ratios[i] := p2.coordinates[i] - p1.coordinates[i]; dir3.direction_ratios[i] := p3.coordinates[i] - p1.coordinates[i]; dir4.direction_ratios[i] := p4.coordinates[i] - p1.coordinates[i]; mag := dir4.direction_ratios[i] * dir4.direction_ratios[i]; END_REPEAT; mag := SQRT(mag); val := mag * Dot_Product(dir4, Cross_Product(dir2, dir3).Orientation); RETURN(val); END_FUNCTION;
FUNCTION Acyclic(arg1 : Generic_Expression; arg2 : SET OF Generic_Expression) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF(arg1)) THEN RETURN(TRUE); END_IF; IF arg1 IN arg2 THEN RETURN(FALSE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN RETURN(Acyclic(arg1\Unary_Generic_Expression.operand, arg2 + [arg1])); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BINARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN RETURN(Acyclic(arg1\Binary_Generic_Expression.operands[1], arg2 + [arg1]) AND Acyclic(arg1\Binary_Generic_Expression.operands[2], arg2 + [arg1])); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN result := TRUE; REPEAT i := 1 TO SIZEOF(arg1\Multiple_Arity_Generic_Expression.operands); result := result AND Acyclic(arg1\Multiple_Arity_Generic_Expression.operands[i], arg2 + [arg1]); END_REPEAT; RETURN(result); END_IF; RETURN(result); END_FUNCTION;
FUNCTION Acyclic_Action_Directive_Relationship(relation : Action_Directive_Relationship; relatives : SET [1 : ?] OF Action_Directive; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF Action_Directive_Relationship; END_LOCAL; IF relation.relating IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(adr <* Bag_To_Set(USEDIN(relation.relating, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACTION_DIRECTIVE_RELATIONSHIP.RELATED')) | specific_relation IN TYPEOF(adr)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Action_Directive_Relationship(x[i], relatives + relation.relating, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Alternative_Solution_Relationship(relation : Alternative_Solution_Relationship; relatives : SET [1 : ?] OF Product_Definition_Formation; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF Alternative_Solution_Relationship; END_LOCAL; IF relation.relating_product_definition_formation IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(asr <* Bag_To_Set(USEDIN(relation.relating_product_definition_formation, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ALTERNATIVE_SOLUTION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION_FORMATION')) | specific_relation IN TYPEOF(asr)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Alternative_Solution_Relationship(x[i], relatives + relation.relating_product_definition_formation, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Assignment_Object_Relationship(relation : Assignment_Object_Relationship; relatives : SET [1 : ?] OF Assignment_Object_Select; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF Assignment_Object_Relationship; END_LOCAL; IF relation.relating IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(aor <* Bag_To_Set(USEDIN(relation.relating, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSIGNMENT_OBJECT_RELATIONSHIP.RELATED')) | specific_relation IN TYPEOF(aor)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Assignment_Object_Relationship(x[i], relatives + relation.relating, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Classification_Assignment_Relationship(relation : Classification_Assignment_Relationship; relatives : SET [1 : ?] OF Classification_Assignment; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF Classification_Assignment_Relationship; END_LOCAL; IF relation.relating IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(car <* Bag_To_Set(USEDIN(relation.relating, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASSIFICATION_ASSIGNMENT_RELATIONSHIP.RELATED')) | specific_relation IN TYPEOF(car)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Classification_Assignment_Relationship(x[i], relatives + relation.relating, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Composite_Text(start_composite : Composite_Text; child_text : SET [1 : ?] OF Text_Or_Character) : LOGICAL; LOCAL i : INTEGER; local_composite_text : SET [0 : ?] OF Composite_Text; local_annotation_text : SET [0 : ?] OF Annotation_Text; local_children : SET [0 : ?] OF Text_Or_Character; END_LOCAL; local_composite_text := QUERY(child <* child_text | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT' IN TYPEOF(child))); IF (SIZEOF(local_composite_text) > 0) THEN REPEAT i := 1 TO HIINDEX(local_composite_text); IF (start_composite :=: local_composite_text[i]) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; local_children := child_text; IF (SIZEOF(local_composite_text)) > 0 THEN REPEAT i := 1 TO HIINDEX(local_composite_text); local_children := local_children + local_composite_text[i].collected_text; END_REPEAT; END_IF; local_annotation_text := QUERY(child <* child_text | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT' IN TYPEOF(child))); IF (SIZEOF(local_annotation_text) > 0) THEN REPEAT i := 1 TO HIINDEX(local_annotation_text); local_children := local_children + QUERY(item <* local_annotation_text[i]\Mapped_Item.mapping_source.mapped_representation.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_TEXT'] * TYPEOF(item)) > 0); END_REPEAT; END_IF; IF (local_children :<>: child_text) THEN RETURN(Acyclic_Composite_Text(start_composite, local_children)); ELSE RETURN(TRUE); END_IF; END_FUNCTION;
FUNCTION Acyclic_Curve_Replica(rep : Curve_Replica; parent : Curve) : BOOLEAN; IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA') IN TYPEOF(parent)) THEN RETURN(TRUE); END_IF; (* Return TRUE if the parent is not of type curve_replica *) IF (parent :=: rep) THEN RETURN(FALSE); ELSE RETURN(Acyclic_Curve_Replica(rep, parent\Curve_Replica.parent_curve)); END_IF; END_FUNCTION;
FUNCTION Acyclic_Description_Text_Assignment_Relationship(relation : Description_Text_Assignment_Relationship; relatives : SET [1 : ?] OF Description_Text_Assignment; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF Description_Text_Assignment_Relationship; END_LOCAL; IF relation.relating IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(dtar <* Bag_To_Set(USEDIN(relation.relating, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_TEXT_ASSIGNMENT_RELATIONSHIP.RELATED')) | specific_relation IN TYPEOF(dtar)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Description_Text_Assignment_Relationship(x[i], relatives + relation.relating, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_External_Identification_Assignment_Relationship(relation : External_Identification_Assignment_Relationship; relatives : SET [1 : ?] OF External_Identification_Assignment; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF External_Identification_Assignment_Relationship; END_LOCAL; IF relation.relating IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(eiar <* Bag_To_Set(USEDIN(relation.relating, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNAL_IDENTIFICATION_ASSIGNMENT_RELATIONSHIP.RELATED')) | specific_relation IN TYPEOF(eiar)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_External_Identification_Assignment_Relationship(x[i], relatives + relation.relating, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Generic_Property_Relationship(relation : Generic_Property_Relationship; relatives : SET [1 : ?] OF Generic_Property_Definition_Select; specific_relation : STRING) : LOGICAL; LOCAL x : SET OF Generic_Property_Relationship; END_LOCAL; IF relation.relating IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(gpr <* Bag_To_Set(USEDIN(relation.relating, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_PROPERTY_RELATIONSHIP.RELATED')) | specific_relation IN TYPEOF(gpr)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Generic_Property_Relationship(x[i], relatives + relation.relating, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Geometric_Tolerance_Relationship(relation : Geometric_Tolerance_Relationship; relatives : SET [1 : ?] OF Geometric_Tolerance; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF Geometric_Tolerance_Relationship; END_LOCAL; IF relation.relating_geometric_tolerance IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(geotol <* Bag_To_Set(USEDIN(relation.relating_geometric_tolerance, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE_RELATIONSHIP.RELATED_GEOMETRIC_TOLERANCE')) | specific_relation IN TYPEOF(geotol)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Geometric_Tolerance_Relationship(x[i], relatives + relation.relating_geometric_tolerance, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Mapped_Representation(mi : Mapped_Item) : BOOLEAN; LOCAL rms : SET OF Representation_Map; mis : SET OF Mapped_Item; rs1 : SET OF Representation; rs2 : SET OF Representation; END_LOCAL; rs1 := Using_Representations(mi); rs2 := []; REPEAT WHILE SIZEOF(rs1) > 0; REPEAT i := 1 TO HIINDEX(rs1); rms := Bag_To_Set(USEDIN(rs1[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); IF SIZEOF(rms) > 0 THEN REPEAT j := 1 TO HIINDEX(rms); mis := Bag_To_Set(USEDIN(rms[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE')); IF SIZEOF(mis) > 0 THEN REPEAT j := 1 TO HIINDEX(mis); IF mis[i] :=: mi THEN RETURN(FALSE); END_IF; rs2 := rs2 + Using_Representations(mis[i]); END_REPEAT; END_IF; END_REPEAT; END_IF; END_REPEAT; rs1 := rs2; rs2 := []; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Point_Replica(rep : Point_Replica; parent : Point) : BOOLEAN; IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPLICA') IN TYPEOF(parent)) THEN RETURN(TRUE); END_IF; (* Return TRUE if the parent is not of type point_replica *) IF (parent :=: rep) THEN RETURN(FALSE); ELSE RETURN(Acyclic_Point_Replica(rep, parent\Point_Replica.parent_pt)); END_IF; END_FUNCTION;
FUNCTION Acyclic_Product_Category_Relationship(relation : Product_Category_Relationship; children : SET OF Product_Category) : BOOLEAN; LOCAL x : SET OF Product_Category_Relationship; local_children : SET OF Product_Category; END_LOCAL; REPEAT i := 1 TO HIINDEX(children); IF relation.category :=: children[i] THEN RETURN(FALSE); END_IF; END_REPEAT; x := Bag_To_Set(USEDIN(relation.category, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY')); local_children := children + relation.category; IF SIZEOF(x) > 0 THEN REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Product_Category_Relationship(x[i], local_children) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Product_Definition_Relationship(relation : Product_Definition_Relationship; relatives : SET [1 : ?] OF Product_Definition_Or_Reference; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF Product_Definition_Relationship; END_LOCAL; IF relation.relating_product_definition IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(pd <* Bag_To_Set(USEDIN(relation.relating_product_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION')) | specific_relation IN TYPEOF(pd)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Product_Definition_Relationship(x[i], relatives + relation.relating_product_definition, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Product_Definition_Specified_Occurrence(pdso : Product_Definition_Specified_Occurrence; definition : Product_Definition_Occurrence) : BOOLEAN; IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SPECIFIED_OCCURRENCE') IN TYPEOF(definition)) THEN RETURN(TRUE); END_IF; IF (definition :=: pdso) THEN RETURN(FALSE); ELSE RETURN(Acyclic_Product_Definition_Specified_Occurrence(pdso, definition\Product_Definition_Occurrence.definition)); END_IF; END_FUNCTION;
FUNCTION Acyclic_Representation_Relationship(relation : Representation_Relationship; relatives : SET [1 : ?] OF Representation; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF Representation_Relationship; END_LOCAL; IF relation.rep_1 IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(r <* Bag_To_Set(USEDIN(relation.rep_1, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP.REP_2')) | specific_relation IN TYPEOF(r)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Representation_Relationship(x[i], relatives + relation.rep_1, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Shape_Aspect_Occurrence(sao : Shape_Aspect_Occurrence; definition : Shape_Aspect_Or_Characterized_Object) : BOOLEAN; IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_OCCURRENCE') IN TYPEOF(definition)) THEN RETURN(TRUE); END_IF; IF (definition :=: sao) THEN RETURN(FALSE); ELSE RETURN(Acyclic_Shape_Aspect_Occurrence(sao, definition\Shape_Aspect_Occurrence.definition)); END_IF; END_FUNCTION;
FUNCTION Acyclic_Shape_Aspect_Relationship(relation : Shape_Aspect_Relationship; relatives : SET [1 : ?] OF Shape_Aspect; specific_relation : STRING) : BOOLEAN; LOCAL x : SET OF Shape_Aspect_Relationship; END_LOCAL; IF relation.relating_shape_aspect IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(sa <* Bag_To_Set(USEDIN(relation.relating_shape_aspect, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT')) | specific_relation IN TYPEOF(sa)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_Shape_Aspect_Relationship(x[i], relatives + relation.relating_shape_aspect, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Solid_Replica(rep : Solid_Replica; parent : Solid_Model) : BOOLEAN; IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_REPLICA') IN TYPEOF(parent)) THEN RETURN(TRUE); END_IF; (* Return TRUE if the parent is not of type solid_replica. *) IF (parent :=: rep) THEN RETURN(FALSE); ELSE RETURN(Acyclic_Solid_Replica(rep, parent\Solid_Replica.parent_solid)); END_IF; END_FUNCTION;
FUNCTION Acyclic_State_Definition_To_State_Assignment_Relationship(relation : State_Definition_To_State_Assignment_Relationship; relatives : SET [1 : ?] OF Ascribable_State; specific_relation : STRING) : LOGICAL; LOCAL x : SET OF State_Definition_To_State_Assignment_Relationship; END_LOCAL; IF relation.relating_ascribable_state IN relatives THEN RETURN(FALSE); END_IF; x := QUERY(sdtsar <* Bag_To_Set(USEDIN(relation.relating_ascribable_state, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STATE_DEFINITION_TO_STATE_ASSIGNMENT_RELATIONSHIP.RELATED_ASCRIBABLE_STATE')) | specific_relation IN TYPEOF(sdtsar)); REPEAT i := 1 TO HIINDEX(x); IF NOT Acyclic_State_Definition_To_State_Assignment_Relationship(x[i], relatives + relation.relating_ascribable_state, specific_relation) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Acyclic_Surface_Replica(rep : Surface_Replica; parent : Surface) : BOOLEAN; IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA') IN TYPEOF(parent)) THEN RETURN(TRUE); END_IF; (* Return TRUE if the parent is not of type surface_replica *) IF (parent :=: rep) THEN RETURN(FALSE); ELSE RETURN(Acyclic_Surface_Replica(rep, parent\Surface_Replica.parent_surface)); END_IF; END_FUNCTION;
FUNCTION Advanced_Face_Properties(testface : Face) : BOOLEAN; (* return TRUE if testface is of type advanced_face *) (* return TRUE if testface is of type advanced_face *) IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_FACE' IN TYPEOF(testface) THEN RETURN(TRUE); END_IF; (* if testface is a subface recursively test the parent_face, return FALSE for all other types of face *) IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBFACE' IN TYPEOF(testface)) THEN RETURN(Advanced_Face_Properties(testface\Subface.parent_face)); ELSE RETURN(FALSE); END_IF; END_FUNCTION;
FUNCTION All_Members_Of_Es(sv : SET OF Maths_Value; es : Elementary_Space_Enumerators) : LOGICAL; CONSTANT base_types : SET OF STRING := ['NUMBER', 'COMPLEX_NUMBER_LITERAL', 'REAL', 'INTEGER', 'LOGICAL', 'BOOLEAN', 'STRING', 'BINARY', 'MATHS_SPACE', 'MATHS_FUNCTION', 'LIST', 'ELEMENTARY_SPACE_ENUMERATORS', 'ORDERING_TYPE', 'LOWER_UPPER', 'SYMMETRY_TYPE', 'ELEMENTARY_FUNCTION_ENUMERATORS', 'OPEN_CLOSED', 'SPACE_CONSTRAINT_TYPE', 'REPACKAGE_OPTIONS', 'EXTENSION_OPTIONS']; END_CONSTANT; LOCAL v : Maths_Value; key_type : STRING := ''; types : SET OF STRING; ge : Generic_Expression; cum : LOGICAL := TRUE; vspc : Maths_Space; END_LOCAL; IF NOT EXISTS(sv) OR NOT EXISTS(es) THEN RETURN(FALSE); END_IF; CASE es OF Es_Numbers : key_type := 'NUMBER'; Es_Complex_Numbers : key_type := 'COMPLEX_NUMBER_LITERAL'; Es_Reals : key_type := 'REAL'; Es_Integers : key_type := 'INTEGER'; Es_Logicals : key_type := 'LOGICAL'; Es_Booleans : key_type := 'BOOLEAN'; Es_Strings : key_type := 'STRING'; Es_Binarys : key_type := 'BINARY'; Es_Maths_Spaces : key_type := 'MATHS_SPACE'; Es_Maths_Functions : key_type := 'MATHS_FUNCTION'; Es_Generics : RETURN(TRUE); END_CASE; REPEAT i := 1 TO SIZEOF(sv); IF NOT EXISTS(sv[i]) THEN RETURN(FALSE); END_IF; v := Simplify_Maths_Value(sv[i]); types := Stripped_Typeof(v); IF key_type IN types THEN SKIP; END_IF; IF (es = Es_Numbers) AND ('COMPLEX_NUMBER_LITERAL' IN types) THEN SKIP; END_IF; IF SIZEOF(base_types * types) > 0 THEN RETURN(FALSE); END_IF; ge := v; IF Has_Values_Space(ge) THEN vspc := Values_Space_Of(ge); IF NOT Subspace_Of_Es(vspc, es) THEN IF NOT Compatible_Spaces(vspc, Make_Elementary_Space(es)) THEN RETURN(FALSE); END_IF; cum := UNKNOWN; END_IF; ELSE cum := UNKNOWN; END_IF; IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_FUNCTION;
FUNCTION Any_Space_Satisfies(sc : Space_Constraint_Type; spc : Maths_Space) : BOOLEAN; LOCAL spc_id : Elementary_Space_Enumerators; END_LOCAL; IF (sc = Sc_Equal) OR NOT ('ELEMENTARY_SPACE' IN Stripped_Typeof(spc)) THEN RETURN(FALSE); END_IF; spc_id := spc\Elementary_Space.space_id; IF sc = Sc_Subspace THEN RETURN(Bool(spc_id = Es_Generics)); END_IF; IF sc = Sc_Member THEN RETURN(Bool((spc_id = Es_Generics) OR (spc_id = Es_Maths_Spaces))); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Aspect_Ratio(p : Planar_Box) : Positive_Ratio_Measure; IF (p.size_in_x > 0.) AND (p.size_in_y > 0.) THEN RETURN(p.size_in_x / p.size_in_y); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Assembly_Leaf(item : Product_Definition) : BOOLEAN; LOCAL local_relation : SET OF Assembly_Component_Usage := []; local_relation2 : BAG OF Assembly_Component_Usage := []; END_LOCAL; local_relation2 := local_relation2 + QUERY(pdr <* USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)); local_relation := Bag_To_Set(local_relation2); IF (SIZEOF(local_relation) = 0) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END_FUNCTION;
FUNCTION Assembly_Root(item : Product_Definition) : BOOLEAN; -- extraction of related assembly_component_relationships -- IF (SIZEOF(QUERY(pdr <* USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr))) = 0) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END_FUNCTION;
FUNCTION Assoc_Product_Space(ts1 : Tuple_Space; ts2 : Tuple_Space) : Tuple_Space; LOCAL types1 : SET OF STRING := Stripped_Typeof(ts1); types2 : SET OF STRING := Stripped_Typeof(ts2); up1 : Uniform_Product_Space := Make_Uniform_Product_Space(The_Reals, 1); up2 : Uniform_Product_Space := Make_Uniform_Product_Space(The_Reals, 1); lp1 : Listed_Product_Space := The_Zero_Tuple_Space; lp2 : Listed_Product_Space := The_Zero_Tuple_Space; lps : Listed_Product_Space := The_Zero_Tuple_Space; et1 : Extended_Tuple_Space := The_Tuples; et2 : Extended_Tuple_Space := The_Tuples; ets : Extended_Tuple_Space := The_Tuples; use_up1 : BOOLEAN; use_up2 : BOOLEAN; use_lp1 : BOOLEAN; use_lp2 : BOOLEAN; factors : LIST OF Maths_Space := []; tspace : Tuple_Space; END_LOCAL; IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN up1 := ts1; use_up1 := TRUE; use_lp1 := FALSE; ELSE IF 'LISTED_PRODUCT_SPACE' IN types1 THEN lp1 := ts1; use_up1 := FALSE; use_lp1 := TRUE; ELSE IF NOT ('EXTENDED_TUPLE_SPACE' IN types1) THEN RETURN(?); END_IF; et1 := ts1; use_up1 := FALSE; use_lp1 := FALSE; END_IF; END_IF; IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN up2 := ts2; use_up2 := TRUE; use_lp2 := FALSE; ELSE IF 'LISTED_PRODUCT_SPACE' IN types2 THEN lp2 := ts2; use_up2 := FALSE; use_lp2 := TRUE; ELSE IF NOT ('EXTENDED_TUPLE_SPACE' IN types2) THEN RETURN(?); END_IF; et2 := ts2; use_up2 := FALSE; use_lp2 := FALSE; END_IF; END_IF; IF use_up1 THEN IF use_up2 THEN IF up1.base = up2.base THEN tspace := Make_Uniform_Product_Space(up1.base, up1.exponent + up2.exponent); ELSE factors := [up1.base:up1.exponent,up2.base:up2.exponent]; tspace := Make_Listed_Product_Space(factors); END_IF; ELSE IF use_lp2 THEN factors := [up1.base:up1.exponent]; factors := factors + lp2.factors; tspace := Make_Listed_Product_Space(factors); ELSE tspace := Assoc_Product_Space(up1, et2.base); tspace := Make_Extended_Tuple_Space(tspace, et2.extender); END_IF; END_IF; ELSE IF use_lp1 THEN IF use_up2 THEN factors := [up2.base:up2.exponent]; factors := lp1.factors + factors; tspace := Make_Listed_Product_Space(factors); ELSE IF use_lp2 THEN tspace := Make_Listed_Product_Space(lp1.factors + lp2.factors); ELSE tspace := Assoc_Product_Space(lp1, et2.base); tspace := Make_Extended_Tuple_Space(tspace, et2.extender); END_IF; END_IF; ELSE IF use_up2 THEN IF et1.extender = up2.base THEN tspace := Assoc_Product_Space(et1.base, up2); tspace := Make_Extended_Tuple_Space(tspace, et1.extender); ELSE RETURN(?); END_IF; ELSE IF use_lp2 THEN factors := lp2.factors; REPEAT i := 1 TO SIZEOF(factors); IF et1.extender <> factors[i] THEN RETURN(?); END_IF; END_REPEAT; tspace := Assoc_Product_Space(et1.base, lp2); tspace := Make_Extended_Tuple_Space(tspace, et1.extender); ELSE IF et1.extender = et2.extender THEN tspace := Assoc_Product_Space(et1, et2.base); ELSE RETURN(?); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN(tspace); END_FUNCTION;
FUNCTION Associated_Surface(arg : Pcurve_Or_Surface) : Surface; LOCAL surf : Surface; END_LOCAL; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(arg) THEN surf := arg\Pcurve.basis_surface; ELSE surf := arg; END_IF; RETURN(surf); END_FUNCTION;
FUNCTION Atan2(y : REAL; x : REAL) : REAL; LOCAL r : REAL; END_LOCAL; IF (y = 0.0) AND (x = 0.0) THEN RETURN(?); END_IF; r := ATAN(y, x); IF x < 0.0 THEN IF y < 0.0 THEN r := r - PI; ELSE r := r + PI; END_IF; END_IF; RETURN(r); END_FUNCTION;
FUNCTION Bag_To_Set(the_bag : BAG OF GENERIC : INTYPE) : SET OF GENERIC : INTYPE; LOCAL the_set : SET OF GENERIC : INTYPE := []; END_LOCAL; IF SIZEOF(the_bag) > 0 THEN REPEAT i := 1 TO HIINDEX(the_bag); the_set := the_set + the_bag[i]; END_REPEAT; END_IF; RETURN(the_set); END_FUNCTION;
FUNCTION Base_Axis(dim : INTEGER; axis1 : Direction; axis2 : Direction; axis3 : Direction) : LIST [2 : 3] OF Direction; LOCAL u : LIST [2 : 3] OF Direction; factor : REAL; d1 : Direction; d2 : Direction; END_LOCAL; IF (dim = 3) THEN d1 := NVL(Normalise(axis3), Dummy_Gri || Direction([0.0,0.0,1.0])); d2 := First_Proj_Axis(d1, axis1); u := [d2,Second_Proj_Axis(d1, d2, axis2),d1]; ELSE IF EXISTS(axis1) THEN d1 := Normalise(axis1); u := [d1,Orthogonal_Complement(d1)]; IF EXISTS(axis2) THEN factor := Dot_Product(axis2, u[2]); IF (factor < 0.0) THEN u[2].direction_ratios[1] := -u[2].direction_ratios[1]; u[2].direction_ratios[2] := -u[2].direction_ratios[2]; END_IF; END_IF; ELSE IF EXISTS(axis2) THEN d1 := Normalise(axis2); u := [Orthogonal_Complement(d1),d1]; u[1].direction_ratios[1] := -u[1].direction_ratios[1]; u[1].direction_ratios[2] := -u[1].direction_ratios[2]; ELSE u := [Dummy_Gri || Direction([1.0,0.0]),Dummy_Gri || Direction([0.0,1.0])]; END_IF; END_IF; END_IF; RETURN(u); END_FUNCTION;
FUNCTION Bool(lgcl : LOGICAL) : BOOLEAN; IF NOT EXISTS(lgcl) THEN RETURN(FALSE); END_IF; IF lgcl <> TRUE THEN RETURN(FALSE); END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Boolean_Choose(b : BOOLEAN; choice1 : GENERIC : ITEM; choice2 : GENERIC : ITEM) : GENERIC : ITEM; IF b THEN RETURN(choice1); ELSE RETURN(choice2); END_IF; END_FUNCTION;
FUNCTION Build_2axes(ref_direction : Direction) : LIST [2 : 2] OF Direction; LOCAL d : Direction := NVL(Normalise(ref_direction), Dummy_Gri || Direction([1.0,0.0])); END_LOCAL; RETURN([d,Orthogonal_Complement(d)]); END_FUNCTION;
FUNCTION Build_Axes(axis : Direction; ref_direction : Direction) : LIST [3 : 3] OF Direction; LOCAL d1 : Direction; d2 : Direction; END_LOCAL; d1 := NVL(Normalise(axis), Dummy_Gri || Direction([0.0,0.0,1.0])); d2 := First_Proj_Axis(d1, ref_direction); RETURN([d2,Normalise(Cross_Product(d1, d2))\Vector.Orientation,d1]); END_FUNCTION;
FUNCTION Categories_Of_Product(obj : Product) : SET OF STRING; LOCAL category_assignments : BAG OF Product_Category; categories : SET OF STRING := []; END_LOCAL; category_assignments := USEDIN(obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS'); REPEAT i := LOINDEX(category_assignments) TO HIINDEX(category_assignments) BY 1; categories := categories + category_assignments[i].name; END_REPEAT; RETURN(categories); END_FUNCTION;
FUNCTION Cc_Design_Person_And_Organization_Correlation(e : Cc_Design_Person_And_Organization_Assignment) : BOOLEAN; LOCAL po_role : STRING; END_LOCAL; po_role := e\Person_And_Organization_Assignment.role.name; CASE po_role OF 'request_recipient' : IF SIZEOF(e.items) <> SIZEOF(QUERY(X <* e.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHANGE_REQUEST', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.START_REQUEST'] * TYPEOF(X)) = 1)) THEN RETURN(FALSE); END_IF; 'initiator' : IF SIZEOF(e.items) <> SIZEOF(QUERY(X <* e.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHANGE_REQUEST', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.START_REQUEST', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.START_WORK', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHANGE'] * TYPEOF(X)) = 1)) THEN RETURN(FALSE); END_IF; 'creator' : IF SIZEOF(e.items) <> SIZEOF(QUERY(X <* e.items | SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION'] * TYPEOF(X)) = 1)) THEN RETURN(FALSE); END_IF; 'part_supplier' : IF SIZEOF(e.items) <> SIZEOF(QUERY(X <* e.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(X))) THEN RETURN(FALSE); END_IF; 'design_supplier' : IF SIZEOF(e.items) <> SIZEOF(QUERY(X <* e.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(X))) THEN RETURN(FALSE); END_IF; 'design_owner' : IF SIZEOF(e.items) <> SIZEOF(QUERY(X <* e.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT' IN TYPEOF(X))) THEN RETURN(FALSE); END_IF; 'configuration_manager' : IF SIZEOF(e.items) <> SIZEOF(QUERY(X <* e.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_ITEM' IN TYPEOF(X))) THEN RETURN(FALSE); END_IF; 'contractor' : IF SIZEOF(e.items) <> SIZEOF(QUERY(X <* e.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONTRACT' IN TYPEOF(X))) THEN RETURN(FALSE); END_IF; 'classification_officer' : IF SIZEOF(e.items) <> SIZEOF(QUERY(X <* e.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SECURITY_CLASSIFICATION' IN TYPEOF(X))) THEN RETURN(FALSE); END_IF; OTHERWISE: RETURN(TRUE); END_CASE; RETURN(TRUE); END_FUNCTION;
FUNCTION Check_Continuous_Edges(edges : LIST OF UNIQUE Edge_Curve) : BOOLEAN; LOCAL i : INTEGER; next_vertex : Vertex; END_LOCAL; IF (SIZEOF(edges) = 1) THEN RETURN(TRUE); END_IF; IF ((edges[2].edge_start :=: edges[1].edge_end) XOR (edges[2].edge_start :=: edges[1].edge_start)) THEN next_vertex := edges[2].edge_end; ELSE IF ((edges[2].edge_end :=: edges[1].edge_end) XOR (edges[2].edge_end :=: edges[1].edge_start)) THEN next_vertex := edges[2].edge_start; ELSE RETURN(FALSE); END_IF; END_IF; IF (SIZEOF(edges) = 2) THEN RETURN(TRUE); END_IF; REPEAT i := 3 TO HIINDEX(edges); IF (edges[i].edge_start :=: next_vertex) THEN next_vertex := edges[i].edge_end; ELSE IF (edges[i].edge_end :=: next_vertex) THEN next_vertex := edges[i].edge_start; ELSE RETURN(FALSE); END_IF; END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Check_Curve_Planarity(checked_curve : Curve) : BOOLEAN; LOCAL crv : Curve := checked_curve; i : INTEGER; j : INTEGER; result : BOOLEAN := FALSE; END_LOCAL; IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE'] * TYPEOF(crv)) > 0) THEN result := TRUE; ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE' IN TYPEOF(crv)) AND Check_Curve_Planarity(crv\Trimmed_Curve.basis_curve)) THEN result := TRUE; ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(crv)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(crv\Pcurve.basis_surface))) THEN result := TRUE; ELSE IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(crv)) THEN BEGIN REPEAT j := 1 TO HIINDEX(crv\Surface_Curve.basis_surface); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(crv\Surface_Curve.basis_surface[j])) THEN result := TRUE; END_IF; END_REPEAT; END; END_IF; END_IF; END_IF; END_IF; RETURN(result); END_FUNCTION;
FUNCTION Check_Geometric_Dimension(capt : SET [0 : ?] OF Cartesian_Point; dir : SET [0 : ?] OF Direction; grc : SET [0 : ?] OF Geometric_Representation_Context) : BOOLEAN; LOCAL globaldim : INTEGER := 0; reps : SET [0 : ?] OF Representation := []; result : BOOLEAN := TRUE; END_LOCAL; IF (SIZEOF(grc) = 0) THEN RETURN(FALSE); END_IF; globaldim := Geometric_Dimensionalities_In_Contexts(grc); IF (globaldim > 0) THEN IF (SIZEOF(capt) > 0) THEN REPEAT i := 1 TO HIINDEX(capt); IF (HIINDEX(capt[i].coordinates) <> globaldim) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; IF (SIZEOF(dir) > 0) THEN REPEAT i := 1 TO HIINDEX(dir); IF (HIINDEX(dir[i].direction_ratios) <> globaldim) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; RETURN(result); ELSE IF (SIZEOF(capt) > 0) THEN REPEAT i := 1 TO HIINDEX(capt); reps := Using_Representations(capt[i]); IF (SIZEOF(reps) > 0) THEN REPEAT j := 1 TO HIINDEX(reps); IF (HIINDEX(capt[i].coordinates) <> reps[j].context_of_items\Geometric_Representation_Context.coordinate_space_dimension) THEN RETURN(FALSE); END_IF; END_REPEAT; ELSE RETURN(FALSE); END_IF; END_REPEAT; END_IF; IF (SIZEOF(dir) > 0) THEN REPEAT i := 1 TO HIINDEX(dir); reps := Using_Representations(dir[i]); IF (SIZEOF(reps) > 0) THEN REPEAT j := 1 TO HIINDEX(reps); IF (HIINDEX(dir[i].direction_ratios) <> reps[j].context_of_items\Geometric_Representation_Context.coordinate_space_dimension) THEN RETURN(FALSE); END_IF; END_REPEAT; ELSE RETURN(FALSE); END_IF; END_REPEAT; END_IF; END_IF; RETURN(result); END_FUNCTION;
FUNCTION Check_Sparse_Index_Domain(idxdom : Tuple_Space; base : Zero_Or_One; shape : LIST [1 : ?] OF Positive_Integer; order : Ordering_Type) : BOOLEAN; LOCAL mthspc : Maths_Space; interval : Finite_Integer_Interval; i : INTEGER; END_LOCAL; mthspc := Factor1(idxdom); interval := mthspc; IF order = By_Rows THEN i := 1; ELSE i := 2; END_IF; RETURN(Bool((interval.min <= base) AND (interval.max >= base + shape[i]))); END_FUNCTION;
FUNCTION Check_Sparse_Index_To_Loc(index_range : Tuple_Space; loc_domain : Tuple_Space) : BOOLEAN; LOCAL temp : Maths_Space; idx_rng_itvl : Finite_Integer_Interval; loc_dmn_itvl : Finite_Integer_Interval; END_LOCAL; temp := Factor1(index_range); IF (Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(temp) THEN temp := Factor1(temp); END_IF; IF NOT ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) THEN RETURN(FALSE); END_IF; idx_rng_itvl := temp; temp := Factor1(loc_domain); IF (Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(temp) THEN temp := Factor1(temp); END_IF; IF NOT ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) THEN RETURN(FALSE); END_IF; loc_dmn_itvl := temp; RETURN(Bool((loc_dmn_itvl.min <= idx_rng_itvl.min) AND (idx_rng_itvl.max <= loc_dmn_itvl.max + 1))); END_FUNCTION;
FUNCTION Check_Sparse_Loc_Range(locrng : Tuple_Space; base : Zero_Or_One; shape : LIST [1 : ?] OF Positive_Integer; order : Ordering_Type) : BOOLEAN; LOCAL mthspc : Maths_Space; interval : Finite_Integer_Interval; i : INTEGER; END_LOCAL; IF Space_Dimension(locrng) <> 1 THEN RETURN(FALSE); END_IF; mthspc := Factor1(locrng); IF NOT ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(mthspc)) THEN RETURN(FALSE); END_IF; interval := mthspc; IF order = By_Rows THEN i := 2; ELSE i := 1; END_IF; RETURN(Bool((interval.min >= base) AND (interval.max <= base + shape[i] - 1))); END_FUNCTION;
FUNCTION Check_Text_Alignment(ct : Composite_Text) : BOOLEAN; LOCAL a : SET OF Text_Alignment := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(ct.collected_text); a := a + [ct.collected_text[i]\Text_Literal.alignment]; END_REPEAT; RETURN(SIZEOF(a) = 1); END_FUNCTION;
FUNCTION Check_Text_Font(ct : Composite_Text) : BOOLEAN; LOCAL f : SET OF Font_Select := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(ct.collected_text); f := f + [ct.collected_text[i]\Text_Literal.font]; END_REPEAT; RETURN(SIZEOF(f) <= 1); END_FUNCTION;
FUNCTION Class_Assignment_Is_Valid(aia : Applied_Classification_Assignment) : BOOLEAN; LOCAL item : Classification_Item; role : Classification_Role; END_LOCAL; role := aia\Classification_Assignment.role; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS_SYSTEM' IN TYPEOF(aia\Classification_Assignment.assigned_class)) THEN IF (role\Classification_Role.name <> 'class system membership') THEN RETURN(FALSE); END_IF; REPEAT i := LOINDEX(aia\Applied_Classification_Assignment.items) TO HIINDEX(aia\Applied_Classification_Assignment.items); item := aia\Applied_Classification_Assignment.items[i]; IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_CLASS'] * TYPEOF(item)) = 0) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CHARACTERIZED_CLASS' IN TYPEOF(aia\Classification_Assignment.assigned_class)) THEN IF NOT (role\Classification_Role.name IN ['definitional','non-definitional','']) THEN RETURN(FALSE); END_IF; REPEAT i := LOINDEX(aia\Applied_Classification_Assignment.items) TO HIINDEX(aia\Applied_Classification_Assignment.items); item := aia\Applied_Classification_Assignment.items[i]; IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASSIFIED_ITEM'] * TYPEOF(item)) = 0) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; IF (role\Classification_Role.name = 'definitional') THEN IF NOT (SIZEOF(QUERY(it <* aia\Applied_Classification_Assignment.items | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION'] * TYPEOF(it)) = 1))) = 0) THEN RETURN(FALSE); END_IF; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Closed_Shell_Reversed(a_shell : Closed_Shell) : Oriented_Closed_Shell; LOCAL the_reverse : Oriented_Closed_Shell; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_CLOSED_SHELL' IN TYPEOF(a_shell)) THEN the_reverse := Dummy_Tri || Connected_Face_Set(a_shell\Connected_Face_Set.cfs_faces) || Closed_Shell() || Oriented_Closed_Shell(a_shell\Oriented_Closed_Shell.closed_shell_element, NOT (a_shell\Oriented_Closed_Shell.Orientation)); ELSE the_reverse := Dummy_Tri || Connected_Face_Set(a_shell\Connected_Face_Set.cfs_faces) || Closed_Shell() || Oriented_Closed_Shell(a_shell, FALSE); END_IF; RETURN(the_reverse); END_FUNCTION;
FUNCTION Collect_Joints(items : SET [1 : ?] OF Pair_Representation_Relationship) : SET OF Kinematic_Joint; LOCAL result : SET OF Kinematic_Joint := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(items); result := result + items[i].transformation_operator.joint; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Compare_Basis_And_Coef(basis : LIST [1 : ?] OF B_Spline_Basis; coef : Maths_Function) : BOOLEAN; LOCAL shape : LIST OF Positive_Integer; END_LOCAL; IF NOT EXISTS(basis) OR NOT EXISTS(coef) THEN RETURN(FALSE); END_IF; shape := Shape_Of_Array(coef); IF NOT EXISTS(shape) THEN RETURN(FALSE); END_IF; IF SIZEOF(shape) < SIZEOF(basis) THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO SIZEOF(basis); IF (basis[i].num_basis = shape[i]) <> TRUE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Compatible_Complex_Number_Regions(sp1 : Maths_Space; sp2 : Maths_Space) : BOOLEAN; LOCAL typenames : SET OF STRING := Stripped_Typeof(sp1); crgn1 : Cartesian_Complex_Number_Region; crgn2 : Cartesian_Complex_Number_Region; prgn1 : Polar_Complex_Number_Region; prgn2 : Polar_Complex_Number_Region; prgn1c2 : Polar_Complex_Number_Region; prgn2c1 : Polar_Complex_Number_Region; sp1_is_crgn : BOOLEAN; sp2_is_crgn : BOOLEAN; END_LOCAL; IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN sp1_is_crgn := TRUE; crgn1 := sp1; ELSE IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN sp1_is_crgn := FALSE; prgn1 := sp1; ELSE RETURN(TRUE); END_IF; END_IF; typenames := Stripped_Typeof(sp2); IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN typenames THEN sp2_is_crgn := TRUE; crgn2 := sp2; ELSE IF 'POLAR_COMPLEX_NUMBER_REGION' IN typenames THEN sp2_is_crgn := FALSE; prgn2 := sp2; ELSE RETURN(TRUE); END_IF; END_IF; IF sp1_is_crgn AND sp2_is_crgn THEN RETURN(Compatible_Intervals(crgn1.real_constraint, crgn2.real_constraint) AND Compatible_Intervals(crgn1.imag_constraint, crgn2.imag_constraint)); END_IF; IF NOT sp1_is_crgn AND NOT sp2_is_crgn AND (prgn1.centre.real_part = prgn2.centre.real_part) AND (prgn1.centre.imag_part = prgn2.centre.imag_part) THEN IF NOT Compatible_Intervals(prgn1.distance_constraint, prgn2.distance_constraint) THEN RETURN(FALSE); END_IF; IF Compatible_Intervals(prgn1.direction_constraint, prgn2.direction_constraint) THEN RETURN(TRUE); END_IF; IF (prgn1.direction_constraint.max > PI) AND (prgn2.direction_constraint.max < PI) THEN RETURN(Compatible_Intervals(prgn2.direction_constraint, Make_Finite_Real_Interval(-PI, Open, prgn1.direction_constraint.max - 2.0 * PI, prgn1.direction_constraint.max_closure))); END_IF; IF (prgn2.direction_constraint.max > PI) AND (prgn1.direction_constraint.max < PI) THEN RETURN(Compatible_Intervals(prgn1.direction_constraint, Make_Finite_Real_Interval(-PI, Open, prgn2.direction_constraint.max - 2.0 * PI, prgn2.direction_constraint.max_closure))); END_IF; RETURN(FALSE); END_IF; IF sp1_is_crgn AND NOT sp2_is_crgn THEN crgn2 := Enclose_Pregion_In_Cregion(prgn2); prgn1 := Enclose_Cregion_In_Pregion(crgn1, prgn2.centre); RETURN(Compatible_Complex_Number_Regions(crgn1, crgn2) AND Compatible_Complex_Number_Regions(prgn1, prgn2)); END_IF; IF NOT sp1_is_crgn AND sp2_is_crgn THEN crgn1 := Enclose_Pregion_In_Cregion(prgn1); prgn2 := Enclose_Cregion_In_Pregion(crgn2, prgn1.centre); RETURN(Compatible_Complex_Number_Regions(crgn1, crgn2) AND Compatible_Complex_Number_Regions(prgn1, prgn2)); END_IF; prgn1c2 := Enclose_Pregion_In_Pregion(prgn1, prgn2.centre); prgn2c1 := Enclose_Pregion_In_Pregion(prgn2, prgn1.centre); RETURN(Compatible_Complex_Number_Regions(prgn1, prgn2c1) AND Compatible_Complex_Number_Regions(prgn1c2, prgn2)); END_FUNCTION;
FUNCTION Compatible_Es_Values(esval1 : Elementary_Space_Enumerators; esval2 : Elementary_Space_Enumerators) : BOOLEAN; LOCAL esval1_is_numeric : LOGICAL; esval2_is_numeric : LOGICAL; END_LOCAL; IF (esval1 = esval2) OR (esval1 = Es_Generics) OR (esval2 = Es_Generics) THEN RETURN(TRUE); END_IF; esval1_is_numeric := (esval1 >= Es_Numbers) AND (esval1 <= Es_Integers); esval2_is_numeric := (esval2 >= Es_Numbers) AND (esval2 <= Es_Integers); IF (esval1_is_numeric AND (esval2 = Es_Numbers)) OR (esval2_is_numeric AND (esval1 = Es_Numbers)) THEN RETURN(TRUE); END_IF; IF esval1_is_numeric XOR esval2_is_numeric THEN RETURN(FALSE); END_IF; IF ((esval1 = Es_Logicals) AND (esval2 = Es_Booleans)) OR ((esval1 = Es_Booleans) AND (esval2 = Es_Logicals)) THEN RETURN(TRUE); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Compatible_Intervals(sp1 : Maths_Space; sp2 : Maths_Space) : BOOLEAN; LOCAL amin : REAL; amax : REAL; END_LOCAL; IF Min_Exists(sp1) AND Max_Exists(sp2) THEN amin := Real_Min(sp1); amax := Real_Max(sp2); IF amin > amax THEN RETURN(FALSE); END_IF; IF amin = amax THEN RETURN(Min_Included(sp1) AND Max_Included(sp2)); END_IF; END_IF; IF Min_Exists(sp2) AND Max_Exists(sp1) THEN amin := Real_Min(sp2); amax := Real_Max(sp1); IF amin > amax THEN RETURN(FALSE); END_IF; IF amin = amax THEN RETURN(Min_Included(sp2) AND Max_Included(sp1)); END_IF; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Compatible_Spaces(sp1 : Maths_Space; sp2 : Maths_Space) : BOOLEAN; LOCAL types1 : SET OF STRING := Stripped_Typeof(sp1); types2 : SET OF STRING := Stripped_Typeof(sp2); lgcl : LOGICAL := UNKNOWN; m : INTEGER; n : INTEGER; s1 : Maths_Space; s2 : Maths_Space; END_LOCAL; IF 'FINITE_SPACE' IN types1 THEN REPEAT i := 1 TO SIZEOF(sp1\Finite_Space.members); lgcl := Member_Of(sp1\Finite_Space.members[i], sp2); IF lgcl <> FALSE THEN RETURN(TRUE); END_IF; END_REPEAT; RETURN(FALSE); END_IF; IF 'FINITE_SPACE' IN types2 THEN REPEAT i := 1 TO SIZEOF(sp2\Finite_Space.members); lgcl := Member_Of(sp2\Finite_Space.members[i], sp1); IF lgcl <> FALSE THEN RETURN(TRUE); END_IF; END_REPEAT; RETURN(FALSE); END_IF; IF 'ELEMENTARY_SPACE' IN types1 THEN IF sp1\Elementary_Space.space_id = Es_Generics THEN RETURN(TRUE); END_IF; IF 'ELEMENTARY_SPACE' IN types2 THEN RETURN(Compatible_Es_Values(sp1\Elementary_Space.space_id, sp2\Elementary_Space.space_id)); END_IF; IF ('FINITE_INTEGER_INTERVAL' IN types2) OR ('INTEGER_INTERVAL_FROM_MIN' IN types2) OR ('INTEGER_INTERVAL_TO_MAX' IN types2) THEN RETURN(Compatible_Es_Values(sp1\Elementary_Space.space_id, Es_Integers)); END_IF; IF ('FINITE_REAL_INTERVAL' IN types2) OR ('REAL_INTERVAL_FROM_MIN' IN types2) OR ('REAL_INTERVAL_TO_MAX' IN types2) THEN RETURN(Compatible_Es_Values(sp1\Elementary_Space.space_id, Es_Reals)); END_IF; IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types2) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types2) THEN RETURN(Compatible_Es_Values(sp1\Elementary_Space.space_id, Es_Complex_Numbers)); END_IF; IF 'TUPLE_SPACE' IN types2 THEN RETURN(FALSE); END_IF; IF 'FUNCTION_SPACE' IN types2 THEN RETURN(Bool(sp1\Elementary_Space.space_id = Es_Maths_Functions)); END_IF; RETURN(TRUE); END_IF; IF 'ELEMENTARY_SPACE' IN types2 THEN IF sp2\Elementary_Space.space_id = Es_Generics THEN RETURN(TRUE); END_IF; IF ('FINITE_INTEGER_INTERVAL' IN types1) OR ('INTEGER_INTERVAL_FROM_MIN' IN types1) OR ('INTEGER_INTERVAL_TO_MAX' IN types1) THEN RETURN(Compatible_Es_Values(sp2\Elementary_Space.space_id, Es_Integers)); END_IF; IF ('FINITE_REAL_INTERVAL' IN types1) OR ('REAL_INTERVAL_FROM_MIN' IN types1) OR ('REAL_INTERVAL_TO_MAX' IN types1) THEN RETURN(Compatible_Es_Values(sp2\Elementary_Space.space_id, Es_Reals)); END_IF; IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types1) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types1) THEN RETURN(Compatible_Es_Values(sp2\Elementary_Space.space_id, Es_Complex_Numbers)); END_IF; IF 'TUPLE_SPACE' IN types1 THEN RETURN(FALSE); END_IF; IF 'FUNCTION_SPACE' IN types1 THEN RETURN(Bool(sp2\Elementary_Space.space_id = Es_Maths_Functions)); END_IF; RETURN(TRUE); END_IF; IF Subspace_Of_Es(sp1, Es_Integers) THEN IF Subspace_Of_Es(sp2, Es_Integers) THEN RETURN(Compatible_Intervals(sp1, sp2)); END_IF; RETURN(FALSE); END_IF; IF Subspace_Of_Es(sp2, Es_Integers) THEN RETURN(FALSE); END_IF; IF Subspace_Of_Es(sp1, Es_Reals) THEN IF Subspace_Of_Es(sp2, Es_Reals) THEN RETURN(Compatible_Intervals(sp1, sp2)); END_IF; RETURN(FALSE); END_IF; IF Subspace_Of_Es(sp2, Es_Reals) THEN RETURN(FALSE); END_IF; IF Subspace_Of_Es(sp1, Es_Complex_Numbers) THEN IF Subspace_Of_Es(sp2, Es_Complex_Numbers) THEN RETURN(Compatible_Complex_Number_Regions(sp1, sp2)); END_IF; RETURN(FALSE); END_IF; IF Subspace_Of_Es(sp2, Es_Complex_Numbers) THEN RETURN(FALSE); END_IF; IF 'UNIFORM_PRODUCT_SPACE' IN types1 THEN IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN IF sp1\Uniform_Product_Space.exponent <> sp2\Uniform_Product_Space.exponent THEN RETURN(FALSE); END_IF; RETURN(Compatible_Spaces(sp1\Uniform_Product_Space.base, sp2\Uniform_Product_Space.base)); END_IF; IF 'LISTED_PRODUCT_SPACE' IN types2 THEN n := SIZEOF(sp2\Listed_Product_Space.factors); IF sp1\Uniform_Product_Space.exponent <> n THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO n; IF NOT Compatible_Spaces(sp1\Uniform_Product_Space.base, sp2\Listed_Product_Space.factors[i]) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_IF; IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN m := sp1\Uniform_Product_Space.exponent; n := Space_Dimension(sp2\Extended_Tuple_Space.base); IF m < n THEN RETURN(FALSE); END_IF; IF m = n THEN RETURN(Compatible_Spaces(sp1, sp2\Extended_Tuple_Space.base)); END_IF; RETURN(Compatible_Spaces(sp1, Assoc_Product_Space(sp2\Extended_Tuple_Space.base, Make_Uniform_Product_Space(sp2\Extended_Tuple_Space.extender, m - n)))); END_IF; IF 'FUNCTION_SPACE' IN types2 THEN RETURN(FALSE); END_IF; RETURN(TRUE); END_IF; IF 'LISTED_PRODUCT_SPACE' IN types1 THEN n := SIZEOF(sp1\Listed_Product_Space.factors); IF 'UNIFORM_PRODUCT_SPACE' IN types2 THEN IF n <> sp2\Uniform_Product_Space.exponent THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO n; IF NOT Compatible_Spaces(sp2\Uniform_Product_Space.base, sp1\Listed_Product_Space.factors[i]) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_IF; IF 'LISTED_PRODUCT_SPACE' IN types2 THEN IF n <> SIZEOF(sp2\Listed_Product_Space.factors) THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO n; IF NOT Compatible_Spaces(sp1\Listed_Product_Space.factors[i], sp2\Listed_Product_Space.factors[i]) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_IF; IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN m := Space_Dimension(sp2\Extended_Tuple_Space.base); IF n < m THEN RETURN(FALSE); END_IF; IF n = m THEN RETURN(Compatible_Spaces(sp1, sp2\Extended_Tuple_Space.base)); END_IF; RETURN(Compatible_Spaces(sp1, Assoc_Product_Space(sp2\Extended_Tuple_Space.base, Make_Uniform_Product_Space(sp2\Extended_Tuple_Space.extender, n - m)))); END_IF; IF (Schema_Prefix + 'FUNCTION_SPACE') IN types2 THEN RETURN(FALSE); END_IF; RETURN(TRUE); END_IF; IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN IF ('UNIFORM_PRODUCT_SPACE' IN types2) OR ('LISTED_PRODUCT_SPACE' IN types2) THEN RETURN(Compatible_Spaces(sp2, sp1)); END_IF; IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN IF NOT Compatible_Spaces(sp1\Extended_Tuple_Space.extender, sp2\Extended_Tuple_Space.extender) THEN RETURN(FALSE); END_IF; n := Space_Dimension(sp1\Extended_Tuple_Space.base); m := Space_Dimension(sp2\Extended_Tuple_Space.base); IF n < m THEN RETURN(Compatible_Spaces(Assoc_Product_Space(sp1\Extended_Tuple_Space.base, Make_Uniform_Product_Space(sp1\Extended_Tuple_Space.extender, m - n)), sp2\Extended_Tuple_Space.base)); END_IF; IF n = m THEN RETURN(Compatible_Spaces(sp1\Extended_Tuple_Space.base, sp2\Extended_Tuple_Space.base)); END_IF; IF n > m THEN RETURN(Compatible_Spaces(sp1\Extended_Tuple_Space.base, Assoc_Product_Space(sp2\Extended_Tuple_Space.base, Make_Uniform_Product_Space(sp2\Extended_Tuple_Space.extender, n - m)))); END_IF; END_IF; IF 'FUNCTION_SPACE' IN types2 THEN RETURN(FALSE); END_IF; RETURN(TRUE); END_IF; IF 'FUNCTION_SPACE' IN types1 THEN IF 'FUNCTION_SPACE' IN types2 THEN s1 := sp1\Function_Space.domain_argument; s2 := sp2\Function_Space.domain_argument; CASE sp1\Function_Space.domain_constraint OF Sc_Equal : BEGIN CASE sp2\Function_Space.domain_constraint OF Sc_Equal : lgcl := Subspace_Of(s1, s2) AND Subspace_Of(s2, s1); Sc_Subspace : lgcl := Subspace_Of(s1, s2); Sc_Member : lgcl := Member_Of(s1, s2); END_CASE; END; Sc_Subspace : BEGIN CASE sp2\Function_Space.domain_constraint OF Sc_Equal : lgcl := Subspace_Of(s2, s1); Sc_Subspace : lgcl := Compatible_Spaces(s1, s2); Sc_Member : lgcl := UNKNOWN; END_CASE; END; Sc_Member : BEGIN CASE sp2\Function_Space.domain_constraint OF Sc_Equal : lgcl := Member_Of(s2, s1); Sc_Subspace : lgcl := UNKNOWN; Sc_Member : lgcl := Compatible_Spaces(s1, s2); END_CASE; END; END_CASE; IF lgcl = FALSE THEN RETURN(FALSE); END_IF; s1 := sp1\Function_Space.range_argument; s2 := sp2\Function_Space.range_argument; CASE sp1\Function_Space.range_constraint OF Sc_Equal : BEGIN CASE sp2\Function_Space.range_constraint OF Sc_Equal : lgcl := Subspace_Of(s1, s2) AND Subspace_Of(s2, s1); Sc_Subspace : lgcl := Subspace_Of(s1, s2); Sc_Member : lgcl := Member_Of(s1, s2); END_CASE; END; Sc_Subspace : BEGIN CASE sp2\Function_Space.range_constraint OF Sc_Equal : lgcl := Subspace_Of(s2, s1); Sc_Subspace : lgcl := Compatible_Spaces(s1, s2); Sc_Member : lgcl := UNKNOWN; END_CASE; END; Sc_Member : BEGIN CASE sp2\Function_Space.range_constraint OF Sc_Equal : lgcl := Member_Of(s2, s1); Sc_Subspace : lgcl := UNKNOWN; Sc_Member : lgcl := Compatible_Spaces(s1, s2); END_CASE; END; END_CASE; IF lgcl = FALSE THEN RETURN(FALSE); END_IF; RETURN(TRUE); END_IF; RETURN(TRUE); END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Composable_Sequence(operands : LIST [2 : ?] OF Maths_Function) : BOOLEAN; REPEAT i := 1 TO SIZEOF(operands) - 1; IF NOT Compatible_Spaces(operands[i].range, operands[i + 1].domain) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Compute_Total_Depth(swsrh : Solid_With_Stepped_Round_Hole) : Positive_Length_Measure; LOCAL i : Positive_Integer; n : Positive_Integer := swsrh.segments; td : Positive_Length_Measure := swsrh.segment_depths[1]; END_LOCAL; IF n = 1 THEN RETURN(td); ELSE REPEAT i := 2 TO n; td := td + swsrh.segment_depths[i]; END_REPEAT; END_IF; RETURN(td); END_FUNCTION;
FUNCTION Conditional_Reverse(p : BOOLEAN; an_item : Reversible_Topology) : Reversible_Topology; IF p THEN RETURN(an_item); ELSE RETURN(Topology_Reversed(an_item)); END_IF; END_FUNCTION;
FUNCTION Consistent_Sizes(max : INTEGER; point_lists : LIST OF Point_Cloud_Dataset) : BOOLEAN; LOCAL ndatasets : INTEGER := SIZEOF(point_lists); result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO (ndatasets - 1); IF (SIZEOF(point_lists[i].point_coordinates) <> max) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; IF (SIZEOF(point_lists[ndatasets].point_coordinates) > max) THEN result := FALSE; RETURN(result); END_IF; RETURN(result); END_FUNCTION;
FUNCTION Constraints_Composite_Curve_On_Surface(c : Composite_Curve_On_Surface) : BOOLEAN; LOCAL n_segments : INTEGER := SIZEOF(c.segments); END_LOCAL; REPEAT k := 1 TO n_segments; IF (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(c\Composite_Curve.segments[k].parent_curve))) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(c\Composite_Curve.segments[k].parent_curve))) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c\Composite_Curve.segments[k].parent_curve))) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Constraints_Geometry_Shell_Based_Surface_Model(m : Shell_Based_Surface_Model) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT j := 1 TO SIZEOF(m.sbsm_boundary); IF (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL' IN TYPEOF(m.sbsm_boundary[j])) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL' IN TYPEOF(m.sbsm_boundary[j])))) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Constraints_Geometry_Shell_Based_Wireframe_Model(m : Shell_Based_Wireframe_Model) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT j := 1 TO SIZEOF(m.sbwm_boundary); IF (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.WIRE_SHELL' IN TYPEOF(m.sbwm_boundary[j])) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VERTEX_SHELL' IN TYPEOF(m.sbwm_boundary[j])))) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Constraints_Param_B_Spline(degree : INTEGER; up_knots : INTEGER; up_cp : INTEGER; knot_mult : LIST [0 : ?] OF INTEGER; knots : LIST [0 : ?] OF Parameter_Value) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; k : INTEGER; sum : INTEGER; END_LOCAL; (* Find sum of knot multiplicities. *) sum := knot_mult[1]; REPEAT i := 2 TO up_knots; sum := sum + knot_mult[i]; END_REPEAT; (* Check limits holding for all B-spline parametrisations *) IF (degree < 1) OR (up_knots < 2) OR (up_cp < degree) OR (sum <> (degree + up_cp + 2)) THEN result := FALSE; RETURN(result); END_IF; k := knot_mult[1]; IF (k < 1) OR (k > degree + 1) THEN result := FALSE; RETURN(result); END_IF; REPEAT i := 2 TO up_knots; IF (knot_mult[i] < 1) OR (knots[i] <= knots[i - 1]) THEN result := FALSE; RETURN(result); END_IF; k := knot_mult[i]; IF (i < up_knots) AND (k > degree) THEN result := FALSE; RETURN(result); END_IF; IF (i = up_knots) AND (k > degree + 1) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Constraints_Param_Local_B_Spline(degree : INTEGER; knot_mult : LIST OF INTEGER; knots : LIST OF INTEGER) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; k : INTEGER; up_knots : INTEGER; sum : INTEGER; END_LOCAL; (* Find sum of knot multiplicities. *) up_knots := SIZEOF(knots); sum := knot_mult[1]; REPEAT i := 2 TO up_knots; sum := sum + knot_mult[i]; END_REPEAT; (* Check limits holding for all B-spline parametrisations *) IF (degree < 1) OR (up_knots < 2) OR (sum <> (degree + 2)) THEN result := FALSE; RETURN(result); END_IF; k := knot_mult[1]; IF (k < 1) OR (k > degree + 1) THEN result := FALSE; RETURN(result); END_IF; (* first pointer shall be 1 or more *) IF (knots[1] < 1) THEN result := FALSE; END_IF; REPEAT i := 2 TO up_knots; IF (knot_mult[i] < 1) OR (knots[i] <= knots[i - 1]) THEN result := FALSE; RETURN(result); END_IF; k := knot_mult[i]; IF (i < up_knots) AND (k > degree) THEN result := FALSE; RETURN(result); END_IF; IF (i = up_knots) AND (k > degree + 1) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Constraints_Rectangular_Composite_Surface(s : Rectangular_Composite_Surface) : BOOLEAN; REPEAT i := 1 TO s.n_u; REPEAT j := 1 TO s.n_v; IF NOT (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(s.segments[i][j].parent_surface)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF(s.segments[i][j].parent_surface))) THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; (* Check the transition codes, omitting the last row or column *) REPEAT i := 1 TO s.n_u - 1; REPEAT j := 1 TO s.n_v; IF s.segments[i][j].u_transition = Discontinuous THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; REPEAT i := 1 TO s.n_u; REPEAT j := 1 TO s.n_v - 1; IF s.segments[i][j].v_transition = Discontinuous THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Constraints_Scaling(factors : LIST OF REAL) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO SIZEOF(factors); IF NOT ({0.0 < factors[i] <= 1.0}) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Control_Characters_Free(s : STRING) : BOOLEAN; LOCAL ch : STRING; END_LOCAL; REPEAT i := 1 TO LENGTH(s); ch := s[i]; IF (ch = '\x9') OR (ch = '\xA') OR (ch = '\xD') THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Convert_Spatial_To_Ypr_Rotation(pair : Kinematic_Pair; rotation : Spatial_Rotation) : Ypr_Rotation; LOCAL axis : Direction; angle : Plane_Angle_Measure; conv_angle : Plane_Angle_Measure; ya : Plane_Angle_Measure; pa : Plane_Angle_Measure; ra : Plane_Angle_Measure; ucf : REAL; dx : REAL; dy : REAL; dz : REAL; s_a : REAL; c_a : REAL; rotmat : ARRAY [1 : 3] OF ARRAY [1 : 3] OF REAL; cm1 : REAL; s_y : REAL; c_y : REAL; s_r : REAL; c_r : REAL; END_LOCAL; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.YPR_ROTATION' IN TYPEOF(rotation) THEN RETURN(rotation); END_IF; axis := Normalise(rotation\Rotation_About_Direction.direction_of_axis); angle := rotation\Rotation_About_Direction.rotation_angle; IF (angle = 0.0) THEN RETURN([0.0,0.0,0.0]); END_IF; dx := axis.direction_ratios[1]; dy := axis.direction_ratios[2]; dz := axis.direction_ratios[3]; conv_angle := Plane_Angle_For_Pair_In_Radian(pair, angle); IF NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(conv_angle)) THEN RETURN(?); END_IF; ucf := angle / conv_angle; s_a := SIN(conv_angle); c_a := COS(conv_angle); IF (dy = 0.0) AND (dx * dz = 0.0) THEN REPEAT WHILE (conv_angle <= -PI); conv_angle := conv_angle + 2.0 * PI; END_REPEAT; REPEAT WHILE (conv_angle > PI); conv_angle := conv_angle - 2.0 * PI; END_REPEAT; ya := ucf * conv_angle; IF (conv_angle <> PI) THEN ra := -ya; ELSE ra := ya; END_IF; IF (dx <> 0.0) THEN IF (dx > 0.0) THEN RETURN([0.0,0.0,ya]); ELSE RETURN([0.0,0.0,ra]); END_IF; ELSE IF (dz > 0.0) THEN RETURN([ya,0.0,0.0]); ELSE RETURN([ra,0.0,0.0]); END_IF; END_IF; END_IF; IF ((dy <> 0.0) AND (dx = 0.0) AND (dz = 0.0)) THEN IF (c_a >= 0.0) THEN ya := 0.0; ra := 0.0; ELSE ya := ucf * PI; ra := ya; END_IF; pa := ucf * ATAN(s_a, ABS(c_a)); IF (dy < 0.0) THEN pa := -pa; END_IF; RETURN([ya,pa,ra]); END_IF; cm1 := 1.0 - c_a; rotmat := [[dx * dx * cm1 + c_a,dx * dy * cm1 - dz * s_a,dx * dz * cm1 + dy * s_a], [dx * dy * cm1 + dz * s_a,dy * dy * cm1 + c_a,dy * dz * cm1 - dx * s_a], [dx * dz * cm1 - dy * s_a,dy * dz * cm1 + dx * s_a,dz * dz * cm1 + c_a]]; IF (ABS(rotmat[1][3]) = 1.0) THEN BEGIN IF (rotmat[1][3] = 1.0) THEN pa := 0.5 * PI; ELSE pa := -0.5 * PI; END_IF; ra := 0.0; ya := ATAN(rotmat[2][1], rotmat[2][2]); IF (rotmat[2][2] < 0.0) THEN IF ya <= 0.0 THEN ya := ya + PI; ELSE ya := ya - PI; END_IF; END_IF; END; ELSE BEGIN ya := ATAN(-rotmat[1][2], rotmat[1][1]); IF (rotmat[1][1] < 0.0) THEN IF (ya <= 0.0) THEN ya := ya + PI; ELSE ya := ya - PI; END_IF; END_IF; ra := ATAN(-rotmat[2][3], rotmat[3][3]); IF (rotmat[3][3] < 0.0) THEN IF (ra <= 0.0) THEN ra := ra + PI; ELSE ra := ra - PI; END_IF; END_IF; s_y := SIN(ya); c_y := COS(ya); s_r := SIN(ra); c_r := COS(ra); IF ((ABS(s_y) > ABS(c_y)) AND (ABS(s_y) > ABS(s_r)) AND (ABS(s_y) > ABS(c_r))) THEN cm1 := -rotmat[1][2] / s_y; ELSE IF ((ABS(c_y) > ABS(s_r)) AND (ABS(c_y) > ABS(c_r))) THEN cm1 := rotmat[1][1] / c_y; ELSE IF (ABS(s_r) > ABS(c_r)) THEN cm1 := -rotmat[2][3] / s_r; ELSE cm1 := rotmat[3][3] / c_r; END_IF; END_IF; END_IF; pa := ATAN(rotmat[1][3], cm1); END; END_IF; ya := ya * ucf; pa := pa * ucf; ra := ra * ucf; RETURN([ya,pa,ra]); END_FUNCTION;
FUNCTION Convert_To_Literal(val : Maths_Atom) : Generic_Literal; LOCAL types : SET OF STRING := TYPEOF(val); END_LOCAL; IF 'INTEGER' IN types THEN RETURN(Make_Int_Literal(val)); END_IF; IF 'REAL' IN types THEN RETURN(Make_Real_Literal(val)); END_IF; IF 'BOOLEAN' IN types THEN RETURN(Make_Boolean_Literal(val)); END_IF; IF 'STRING' IN types THEN RETURN(Make_String_Literal(val)); END_IF; IF 'LOGICAL' IN types THEN RETURN(Make_Logical_Literal(val)); END_IF; IF 'BINARY' IN types THEN RETURN(Make_Binary_Literal(val)); END_IF; IF (Schema_Prefix + 'MATHS_ENUM_ATOM') IN types THEN RETURN(Make_Maths_Enum_Literal(val)); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Convert_To_Maths_Function(func : Maths_Function_Select) : Maths_Function; LOCAL efenum : Elementary_Function_Enumerators; mthfun : Maths_Function; END_LOCAL; IF (Schema_Prefix + 'MATHS_FUNCTION') IN TYPEOF(func) THEN mthfun := func; ELSE efenum := func; mthfun := Make_Elementary_Function(efenum); END_IF; RETURN(mthfun); END_FUNCTION;
FUNCTION Convert_To_Maths_Value(val : GENERIC : G) : Maths_Value; LOCAL types : SET OF STRING := TYPEOF(val); ival : Maths_Integer; rval : Maths_Real; nval : Maths_Number; tfval : Maths_Boolean; lval : Maths_Logical; sval : Maths_String; bval : Maths_Binary; tval : Maths_Tuple := The_Empty_Maths_Tuple; mval : Maths_Value; END_LOCAL; IF (Schema_Prefix + 'MATHS_VALUE') IN types THEN RETURN(val); END_IF; IF 'INTEGER' IN types THEN ival := val; RETURN(ival); END_IF; IF 'REAL' IN types THEN rval := val; RETURN(rval); END_IF; IF 'NUMBER' IN types THEN nval := val; RETURN(nval); END_IF; IF 'BOOLEAN' IN types THEN tfval := val; RETURN(tfval); END_IF; IF 'LOGICAL' IN types THEN lval := val; RETURN(lval); END_IF; IF 'STRING' IN types THEN sval := val; RETURN(sval); END_IF; IF 'BINARY' IN types THEN bval := val; RETURN(bval); END_IF; IF 'LIST' IN types THEN REPEAT i := 1 TO SIZEOF(val); mval := Convert_To_Maths_Value(val[i]); IF NOT EXISTS(mval) THEN RETURN(?); END_IF; INSERT(tval, mval, i - 1); END_REPEAT; RETURN(tval); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Convert_To_Operand(val : Maths_Value) : Generic_Expression; LOCAL types : SET OF STRING := Stripped_Typeof(val); END_LOCAL; IF 'GENERIC_EXPRESSION' IN types THEN RETURN(val); END_IF; IF 'MATHS_ATOM' IN types THEN RETURN(Convert_To_Literal(val)); END_IF; IF 'ATOM_BASED_VALUE' IN types THEN RETURN(Make_Atom_Based_Literal(val)); END_IF; IF 'MATHS_TUPLE' IN types THEN RETURN(Make_Maths_Tuple_Literal(val)); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Convert_To_Operands(values : AGGREGATE OF Maths_Value) : LIST OF Generic_Expression; LOCAL operands : LIST OF Generic_Expression := []; loc : INTEGER := 0; END_LOCAL; IF NOT EXISTS(values) THEN RETURN(?); END_IF; REPEAT i := LOINDEX(values) TO HIINDEX(values); INSERT(operands, Convert_To_Operand(values[i]), loc); loc := loc + 1; END_REPEAT; RETURN(operands); END_FUNCTION;
FUNCTION Convert_To_Operands_Prcmfn(srcdom : Maths_Space_Or_Function; prepfun : LIST OF Maths_Function; finfun : Maths_Function_Select) : LIST [2 : ?] OF Generic_Expression; LOCAL operands : LIST OF Generic_Expression := []; END_LOCAL; INSERT(operands, srcdom, 0); REPEAT i := 1 TO SIZEOF(prepfun); INSERT(operands, prepfun[i], i); END_REPEAT; INSERT(operands, Convert_To_Maths_Function(finfun), SIZEOF(prepfun) + 1); RETURN(operands); END_FUNCTION;
FUNCTION Cross_Product(arg1 : Direction; arg2 : Direction) : Vector; LOCAL mag : REAL; res : Direction; v1 : LIST [3 : 3] OF REAL; v2 : LIST [3 : 3] OF REAL; result : Vector; END_LOCAL; IF (NOT EXISTS(arg1) OR (arg1.dim = 2)) OR (NOT EXISTS(arg2) OR (arg2.dim = 2)) THEN RETURN(?); ELSE BEGIN v1 := Normalise(arg1).direction_ratios; v2 := Normalise(arg2).direction_ratios; res := Dummy_Gri || Direction([(v1[2] * v2[3] - v1[3] * v2[2]), (v1[3] * v2[1] - v1[1] * v2[3]), (v1[1] * v2[2] - v1[2] * v2[1])]); mag := 0.0; REPEAT i := 1 TO 3; mag := mag + res.direction_ratios[i] * res.direction_ratios[i]; END_REPEAT; IF (mag > 0.0) THEN result := Dummy_Gri || Vector(res, SQRT(mag)); ELSE result := Dummy_Gri || Vector(arg1, 0.0); END_IF; RETURN(result); END; END_IF; END_FUNCTION;
FUNCTION Curve_Weights_Positive(b : Rational_B_Spline_Curve) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.upper_index_on_control_points; IF b.weights[i] <= 0.0 THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Default_Tolerance_Table_Cell_Wr2(agg : Compound_Item_Definition) : BOOLEAN; BEGIN IF SIZEOF(agg) <= 5 THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION;
FUNCTION Default_Tolerance_Table_Cell_Wr3(agg : Compound_Item_Definition) : BOOLEAN; BEGIN IF (SIZEOF(QUERY(i <* agg | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\Representation_Item.name = 'significant number of digits')))) = 1) OR ((SIZEOF(QUERY(i <* agg | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\Representation_Item.name = 'lower limit')))) = 1) AND (SIZEOF(QUERY(i <* agg | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\Representation_Item.name = 'upper limit')))) = 1)) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION;
FUNCTION Default_Tolerance_Table_Cell_Wr4(agg : Compound_Item_Definition) : BOOLEAN; BEGIN IF (SIZEOF(QUERY(i <* agg | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\Representation_Item.name = 'plus minus tolerance value')))) = 1) OR ((SIZEOF(QUERY(i <* agg | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\Representation_Item.name = 'lower tolerance value')))) = 1) AND (SIZEOF(QUERY(i <* agg | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\Representation_Item.name = 'upper tolerance value')))) = 1)) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION;
FUNCTION Default_Tolerance_Table_Cell_Wr5(agg : Compound_Item_Definition) : BOOLEAN; BEGIN IF (SIZEOF(QUERY(i <* agg | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) <= 1) AND (SIZEOF(QUERY(i <* agg | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) = SIZEOF(QUERY(i <* agg | (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i\Representation_Item.name = 'cell description'))))) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION;
FUNCTION Definite_Integral_Check(domain : Tuple_Space; vrblint : Input_Selector; lowerinf : BOOLEAN; upperinf : BOOLEAN) : BOOLEAN; LOCAL domn : Tuple_Space := domain; fspc : Maths_Space; dim : Nonnegative_Integer; k : Positive_Integer; END_LOCAL; IF (Space_Dimension(domain) = 1) AND ((Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(Factor1(domain))) THEN domn := Factor1(domain); END_IF; dim := Space_Dimension(domn); k := vrblint; IF k > dim THEN RETURN(FALSE); END_IF; fspc := Factor_Space(domn, k); IF NOT ((Schema_Prefix + 'REAL_INTERVAL') IN TYPEOF(fspc)) THEN RETURN(FALSE); END_IF; IF lowerinf AND Min_Exists(fspc) THEN RETURN(FALSE); END_IF; IF upperinf AND Max_Exists(fspc) THEN RETURN(FALSE); END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Definite_Integral_Expr_Check(operands : LIST [2 : ?] OF Generic_Expression; lowerinf : BOOLEAN; upperinf : BOOLEAN) : BOOLEAN; LOCAL nops : INTEGER := 2; vspc : Maths_Space; dim : Nonnegative_Integer; k : Positive_Integer; bspc : Maths_Space; END_LOCAL; IF NOT lowerinf THEN nops := nops + 1; END_IF; IF NOT upperinf THEN nops := nops + 1; END_IF; IF SIZEOF(operands) <> nops THEN RETURN(FALSE); END_IF; IF NOT ('GENERIC_VARIABLE' IN Stripped_Typeof(operands[2])) THEN RETURN(FALSE); END_IF; IF NOT Has_Values_Space(operands[2]) THEN RETURN(FALSE); END_IF; vspc := Values_Space_Of(operands[2]); IF NOT ('REAL_INTERVAL' IN Stripped_Typeof(vspc)) THEN RETURN(FALSE); END_IF; IF lowerinf THEN IF Min_Exists(vspc) THEN RETURN(FALSE); END_IF; k := 3; ELSE IF NOT Has_Values_Space(operands[3]) THEN RETURN(FALSE); END_IF; bspc := Values_Space_Of(operands[3]); IF NOT Compatible_Spaces(bspc, vspc) THEN RETURN(FALSE); END_IF; k := 4; END_IF; IF upperinf THEN IF Max_Exists(vspc) THEN RETURN(FALSE); END_IF; ELSE IF NOT Has_Values_Space(operands[k]) THEN RETURN(FALSE); END_IF; bspc := Values_Space_Of(operands[k]); IF NOT Compatible_Spaces(bspc, vspc) THEN RETURN(FALSE); END_IF; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Dependently_Instantiated(set_of_input_instances : SET OF GENERIC : IGEN; set_of_input_types : SET OF STRING; previous_in_chain : LIST OF GENERIC : CGEN) : BOOLEAN; (* 'dependently_instantiated' To test whether all instances in the input set_of_input_instances are referenced by independently instantiable instances. If so, this function returns true. Set_of_input_types includes the type strings for all input instances. The instances in previous_in_chain are used to detect cyclic references during recursive calls to this function. The parameter lists already tested instances in a chain of references. *) LOCAL number_of_input_instances : INTEGER; number_of_referring_instances : INTEGER; bag_of_referring_instances : BAG OF GENERIC : IGEN := []; dependently_instantiated_flag : BOOLEAN; previous_in_chain_plus : LIST OF GENERIC : CGEN := []; result : BOOLEAN := TRUE; set_of_types : SET OF STRING := []; END_LOCAL; IF EXISTS(set_of_input_instances) THEN number_of_input_instances := SIZEOF(set_of_input_instances); set_of_input_types := set_of_input_types + 'GENERIC'; REPEAT i := 1 TO number_of_input_instances; bag_of_referring_instances := USEDIN(set_of_input_instances[i], ''); IF EXISTS(bag_of_referring_instances) THEN number_of_referring_instances := SIZEOF(bag_of_referring_instances); dependently_instantiated_flag := FALSE; REPEAT j := 1 TO number_of_referring_instances; set_of_types := TYPEOF(bag_of_referring_instances[j]); IF set_of_types <= set_of_input_types THEN IF NOT (bag_of_referring_instances[j] IN previous_in_chain) THEN previous_in_chain_plus := previous_in_chain + set_of_input_instances[i]; IF Dependently_Instantiated([bag_of_referring_instances[j]], set_of_input_types, previous_in_chain_plus) THEN dependently_instantiated_flag := TRUE; ESCAPE; ELSE SKIP; END_IF; END_IF; ELSE dependently_instantiated_flag := TRUE; ESCAPE; END_IF; END_REPEAT; IF NOT dependently_instantiated_flag THEN RETURN(FALSE); END_IF; ELSE RETURN(FALSE); END_IF; END_REPEAT; ELSE RETURN(FALSE); END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Derive_Angle(placement_1 : Axis2_Placement_3d; placement_2 : Axis2_Placement_3d) : Plane_Angle_Measure; LOCAL v1 : Direction; v2 : Direction; mag_v1 : REAL; mag_v2 : REAL; theta : Plane_Angle_Measure; END_LOCAL; v1 := placement_1.p[1]; v2 := placement_2.p[1]; mag_v1 := SQRT((v1.direction_ratios[1] * v1.direction_ratios[1]) + (v1.direction_ratios[2] * v1.direction_ratios[2])); mag_v2 := SQRT((v2.direction_ratios[1] * v2.direction_ratios[1]) + (v2.direction_ratios[2] * v2.direction_ratios[2])); IF (mag_v1 = 0) OR (mag_v2 = 0) THEN theta := 0; RETURN(theta); END_IF; theta := ACOS(((v1.direction_ratios[1] * v2.direction_ratios[1]) + (v1.direction_ratios[2] * v2.direction_ratios[2])) / (mag_v1 * mag_v2)); RETURN(theta); END_FUNCTION;
FUNCTION Derive_Definite_Integral_Domain(igrl : Definite_Integral_Function) : Tuple_Space; -- Internal utility function: FUNCTION process_product_space(spc : Product_Space; idx : INTEGER; prefix : INTEGER; vdomn : Maths_Space) : Product_Space; LOCAL uspc : Uniform_Product_Space; expnt : INTEGER; factors : LIST OF Maths_Space; END_LOCAL; IF (Schema_Prefix + 'UNIFORM_PRODUCT_SPACE') IN TYPEOF(spc) THEN uspc := spc; expnt := uspc.exponent + prefix; IF idx <= uspc.exponent THEN expnt := expnt - 1; END_IF; IF expnt = 0 THEN RETURN(Make_Listed_Product_Space([])); ELSE RETURN(Make_Uniform_Product_Space(uspc.base, expnt)); END_IF; ELSE factors := spc\Listed_Product_Space.factors; IF idx <= SIZEOF(factors) THEN REMOVE(factors, idx); END_IF; IF prefix > 0 THEN INSERT(factors, vdomn, 0); IF prefix > 1 THEN INSERT(factors, vdomn, 0); END_IF; END_IF; RETURN(Make_Listed_Product_Space(factors)); END_IF; END_FUNCTION; LOCAL idomn : Tuple_Space := igrl.integrand.domain; types : SET OF STRING := TYPEOF(idomn); idx : INTEGER := igrl.variable_of_integration; tupled : BOOLEAN := Bool(((Space_Dimension(idomn) = 1) AND ((Schema_Prefix + 'TUPLE_SPACE') IN types))); prefix : INTEGER := 0; espc : Extended_Tuple_Space; vdomn : Maths_Space; END_LOCAL; IF tupled THEN idomn := Factor1(idomn); types := TYPEOF(idomn); END_IF; IF igrl.lower_limit_neg_infinity THEN prefix := prefix + 1; END_IF; IF igrl.upper_limit_pos_infinity THEN prefix := prefix + 1; END_IF; vdomn := Factor_Space(idomn, idx); IF (Schema_Prefix + 'EXTENDED_TUPLE_SPACE') IN types THEN espc := idomn; idomn := Make_Extended_Tuple_Space(process_product_space(espc.base, idx, prefix, vdomn), espc.extender); ELSE idomn := process_product_space(idomn, idx, prefix, vdomn); END_IF; IF tupled THEN RETURN(One_Tuples_Of(idomn)); ELSE RETURN(idomn); END_IF; END_FUNCTION;
FUNCTION Derive_Dimensional_Exponents(x : Unit) : Dimensional_Exponents; LOCAL result : Dimensional_Exponents := Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); END_LOCAL; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DERIVED_UNIT' IN TYPEOF(x) THEN REPEAT i := LOINDEX(x\Derived_Unit.elements) TO HIINDEX(x\Derived_Unit.elements); result.length_exponent := result.length_exponent + (x\Derived_Unit.elements[i]\Derived_Unit_Element.exponent * x\Derived_Unit.elements[i]\Derived_Unit_Element.Unit\Named_Unit.dimensions.length_exponent); result.mass_exponent := result.mass_exponent + (x\Derived_Unit.elements[i]\Derived_Unit_Element.exponent * x\Derived_Unit.elements[i]\Derived_Unit_Element.Unit\Named_Unit.dimensions.mass_exponent); result.time_exponent := result.time_exponent + (x\Derived_Unit.elements[i]\Derived_Unit_Element.exponent * x\Derived_Unit.elements[i]\Derived_Unit_Element.Unit\Named_Unit.dimensions.time_exponent); result.electric_current_exponent := result.electric_current_exponent + (x\Derived_Unit.elements[i]\Derived_Unit_Element.exponent * x\Derived_Unit.elements[i]\Derived_Unit_Element.Unit\Named_Unit.dimensions.electric_current_exponent); result.thermodynamic_temperature_exponent := result.thermodynamic_temperature_exponent + (x\Derived_Unit.elements[i]\Derived_Unit_Element.exponent * x\Derived_Unit.elements[i]\Derived_Unit_Element.Unit\Named_Unit.dimensions.thermodynamic_temperature_exponent); result.amount_of_substance_exponent := result.amount_of_substance_exponent + (x\Derived_Unit.elements[i]\Derived_Unit_Element.exponent * x\Derived_Unit.elements[i]\Derived_Unit_Element.Unit\Named_Unit.dimensions.amount_of_substance_exponent); result.luminous_intensity_exponent := result.luminous_intensity_exponent + (x\Derived_Unit.elements[i]\Derived_Unit_Element.exponent * x\Derived_Unit.elements[i]\Derived_Unit_Element.Unit\Named_Unit.dimensions.luminous_intensity_exponent); END_REPEAT; ELSE result := x\Named_Unit.dimensions; END_IF; RETURN(result); END_FUNCTION;
FUNCTION Derive_Elementary_Function_Domain(ef_val : Elementary_Function_Enumerators) : Tuple_Space; IF NOT EXISTS(ef_val) THEN RETURN(?); END_IF; CASE ef_val OF Ef_And : RETURN(Make_Extended_Tuple_Space(The_Zero_Tuple_Space, The_Logicals)); Ef_Or : RETURN(Make_Extended_Tuple_Space(The_Zero_Tuple_Space, The_Logicals)); Ef_Not : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Xor : RETURN(Make_Uniform_Product_Space(The_Logicals, 2)); Ef_Negate_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Add_I : RETURN(The_Integer_Tuples); Ef_Subtract_I : RETURN(Make_Uniform_Product_Space(The_Integers, 2)); Ef_Multiply_I : RETURN(The_Integer_Tuples); Ef_Divide_I : RETURN(Make_Uniform_Product_Space(The_Integers, 2)); Ef_Mod_I : RETURN(Make_Uniform_Product_Space(The_Integers, 2)); Ef_Exponentiate_I : RETURN(Make_Uniform_Product_Space(The_Integers, 2)); Ef_Eq_I : RETURN(Make_Uniform_Product_Space(The_Integers, 2)); Ef_Ne_I : RETURN(Make_Uniform_Product_Space(The_Integers, 2)); Ef_Gt_I : RETURN(Make_Uniform_Product_Space(The_Integers, 2)); Ef_Lt_I : RETURN(Make_Uniform_Product_Space(The_Integers, 2)); Ef_Ge_I : RETURN(Make_Uniform_Product_Space(The_Integers, 2)); Ef_Le_I : RETURN(Make_Uniform_Product_Space(The_Integers, 2)); Ef_Abs_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_If_I : RETURN(Make_Listed_Product_Space([The_Logicals,The_Integers,The_Integers])); Ef_Negate_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Reciprocal_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Add_R : RETURN(The_Real_Tuples); Ef_Subtract_R : RETURN(Make_Uniform_Product_Space(The_Reals, 2)); Ef_Multiply_R : RETURN(The_Real_Tuples); Ef_Divide_R : RETURN(Make_Uniform_Product_Space(The_Reals, 2)); Ef_Mod_R : RETURN(Make_Uniform_Product_Space(The_Reals, 2)); Ef_Exponentiate_R : RETURN(Make_Listed_Product_Space([The_Nonnegative_Reals,The_Reals])); Ef_Exponentiate_Ri : RETURN(Make_Listed_Product_Space([The_Reals,The_Integers])); Ef_Eq_R : RETURN(Make_Uniform_Product_Space(The_Reals, 2)); Ef_Ne_R : RETURN(Make_Uniform_Product_Space(The_Reals, 2)); Ef_Gt_R : RETURN(Make_Uniform_Product_Space(The_Reals, 2)); Ef_Lt_R : RETURN(Make_Uniform_Product_Space(The_Reals, 2)); Ef_Ge_R : RETURN(Make_Uniform_Product_Space(The_Reals, 2)); Ef_Le_R : RETURN(Make_Uniform_Product_Space(The_Reals, 2)); Ef_Abs_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Acos_R : RETURN(Make_Uniform_Product_Space(The_Neg1_One_Interval, 1)); Ef_Asin_R : RETURN(Make_Uniform_Product_Space(The_Neg1_One_Interval, 1)); Ef_Atan2_R : RETURN(Make_Uniform_Product_Space(The_Reals, 2)); Ef_Cos_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Exp_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Ln_R : RETURN(Make_Uniform_Product_Space(The_Nonnegative_Reals, 1)); Ef_Log2_R : RETURN(Make_Uniform_Product_Space(The_Nonnegative_Reals, 1)); Ef_Log10_R : RETURN(Make_Uniform_Product_Space(The_Nonnegative_Reals, 1)); Ef_Sin_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Sqrt_R : RETURN(Make_Uniform_Product_Space(The_Nonnegative_Reals, 1)); Ef_Tan_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_If_R : RETURN(Make_Listed_Product_Space([The_Logicals,The_Reals,The_Reals])); Ef_Negate_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Reciprocal_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Add_C : RETURN(The_Complex_Tuples); Ef_Subtract_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 2)); Ef_Multiply_C : RETURN(The_Complex_Tuples); Ef_Divide_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 2)); Ef_Exponentiate_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 2)); Ef_Exponentiate_Ci : RETURN(Make_Listed_Product_Space([The_Complex_Numbers,The_Integers])); Ef_Eq_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 2)); Ef_Ne_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 2)); Ef_Conjugate_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Abs_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Arg_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Cos_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Exp_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Ln_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Sin_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Sqrt_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Tan_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_If_C : RETURN(Make_Listed_Product_Space([The_Logicals,The_Complex_Numbers,The_Complex_Numbers])); Ef_Subscript_S : RETURN(Make_Listed_Product_Space([The_Strings,The_Integers])); Ef_Eq_S : RETURN(Make_Uniform_Product_Space(The_Strings, 2)); Ef_Ne_S : RETURN(Make_Uniform_Product_Space(The_Strings, 2)); Ef_Gt_S : RETURN(Make_Uniform_Product_Space(The_Strings, 2)); Ef_Lt_S : RETURN(Make_Uniform_Product_Space(The_Strings, 2)); Ef_Ge_S : RETURN(Make_Uniform_Product_Space(The_Strings, 2)); Ef_Le_S : RETURN(Make_Uniform_Product_Space(The_Strings, 2)); Ef_Subsequence_S : RETURN(Make_Listed_Product_Space([The_Strings,The_Integers,The_Integers])); Ef_Concat_S : RETURN(Make_Extended_Tuple_Space(The_Zero_Tuple_Space, The_Strings)); Ef_Size_S : RETURN(Make_Uniform_Product_Space(The_Strings, 1)); Ef_Format : RETURN(Make_Listed_Product_Space([The_Numbers,The_Strings])); Ef_Value : RETURN(Make_Uniform_Product_Space(The_Strings, 1)); Ef_Like : RETURN(Make_Uniform_Product_Space(The_Strings, 2)); Ef_If_S : RETURN(Make_Listed_Product_Space([The_Logicals,The_Strings,The_Strings])); Ef_Subscript_B : RETURN(Make_Listed_Product_Space([The_Binarys,The_Integers])); Ef_Eq_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 2)); Ef_Ne_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 2)); Ef_Gt_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 2)); Ef_Lt_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 2)); Ef_Ge_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 2)); Ef_Le_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 2)); Ef_Subsequence_B : RETURN(Make_Listed_Product_Space([The_Binarys,The_Integers,The_Integers])); Ef_Concat_B : RETURN(Make_Extended_Tuple_Space(The_Zero_Tuple_Space, The_Binarys)); Ef_Size_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 1)); Ef_If_B : RETURN(Make_Listed_Product_Space([The_Logicals,The_Binarys,The_Binarys])); Ef_Subscript_T : RETURN(Make_Listed_Product_Space([The_Tuples,The_Integers])); Ef_Eq_T : RETURN(Make_Uniform_Product_Space(The_Tuples, 2)); Ef_Ne_T : RETURN(Make_Uniform_Product_Space(The_Tuples, 2)); Ef_Concat_T : RETURN(Make_Extended_Tuple_Space(The_Zero_Tuple_Space, The_Tuples)); Ef_Size_T : RETURN(Make_Uniform_Product_Space(The_Tuples, 1)); Ef_Entuple : RETURN(The_Tuples); Ef_Detuple : RETURN(Make_Uniform_Product_Space(The_Generics, 1)); Ef_Insert : RETURN(Make_Listed_Product_Space([The_Tuples,The_Generics,The_Integers])); Ef_Remove : RETURN(Make_Listed_Product_Space([The_Tuples,The_Integers])); Ef_If_T : RETURN(Make_Listed_Product_Space([The_Logicals,The_Tuples,The_Tuples])); Ef_Sum_It : RETURN(Make_Uniform_Product_Space(The_Integer_Tuples, 1)); Ef_Product_It : RETURN(Make_Uniform_Product_Space(The_Integer_Tuples, 1)); Ef_Add_It : RETURN(Make_Extended_Tuple_Space(The_Integer_Tuples, The_Integer_Tuples)); Ef_Subtract_It : RETURN(Make_Uniform_Product_Space(The_Integer_Tuples, 2)); Ef_Scalar_Mult_It : RETURN(Make_Listed_Product_Space([The_Integers,The_Integer_Tuples])); Ef_Dot_Prod_It : RETURN(Make_Uniform_Product_Space(The_Integer_Tuples, 2)); Ef_Sum_Rt : RETURN(Make_Uniform_Product_Space(The_Real_Tuples, 1)); Ef_Product_Rt : RETURN(Make_Uniform_Product_Space(The_Real_Tuples, 1)); Ef_Add_Rt : RETURN(Make_Extended_Tuple_Space(The_Real_Tuples, The_Real_Tuples)); Ef_Subtract_Rt : RETURN(Make_Uniform_Product_Space(The_Real_Tuples, 2)); Ef_Scalar_Mult_Rt : RETURN(Make_Listed_Product_Space([The_Reals,The_Real_Tuples])); Ef_Dot_Prod_Rt : RETURN(Make_Uniform_Product_Space(The_Real_Tuples, 2)); Ef_Norm_Rt : RETURN(Make_Uniform_Product_Space(The_Real_Tuples, 1)); Ef_Sum_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Tuples, 1)); Ef_Product_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Tuples, 1)); Ef_Add_Ct : RETURN(Make_Extended_Tuple_Space(The_Complex_Tuples, The_Complex_Tuples)); Ef_Subtract_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Tuples, 2)); Ef_Scalar_Mult_Ct : RETURN(Make_Listed_Product_Space([The_Complex_Numbers,The_Complex_Tuples])); Ef_Dot_Prod_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Tuples, 2)); Ef_Norm_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Tuples, 1)); Ef_If : RETURN(Make_Listed_Product_Space([The_Logicals,The_Generics,The_Generics])); Ef_Ensemble : RETURN(The_Tuples); Ef_Member_Of : RETURN(Make_Listed_Product_Space([The_Generics,The_Maths_Spaces])); OTHERWISE: RETURN(?); END_CASE; END_FUNCTION;
FUNCTION Derive_Elementary_Function_Range(ef_val : Elementary_Function_Enumerators) : Tuple_Space; IF NOT EXISTS(ef_val) THEN RETURN(?); END_IF; CASE ef_val OF Ef_And : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Or : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Not : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Xor : RETURN(Make_Uniform_Product_Space(The_Logicals, 2)); Ef_Negate_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Add_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Subtract_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Multiply_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Divide_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Mod_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Exponentiate_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Eq_I : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Ne_I : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Gt_I : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Lt_I : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Ge_I : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Le_I : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Abs_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_If_I : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Negate_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Reciprocal_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Add_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Subtract_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Multiply_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Divide_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Mod_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Exponentiate_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Exponentiate_Ri : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Eq_R : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Ne_R : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Gt_R : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Lt_R : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Ge_R : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Le_R : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Abs_R : RETURN(Make_Uniform_Product_Space(The_Nonnegative_Reals, 1)); Ef_Acos_R : RETURN(Make_Uniform_Product_Space(The_Zero_Pi_Interval, 1)); Ef_Asin_R : RETURN(Make_Uniform_Product_Space(The_Neghalfpi_Halfpi_Interval, 1)); Ef_Atan2_R : RETURN(Make_Uniform_Product_Space(The_Negpi_Pi_Interval, 1)); Ef_Cos_R : RETURN(Make_Uniform_Product_Space(The_Neg1_One_Interval, 1)); Ef_Exp_R : RETURN(Make_Uniform_Product_Space(The_Nonnegative_Reals, 1)); Ef_Ln_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Log2_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Log10_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Sin_R : RETURN(Make_Uniform_Product_Space(The_Neg1_One_Interval, 1)); Ef_Sqrt_R : RETURN(Make_Uniform_Product_Space(The_Nonnegative_Reals, 1)); Ef_Tan_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_If_R : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Negate_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Reciprocal_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Add_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Subtract_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Multiply_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Divide_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Exponentiate_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Exponentiate_Ci : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Eq_C : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Ne_C : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Conjugate_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Abs_C : RETURN(Make_Uniform_Product_Space(The_Nonnegative_Reals, 1)); Ef_Arg_C : RETURN(Make_Uniform_Product_Space(The_Negpi_Pi_Interval, 1)); Ef_Cos_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Exp_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Ln_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Sin_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Sqrt_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Tan_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_If_C : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Subscript_S : RETURN(Make_Uniform_Product_Space(The_Strings, 1)); Ef_Eq_S : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Ne_S : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Gt_S : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Lt_S : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Ge_S : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Le_S : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Subsequence_S : RETURN(Make_Uniform_Product_Space(The_Strings, 1)); Ef_Concat_S : RETURN(Make_Uniform_Product_Space(The_Strings, 1)); Ef_Size_S : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Format : RETURN(Make_Uniform_Product_Space(The_Strings, 1)); Ef_Value : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Like : RETURN(Make_Uniform_Product_Space(The_Booleans, 1)); Ef_If_S : RETURN(Make_Uniform_Product_Space(The_Strings, 1)); Ef_Subscript_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 1)); Ef_Eq_B : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Ne_B : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Gt_B : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Lt_B : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Ge_B : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Le_B : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Subsequence_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 1)); Ef_Concat_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 1)); Ef_Size_B : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_If_B : RETURN(Make_Uniform_Product_Space(The_Binarys, 1)); Ef_Subscript_T : RETURN(Make_Uniform_Product_Space(The_Generics, 1)); Ef_Eq_T : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Ne_T : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); Ef_Concat_T : RETURN(Make_Uniform_Product_Space(The_Tuples, 1)); Ef_Size_T : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Entuple : RETURN(Make_Uniform_Product_Space(The_Tuples, 1)); Ef_Detuple : RETURN(The_Tuples); Ef_Insert : RETURN(Make_Uniform_Product_Space(The_Tuples, 1)); Ef_Remove : RETURN(Make_Uniform_Product_Space(The_Tuples, 1)); Ef_If_T : RETURN(Make_Uniform_Product_Space(The_Tuples, 1)); Ef_Sum_It : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Product_It : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Add_It : RETURN(Make_Uniform_Product_Space(The_Integer_Tuples, 1)); Ef_Subtract_It : RETURN(Make_Uniform_Product_Space(The_Integer_Tuples, 1)); Ef_Scalar_Mult_It : RETURN(Make_Uniform_Product_Space(The_Integer_Tuples, 1)); Ef_Dot_Prod_It : RETURN(Make_Uniform_Product_Space(The_Integers, 1)); Ef_Sum_Rt : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Product_Rt : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Add_Rt : RETURN(Make_Uniform_Product_Space(The_Real_Tuples, 1)); Ef_Subtract_Rt : RETURN(Make_Uniform_Product_Space(The_Real_Tuples, 1)); Ef_Scalar_Mult_Rt : RETURN(Make_Uniform_Product_Space(The_Real_Tuples, 1)); Ef_Dot_Prod_Rt : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Norm_Rt : RETURN(Make_Uniform_Product_Space(The_Reals, 1)); Ef_Sum_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Product_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Add_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Tuples, 1)); Ef_Subtract_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Tuples, 1)); Ef_Scalar_Mult_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Tuples, 1)); Ef_Dot_Prod_Ct : RETURN(Make_Uniform_Product_Space(The_Complex_Numbers, 1)); Ef_Norm_Ct : RETURN(Make_Uniform_Product_Space(The_Nonnegative_Reals, 1)); Ef_If : RETURN(Make_Uniform_Product_Space(The_Generics, 1)); Ef_Ensemble : RETURN(Make_Uniform_Product_Space(The_Maths_Spaces, 1)); Ef_Member_Of : RETURN(Make_Uniform_Product_Space(The_Logicals, 1)); OTHERWISE: RETURN(?); END_CASE; END_FUNCTION;
FUNCTION Derive_Finite_Function_Domain(pairs : SET [1 : ?] OF LIST [2 : 2] OF Maths_Value) : Tuple_Space; LOCAL result : SET OF Maths_Value := []; END_LOCAL; result := result + List_Selected_Components(pairs, 1); RETURN(One_Tuples_Of(Make_Finite_Space(result))); END_FUNCTION;
FUNCTION Derive_Finite_Function_Range(pairs : SET [1 : ?] OF LIST [2 : 2] OF Maths_Value) : Tuple_Space; LOCAL result : SET OF Maths_Value := []; END_LOCAL; result := result + List_Selected_Components(pairs, 2); RETURN(One_Tuples_Of(Make_Finite_Space(result))); END_FUNCTION;
FUNCTION Derive_Function_Domain(func : Maths_Function) : Tuple_Space; LOCAL typenames : SET OF STRING := Stripped_Typeof(func); tspace : Tuple_Space := Make_Listed_Product_Space([]); shape : LIST OF Positive_Integer; sidxs : LIST OF INTEGER := [0]; itvl : Finite_Integer_Interval; factors : LIST OF Finite_Integer_Interval := []; is_uniform : BOOLEAN := TRUE; END_LOCAL; IF 'FINITE_FUNCTION' IN typenames THEN RETURN(Derive_Finite_Function_Domain(func\Finite_Function.pairs)); END_IF; IF 'CONSTANT_FUNCTION' IN typenames THEN RETURN(Domain_From(func\Constant_Function.source_of_domain)); END_IF; IF 'SELECTOR_FUNCTION' IN typenames THEN RETURN(Domain_From(func\Selector_Function.source_of_domain)); END_IF; IF 'ELEMENTARY_FUNCTION' IN typenames THEN RETURN(Derive_Elementary_Function_Domain(func\Elementary_Function.func_id)); END_IF; IF 'RESTRICTION_FUNCTION' IN typenames THEN RETURN(One_Tuples_Of(func\Restriction_Function.operand)); END_IF; IF 'REPACKAGING_FUNCTION' IN typenames THEN IF func\Repackaging_Function.input_repack = Ro_Nochange THEN RETURN(func\Repackaging_Function.operand.domain); END_IF; IF func\Repackaging_Function.input_repack = Ro_Wrap_As_Tuple THEN RETURN(Factor1(func\Repackaging_Function.operand.domain)); END_IF; IF func\Repackaging_Function.input_repack = Ro_Unwrap_Tuple THEN RETURN(One_Tuples_Of(func\Repackaging_Function.operand.domain)); END_IF; RETURN(?); END_IF; IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN shape := Shape_Of_Array(func\Unary_Generic_Expression.operand); sidxs := func\Reindexed_Array_Function.starting_indices; REPEAT i := 1 TO SIZEOF(shape); itvl := Make_Finite_Integer_Interval(sidxs[i], sidxs[i] + shape[i] - 1); INSERT(factors, itvl, i - 1); IF shape[i] <> shape[1] THEN is_uniform := FALSE; END_IF; END_REPEAT; IF is_uniform THEN RETURN(Make_Uniform_Product_Space(factors[1], SIZEOF(shape))); END_IF; RETURN(Make_Listed_Product_Space(factors)); END_IF; IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN RETURN(func\Series_Composed_Function.operands[1].domain); END_IF; IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN RETURN(Domain_From(func\Parallel_Composed_Function.source_of_domain)); END_IF; IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN shape := func\Explicit_Table_Function.shape; sidxs[1] := func\Explicit_Table_Function.index_base; REPEAT i := 1 TO SIZEOF(shape); itvl := Make_Finite_Integer_Interval(sidxs[1], sidxs[1] + shape[i] - 1); INSERT(factors, itvl, i - 1); IF shape[i] <> shape[1] THEN is_uniform := FALSE; END_IF; END_REPEAT; IF is_uniform THEN RETURN(Make_Uniform_Product_Space(factors[1], SIZEOF(shape))); END_IF; RETURN(Make_Listed_Product_Space(factors)); END_IF; IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN RETURN(One_Tuples_Of(Make_Uniform_Product_Space(Factor1(func\Homogeneous_Linear_Function.mat.range), func\Homogeneous_Linear_Function.mat\Explicit_Table_Function.shape[func\Homogeneous_Linear_Function.sum_index]))); END_IF; IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN RETURN(One_Tuples_Of(Make_Uniform_Product_Space(Factor1(func\General_Linear_Function.mat.range), func\General_Linear_Function.mat\Explicit_Table_Function.shape[func\General_Linear_Function.sum_index] - 1))); END_IF; IF 'B_SPLINE_BASIS' IN typenames THEN RETURN(One_Tuples_Of(Make_Finite_Real_Interval(func\B_Spline_Basis.repeated_knots[func\B_Spline_Basis.order], Closed, func\B_Spline_Basis.repeated_knots[func\B_Spline_Basis.num_basis + 1], Closed))); END_IF; IF 'B_SPLINE_FUNCTION' IN typenames THEN REPEAT i := 1 TO SIZEOF(func\B_Spline_Function.basis); tspace := Assoc_Product_Space(tspace, func\B_Spline_Function.basis[i].domain); END_REPEAT; RETURN(One_Tuples_Of(tspace)); END_IF; IF 'RATIONALIZE_FUNCTION' IN typenames THEN RETURN(func\Rationalize_Function.fun.domain); END_IF; IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN RETURN(func\Partial_Derivative_Function.derivand.domain); END_IF; IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN RETURN(Derive_Definite_Integral_Domain(func)); END_IF; IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN REPEAT i := 1 TO SIZEOF(func\Abstracted_Expression_Function.variables); tspace := Assoc_Product_Space(tspace, One_Tuples_Of(Values_Space_Of(func\Abstracted_Expression_Function.variables[i]))); END_REPEAT; RETURN(tspace); END_IF; IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN RETURN(Values_Space_Of(func\Expression_Denoted_Function.expr)\Function_Space.domain_argument); END_IF; IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN RETURN(One_Tuples_Of(Make_Listed_Product_Space([]))); END_IF; IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN RETURN(func\Imported_Curve_Function.parametric_domain); END_IF; IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN RETURN(func\Imported_Surface_Function.parametric_domain); END_IF; IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN RETURN(func\Imported_Volume_Function.parametric_domain); END_IF; IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN RETURN(func\Application_Defined_Function.explicit_domain); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Derive_Function_Range(func : Maths_Function) : Tuple_Space; LOCAL typenames : SET OF STRING := Stripped_Typeof(func); tspace : Tuple_Space := Make_Listed_Product_Space([]); m : Nonnegative_Integer := 0; n : Nonnegative_Integer := 0; temp : INTEGER := 0; END_LOCAL; IF 'FINITE_FUNCTION' IN typenames THEN RETURN(Derive_Finite_Function_Range(func\Finite_Function.pairs)); END_IF; IF 'CONSTANT_FUNCTION' IN typenames THEN RETURN(One_Tuples_Of(Make_Finite_Space([func\Constant_Function.sole_output]))); END_IF; IF 'SELECTOR_FUNCTION' IN typenames THEN tspace := func.domain; IF (Space_Dimension(tspace) = 1) AND ((Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(tspace)) THEN tspace := Factor1(tspace); END_IF; RETURN(One_Tuples_Of(Factor_Space(tspace, func\Selector_Function.selector))); END_IF; IF 'ELEMENTARY_FUNCTION' IN typenames THEN RETURN(Derive_Elementary_Function_Range(func\Elementary_Function.func_id)); END_IF; IF 'RESTRICTION_FUNCTION' IN typenames THEN RETURN(One_Tuples_Of(func\Restriction_Function.operand)); END_IF; IF 'REPACKAGING_FUNCTION' IN typenames THEN tspace := func\Repackaging_Function.operand.range; IF func\Repackaging_Function.output_repack = Ro_Wrap_As_Tuple THEN tspace := One_Tuples_Of(tspace); END_IF; IF func\Repackaging_Function.output_repack = Ro_Unwrap_Tuple THEN tspace := Factor1(tspace); END_IF; IF func\Repackaging_Function.selected_output > 0 THEN tspace := One_Tuples_Of(Factor_Space(tspace, func\Repackaging_Function.selected_output)); END_IF; RETURN(tspace); END_IF; IF 'REINDEXED_ARRAY_FUNCTION' IN typenames THEN RETURN(func\Unary_Generic_Expression.operand\Maths_Function.range); END_IF; IF 'SERIES_COMPOSED_FUNCTION' IN typenames THEN RETURN(func\Series_Composed_Function.operands[SIZEOF(func\Series_Composed_Function.operands)].range); END_IF; IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN RETURN(func\Parallel_Composed_Function.final_function.range); END_IF; IF 'EXPLICIT_TABLE_FUNCTION' IN typenames THEN IF 'LISTED_REAL_DATA' IN typenames THEN RETURN(One_Tuples_Of(The_Reals)); END_IF; IF 'LISTED_INTEGER_DATA' IN typenames THEN RETURN(One_Tuples_Of(The_Integers)); END_IF; IF 'LISTED_LOGICAL_DATA' IN typenames THEN RETURN(One_Tuples_Of(The_Logicals)); END_IF; IF 'LISTED_STRING_DATA' IN typenames THEN RETURN(One_Tuples_Of(The_Strings)); END_IF; IF 'LISTED_COMPLEX_NUMBER_DATA' IN typenames THEN RETURN(One_Tuples_Of(The_Complex_Numbers)); END_IF; IF 'LISTED_DATA' IN typenames THEN RETURN(One_Tuples_Of(func\Listed_Data.Value_Range)); END_IF; IF 'EXTERNALLY_LISTED_DATA' IN typenames THEN RETURN(One_Tuples_Of(func\Externally_Listed_Data.Value_Range)); END_IF; IF 'LINEARIZED_TABLE_FUNCTION' IN typenames THEN RETURN(func\Linearized_Table_Function.Source.range); END_IF; IF 'BASIC_SPARSE_MATRIX' IN typenames THEN RETURN(func\Basic_Sparse_Matrix.val.range); END_IF; RETURN(?); END_IF; IF 'HOMOGENEOUS_LINEAR_FUNCTION' IN typenames THEN RETURN(One_Tuples_Of(Make_Uniform_Product_Space(Factor1(func\Homogeneous_Linear_Function.mat.range), func\Homogeneous_Linear_Function.mat\Explicit_Table_Function.shape[3 - func\Homogeneous_Linear_Function.sum_index]))); END_IF; IF 'GENERAL_LINEAR_FUNCTION' IN typenames THEN RETURN(One_Tuples_Of(Make_Uniform_Product_Space(Factor1(func\General_Linear_Function.mat.range), func\General_Linear_Function.mat\Explicit_Table_Function.shape[3 - func\General_Linear_Function.sum_index]))); END_IF; IF 'B_SPLINE_BASIS' IN typenames THEN RETURN(One_Tuples_Of(Make_Uniform_Product_Space(The_Reals, func\B_Spline_Basis.num_basis))); END_IF; IF 'B_SPLINE_FUNCTION' IN typenames THEN tspace := Factor1(func\B_Spline_Function.coef.domain); m := SIZEOF(func\B_Spline_Function.basis); n := Space_Dimension(tspace); IF m = n THEN RETURN(One_Tuples_Of(The_Reals)); END_IF; IF m = n - 1 THEN RETURN(One_Tuples_Of(Make_Uniform_Product_Space(The_Reals, Factor_Space(tspace, n)\Finite_Integer_Interval.size))); END_IF; tspace := Extract_Factors(tspace, m + 1, n); RETURN(One_Tuples_Of(Make_Function_Space(Sc_Equal, tspace, Sc_Subspace, Number_Superspace_Of(func\B_Spline_Function.coef.range)))); END_IF; IF 'RATIONALIZE_FUNCTION' IN typenames THEN tspace := Factor1(func\Rationalize_Function.fun.range); n := Space_Dimension(tspace); RETURN(One_Tuples_Of(Make_Uniform_Product_Space(Number_Superspace_Of(Factor1(tspace)), n - 1))); END_IF; IF 'PARTIAL_DERIVATIVE_FUNCTION' IN typenames THEN RETURN(Drop_Numeric_Constraints(func\Partial_Derivative_Function.derivand.range)); END_IF; IF 'DEFINITE_INTEGRAL_FUNCTION' IN typenames THEN RETURN(Drop_Numeric_Constraints(func\Definite_Integral_Function.integrand.range)); END_IF; IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN typenames THEN RETURN(One_Tuples_Of(Values_Space_Of(func\Abstracted_Expression_Function.expr))); END_IF; IF 'EXPRESSION_DENOTED_FUNCTION' IN typenames THEN RETURN(Values_Space_Of(func\Expression_Denoted_Function.expr)\Function_Space.range_argument); END_IF; IF 'IMPORTED_POINT_FUNCTION' IN typenames THEN temp := Dimension_Of(func\Imported_Point_Function.geometry); RETURN(One_Tuples_Of(Make_Uniform_Product_Space(The_Reals, temp))); END_IF; IF 'IMPORTED_CURVE_FUNCTION' IN typenames THEN temp := Dimension_Of(func\Imported_Curve_Function.geometry); RETURN(One_Tuples_Of(Make_Uniform_Product_Space(The_Reals, temp))); END_IF; IF 'IMPORTED_SURFACE_FUNCTION' IN typenames THEN temp := Dimension_Of(func\Imported_Surface_Function.geometry); RETURN(One_Tuples_Of(Make_Uniform_Product_Space(The_Reals, temp))); END_IF; IF 'IMPORTED_VOLUME_FUNCTION' IN typenames THEN temp := Dimension_Of(func\Imported_Volume_Function.geometry); RETURN(One_Tuples_Of(Make_Uniform_Product_Space(The_Reals, temp))); END_IF; IF 'APPLICATION_DEFINED_FUNCTION' IN typenames THEN RETURN(func\Application_Defined_Function.explicit_range); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Dimension_Of(item : Geometric_Representation_Item) : Dimension_Count; LOCAL x : SET OF Representation; y : Representation_Context; dim : Dimension_Count; END_LOCAL; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(item) THEN dim := SIZEOF(item\Cartesian_Point.coordinates); RETURN(dim); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION' IN TYPEOF(item) THEN dim := SIZEOF(item\Direction.direction_ratios); RETURN(dim); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(item) THEN dim := SIZEOF(item\Vector.Orientation\Direction.direction_ratios); RETURN(dim); END_IF; x := Using_Representations(item); IF (SIZEOF(x) > 0) THEN y := x[1].context_of_items; dim := y\Geometric_Representation_Context.coordinate_space_dimension; RETURN(dim); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Dimensions_For_Si_Unit(n : Si_Unit_Name) : Dimensional_Exponents; CASE n OF Metre : RETURN(Dimensional_Exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); Gram : RETURN(Dimensional_Exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0)); Second : RETURN(Dimensional_Exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0)); Ampere : RETURN(Dimensional_Exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0)); Kelvin : RETURN(Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)); Mole : RETURN(Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)); Candela : RETURN(Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); Radian : RETURN(Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); Steradian : RETURN(Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)); Hertz : RETURN(Dimensional_Exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0)); Newton : RETURN(Dimensional_Exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); Pascal : RETURN(Dimensional_Exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); Joule : RETURN(Dimensional_Exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0)); Watt : RETURN(Dimensional_Exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0)); Coulomb : RETURN(Dimensional_Exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0)); Volt : RETURN(Dimensional_Exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0)); Farad : RETURN(Dimensional_Exponents(-2.0, -1.0, 4.0, 2.0, 0.0, 0.0, 0.0)); Ohm : RETURN(Dimensional_Exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0)); Siemens : RETURN(Dimensional_Exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0)); Weber : RETURN(Dimensional_Exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0)); Tesla : RETURN(Dimensional_Exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0)); Henry : RETURN(Dimensional_Exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0)); Degree_Celsius : RETURN(Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0)); Lumen : RETURN(Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); Lux : RETURN(Dimensional_Exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0)); Becquerel : RETURN(Dimensional_Exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0)); Gray : RETURN(Dimensional_Exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0)); Sievert : RETURN(Dimensional_Exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0)); OTHERWISE: RETURN(?); END_CASE; END_FUNCTION;
FUNCTION Domain_From(ref : Maths_Space_Or_Function) : Tuple_Space; LOCAL typenames : SET OF STRING := Stripped_Typeof(ref); func : Maths_Function; END_LOCAL; IF NOT EXISTS(ref) THEN RETURN(?); END_IF; IF 'TUPLE_SPACE' IN typenames THEN RETURN(ref); END_IF; IF 'MATHS_SPACE' IN typenames THEN RETURN(One_Tuples_Of(ref)); END_IF; func := ref; IF 'CONSTANT_FUNCTION' IN typenames THEN RETURN(Domain_From(func\Constant_Function.source_of_domain)); END_IF; IF 'SELECTOR_FUNCTION' IN typenames THEN RETURN(Domain_From(func\Selector_Function.source_of_domain)); END_IF; IF 'PARALLEL_COMPOSED_FUNCTION' IN typenames THEN RETURN(Domain_From(func\Parallel_Composed_Function.source_of_domain)); END_IF; RETURN(func.domain); END_FUNCTION;
FUNCTION Dot_Count(str : STRING) : INTEGER; LOCAL n : INTEGER := 0; END_LOCAL; REPEAT i := 1 TO LENGTH(str); IF str[i] = '.' THEN n := n + 1; END_IF; END_REPEAT; RETURN(n); END_FUNCTION;
FUNCTION Dot_Product(arg1 : Direction; arg2 : Direction) : REAL; LOCAL scalar : REAL; vec1 : Direction; vec2 : Direction; ndim : INTEGER; END_LOCAL; IF NOT EXISTS(arg1) OR NOT EXISTS(arg2) THEN scalar := ?; ELSE IF (arg1.dim <> arg2.dim) THEN scalar := ?; ELSE BEGIN vec1 := Normalise(arg1); vec2 := Normalise(arg2); ndim := arg1.dim; scalar := 0.0; REPEAT i := 1 TO ndim; scalar := scalar + vec1.direction_ratios[i] * vec2.direction_ratios[i]; END_REPEAT; END; END_IF; END_IF; RETURN(scalar); END_FUNCTION;
FUNCTION Dotted_Identifiers_Syntax(str : STRING) : BOOLEAN; LOCAL k : Positive_Integer; m : Positive_Integer; END_LOCAL; IF NOT EXISTS(str) THEN RETURN(FALSE); END_IF; k := Parse_Express_Identifier(str, 1); IF k = 1 THEN RETURN(FALSE); END_IF; REPEAT WHILE k <= LENGTH(str); IF (str[k] <> '.') OR (k = LENGTH(str)) THEN RETURN(FALSE); END_IF; m := Parse_Express_Identifier(str, k + 1); IF m = k + 1 THEN RETURN(FALSE); END_IF; k := m; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Drop_Numeric_Constraints(spc : Maths_Space) : Maths_Space; LOCAL typenames : SET OF STRING := Stripped_Typeof(spc); tspc : Listed_Product_Space; factors : LIST OF Maths_Space := []; xspc : Extended_Tuple_Space; END_LOCAL; IF 'UNIFORM_PRODUCT_SPACE' IN typenames THEN RETURN(Make_Uniform_Product_Space(Drop_Numeric_Constraints(spc\Uniform_Product_Space.base), spc\Uniform_Product_Space.exponent)); END_IF; IF 'LISTED_PRODUCT_SPACE' IN typenames THEN tspc := spc; REPEAT i := 1 TO SIZEOF(tspc.factors); INSERT(factors, Drop_Numeric_Constraints(tspc.factors[i]), i - 1); END_REPEAT; RETURN(Make_Listed_Product_Space(factors)); END_IF; IF 'EXTENDED_TUPLE_SPACE' IN typenames THEN xspc := spc; RETURN(Make_Extended_Tuple_Space(Drop_Numeric_Constraints(xspc.base), Drop_Numeric_Constraints(xspc.extender))); END_IF; IF Subspace_Of_Es(spc, Es_Numbers) THEN RETURN(Number_Superspace_Of(spc)); END_IF; RETURN(spc); END_FUNCTION;
FUNCTION Duration_Is_Negative(duration : Time_Measure_With_Unit) : BOOLEAN; IF (duration\Measure_With_Unit.value_component < 0.0) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END_FUNCTION;
FUNCTION Duration_Is_Positive(duration : Time_Measure_With_Unit) : BOOLEAN; IF (duration\Measure_With_Unit.value_component > 0.0) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END_FUNCTION;
FUNCTION Edge_Reversed(an_edge : Edge) : Oriented_Edge; LOCAL the_reverse : Oriented_Edge; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_EDGE' IN TYPEOF(an_edge)) THEN the_reverse := Dummy_Tri || Edge(an_edge.edge_end, an_edge.edge_start) || Oriented_Edge(an_edge\Oriented_Edge.edge_element, NOT (an_edge\Oriented_Edge.Orientation)); ELSE the_reverse := Dummy_Tri || Edge(an_edge.edge_end, an_edge.edge_start) || Oriented_Edge(an_edge, FALSE); END_IF; RETURN(the_reverse); END_FUNCTION;
FUNCTION Enclose_Cregion_In_Pregion(crgn : Cartesian_Complex_Number_Region; centre : Complex_Number_Literal) : Polar_Complex_Number_Region; -- Find equivalent direction in range -PI < a <= PI. FUNCTION angle(a : REAL) : REAL; REPEAT WHILE a > PI; a := a - 2.0 * PI; END_REPEAT; REPEAT WHILE a <= -PI; a := a + 2.0 * PI; END_REPEAT; RETURN(a); END_FUNCTION; FUNCTION strictly_in(z : REAL; zitv : Real_Interval) : LOGICAL; RETURN((NOT Min_Exists(zitv) OR (z > Real_Min(zitv))) AND (NOT Max_Exists(zitv) OR (z < Real_Max(zitv)))); END_FUNCTION; PROCEDURE angle_minmax(ab : REAL; a : REAL; a_in : BOOLEAN; VAR amin : REAL; VAR amax : REAL; VAR amin_in : BOOLEAN; VAR amax_in : BOOLEAN); a := angle(a - ab); IF amin = a THEN amin_in := amin_in OR a_in; END_IF; IF amin > a THEN amin := a; amin_in := a_in; END_IF; IF amax = a THEN amax_in := amax_in OR a_in; END_IF; IF amax < a THEN amax := a; amax_in := a_in; END_IF; END_PROCEDURE; PROCEDURE range_max(r : REAL; incl : BOOLEAN; VAR rmax : REAL; VAR rmax_in : BOOLEAN); IF rmax = r THEN rmax_in := rmax_in OR incl; END_IF; IF rmax < r THEN rmax := r; rmax_in := incl; END_IF; END_PROCEDURE; PROCEDURE range_min(r : REAL; incl : BOOLEAN; VAR rmin : REAL; VAR rmin_in : BOOLEAN); IF rmin = r THEN rmin_in := rmin_in OR incl; END_IF; IF (rmin < 0.0) OR (rmin > r) THEN rmin := r; rmin_in := incl; END_IF; END_PROCEDURE; LOCAL xitv : Real_Interval; yitv : Real_Interval; is_xmin : BOOLEAN; is_xmax : BOOLEAN; is_ymin : BOOLEAN; is_ymax : BOOLEAN; xmin : REAL := 0.0; xmax : REAL := 0.0; ymin : REAL := 0.0; ymax : REAL := 0.0; xc : REAL := 0.0; yc : REAL := 0.0; xmin_in : BOOLEAN := FALSE; xmax_in : BOOLEAN := FALSE; ymin_in : BOOLEAN := FALSE; ymax_in : BOOLEAN := FALSE; rmin : REAL := -1.0; rmax : REAL := -1.0; amin : REAL := 4.0; amax : REAL := -4.0; rmax_exists : BOOLEAN := TRUE; outside : BOOLEAN := TRUE; rmin_in : BOOLEAN := FALSE; rmax_in : BOOLEAN := FALSE; amin_in : BOOLEAN := FALSE; amax_in : BOOLEAN := FALSE; ab : REAL := 0.0; a : REAL := 0.0; r : REAL := 0.0; incl : BOOLEAN; ritv : Real_Interval; aitv : Finite_Real_Interval; minclo : Open_Closed := Open; maxclo : Open_Closed := Open; END_LOCAL; IF NOT EXISTS(crgn) OR NOT EXISTS(centre) THEN RETURN(?); END_IF; xitv := crgn.real_constraint; yitv := crgn.imag_constraint; xc := centre.real_part; yc := centre.imag_part; is_xmin := Min_Exists(xitv); is_xmax := Max_Exists(xitv); is_ymin := Min_Exists(yitv); is_ymax := Max_Exists(yitv); IF is_xmin THEN xmin := Real_Min(xitv); xmin_in := Min_Included(xitv); END_IF; IF is_xmax THEN xmax := Real_Max(xitv); xmax_in := Max_Included(xitv); END_IF; IF is_ymin THEN ymin := Real_Min(yitv); ymin_in := Min_Included(yitv); END_IF; IF is_ymax THEN ymax := Real_Max(yitv); ymax_in := Max_Included(yitv); END_IF; rmax_exists := is_xmin AND is_xmax AND is_ymin AND is_ymax; IF is_xmin AND (xc <= xmin) THEN ab := 0.0; ELSE IF is_ymin AND (yc <= ymin) THEN ab := 0.5 * PI; ELSE IF is_ymax AND (yc >= ymax) THEN ab := -0.5 * PI; ELSE IF is_xmax AND (xc >= xmax) THEN ab := PI; ELSE outside := FALSE; END_IF; END_IF; END_IF; END_IF; IF NOT outside AND NOT rmax_exists THEN RETURN(?); END_IF; IF is_xmin AND (xc <= xmin) AND strictly_in(yc, yitv) THEN rmin := xmin - xc; rmin_in := xmin_in; ELSE IF is_ymin AND (yc <= ymin) AND strictly_in(xc, xitv) THEN rmin := ymin - yc; rmin_in := ymin_in; ELSE IF is_ymax AND (yc >= ymax) AND strictly_in(xc, xitv) THEN rmin := yc - ymax; rmin_in := ymax_in; ELSE IF is_xmax AND (xc >= xmax) AND strictly_in(yc, yitv) THEN rmin := xc - xmax; rmin_in := xmax_in; END_IF; END_IF; END_IF; END_IF; IF is_xmin THEN IF is_ymin THEN r := SQRT((xmin - xc) ** 2 + (ymin - yc) ** 2); incl := xmin_in AND ymin_in; IF rmax_exists THEN range_max(r, incl, rmax, rmax_in); END_IF; IF outside THEN IF r > 0.0 THEN range_min(r, incl, rmin, rmin_in); a := angle(Atan2(ymin - yc, xmin - xc) - ab); IF xc = xmin THEN incl := xmin_in; END_IF; IF yc = ymin THEN incl := ymin_in; END_IF; angle_minmax(ab, a, incl, amin, amax, amin_in, amax_in); ELSE rmin := 0.0; rmin_in := xmin_in AND ymin_in; amin := angle(0.0 - ab); amin_in := ymin_in; amax := angle(0.5 * PI - ab); amax_in := xmin_in; END_IF; END_IF; ELSE IF xc <= xmin THEN angle_minmax(ab, -0.5 * PI, (xc = xmin) AND xmin_in, amin, amax, amin_in, amax_in); END_IF; END_IF; IF NOT is_ymax AND (xc <= xmin) THEN angle_minmax(ab, 0.5 * PI, (xc = xmin) AND xmin_in, amin, amax, amin_in, amax_in); END_IF; END_IF; IF is_ymin THEN IF is_xmax THEN r := SQRT((xmax - xc) ** 2 + (ymin - yc) ** 2); incl := xmax_in AND ymin_in; IF rmax_exists THEN range_max(r, incl, rmax, rmax_in); END_IF; IF outside THEN IF r > 0.0 THEN range_min(r, incl, rmin, rmin_in); a := angle(Atan2(ymin - yc, xmax - xc) - ab); IF xc = xmax THEN incl := xmax_in; END_IF; IF yc = ymin THEN incl := ymin_in; END_IF; angle_minmax(ab, a, incl, amin, amax, amin_in, amax_in); ELSE rmin := 0.0; rmin_in := xmax_in AND ymin_in; amin := angle(0.5 * PI - ab); amin_in := ymin_in; amax := angle(PI - ab); amax_in := xmax_in; END_IF; END_IF; ELSE IF yc <= ymin THEN angle_minmax(ab, 0.0, (yc = ymin) AND ymin_in, amin, amax, amin_in, amax_in); END_IF; END_IF; IF NOT is_xmin AND (yc <= ymin) THEN angle_minmax(ab, PI, (yc = ymin) AND ymin_in, amin, amax, amin_in, amax_in); END_IF; END_IF; IF is_xmax THEN IF is_ymax THEN r := SQRT((xmax - xc) ** 2 + (ymax - yc) ** 2); incl := xmax_in AND ymax_in; IF rmax_exists THEN range_max(r, incl, rmax, rmax_in); END_IF; IF outside THEN IF r > 0.0 THEN range_min(r, incl, rmin, rmin_in); a := angle(Atan2(ymax - yc, xmax - xc) - ab); IF xc = xmax THEN incl := xmax_in; END_IF; IF yc = ymax THEN incl := ymax_in; END_IF; angle_minmax(ab, a, incl, amin, amax, amin_in, amax_in); ELSE rmin := 0.0; rmin_in := xmax_in AND ymax_in; amin := angle(-PI - ab); amin_in := ymax_in; amax := angle(-0.5 * PI - ab); amax_in := xmax_in; END_IF; END_IF; ELSE IF xc >= xmax THEN angle_minmax(ab, 0.5 * PI, (xc = xmax) AND xmax_in, amin, amax, amin_in, amax_in); END_IF; END_IF; IF NOT is_ymin AND (xc >= xmax) THEN angle_minmax(ab, -0.5 * PI, (xc = xmax) AND xmax_in, amin, amax, amin_in, amax_in); END_IF; END_IF; IF is_ymax THEN IF is_xmin THEN r := SQRT((xmin - xc) ** 2 + (ymax - yc) ** 2); incl := xmin_in AND ymax_in; IF rmax_exists THEN range_max(r, incl, rmax, rmax_in); END_IF; IF outside THEN IF r > 0.0 THEN range_min(r, incl, rmin, rmin_in); a := angle(Atan2(ymax - yc, xmin - xc) - ab); IF xc = xmin THEN incl := xmin_in; END_IF; IF yc = ymax THEN incl := ymax_in; END_IF; angle_minmax(ab, a, incl, amin, amax, amin_in, amax_in); ELSE rmin := 0.0; rmin_in := xmin_in AND ymax_in; amin := angle(0.5 * PI - ab); amin_in := ymax_in; amax := angle(PI - ab); amax_in := xmin_in; END_IF; END_IF; ELSE IF yc >= ymax THEN angle_minmax(ab, PI, (yc = ymax) AND ymax_in, amin, amax, amin_in, amax_in); END_IF; END_IF; IF NOT is_xmax AND (yc >= ymax) THEN angle_minmax(ab, 0.0, (yc = ymax) AND ymax_in, amin, amax, amin_in, amax_in); END_IF; END_IF; IF outside THEN amin := angle(amin + ab); IF amin = PI THEN amin := -PI; END_IF; amax := angle(amax + ab); IF amax <= amin THEN amax := amax + 2.0 * PI; END_IF; ELSE amin := -PI; amin_in := FALSE; amax := PI; amax_in := FALSE; END_IF; IF amin_in THEN minclo := Closed; END_IF; IF amax_in THEN maxclo := Closed; END_IF; aitv := Make_Finite_Real_Interval(amin, minclo, amax, maxclo); minclo := Open; IF rmin_in THEN minclo := Closed; END_IF; IF rmax_exists THEN maxclo := Open; IF rmax_in THEN maxclo := Closed; END_IF; ritv := Make_Finite_Real_Interval(rmin, minclo, rmax, maxclo); ELSE ritv := Make_Real_Interval_From_Min(rmin, minclo); END_IF; RETURN(Make_Polar_Complex_Number_Region(centre, ritv, aitv)); END_FUNCTION;
FUNCTION Enclose_Pregion_In_Cregion(prgn : Polar_Complex_Number_Region) : Cartesian_Complex_Number_Region; PROCEDURE nearest_good_direction(acart : REAL; aitv : Finite_Real_Interval; VAR a : REAL; VAR a_in : BOOLEAN); a := acart; a_in := TRUE; IF a < aitv.min THEN IF a + 2.0 * PI < aitv.max THEN RETURN; END_IF; IF a + 2.0 * PI = aitv.max THEN a_in := Max_Included(aitv); RETURN; END_IF; ELSE IF a = aitv.min THEN a_in := Min_Included(aitv); RETURN; ELSE IF a < aitv.max THEN RETURN; ELSE IF a = aitv.max THEN a_in := Max_Included(aitv); RETURN; END_IF; END_IF; END_IF; END_IF; IF COS(acart - aitv.max) >= COS(acart - aitv.min) THEN a := aitv.max; a_in := Max_Included(aitv); ELSE a := aitv.min; a_in := Min_Included(aitv); END_IF; END_PROCEDURE; LOCAL xc : REAL := 0.0; yc : REAL := 0.0; xmin : REAL := 0.0; xmax : REAL := 0.0; ymin : REAL := 0.0; ymax : REAL := 0.0; ritv : Real_Interval; xitv : Real_Interval; yitv : Real_Interval; aitv : Finite_Real_Interval; xmin_exists : BOOLEAN; xmax_exists : BOOLEAN; ymin_exists : BOOLEAN; ymax_exists : BOOLEAN; xmin_in : BOOLEAN := FALSE; xmax_in : BOOLEAN := FALSE; ymin_in : BOOLEAN := FALSE; ymax_in : BOOLEAN := FALSE; a : REAL := 0.0; r : REAL := 0.0; a_in : BOOLEAN := FALSE; min_clo : Open_Closed := Open; max_clo : Open_Closed := Open; END_LOCAL; IF NOT EXISTS(prgn) THEN RETURN(?); END_IF; xc := prgn.centre.real_part; yc := prgn.centre.imag_part; ritv := prgn.distance_constraint; aitv := prgn.direction_constraint; nearest_good_direction(PI, aitv, a, a_in); IF COS(a) >= 0.0 THEN xmin_exists := TRUE; xmin := xc + Real_Min(ritv) * COS(a); xmin_in := a_in AND (Min_Included(ritv) OR (COS(a) = 0.0)); ELSE IF Max_Exists(ritv) THEN xmin_exists := TRUE; xmin := xc + Real_Max(ritv) * COS(a); xmin_in := a_in AND Max_Included(ritv); ELSE xmin_exists := FALSE; END_IF; END_IF; nearest_good_direction(0.0, aitv, a, a_in); IF COS(a) <= 0.0 THEN xmax_exists := TRUE; xmax := xc + Real_Min(ritv) * COS(a); xmax_in := a_in AND (Min_Included(ritv) OR (COS(a) = 0.0)); ELSE IF Max_Exists(ritv) THEN xmax_exists := TRUE; xmax := xc + Real_Max(ritv) * COS(a); xmax_in := a_in AND Max_Included(ritv); ELSE xmax_exists := FALSE; END_IF; END_IF; nearest_good_direction(-0.5 * PI, aitv, a, a_in); IF SIN(a) >= 0.0 THEN ymin_exists := TRUE; ymin := yc + Real_Min(ritv) * SIN(a); ymin_in := a_in AND (Min_Included(ritv) OR (SIN(a) = 0.0)); ELSE IF Max_Exists(ritv) THEN ymin_exists := TRUE; ymin := yc + Real_Max(ritv) * SIN(a); ymin_in := a_in AND Max_Included(ritv); ELSE ymin_exists := FALSE; END_IF; END_IF; nearest_good_direction(0.5 * PI, aitv, a, a_in); IF SIN(a) <= 0.0 THEN ymax_exists := TRUE; ymax := yc + Real_Min(ritv) * SIN(a); ymax_in := a_in AND (Min_Included(ritv) OR (SIN(a) = 0.0)); ELSE IF Max_Exists(ritv) THEN ymax_exists := TRUE; ymax := yc + Real_Max(ritv) * SIN(a); ymax_in := a_in AND Max_Included(ritv); ELSE ymax_exists := FALSE; END_IF; END_IF; IF NOT (xmin_exists OR xmax_exists OR ymin_exists OR ymax_exists) THEN RETURN(?); END_IF; IF xmin_exists THEN IF xmin_in THEN min_clo := Closed; ELSE min_clo := Open; END_IF; IF xmax_exists THEN IF xmax_in THEN max_clo := Closed; ELSE max_clo := Open; END_IF; xitv := Make_Finite_Real_Interval(xmin, min_clo, xmax, max_clo); ELSE xitv := Make_Real_Interval_From_Min(xmin, min_clo); END_IF; ELSE IF xmax_exists THEN IF xmax_in THEN max_clo := Closed; ELSE max_clo := Open; END_IF; xitv := Make_Real_Interval_To_Max(xmax, max_clo); ELSE xitv := The_Reals; END_IF; END_IF; IF ymin_exists THEN IF ymin_in THEN min_clo := Closed; ELSE min_clo := Open; END_IF; IF ymax_exists THEN IF ymax_in THEN max_clo := Closed; ELSE max_clo := Open; END_IF; yitv := Make_Finite_Real_Interval(ymin, min_clo, ymax, max_clo); ELSE yitv := Make_Real_Interval_From_Min(ymin, min_clo); END_IF; ELSE IF ymax_exists THEN IF ymax_in THEN max_clo := Closed; ELSE max_clo := Open; END_IF; yitv := Make_Real_Interval_To_Max(ymax, max_clo); ELSE yitv := The_Reals; END_IF; END_IF; RETURN(Make_Cartesian_Complex_Number_Region(xitv, yitv)); END_FUNCTION;
FUNCTION Enclose_Pregion_In_Pregion(prgn : Polar_Complex_Number_Region; centre : Complex_Number_Literal) : Polar_Complex_Number_Region; -- Find equivalent direction in range -PI < a <= PI. FUNCTION angle(a : REAL) : REAL; REPEAT WHILE a > PI; a := a - 2.0 * PI; END_REPEAT; REPEAT WHILE a <= -PI; a := a + 2.0 * PI; END_REPEAT; RETURN(a); END_FUNCTION; PROCEDURE angle_range(VAR amin : REAL; VAR amax : REAL); amin := angle(amin); IF amin = PI THEN amin := -PI; END_IF; amax := angle(amax); IF amax <= amin THEN amax := amax + 2.0 * PI; END_IF; END_PROCEDURE; FUNCTION strictly_in(a : REAL; aitv : Finite_Real_Interval) : LOGICAL; a := angle(a); RETURN({aitv.min < a < aitv.max} OR {aitv.min < a + 2.0 * PI < aitv.max}); END_FUNCTION; PROCEDURE find_aminmax(ab : REAL; a0 : REAL; a1 : REAL; a2 : REAL; a3 : REAL; in0 : BOOLEAN; in1 : BOOLEAN; in2 : BOOLEAN; in3 : BOOLEAN; VAR amin : REAL; VAR amax : REAL; VAR amin_in : BOOLEAN; VAR amax_in : BOOLEAN); LOCAL a : REAL; END_LOCAL; amin := angle(a0 - ab); amin_in := in0; amax := amin; amax_in := in0; a := angle(a1 - ab); IF a = amin THEN amin_in := amin_in OR in1; END_IF; IF a < amin THEN amin := a; amin_in := in1; END_IF; IF a = amax THEN amax_in := amax_in OR in1; END_IF; IF a > amax THEN amax := a; amax_in := in1; END_IF; a := angle(a2 - ab); IF a = amin THEN amin_in := amin_in OR in2; END_IF; IF a < amin THEN amin := a; amin_in := in2; END_IF; IF a = amax THEN amax_in := amax_in OR in2; END_IF; IF a > amax THEN amax := a; amax_in := in2; END_IF; a := angle(a3 - ab); IF a = amin THEN amin_in := amin_in OR in3; END_IF; IF a < amin THEN amin := a; amin_in := in3; END_IF; IF a = amax THEN amax_in := amax_in OR in3; END_IF; IF a > amax THEN amax := a; amax_in := in3; END_IF; amin := amin + ab; amax := amax + ab; angle_range(amin, amax); END_PROCEDURE; LOCAL ritp : Real_Interval; ritv : Real_Interval; aitp : Finite_Real_Interval; aitv : Finite_Real_Interval; xp : REAL := 0.0; yp : REAL := 0.0; xc : REAL := 0.0; yc : REAL := 0.0; rmax : REAL := 0.0; rmin : REAL := 0.0; amin : REAL := 0.0; amax : REAL := 0.0; rc : REAL := 0.0; acp : REAL := 0.0; apc : REAL := 0.0; rmax_in : BOOLEAN := FALSE; rmin_in : BOOLEAN := FALSE; amin_in : BOOLEAN := FALSE; amax_in : BOOLEAN := FALSE; rmxp : REAL := 0.0; rmnp : REAL := 0.0; x : REAL := 0.0; y : REAL := 0.0; r : REAL := 0.0; a : REAL := 0.0; ab : REAL := 0.0; r0 : REAL := 0.0; a0 : REAL := 0.0; r1 : REAL := 0.0; a1 : REAL := 0.0; r2 : REAL := 0.0; a2 : REAL := 0.0; r3 : REAL := 0.0; a3 : REAL := 0.0; in0 : BOOLEAN := FALSE; in1 : BOOLEAN := FALSE; in2 : BOOLEAN := FALSE; in3 : BOOLEAN := FALSE; inn : BOOLEAN := FALSE; minclo : Open_Closed := Open; maxclo : Open_Closed := Open; END_LOCAL; IF NOT EXISTS(prgn) OR NOT EXISTS(centre) THEN RETURN(?); END_IF; xp := prgn.centre.real_part; yp := prgn.centre.imag_part; ritp := prgn.distance_constraint; aitp := prgn.direction_constraint; xc := centre.real_part; yc := centre.imag_part; IF (xc = xp) AND (yc = yp) THEN RETURN(prgn); END_IF; rc := SQRT((xp - xc) ** 2 + (yp - yc) ** 2); acp := Atan2(yp - yc, xp - xc); apc := Atan2(yc - yp, xc - xp); rmnp := Real_Min(ritp); IF Max_Exists(ritp) THEN rmxp := Real_Max(ritp); IF aitp.max - aitp.min = 2.0 * PI THEN inn := NOT Max_Included(aitp); a := angle(aitp.min); rmax := rc + rmxp; rmax_in := Max_Included(ritp); IF inn AND (acp = a) THEN rmax_in := FALSE; END_IF; IF rc > rmxp THEN a0 := ASIN(rmxp / rc); amin := angle(acp - a0); amin_in := Max_Included(ritp); IF amin = PI THEN amin := -PI; END_IF; amax := angle(acp + a0); amax_in := amin_in; IF amax < amin THEN amax := amax + 2.0 * PI; END_IF; rmin := rc - rmxp; rmin_in := amin_in; IF inn THEN IF apc = a THEN rmin_in := FALSE; END_IF; IF angle(amin + 0.5 * PI) = a THEN amin_in := FALSE; END_IF; IF angle(amax - 0.5 * PI) = a THEN amax_in := FALSE; END_IF; END_IF; ELSE IF rc = rmxp THEN amin := angle(acp - 0.5 * PI); amin_in := FALSE; IF amin = PI THEN amin := -PI; END_IF; amax := angle(acp + 0.5 * PI); amax_in := FALSE; IF amax < amin THEN amax := amax + 2.0 * PI; END_IF; rmin := 0.0; rmin_in := Max_Included(ritp); IF inn AND (apc = a) THEN rmin_in := FALSE; END_IF; ELSE IF rc > rmnp THEN IF inn AND (apc = a) THEN rmin := 0.0; rmin_in := FALSE; amin := aitp.min; amin_in := FALSE; amax := aitp.max; amax_in := FALSE; ELSE rmin := 0.0; rmin_in := TRUE; amin := -PI; amin_in := FALSE; amax := PI; amax_in := TRUE; END_IF; ELSE rmin := rmnp - rc; rmin_in := Min_Included(ritp); amin := -PI; amin_in := FALSE; amax := PI; amax_in := TRUE; IF inn THEN IF apc = a THEN rmin_in := FALSE; amin := aitp.min; amin_in := FALSE; amax := aitp.max; amax_in := FALSE; ELSE IF acp = a THEN amin := aitp.min; amin_in := FALSE; amax := aitp.max; amax_in := FALSE; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; ELSE x := xp + rmxp * COS(aitp.min) - xc; y := yp + rmxp * SIN(aitp.min) - yc; r0 := SQRT(x ** 2 + y ** 2); in0 := Max_Included(ritp) AND Min_Included(aitp); IF r0 <> 0.0 THEN a0 := Atan2(y, x); END_IF; x := xp + rmxp * COS(aitp.max) - xc; y := yp + rmxp * SIN(aitp.max) - yc; r1 := SQRT(x ** 2 + y ** 2); in1 := Max_Included(ritp) AND Max_Included(aitp); IF r1 <> 0.0 THEN a1 := Atan2(y, x); END_IF; x := xp + rmnp * COS(aitp.max) - xc; y := yp + rmnp * SIN(aitp.max) - yc; r2 := SQRT(x ** 2 + y ** 2); in2 := Min_Included(ritp) AND Max_Included(aitp); IF r2 <> 0.0 THEN a2 := Atan2(y, x); ELSE a2 := a1; in2 := in1; END_IF; IF r1 = 0.0 THEN a1 := a2; in1 := in2; END_IF; x := xp + rmnp * COS(aitp.min) - xc; y := yp + rmnp * SIN(aitp.min) - yc; r3 := SQRT(x ** 2 + y ** 2); in3 := Min_Included(ritp) AND Min_Included(aitp); IF r3 <> 0.0 THEN a3 := Atan2(y, x); ELSE a3 := a0; in3 := in0; END_IF; IF r0 = 0.0 THEN a0 := a3; in0 := in3; END_IF; IF rmnp = 0.0 THEN in2 := Min_Included(ritp); in3 := in2; END_IF; IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) THEN in0 := Min_Included(aitp); in3 := in0; ELSE IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) THEN in1 := Max_Included(aitp); in2 := in1; END_IF; END_IF; IF strictly_in(acp, aitp) THEN rmax := rc + rmxp; rmax_in := Max_Included(ritp); ELSE rmax := r0; rmax_in := in0; IF rmax = r1 THEN rmax_in := rmax_in OR in1; END_IF; IF rmax < r1 THEN rmax := r1; rmax_in := in1; END_IF; IF rmax = r2 THEN rmax_in := rmax_in OR in2; END_IF; IF rmax < r2 THEN rmax := r2; rmax_in := in2; END_IF; IF rmax = r3 THEN rmax_in := rmax_in OR in3; END_IF; IF rmax < r3 THEN rmax := r3; rmax_in := in3; END_IF; END_IF; IF strictly_in(apc, aitp) THEN IF rc >= rmxp THEN rmin := rc - rmxp; rmin_in := Max_Included(ritp); ELSE IF rc <= rmnp THEN rmin := rmnp - rc; rmin_in := Min_Included(ritp); ELSE rmin := 0.0; rmin_in := TRUE; END_IF; END_IF; ELSE rmin := r0; rmin_in := in0; a := apc - aitp.min; r := rc * COS(a); IF {rmnp < r < rmxp} THEN rmin := rc * SIN(ABS(a)); rmin_in := Min_Included(aitp); END_IF; a := apc - aitp.max; r := rc * COS(a); IF {rmnp < r < rmxp} THEN r := rc * SIN(ABS(a)); inn := Max_Included(aitp); IF r = rmin THEN rmin_in := rmin_in OR inn; END_IF; IF r < rmin THEN rmin := r; rmin_in := inn; END_IF; END_IF; IF r1 = rmin THEN rmin_in := rmin_in OR in1; END_IF; IF r1 < rmin THEN rmin := r1; rmin_in := in1; END_IF; IF r2 = rmin THEN rmin_in := rmin_in OR in2; END_IF; IF r2 < rmin THEN rmin := r2; rmin_in := in2; END_IF; IF r3 = rmin THEN rmin_in := rmin_in OR in3; END_IF; IF r3 < rmin THEN rmin := r3; rmin_in := in3; END_IF; END_IF; IF rc >= rmxp THEN ab := acp; find_aminmax(ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in); a := ACOS(rmxp / rc); IF strictly_in(apc - a, aitp) THEN amin := ab - ASIN(rmxp / rc); amin_in := Max_Included(ritp); END_IF; IF strictly_in(apc + a, aitp) THEN amax := ab + ASIN(rmxp / rc); amax_in := Max_Included(ritp); END_IF; angle_range(amin, amax); ELSE IF rc > rmnp THEN ab := angle(0.5 * (aitp.min + aitp.max)); find_aminmax(ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in); ELSE ab := angle(0.5 * (aitp.min + aitp.max)); a0 := angle(a0 - ab); a1 := angle(a1 - ab); a2 := angle(a2 - ab); a3 := angle(a3 - ab); IF a3 > a2 THEN a2 := a2 + 2.0 * PI; END_IF; IF a0 > a1 THEN a0 := a0 + 2.0 * PI; END_IF; IF a3 < a0 THEN amin := a3; amin_in := in3; ELSE amin := a0; amin_in := in0; END_IF; IF a2 > a1 THEN amax := a2; amax_in := in2; ELSE amax := a1; amax_in := in1; END_IF; IF (amax - amin > 2.0 * PI) OR ((amax - amin = 2.0 * PI) AND (amin_in OR amax_in)) THEN amin := -PI; amin_in := FALSE; amax := PI; amax_in := TRUE; ELSE amin := amin + ab; amax := amax + ab; angle_range(amin, amax); END_IF; END_IF; END_IF; END_IF; IF rmin_in THEN minclo := Closed; END_IF; IF rmax_in THEN maxclo := Closed; END_IF; ritv := Make_Finite_Real_Interval(rmin, minclo, rmax, maxclo); ELSE IF (rc > rmnp) AND strictly_in(apc, aitp) THEN RETURN(?); END_IF; IF aitp.max - aitp.min = 2.0 * PI THEN a := angle(aitp.min); IF rc > rmnp THEN IF Max_Included(aitp) THEN RETURN(?); END_IF; rmin := 0.0; rmin_in := FALSE; amin := aitp.min; amin_in := FALSE; amax := aitp.max; amax_in := FALSE; ELSE rmin := rmnp - rc; rmin_in := Min_Included(ritp); amin := -PI; amin_in := FALSE; amax := PI; amax_in := TRUE; IF NOT Max_Included(aitp) THEN IF apc = a THEN rmin_in := FALSE; amin := aitp.min; amin_in := FALSE; amax := aitp.max; amax_in := FALSE; ELSE IF acp = a THEN amin := aitp.min; amin_in := FALSE; amax := aitp.max; amax_in := FALSE; END_IF; END_IF; END_IF; END_IF; ELSE a0 := angle(aitp.min); in0 := FALSE; a1 := angle(aitp.max); in1 := FALSE; x := xp + rmnp * COS(aitp.max) - xc; y := yp + rmnp * SIN(aitp.max) - yc; r2 := SQRT(x ** 2 + y ** 2); in2 := Min_Included(ritp) AND Max_Included(aitp); IF r2 <> 0.0 THEN a2 := Atan2(y, x); ELSE a2 := a1; in2 := in1; END_IF; x := xp + rmnp * COS(aitp.min) - xc; y := yp + rmnp * SIN(aitp.min) - yc; r3 := SQRT(x ** 2 + y ** 2); in3 := Min_Included(ritp) AND Min_Included(aitp); IF r3 <> 0.0 THEN a3 := Atan2(y, x); ELSE a3 := a0; in3 := in0; END_IF; IF rmnp = 0.0 THEN in2 := Min_Included(ritp); in3 := in2; END_IF; IF (apc = angle(aitp.min)) OR (acp = angle(aitp.min)) THEN in0 := Min_Included(aitp); in3 := in0; ELSE IF (apc = angle(aitp.max)) OR (acp = angle(aitp.max)) THEN in1 := Max_Included(aitp); in2 := in1; END_IF; END_IF; IF strictly_in(apc, aitp) THEN rmin := rmnp - rc; rmin_in := Min_Included(ritp); ELSE rmin := r2; rmin_in := in2; a := apc - aitp.min; r := rc * COS(a); IF rmnp < r THEN rmin := rc * SIN(ABS(a)); rmin_in := Min_Included(aitp); END_IF; a := apc - aitp.max; r := rc * COS(a); IF rmnp < r THEN r := rc * SIN(ABS(a)); inn := Max_Included(aitp); IF r = rmin THEN rmin_in := rmin_in OR inn; END_IF; IF r < rmin THEN rmin := r; rmin_in := inn; END_IF; END_IF; IF r3 = rmin THEN rmin_in := rmin_in OR in3; END_IF; IF r3 < rmin THEN rmin := r3; rmin_in := in3; END_IF; END_IF; ab := angle(0.5 * (aitp.min + aitp.max)); IF rc > rmnp THEN find_aminmax(ab, a0, a1, a2, a3, in0, in1, in2, in3, amin, amax, amin_in, amax_in); ELSE a0 := angle(a0 - ab); a1 := angle(a1 - ab); a2 := angle(a2 - ab); a3 := angle(a3 - ab); IF a3 > a2 THEN a2 := a2 + 2.0 * PI; END_IF; IF a0 > a1 THEN a0 := a0 + 2.0 * PI; END_IF; IF a3 < a0 THEN amin := a3; amin_in := in3; ELSE amin := a0; amin_in := in0; END_IF; IF a2 > a1 THEN amax := a2; amax_in := in2; ELSE amax := a1; amax_in := in1; END_IF; IF (amax - amin > 2.0 * PI) OR ((amax - amin = 2.0 * PI) AND (amin_in OR amax_in)) THEN amin := -PI; amin_in := FALSE; amax := PI; amax_in := TRUE; IF (rmin = 0.0) AND rmin_in THEN RETURN(?); END_IF; ELSE amin := amin + ab; amax := amax + ab; angle_range(amin, amax); END_IF; END_IF; END_IF; IF rmin_in THEN minclo := Closed; END_IF; ritv := Make_Real_Interval_From_Min(rmin, minclo); END_IF; minclo := Open; maxclo := Open; IF amin_in THEN minclo := Closed; END_IF; IF amax_in THEN maxclo := Closed; END_IF; aitv := Make_Finite_Real_Interval(amin, minclo, amax, maxclo); RETURN(Make_Polar_Complex_Number_Region(centre, ritv, aitv)); END_FUNCTION;
FUNCTION Equal_Cregion_Pregion(crgn : Cartesian_Complex_Number_Region; prgn : Polar_Complex_Number_Region) : LOGICAL; LOCAL arng : REAL; amin : REAL; xc : REAL; yc : REAL; aitv : Real_Interval; xitv : Real_Interval; yitv : Real_Interval; c_in : BOOLEAN; END_LOCAL; IF NOT EXISTS(crgn) OR NOT EXISTS(prgn) THEN RETURN(FALSE); END_IF; IF Max_Exists(prgn.distance_constraint) THEN RETURN(FALSE); END_IF; IF Real_Min(prgn.distance_constraint) <> 0.0 THEN RETURN(FALSE); END_IF; c_in := Min_Included(prgn.distance_constraint); aitv := prgn.direction_constraint; amin := aitv.min; arng := aitv.max - amin; xc := prgn.centre.real_part; yc := prgn.centre.imag_part; xitv := crgn.real_constraint; yitv := crgn.imag_constraint; IF arng = 0.5 * PI THEN IF amin = 0.0 THEN RETURN(NOT Max_Exists(xitv) AND NOT Max_Exists(yitv) AND Min_Exists(xitv) AND Min_Exists(yitv) AND (Real_Min(xitv) = xc) AND (Real_Min(yitv) = yc) AND ((c_in AND Min_Included(aitv) AND Max_Included(aitv) AND Min_Included(xitv) AND Min_Included(yitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND Max_Included(aitv) AND Min_Included(xitv) AND NOT Min_Included(yitv)) OR (NOT c_in AND Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Min_Included(xitv) AND Min_Included(yitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Min_Included(xitv) AND NOT Min_Included(yitv)))); END_IF; IF amin = 0.5 * PI THEN RETURN(Max_Exists(xitv) AND NOT Max_Exists(yitv) AND NOT Min_Exists(xitv) AND Min_Exists(yitv) AND (Real_Max(xitv) = xc) AND (Real_Min(yitv) = yc) AND ((c_in AND Min_Included(aitv) AND Max_Included(aitv) AND Max_Included(xitv) AND Min_Included(yitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND Max_Included(aitv) AND Max_Included(xitv) AND NOT Min_Included(yitv)) OR (NOT c_in AND Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Max_Included(xitv) AND Min_Included(yitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Max_Included(xitv) AND NOT Min_Included(yitv)))); END_IF; IF amin = -PI THEN RETURN(Max_Exists(xitv) AND Max_Exists(yitv) AND NOT Min_Exists(xitv) AND NOT Min_Exists(yitv) AND (Real_Max(xitv) = xc) AND (Real_Max(yitv) = yc) AND ((c_in AND Min_Included(aitv) AND Max_Included(aitv) AND Max_Included(xitv) AND Max_Included(yitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND Max_Included(aitv) AND Max_Included(xitv) AND NOT Max_Included(yitv)) OR (NOT c_in AND Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Max_Included(xitv) AND Max_Included(yitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Max_Included(xitv) AND NOT Max_Included(yitv)))); END_IF; IF amin = -0.5 * PI THEN RETURN(NOT Max_Exists(xitv) AND Max_Exists(yitv) AND Min_Exists(xitv) AND NOT Min_Exists(yitv) AND (Real_Min(xitv) = xc) AND (Real_Max(yitv) = yc) AND ((c_in AND Min_Included(aitv) AND Max_Included(aitv) AND Min_Included(xitv) AND Max_Included(yitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND Max_Included(aitv) AND Min_Included(xitv) AND NOT Max_Included(yitv)) OR (NOT c_in AND Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Min_Included(xitv) AND Max_Included(yitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Min_Included(xitv) AND NOT Max_Included(yitv)))); END_IF; END_IF; IF arng = PI THEN IF amin = 0.0 THEN RETURN(NOT Max_Exists(xitv) AND NOT Max_Exists(yitv) AND NOT Min_Exists(xitv) AND Min_Exists(yitv) AND (Real_Min(yitv) = yc) AND ((c_in AND Min_Included(aitv) AND Max_Included(aitv) AND Min_Included(yitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Min_Included(yitv)))); END_IF; IF amin = 0.5 * PI THEN RETURN(Max_Exists(xitv) AND NOT Max_Exists(yitv) AND NOT Min_Exists(xitv) AND NOT Min_Exists(yitv) AND (Real_Max(xitv) = xc) AND ((c_in AND Min_Included(aitv) AND Max_Included(aitv) AND Max_Included(xitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Max_Included(xitv)))); END_IF; IF amin = -PI THEN RETURN(NOT Max_Exists(xitv) AND Max_Exists(yitv) AND NOT Min_Exists(xitv) AND NOT Min_Exists(yitv) AND (Real_Max(yitv) = yc) AND ((c_in AND Min_Included(aitv) AND Max_Included(aitv) AND Max_Included(yitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Max_Included(yitv)))); END_IF; IF amin = -0.5 * PI THEN RETURN(NOT Max_Exists(xitv) AND NOT Max_Exists(yitv) AND Min_Exists(xitv) AND NOT Min_Exists(yitv) AND (Real_Min(xitv) = xc) AND ((c_in AND Min_Included(aitv) AND Max_Included(aitv) AND Min_Included(xitv)) OR (NOT c_in AND NOT Min_Included(aitv) AND NOT Max_Included(aitv) AND NOT Min_Included(xitv)))); END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Equal_Maths_Functions(fun1 : Maths_Function; fun2 : Maths_Function) : LOGICAL; LOCAL cum : LOGICAL; END_LOCAL; IF fun1 = fun2 THEN RETURN(TRUE); END_IF; cum := Equal_Maths_Spaces(fun1.domain, fun2.domain); IF cum = FALSE THEN RETURN(FALSE); END_IF; cum := cum AND Equal_Maths_Spaces(fun1.range, fun2.range); IF cum = FALSE THEN RETURN(FALSE); END_IF; RETURN(UNKNOWN); END_FUNCTION;
FUNCTION Equal_Maths_Spaces(spc1 : Maths_Space; spc2 : Maths_Space) : LOGICAL; LOCAL spc1types : SET OF STRING := Stripped_Typeof(spc1); spc2types : SET OF STRING := Stripped_Typeof(spc2); set1 : SET OF Maths_Value; set2 : SET OF Maths_Value; cum : LOGICAL := TRUE; base : Maths_Space; expnt : INTEGER; factors : LIST OF Maths_Space; factors2 : LIST OF Maths_Space; fs1 : Function_Space; fs2 : Function_Space; cum2 : LOGICAL; END_LOCAL; IF spc1 = spc2 THEN RETURN(TRUE); END_IF; IF 'FINITE_SPACE' IN spc1types THEN set1 := spc1\Finite_Space.members; IF 'FINITE_SPACE' IN spc2types THEN set2 := spc2\Finite_Space.members; REPEAT i := 1 TO SIZEOF(set1); cum := cum AND Member_Of(set1[i], spc2); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; IF cum = TRUE THEN REPEAT i := 1 TO SIZEOF(set2); cum := cum AND Member_Of(set2[i], spc1); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; RETURN(cum); END_IF; IF 'FINITE_INTEGER_INTERVAL' IN spc2types THEN set2 := []; REPEAT i := spc2\Finite_Integer_Interval.min TO spc2\Finite_Integer_Interval.max; set2 := set2 + [i]; END_REPEAT; RETURN(Equal_Maths_Spaces(spc1, Make_Finite_Space(set2))); END_IF; END_IF; IF ('FINITE_INTEGER_INTERVAL' IN spc1types) AND ('FINITE_SPACE' IN spc2types) THEN set1 := []; REPEAT i := spc1\Finite_Integer_Interval.min TO spc1\Finite_Integer_Interval.max; set1 := set1 + [i]; END_REPEAT; RETURN(Equal_Maths_Spaces(Make_Finite_Space(set1), spc2)); END_IF; IF ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc1types) AND ('POLAR_COMPLEX_NUMBER_REGION' IN spc2types) THEN RETURN(Equal_Cregion_Pregion(spc1, spc2)); END_IF; IF ('POLAR_COMPLEX_NUMBER_REGION' IN spc1types) AND ('CARTESIAN_COMPLEX_NUMBER_REGION' IN spc2types) THEN RETURN(Equal_Cregion_Pregion(spc2, spc1)); END_IF; IF 'UNIFORM_PRODUCT_SPACE' IN spc1types THEN base := spc1\Uniform_Product_Space.base; expnt := spc1\Uniform_Product_Space.exponent; IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN IF expnt <> spc2\Uniform_Product_Space.exponent THEN RETURN(FALSE); END_IF; RETURN(Equal_Maths_Spaces(base, spc2\Uniform_Product_Space.base)); END_IF; IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN factors := spc2\Listed_Product_Space.factors; IF expnt <> SIZEOF(factors) THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO SIZEOF(factors); cum := cum AND Equal_Maths_Spaces(base, factors[i]); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; END_IF; IF 'LISTED_PRODUCT_SPACE' IN spc1types THEN factors := spc1\Listed_Product_Space.factors; IF 'UNIFORM_PRODUCT_SPACE' IN spc2types THEN IF spc2\Uniform_Product_Space.exponent <> SIZEOF(factors) THEN RETURN(FALSE); END_IF; base := spc2\Uniform_Product_Space.base; REPEAT i := 1 TO SIZEOF(factors); cum := cum AND Equal_Maths_Spaces(base, factors[i]); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; IF 'LISTED_PRODUCT_SPACE' IN spc2types THEN factors2 := spc2\Listed_Product_Space.factors; IF SIZEOF(factors) <> SIZEOF(factors2) THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO SIZEOF(factors); cum := cum AND Equal_Maths_Spaces(factors[i], factors2[i]); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; END_IF; IF ('EXTENDED_TUPLE_SPACE' IN spc1types) AND ('EXTENDED_TUPLE_SPACE' IN spc2types) THEN RETURN(Equal_Maths_Spaces(spc1\Extended_Tuple_Space.extender, spc2\Extended_Tuple_Space.extender) AND Equal_Maths_Spaces(spc1\Extended_Tuple_Space.base, spc2\Extended_Tuple_Space.base)); END_IF; IF ('FUNCTION_SPACE' IN spc1types) AND ('FUNCTION_SPACE' IN spc2types) THEN fs1 := spc1; fs2 := spc2; IF fs1.domain_constraint <> fs2.domain_constraint THEN IF (fs1.domain_constraint = Sc_Equal) OR (fs2.domain_constraint = Sc_Equal) THEN RETURN(FALSE); END_IF; IF (fs1.domain_constraint <> Sc_Subspace) THEN fs1 := spc2; fs2 := spc1; END_IF; IF (fs1.domain_constraint <> Sc_Subspace) OR (fs2.domain_constraint <> Sc_Member) THEN RETURN(UNKNOWN); END_IF; IF Any_Space_Satisfies(fs1.domain_constraint, fs1.domain_argument) <> Any_Space_Satisfies(fs2.domain_constraint, fs2.domain_argument) THEN RETURN(FALSE); END_IF; IF NOT ('FINITE_SPACE' IN Stripped_Typeof(fs2.domain_argument)) THEN RETURN(FALSE); END_IF; IF SIZEOF(['FINITE_SPACE','FINITE_INTEGER_INTERVAL'] * Stripped_Typeof(fs1.domain_argument)) = 0 THEN RETURN(FALSE); END_IF; RETURN(UNKNOWN); END_IF; cum := Equal_Maths_Spaces(fs1.domain_argument, fs2.domain_argument); IF cum = FALSE THEN RETURN(FALSE); END_IF; IF fs1.range_constraint <> fs2.range_constraint THEN IF (fs1.range_constraint = Sc_Equal) OR (fs2.range_constraint = Sc_Equal) THEN RETURN(FALSE); END_IF; IF (fs1.range_constraint <> Sc_Subspace) THEN fs1 := spc2; fs2 := spc1; END_IF; IF (fs1.range_constraint <> Sc_Subspace) OR (fs2.range_constraint <> Sc_Member) THEN RETURN(UNKNOWN); END_IF; IF Any_Space_Satisfies(fs1.range_constraint, fs1.range_argument) <> Any_Space_Satisfies(fs2.range_constraint, fs2.range_argument) THEN RETURN(FALSE); END_IF; IF NOT ('FINITE_SPACE' IN Stripped_Typeof(fs2.range_argument)) THEN RETURN(FALSE); END_IF; IF SIZEOF(['FINITE_SPACE','FINITE_INTEGER_INTERVAL'] * Stripped_Typeof(fs1.range_argument)) = 0 THEN RETURN(FALSE); END_IF; RETURN(UNKNOWN); END_IF; cum := cum AND Equal_Maths_Spaces(fs1.range_argument, fs2.range_argument); RETURN(cum); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Equal_Maths_Values(val1 : Maths_Value; val2 : Maths_Value) : LOGICAL; FUNCTION mem_of_vs(val1 : Maths_Value; val2 : Maths_Value) : LOGICAL; IF NOT Has_Values_Space(val2) THEN RETURN(UNKNOWN); END_IF; IF NOT Member_Of(val1, Values_Space_Of(val2)) THEN RETURN(FALSE); END_IF; RETURN(UNKNOWN); END_FUNCTION; LOCAL types1 : SET OF STRING; types2 : SET OF STRING; list1 : LIST OF Maths_Value; list2 : LIST OF Maths_Value; cum : LOGICAL := TRUE; END_LOCAL; IF NOT EXISTS(val1) OR NOT EXISTS(val2) THEN RETURN(FALSE); END_IF; IF val1 = val2 THEN RETURN(TRUE); END_IF; types1 := Stripped_Typeof(val1); types2 := Stripped_Typeof(val2); IF ('MATHS_ATOM' IN types1) OR ('COMPLEX_NUMBER_LITERAL' IN types1) THEN IF 'MATHS_ATOM' IN types2 THEN RETURN(FALSE); END_IF; IF 'COMPLEX_NUMBER_LITERAL' IN types2 THEN RETURN(FALSE); END_IF; IF 'LIST' IN types2 THEN RETURN(FALSE); END_IF; IF 'MATHS_SPACE' IN types2 THEN RETURN(FALSE); END_IF; IF 'MATHS_FUNCTION' IN types2 THEN RETURN(FALSE); END_IF; IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN(mem_of_vs(val1, val2)); END_IF; RETURN(UNKNOWN); END_IF; IF ('MATHS_ATOM' IN types2) OR ('COMPLEX_NUMBER_LITERAL' IN types2) THEN RETURN(Equal_Maths_Values(val2, val1)); END_IF; IF 'LIST' IN types1 THEN IF 'LIST' IN types2 THEN list1 := val1; list2 := val2; IF SIZEOF(list1) <> SIZEOF(list2) THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO SIZEOF(list1); cum := cum AND Equal_Maths_Values(list1[i], list2[i]); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; IF 'MATHS_SPACE' IN types2 THEN RETURN(FALSE); END_IF; IF 'MATHS_FUNCTION' IN types2 THEN RETURN(FALSE); END_IF; IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN(mem_of_vs(val1, val2)); END_IF; RETURN(UNKNOWN); END_IF; IF 'LIST' IN types2 THEN RETURN(Equal_Maths_Values(val2, val1)); END_IF; IF 'MATHS_SPACE' IN types1 THEN IF 'MATHS_SPACE' IN types2 THEN RETURN(Equal_Maths_Spaces(val1, val2)); END_IF; IF 'MATHS_FUNCTION' IN types2 THEN RETURN(FALSE); END_IF; IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN(mem_of_vs(val1, val2)); END_IF; RETURN(UNKNOWN); END_IF; IF 'MATHS_SPACE' IN types2 THEN RETURN(Equal_Maths_Values(val2, val1)); END_IF; IF 'MATHS_FUNCTION' IN types1 THEN IF 'MATHS_FUNCTION' IN types2 THEN RETURN(Equal_Maths_Functions(val1, val2)); END_IF; IF 'GENERIC_EXPRESSION' IN types2 THEN RETURN(mem_of_vs(val1, val2)); END_IF; RETURN(UNKNOWN); END_IF; IF 'MATHS_FUNCTION' IN types2 THEN RETURN(Equal_Maths_Values(val2, val1)); END_IF; IF ('GENERIC_EXPRESSION' IN types1) AND ('GENERIC_EXPRESSION' IN types2) THEN IF NOT Has_Values_Space(val1) OR NOT Has_Values_Space(val2) THEN RETURN(UNKNOWN); END_IF; IF NOT Compatible_Spaces(Values_Space_Of(val1), Values_Space_Of(val2)) THEN RETURN(FALSE); END_IF; END_IF; RETURN(UNKNOWN); END_FUNCTION;
FUNCTION Es_Subspace_Of_Es(es1 : Elementary_Space_Enumerators; es2 : Elementary_Space_Enumerators) : BOOLEAN; IF NOT EXISTS(es1) OR NOT EXISTS(es2) THEN RETURN(FALSE); END_IF; IF es1 = es2 THEN RETURN(TRUE); END_IF; IF es2 = Es_Generics THEN RETURN(TRUE); END_IF; IF (es1 = Es_Booleans) AND (es2 = Es_Logicals) THEN RETURN(TRUE); END_IF; IF (es2 = Es_Numbers) AND ((es1 = Es_Complex_Numbers) OR (es1 = Es_Reals) OR (es1 = Es_Integers)) THEN RETURN(TRUE); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Expression_Is_Constant(expr : Generic_Expression) : BOOLEAN; RETURN(Bool(SIZEOF(Free_Variables_Of(expr)) = 0)); END_FUNCTION;
FUNCTION External_Version_Assignment_Is_Valid(aia : Applied_External_Identification_Assignment) : BOOLEAN; LOCAL item : External_Identification_Item; role : Identification_Role; END_LOCAL; role := aia.role; IF role.name = 'version' THEN REPEAT i := LOINDEX(aia\Applied_External_Identification_Assignment.items) TO HIINDEX(aia\Applied_External_Identification_Assignment.items); item := aia\Applied_External_Identification_Assignment.items[i]; IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_GENERAL_PROPERTY'] * TYPEOF(item)) = 0) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); ELSE RETURN(TRUE); END_IF; END_FUNCTION;
FUNCTION Extract_Factors(tspace : Tuple_Space; m : INTEGER; n : INTEGER) : Tuple_Space; LOCAL tsp : Tuple_Space := The_Zero_Tuple_Space; END_LOCAL; REPEAT i := m TO n; tsp := Assoc_Product_Space(tsp, Factor_Space(tspace, i)); END_REPEAT; RETURN(tsp); END_FUNCTION;
FUNCTION Extremal_Position_Check(fun : Linearized_Table_Function) : BOOLEAN; LOCAL source_domain : Maths_Space; source_interval : Finite_Integer_Interval; index : INTEGER := 1; base : INTEGER; shape : LIST OF Positive_Integer; ndim : Positive_Integer; slo : INTEGER; shi : INTEGER; sublo : LIST OF INTEGER := []; subhi : LIST OF INTEGER := []; END_LOCAL; IF NOT EXISTS(fun) THEN RETURN(FALSE); END_IF; source_domain := Factor1(fun.Source.domain); IF (Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(source_domain) THEN source_domain := Factor1(source_domain); END_IF; IF NOT ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(source_domain)) THEN RETURN(FALSE); END_IF; source_interval := source_domain; base := fun\Explicit_Table_Function.index_base; shape := fun\Explicit_Table_Function.shape; IF (Schema_Prefix + 'STANDARD_TABLE_FUNCTION') IN TYPEOF(fun) THEN REPEAT j := 1 TO SIZEOF(shape); index := index * shape[j]; END_REPEAT; index := fun.first + index - 1; RETURN(Bool({source_interval.min <= index <= source_interval.max})); END_IF; IF (Schema_Prefix + 'REGULAR_TABLE_FUNCTION') IN TYPEOF(fun) THEN ndim := SIZEOF(fun\Explicit_Table_Function.shape); REPEAT j := 1 TO ndim; slo := base; shi := base + shape[j] - 1; IF fun\Regular_Table_Function.increments[j] >= 0 THEN INSERT(sublo, slo, j - 1); INSERT(subhi, shi, j - 1); ELSE INSERT(sublo, shi, j - 1); INSERT(subhi, slo, j - 1); END_IF; END_REPEAT; index := Regular_Indexing(sublo, base, shape, fun\Regular_Table_Function.increments, fun.first); IF NOT ({source_interval.min <= index <= source_interval.max}) THEN RETURN(FALSE); END_IF; index := Regular_Indexing(subhi, base, shape, fun\Regular_Table_Function.increments, fun.first); IF NOT ({source_interval.min <= index <= source_interval.max}) THEN RETURN(FALSE); END_IF; RETURN(TRUE); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Face_Bound_Reversed(a_face_bound : Face_Bound) : Face_Bound; LOCAL the_reverse : Face_Bound; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF(a_face_bound)) THEN the_reverse := Dummy_Tri || Face_Bound(a_face_bound\Face_Bound.bound, NOT (a_face_bound\Face_Bound.Orientation)) || Face_Outer_Bound(); ELSE the_reverse := Dummy_Tri || Face_Bound(a_face_bound.bound, NOT (a_face_bound.Orientation)); END_IF; RETURN(the_reverse); END_FUNCTION;
FUNCTION Face_Reversed(a_face : Face) : Oriented_Face; LOCAL the_reverse : Oriented_Face; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_FACE' IN TYPEOF(a_face)) THEN the_reverse := Dummy_Tri || Face(Set_Of_Topology_Reversed(a_face.bounds)) || Oriented_Face(a_face\Oriented_Face.face_element, NOT (a_face\Oriented_Face.Orientation)); ELSE the_reverse := Dummy_Tri || Face(Set_Of_Topology_Reversed(a_face.bounds)) || Oriented_Face(a_face, FALSE); END_IF; RETURN(the_reverse); END_FUNCTION;
FUNCTION Factor_Space(tspace : Tuple_Space; idx : Positive_Integer) : Maths_Space; LOCAL typenames : SET OF STRING := TYPEOF(tspace); END_LOCAL; IF (Schema_Prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames THEN IF idx <= tspace\Uniform_Product_Space.exponent THEN RETURN(tspace\Uniform_Product_Space.base); END_IF; RETURN(?); END_IF; IF (Schema_Prefix + 'LISTED_PRODUCT_SPACE') IN typenames THEN IF idx <= SIZEOF(tspace\Listed_Product_Space.factors) THEN RETURN(tspace\Listed_Product_Space.factors[idx]); END_IF; RETURN(?); END_IF; IF (Schema_Prefix + 'EXTENDED_TUPLE_SPACE') IN typenames THEN IF idx <= Space_Dimension(tspace\Extended_Tuple_Space.base) THEN RETURN(Factor_Space(tspace\Extended_Tuple_Space.base, idx)); END_IF; RETURN(tspace\Extended_Tuple_Space.extender); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Factor1(tspace : Tuple_Space) : Maths_Space; LOCAL typenames : SET OF STRING := TYPEOF(tspace); END_LOCAL; IF (Schema_Prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames THEN RETURN(tspace\Uniform_Product_Space.base); END_IF; IF (Schema_Prefix + 'LISTED_PRODUCT_SPACE') IN typenames THEN RETURN(tspace\Listed_Product_Space.factors[1]); END_IF; IF (Schema_Prefix + 'EXTENDED_TUPLE_SPACE') IN typenames THEN RETURN(Factor1(tspace\Extended_Tuple_Space.base)); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Find_Assembly_Root(constituent : SET OF Product_Definition) : SET OF Product_Definition; LOCAL local_relation : SET OF Assembly_Component_Usage := []; local_relation2 : BAG OF Assembly_Component_Usage := []; local_parent : SET OF Product_Definition := []; root : SET OF Product_Definition; i : INTEGER := 0; j : INTEGER := 0; END_LOCAL; IF ((SIZEOF(constituent) = 1) AND Assembly_Root(constituent[1])) THEN RETURN([constituent[1]]); ELSE IF (SIZEOF(constituent) = 0) THEN RETURN([]); ELSE REPEAT j := 1 TO HIINDEX(constituent); local_relation2 := local_relation2 + QUERY(pdr <* USEDIN(constituent[j], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF(pdr)); END_REPEAT; local_relation := Bag_To_Set(local_relation2); IF (SIZEOF(local_relation) = 0) THEN IF (SIZEOF(constituent) = 1) THEN RETURN([constituent[1]]); ELSE RETURN([]); END_IF; ELSE REPEAT i := 1 TO HIINDEX(local_relation); REPEAT j := 1 TO HIINDEX(constituent); IF (local_relation[i].relating_product_definition <> constituent[j]) THEN local_parent := local_parent + local_relation[i].relating_product_definition; END_IF; END_REPEAT; END_REPEAT; IF ((SIZEOF(local_parent) = 1) AND Assembly_Root(local_parent[1])) THEN RETURN([local_parent[1]]); ELSE IF (SIZEOF(local_parent) = 0) THEN RETURN([]); ELSE root := Find_Assembly_Root(local_parent); IF (SIZEOF(root) = 1) THEN RETURN(root); ELSE IF (SIZEOF(root) = 0) THEN RETURN([]); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN([]); END_FUNCTION;
FUNCTION Find_Representative_Shape_Representation_Of_Product_Definition(item : Product_Definition) : Shape_Representation; LOCAL local_s_r : SET OF Shape_Representation := []; END_LOCAL; local_s_r := QUERY(z <* Find_Shape_Representation_Of_Product_Definition(item) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(z)); IF (SIZEOF(local_s_r) = 1) THEN RETURN(local_s_r[1]); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Find_Representative_Shape_Representation_Of_Shape_Aspect(item : Shape_Aspect) : Shape_Representation; LOCAL local_s_r : SET OF Shape_Representation := []; END_LOCAL; local_s_r := QUERY(z <* Find_Shape_Representation_Of_Shape_Aspect(item) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(z)); IF (SIZEOF(local_s_r) = 1) THEN RETURN(local_s_r[1]); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Find_Shape_Representation_Of_Product_Definition(item : Product_Definition) : SET OF Shape_Representation; LOCAL local_p_d_s : SET OF Product_Definition_Shape := []; local_p_d_s2 : BAG OF Product_Definition_Shape := []; local_s_d_r : SET OF Shape_Definition_Representation := []; local_s_d_r2 : BAG OF Shape_Definition_Representation := []; local_s_r : SET OF Shape_Representation := []; i : INTEGER; END_LOCAL; local_p_d_s2 := local_p_d_s2 + QUERY(pd <* USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)); local_p_d_s := Bag_To_Set(local_p_d_s2); REPEAT i := 1 TO HIINDEX(local_p_d_s); local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN(local_p_d_s[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)); END_REPEAT; local_s_d_r := Bag_To_Set(local_s_d_r2); REPEAT i := 1 TO HIINDEX(local_s_d_r); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(local_s_d_r[i].used_representation)) THEN local_s_r := local_s_r + local_s_d_r[i].used_representation; END_IF; END_REPEAT; RETURN(local_s_r); END_FUNCTION;
FUNCTION Find_Shape_Representation_Of_Shape_Aspect(item : Shape_Aspect) : SET OF Shape_Representation; LOCAL local_p_d : SET OF Property_Definition := []; local_s_d_r : SET OF Shape_Definition_Representation := []; local_s_d_r2 : BAG OF Shape_Definition_Representation := []; local_s_r : SET OF Shape_Representation := []; i : INTEGER; END_LOCAL; local_p_d := Bag_To_Set(USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION')); REPEAT i := 1 TO HIINDEX(local_p_d); local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN(local_p_d[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)); END_REPEAT; local_s_d_r := Bag_To_Set(local_s_d_r2); REPEAT i := 1 TO HIINDEX(local_s_d_r); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION' IN TYPEOF(local_s_d_r[i].used_representation)) THEN local_s_r := local_s_r + local_s_d_r[i].used_representation; END_IF; END_REPEAT; RETURN(local_s_r); END_FUNCTION;
FUNCTION First_Proj_Axis(z_axis : Direction; arg : Direction) : Direction; LOCAL x_axis : Direction; v : Direction; z : Direction; x_vec : Vector; END_LOCAL; IF (NOT EXISTS(z_axis)) THEN RETURN(?); ELSE z := Normalise(z_axis); IF NOT EXISTS(arg) THEN IF ((z.direction_ratios <> [1.0,0.0,0.0]) AND (z.direction_ratios <> [-1.0,0.0,0.0])) THEN v := Dummy_Gri || Direction([1.0,0.0,0.0]); ELSE v := Dummy_Gri || Direction([0.0,1.0,0.0]); END_IF; ELSE IF (arg.dim <> 3) THEN RETURN(?); END_IF; IF ((Cross_Product(arg, z).magnitude) = 0.0) THEN RETURN(?); ELSE v := Normalise(arg); END_IF; END_IF; x_vec := Scalar_Times_Vector(Dot_Product(v, z), z); x_axis := Vector_Difference(v, x_vec).Orientation; x_axis := Normalise(x_axis); END_IF; RETURN(x_axis); END_FUNCTION;
FUNCTION Free_Variables_Of(expr : Generic_Expression) : SET OF Generic_Variable; LOCAL typenames : SET OF STRING := Stripped_Typeof(expr); result : SET OF Generic_Variable := []; exprs : LIST OF Generic_Expression := []; END_LOCAL; IF 'GENERIC_LITERAL' IN typenames THEN RETURN(result); END_IF; IF 'GENERIC_VARIABLE' IN typenames THEN result := result + expr; RETURN(result); END_IF; IF 'QUANTIFIER_EXPRESSION' IN typenames THEN exprs := QUERY(ge <* expr\Multiple_Arity_Generic_Expression.operands | NOT (ge IN expr\Quantifier_Expression.variables)); REPEAT i := 1 TO SIZEOF(exprs); result := result + Free_Variables_Of(exprs[i]); END_REPEAT; REPEAT i := 1 TO SIZEOF(expr\Quantifier_Expression.variables); result := result - expr\Quantifier_Expression.variables[i]; END_REPEAT; RETURN(result); END_IF; IF 'UNARY_GENERIC_EXPRESSION' IN typenames THEN RETURN(Free_Variables_Of(expr\Unary_Generic_Expression.operand)); END_IF; IF 'BINARY_GENERIC_EXPRESSION' IN typenames THEN result := Free_Variables_Of(expr\Binary_Generic_Expression.operands[1]); RETURN(result + Free_Variables_Of(expr\Binary_Generic_Expression.operands[2])); END_IF; IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN typenames THEN REPEAT i := 1 TO SIZEOF(expr\Multiple_Arity_Generic_Expression.operands); result := result + Free_Variables_Of(expr\Multiple_Arity_Generic_Expression.operands[i]); END_REPEAT; RETURN(result); END_IF; RETURN(result); END_FUNCTION;
FUNCTION Function_Applicability(func : Maths_Function_Select; arguments : LIST [1 : ?] OF Maths_Value) : BOOLEAN; LOCAL domain : Tuple_Space := Convert_To_Maths_Function(func).domain; domain_types : SET OF STRING := TYPEOF(domain); narg : Positive_Integer := SIZEOF(arguments); arg : Generic_Expression; END_LOCAL; IF (Schema_Prefix + 'PRODUCT_SPACE') IN domain_types THEN IF Space_Dimension(domain) <> narg THEN RETURN(FALSE); END_IF; ELSE IF (Schema_Prefix + 'EXTENDED_TUPLE_SPACE') IN domain_types THEN IF Space_Dimension(domain) > narg THEN RETURN(FALSE); END_IF; ELSE RETURN(FALSE); END_IF; END_IF; REPEAT i := 1 TO narg; arg := Convert_To_Operand(arguments[i]); IF NOT Has_Values_Space(arg) THEN RETURN(FALSE); END_IF; IF NOT Compatible_Spaces(Factor_Space(domain, i), Values_Space_Of(arg)) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Function_Is_1d_Array(func : Maths_Function) : BOOLEAN; LOCAL temp : Maths_Space; END_LOCAL; IF NOT EXISTS(func) THEN RETURN(FALSE); END_IF; IF Space_Dimension(func.domain) <> 1 THEN RETURN(FALSE); END_IF; temp := Factor1(func.domain); IF (Schema_Prefix + 'PRODUCT_SPACE') IN TYPEOF(temp) THEN IF Space_Dimension(temp) <> 1 THEN RETURN(FALSE); END_IF; temp := Factor1(temp); END_IF; IF (Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp) THEN RETURN(TRUE); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Function_Is_1d_Table(func : Maths_Function) : BOOLEAN; LOCAL temp : Maths_Space; itvl : Finite_Integer_Interval; END_LOCAL; IF NOT EXISTS(func) THEN RETURN(FALSE); END_IF; IF Space_Dimension(func.domain) <> 1 THEN RETURN(FALSE); END_IF; temp := Factor1(func.domain); IF (Schema_Prefix + 'PRODUCT_SPACE') IN TYPEOF(temp) THEN IF Space_Dimension(temp) <> 1 THEN RETURN(FALSE); END_IF; temp := Factor1(temp); END_IF; IF (Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp) THEN itvl := temp; RETURN(Bool((itvl.min = 0) OR (itvl.min = 1))); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Function_Is_2d_Table(func : Maths_Function) : BOOLEAN; LOCAL temp : Maths_Space; pspace : Product_Space; itvl1 : Finite_Integer_Interval; itvl2 : Finite_Integer_Interval; END_LOCAL; IF NOT EXISTS(func) THEN RETURN(FALSE); END_IF; IF Space_Dimension(func.domain) <> 1 THEN RETURN(FALSE); END_IF; temp := Factor1(func.domain); IF NOT ('PRODUCT_SPACE' IN Stripped_Typeof(temp)) THEN RETURN(FALSE); END_IF; pspace := temp; IF Space_Dimension(pspace) <> 2 THEN RETURN(FALSE); END_IF; temp := Factor1(pspace); IF NOT ('FINITE_INTEGER_INTERVAL' IN Stripped_Typeof(temp)) THEN RETURN(FALSE); END_IF; itvl1 := temp; temp := Factor_Space(pspace, 2); IF NOT ('FINITE_INTEGER_INTERVAL' IN Stripped_Typeof(temp)) THEN RETURN(FALSE); END_IF; itvl2 := temp; RETURN(Bool((itvl1.min = itvl2.min) AND ((itvl1.min = 0) OR (itvl1.min = 1)))); END_FUNCTION;
FUNCTION Function_Is_Array(func : Maths_Function) : BOOLEAN; LOCAL tspace : Tuple_Space; temp : Maths_Space; END_LOCAL; IF NOT EXISTS(func) THEN RETURN(FALSE); END_IF; tspace := func.domain; IF (Space_Dimension(tspace) = 1) AND ((Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(Factor1(tspace))) THEN tspace := Factor1(tspace); END_IF; IF NOT ((Schema_Prefix + 'PRODUCT_SPACE') IN TYPEOF(tspace)) THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO Space_Dimension(tspace); temp := Factor_Space(tspace, i); IF NOT ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Function_Is_Table(func : Maths_Function) : BOOLEAN; LOCAL tspace : Tuple_Space; temp : Maths_Space; base : INTEGER; END_LOCAL; IF NOT EXISTS(func) THEN RETURN(FALSE); END_IF; tspace := func.domain; IF (Space_Dimension(tspace) = 1) AND ((Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(Factor1(tspace))) THEN tspace := Factor1(tspace); END_IF; IF NOT ((Schema_Prefix + 'PRODUCT_SPACE') IN TYPEOF(tspace)) THEN RETURN(FALSE); END_IF; temp := Factor1(tspace); IF NOT ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) THEN RETURN(FALSE); END_IF; base := temp\Finite_Integer_Interval.min; IF (base <> 0) AND (base <> 1) THEN RETURN(FALSE); END_IF; REPEAT i := 2 TO Space_Dimension(tspace); temp := Factor_Space(tspace, i); IF NOT ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) THEN RETURN(FALSE); END_IF; IF temp\Finite_Integer_Interval.min <> base THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Gbsf_Check_Curve(cv : Representation_Item) : BOOLEAN; IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN RETURN(FALSE); END_IF; IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE'] * TYPEOF(cv)) = 1 THEN RETURN(TRUE); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\B_Spline_Curve.self_intersect = FALSE) OR (cv\B_Spline_Curve.self_intersect = UNKNOWN)) THEN RETURN(TRUE); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(cv)) AND (cv\Composite_Curve.self_intersect = FALSE) OR (cv\Composite_Curve.self_intersect = UNKNOWN)) THEN RETURN(SIZEOF(QUERY(seg <* cv\Composite_Curve.segments | NOT (Gbsf_Check_Curve(seg.parent_curve)))) = 0); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN(Gbsf_Check_Curve(cv\Curve_Replica.parent_curve)); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\Offset_Curve_3d.self_intersect = FALSE) OR (cv\Offset_Curve_3d.self_intersect = UNKNOWN)) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv\Offset_Curve_3d.basis_curve)))) THEN RETURN(Gbsf_Check_Curve(cv\Offset_Curve_3d.basis_curve)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(cv) THEN RETURN((Gbsf_Check_Curve(cv\Pcurve.reference_to_curve\Representation.items[1])) AND (Gbsf_Check_Surface(cv\Pcurve.basis_surface))); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN IF (SIZEOF(cv\Polyline.points) >= 3) THEN RETURN(TRUE); END_IF; ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN IF Gbsf_Check_Curve(cv\Surface_Curve.Curve_3d) THEN REPEAT i := 1 TO SIZEOF(cv\Surface_Curve.associated_geometry); IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(cv\Surface_Curve.associated_geometry[i]) THEN IF NOT Gbsf_Check_Surface(cv\Surface_Curve.associated_geometry[i]) THEN RETURN(FALSE); END_IF; ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(cv\Surface_Curve.associated_geometry[i]) THEN IF NOT Gbsf_Check_Curve(cv\Surface_Curve.associated_geometry[i]) THEN RETURN(FALSE); END_IF; END_IF; END_IF; END_REPEAT; RETURN(TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Gbsf_Check_Point(pnt : Point) : BOOLEAN; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) THEN RETURN(TRUE); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt) THEN RETURN(Gbsf_Check_Curve(pnt\Point_On_Curve.basis_curve)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE' IN TYPEOF(pnt) THEN RETURN(Gbsf_Check_Surface(pnt\Point_On_Surface.basis_surface)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DEGENERATE_PCURVE' IN TYPEOF(pnt) THEN RETURN((Gbsf_Check_Curve(pnt\Degenerate_Pcurve.reference_to_curve\Representation.items[1])) AND (Gbsf_Check_Surface(pnt\Degenerate_Pcurve.basis_surface))); END_IF; END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Gbsf_Check_Surface(sf : Surface) : BOOLEAN; IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(sf)) AND (sf\B_Spline_Surface.self_intersect = FALSE) OR (sf\B_Spline_Surface.self_intersect = UNKNOWN)) THEN RETURN(TRUE); ELSE IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPHERICAL_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOROIDAL_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_TRIMMED_SURFACE'] * TYPEOF(sf)) = 1 THEN RETURN(TRUE); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_SURFACE' IN TYPEOF(sf)) AND (sf\Offset_Surface.self_intersect = FALSE) OR (sf\Offset_Surface.self_intersect = UNKNOWN)) THEN RETURN(Gbsf_Check_Surface(sf\Offset_Surface.basis_surface)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE' IN TYPEOF(sf) THEN REPEAT i := 1 TO SIZEOF(sf\Rectangular_Composite_Surface.segments); REPEAT j := 1 TO SIZEOF(sf\Rectangular_Composite_Surface.segments[i]); IF NOT (Gbsf_Check_Surface(sf\Rectangular_Composite_Surface.segments[i][j].parent_surface)) THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; RETURN(TRUE); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA' IN TYPEOF(sf) THEN RETURN(Gbsf_Check_Surface(sf\Surface_Replica.parent_surface)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF(sf) THEN RETURN(Gbsf_Check_Curve(sf\Swept_Surface.swept_curve)); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Geometric_Dimensionalities_In_Contexts(grcs : SET [1 : ?] OF Geometric_Representation_Context) : INTEGER; LOCAL grcs_1d : INTEGER := 0; grcs_2d : INTEGER := 0; grcs_3d : INTEGER := 0; END_LOCAL; IF (SIZEOF(grcs) = 1) THEN RETURN(grcs[1]\Geometric_Representation_Context.coordinate_space_dimension); ELSE REPEAT i := 1 TO HIINDEX(grcs); IF (grcs[i]\Geometric_Representation_Context.coordinate_space_dimension = 1) THEN grcs_1d := grcs_1d + 1; ELSE IF (grcs[i]\Geometric_Representation_Context.coordinate_space_dimension = 2) THEN grcs_2d := grcs_2d + 1; ELSE IF (grcs[i]\Geometric_Representation_Context.coordinate_space_dimension = 3) THEN grcs_3d := grcs_3d + 1; END_IF; END_IF; END_IF; END_REPEAT; END_IF; IF (grcs_1d + grcs_2d = 0) THEN RETURN(3); ELSE IF (grcs_1d + grcs_3d = 0) THEN RETURN(2); ELSE IF (grcs_2d + grcs_3d = 0) THEN RETURN(1); ELSE RETURN(0); END_IF; END_IF; END_IF; END_FUNCTION;
FUNCTION Get_Aggregate_Id_Value(obj : Id_Attribute_Select) : Identifier; LOCAL aggregate_id_bag : BAG OF Aggregate_Id_Attribute := (USEDIN(obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AGGREGATE_ID_ATTRIBUTE.IDENTIFIED_ITEM')); END_LOCAL; IF SIZEOF(aggregate_id_bag) = 1 THEN RETURN(aggregate_id_bag[1].attribute_value); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Get_Associated_Mandatory_Document_Ids(pdc : Product_Definition_Context) : SET OF STRING; LOCAL result : SET OF STRING := []; adrs_raw : SET OF Applied_Document_Reference := Bag_To_Set(USEDIN(pdc, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_DOCUMENT_REFERENCE.ITEMS')); adrs_filtered : SET OF Applied_Document_Reference := []; ras : SET OF Role_Association; dpas : SET OF Document_Product_Association; END_LOCAL; REPEAT i := 1 TO HIINDEX(adrs_raw); IF adrs_raw[i]\Document_Reference.role\Object_Role.name = 'mandatory' THEN adrs_filtered := adrs_filtered + adrs_raw[i]; END_IF; END_REPEAT; REPEAT i := 1 TO HIINDEX(adrs_filtered); dpas := Bag_To_Set(USEDIN(adrs_filtered[i]\Document_Reference.assigned_document, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT')); REPEAT j := 1 TO HIINDEX(dpas); IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF(dpas[j]) THEN IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_FORMATION' IN TYPEOF(dpas[j]\Document_Product_Association.related_product) THEN result := result + dpas[j]\Document_Product_Association.related_product\Product_Definition_Formation.of_product\Product.id; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT' IN TYPEOF(dpas[j].related_product) THEN result := result + dpas[j]\Document_Product_Association.related_product\Product.id; END_IF; END_IF; END_REPEAT; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Get_Basis_Surface(c : Curve_On_Surface) : SET [0 : 2] OF Surface; LOCAL surfs : SET [0 : 2] OF Surface; n : INTEGER; END_LOCAL; surfs := []; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(c) THEN surfs := [c\Pcurve.basis_surface]; ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(c) THEN n := SIZEOF(c\Surface_Curve.associated_geometry); REPEAT i := 1 TO n; surfs := surfs + Associated_Surface(c\Surface_Curve.associated_geometry[i]); END_REPEAT; END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c) THEN n := SIZEOF(c\Composite_Curve.segments); surfs := Get_Basis_Surface(c\Composite_Curve.segments[1].parent_curve); IF n > 1 THEN REPEAT i := 2 TO n; surfs := surfs * Get_Basis_Surface(c\Composite_Curve.segments[i].parent_curve); END_REPEAT; END_IF; END_IF; RETURN(surfs); END_FUNCTION;
FUNCTION Get_Coordinate_Values(source : Tessellated_Surface_Item) : Coordinates_List; LOCAL coordinate_values : Coordinates_List; max : INTEGER; END_LOCAL; (* If source is of type tessellated_face its single coordinates_list is returned *) CASE TRUE OF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN TYPEOF(source) : BEGIN coordinate_values := source\Tessellated_Face.coordinates; RETURN(coordinate_values); END; 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SURFACE_SET' IN TYPEOF(source) : BEGIN coordinate_values := source\Tessellated_Surface_Set.coordinates; RETURN(coordinate_values); END; 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SOLID' IN TYPEOF(source) : BEGIN IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN TYPEOF(source\Tessellated_Solid.items[1]) THEN coordinate_values := source\Tessellated_Solid.items[1]\Tessellated_Face.coordinates; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN TYPEOF(source\Tessellated_Solid.items[1]) THEN coordinate_values := source\Tessellated_Solid.items[1]\Tessellated_Edge.coordinates; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN TYPEOF(source\Tessellated_Solid.items[1]) THEN coordinate_values := source\Tessellated_Solid.items[1]\Tessellated_Vertex.coordinates; END_IF; max := SIZEOF(source\Tessellated_Solid.items); IF max = 1 THEN RETURN(coordinate_values); ELSE REPEAT i := 2 TO max; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN TYPEOF(source\Tessellated_Solid.items[i]) THEN IF NOT (coordinate_values :=: source\Tessellated_Solid.items[i]\Tessellated_Face.coordinates) THEN RETURN(?); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN TYPEOF(source\Tessellated_Solid.items[i]) THEN IF NOT (coordinate_values :=: source\Tessellated_Solid.items[i]\Tessellated_Edge.coordinates) THEN RETURN(?); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN TYPEOF(source\Tessellated_Solid.items[i]) THEN IF NOT (coordinate_values :=: source\Tessellated_Solid.items[i]\Tessellated_Vertex.coordinates) THEN RETURN(?); END_IF; END_IF; END_REPEAT; RETURN(coordinate_values); END_IF; END; 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHELL' IN TYPEOF(source) : BEGIN IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN TYPEOF(source\Tessellated_Shell.items[1]) THEN coordinate_values := source\Tessellated_Shell.items[1]\Tessellated_Face.coordinates; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN TYPEOF(source\Tessellated_Shell.items[1]) THEN coordinate_values := source\Tessellated_Shell.items[1]\Tessellated_Edge.coordinates; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN TYPEOF(source\Tessellated_Shell.items[1]) THEN coordinate_values := source\Tessellated_Shell.items[1]\Tessellated_Vertex.coordinates; END_IF; max := SIZEOF(source\Tessellated_Shell.items); IF max = 1 THEN RETURN(coordinate_values); ELSE REPEAT i := 2 TO max; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_FACE' IN TYPEOF(source\Tessellated_Shell.items[i]) THEN IF NOT (coordinate_values :=: source\Tessellated_Shell.items[i]\Tessellated_Face.coordinates) THEN RETURN(?); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_EDGE' IN TYPEOF(source\Tessellated_Shell.items[i]) THEN IF NOT (coordinate_values :=: source\Tessellated_Shell.items[i]\Tessellated_Edge.coordinates) THEN RETURN(?); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_VERTEX' IN TYPEOF(source\Tessellated_Shell.items[i]) THEN IF NOT (coordinate_values :=: source\Tessellated_Shell.items[i]\Tessellated_Vertex.coordinates) THEN RETURN(?); END_IF; END_IF; END_REPEAT; RETURN(coordinate_values); END_IF; END; END_CASE; END_FUNCTION;
FUNCTION Get_Descendant_Occurrences(input : Product_Definition_Occurrence) : SET [0 : ?] OF Product_Definition_Specified_Occurrence; LOCAL result : SET OF Product_Definition_Specified_Occurrence := input.child_occurrences; END_LOCAL; REPEAT i := 1 TO HIINDEX(input.child_occurrences) BY 1; result := result + Get_Descendant_Occurrences(input.child_occurrences[i]); END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Get_Description_Value(obj : Description_Attribute_Select) : Text; LOCAL description_bag : BAG OF Description_Attribute := (USEDIN(obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')); END_LOCAL; IF SIZEOF(description_bag) = 1 THEN RETURN(description_bag[1].attribute_value); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Get_Directed_Link(nodes : LIST OF Representation; undirected_link : LIST OF Chained_Representation_Link) : LIST OF Representation_Relationship; LOCAL directed_link : LIST OF Representation_Relationship := []; END_LOCAL; IF (SIZEOF(nodes) <> SIZEOF(undirected_link) + 1) OR (VALUE_UNIQUE(nodes) = FALSE) THEN RETURN(?); END_IF; REPEAT i := 1 TO SIZEOF(undirected_link); CASE TRUE OF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_CONTEXT' IN TYPEOF(undirected_link[i])) : BEGIN IF ((nodes[i]\Representation.context_of_items :=: undirected_link[i]) AND (nodes[i + 1]\Representation.context_of_items :=: undirected_link[i])) THEN INSERT(directed_link, Representation_Relationship('', '', nodes[i + 1], nodes[i]), (i - 1)); ELSE RETURN(?); END_IF; END; ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_RELATIONSHIP' IN TYPEOF(undirected_link[i])) : BEGIN IF (((nodes[i] :=: undirected_link[i]\Representation_Relationship.rep_1) AND (nodes[i + 1] :=: undirected_link[i]\Representation_Relationship.rep_2)) OR ((nodes[i] :=: undirected_link[i]\Representation_Relationship.rep_2) AND (nodes[i + 1] :=: undirected_link[i]\Representation_Relationship.rep_1))) THEN INSERT(directed_link, Representation_Relationship('', '', nodes[i + 1], nodes[i]), (i - 1)); ELSE RETURN(?); END_IF; END; ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM' IN TYPEOF(undirected_link[i])) : BEGIN IF ((nodes[i] IN Using_Representations(undirected_link[i])) AND (nodes[i + 1] :=: undirected_link[i]\Mapped_Item.mapping_source\Representation_Map.mapped_representation)) THEN INSERT(directed_link, Representation_Relationship('', '', nodes[i + 1], nodes[i]), (i - 1)); ELSE RETURN(?); END_IF; END; OTHERWISE: RETURN(?); END_CASE; END_REPEAT; IF (VALUE_UNIQUE(directed_link) = FALSE) THEN RETURN(?); END_IF; RETURN(directed_link); END_FUNCTION;
FUNCTION Get_Id_Value(obj : Id_Attribute_Select) : Identifier; LOCAL id_bag : BAG OF Id_Attribute := (USEDIN(obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ID_ATTRIBUTE.IDENTIFIED_ITEM')); END_LOCAL; IF SIZEOF(id_bag) = 1 THEN RETURN(id_bag[1].attribute_value); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Get_Kinematic_Joints_From_Kinematic_Loops(kls : SET OF Kinematic_Loop) : SET OF Kinematic_Joint; LOCAL result : SET OF Oriented_Joint := []; END_LOCAL; IF SIZEOF(kls) > 0 THEN REPEAT i := 1 TO HIINDEX(kls); result := result + kls[i].edge_list; END_REPEAT; END_IF; RETURN(Get_Kinematic_Joints_From_Oriented_Joints(result)); END_FUNCTION;
FUNCTION Get_Kinematic_Joints_From_Oriented_Joints(ors : SET OF Oriented_Joint) : SET OF Kinematic_Joint; LOCAL result : SET OF Kinematic_Joint := []; END_LOCAL; IF SIZEOF(ors) > 0 THEN REPEAT i := 1 TO HIINDEX(ors); result := result + ors[i].edge_element; END_REPEAT; END_IF; RETURN(result); END_FUNCTION;
FUNCTION Get_Name_Value(obj : Name_Attribute_Select) : Label; LOCAL name_bag : BAG OF Name_Attribute := (USEDIN(obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NAME_ATTRIBUTE.NAMED_ITEM')); END_LOCAL; IF SIZEOF(name_bag) = 1 THEN RETURN(name_bag[1].attribute_value); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Get_Plane_Of_Implicit_Geometry(ps : Positioned_Sketch) : Plane; LOCAL sb : Sketch_Basis_Select := ps.sketch_basis; result : Plane := ?; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SURFACE' IN TYPEOF(sb)) THEN result := sb\Face_Surface.face_geometry; ELSE IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF(sb)) THEN result := sb\Curve_Bounded_Surface.basis_surface; ELSE IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_CURVE_SELECT' IN TYPEOF(sb)) THEN BEGIN IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC' IN TYPEOF(sb)) THEN result := Dummy_Gri || Surface() || Elementary_Surface(sb\Conic.position) || Plane(); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE' IN TYPEOF(sb)) THEN BEGIN result := Get_Plane_Of_Implicit_Geometry(Dummy_Gri || Positioned_Sketch(sb\Trimmed_Curve.basis_curve, [])); END; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(sb)) THEN result := sb\Pcurve.basis_surface; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(sb)) THEN BEGIN IF ((SIZEOF(sb\Surface_Curve.basis_surface) = 1) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(sb\Surface_Curve.basis_surface[1]))) THEN result := sb\Surface_Curve.basis_surface[1]; ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(sb\Surface_Curve.basis_surface[1])) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(sb\Surface_Curve.basis_surface[2]))) THEN result := ?; ELSE IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE' IN TYPEOF(sb\Surface_Curve.basis_surface[1])) THEN result := sb\Surface_Curve.basis_surface[1]; ELSE result := sb\Surface_Curve.basis_surface[2]; END_IF; END_IF; END_IF; END; END_IF; END; END_IF; END_IF; END_IF; RETURN(result); END_FUNCTION;
FUNCTION Get_Property_Definition_Representations(c_def_instance : Characterized_Definition) : SET OF Property_Definition_Representation; LOCAL pd_set : SET OF Property_Definition := []; pdr_set : SET OF Property_Definition_Representation := []; END_LOCAL; pd_set := Bag_To_Set(USEDIN(c_def_instance, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION')); IF (SIZEOF(pd_set) < 1) THEN RETURN(pdr_set); END_IF; REPEAT i := 1 TO HIINDEX(pd_set); pdr_set := pdr_set + Bag_To_Set(USEDIN(pd_set[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')); END_REPEAT; RETURN(pdr_set); END_FUNCTION;
FUNCTION Get_Relative_Direction_2points(cp1 : Cartesian_Point; cp2 : Cartesian_Point) : Direction; LOCAL d1 : REAL; d2 : REAL; d3 : REAL; magnitude : REAL; result : Direction := ?; END_LOCAL; IF ((cp1.dim <> 3) OR (cp2.dim <> 3)) THEN RETURN(result); ELSE BEGIN d1 := cp2.coordinates[1] - cp1.coordinates[1]; d2 := cp2.coordinates[2] - cp1.coordinates[2]; d3 := cp2.coordinates[3] - cp1.coordinates[3]; magnitude := SQRT(d1 * d1 + d2 * d2 + d3 * d3); IF (magnitude = 0) THEN RETURN(result); END_IF; result := Dummy_Gri || Direction([d1,d2,d3]); END; END_IF; RETURN(result); END_FUNCTION;
FUNCTION Get_Representations_For_Items(input : SET OF Founded_Item_Select) : SET OF Representation; LOCAL r_set : SET OF Representation := []; END_LOCAL; REPEAT i := LOINDEX(input) TO HIINDEX(input); r_set := r_set + Using_Representations(input[i]); END_REPEAT; RETURN(r_set); END_FUNCTION;
FUNCTION Get_Role(obj : Role_Select) : Object_Role; LOCAL role_bag : BAG OF Role_Association := (USEDIN(obj, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')); END_LOCAL; IF SIZEOF(role_bag) = 1 THEN RETURN(role_bag[1].role); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Get_Root_Shape_Aspect(current : Shape_Aspect) : Product_Definition_Shape; REPEAT WHILE ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONSTITUENT_SHAPE_ASPECT' IN TYPEOF(current)); current := current.parent; END_REPEAT; RETURN(current.of_shape); END_FUNCTION;
FUNCTION Get_Shape_Aspect_Property_Definition_Representations(s_a_instance : Shape_Aspect) : SET OF Property_Definition_Representation; LOCAL pd_set : SET OF Property_Definition := []; pdr_set : SET OF Property_Definition_Representation := []; END_LOCAL; pd_set := Bag_To_Set(USEDIN(s_a_instance, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION')); IF (SIZEOF(pd_set) < 1) THEN RETURN(pdr_set); END_IF; REPEAT i := 1 TO HIINDEX(pd_set); pdr_set := pdr_set + (QUERY(pdr <* USEDIN(pd_set[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr))); END_REPEAT; RETURN(pdr_set); END_FUNCTION;
FUNCTION Get_Shape_Aspects(c_def_instance : Characterized_Definition) : SET OF Shape_Aspect; LOCAL pd_set : SET OF Product_Definition_Shape := []; pdr_set : SET OF Shape_Aspect := []; END_LOCAL; pd_set := Bag_To_Set(QUERY(pd <* USEDIN(c_def_instance, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd))); IF (SIZEOF(pd_set) < 1) THEN RETURN(pdr_set); END_IF; REPEAT i := 1 TO HIINDEX(pd_set); pdr_set := pdr_set + Bag_To_Set(USEDIN(pd_set[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE')); END_REPEAT; RETURN(pdr_set); END_FUNCTION;
FUNCTION Has_Values_Space(expr : Generic_Expression) : BOOLEAN; LOCAL typenames : SET OF STRING := Stripped_Typeof(expr); END_LOCAL; IF 'EXPRESSION' IN typenames THEN RETURN(Bool(('NUMERIC_EXPRESSION' IN typenames) OR ('STRING_EXPRESSION' IN typenames) OR ('BOOLEAN_EXPRESSION' IN typenames))); END_IF; IF 'MATHS_FUNCTION' IN typenames THEN RETURN(TRUE); END_IF; IF 'FUNCTION_APPLICATION' IN typenames THEN RETURN(TRUE); END_IF; IF 'MATHS_SPACE' IN typenames THEN RETURN(TRUE); END_IF; IF 'MATHS_VARIABLE' IN typenames THEN RETURN(TRUE); END_IF; IF 'DEPENDENT_VARIABLE_DEFINITION' IN typenames THEN RETURN(Has_Values_Space(expr\Unary_Generic_Expression.operand)); END_IF; IF 'COMPLEX_NUMBER_LITERAL' IN typenames THEN RETURN(TRUE); END_IF; IF 'LOGICAL_LITERAL' IN typenames THEN RETURN(TRUE); END_IF; IF 'BINARY_LITERAL' IN typenames THEN RETURN(TRUE); END_IF; IF 'MATHS_ENUM_LITERAL' IN typenames THEN RETURN(TRUE); END_IF; IF 'REAL_TUPLE_LITERAL' IN typenames THEN RETURN(TRUE); END_IF; IF 'INTEGER_TUPLE_LITERAL' IN typenames THEN RETURN(TRUE); END_IF; IF 'ATOM_BASED_LITERAL' IN typenames THEN RETURN(TRUE); END_IF; IF 'MATHS_TUPLE_LITERAL' IN typenames THEN RETURN(TRUE); END_IF; IF 'PARTIAL_DERIVATIVE_EXPRESSION' IN typenames THEN RETURN(TRUE); END_IF; IF 'DEFINITE_INTEGRAL_EXPRESSION' IN typenames THEN RETURN(TRUE); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Increasing_Values_In_List(values : LIST [2 : ?] OF REAL) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; limit : INTEGER := SIZEOF(values); END_LOCAL; REPEAT i := 2 TO limit; IF values[i] <= values[i - 1] THEN result := FALSE; END_IF; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Inspected_Product_Definition(dqir : Data_Quality_Inspection_Result_Representation) : BAG OF Product_Definition; LOCAL dqdr : BAG OF Data_Quality_Definition_Representation_Relationship := []; pdqdr : BAG OF Product_Data_And_Data_Quality_Relationship := []; pd : BAG OF Product_Definition := []; END_LOCAL; dqdr := USEDIN(dqir, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.USED_REPRESENTATION'); REPEAT i := 1 TO SIZEOF(dqdr); pdqdr := USEDIN(dqdr[i].definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DATA_AND_DATA_QUALITY_RELATIONSHIP.DATA_QUALITY'); REPEAT j := 1 TO SIZEOF(pdqdr); pd := pd + pdqdr[j].product_data; END_REPEAT; END_REPEAT; RETURN(pd); END_FUNCTION;
FUNCTION Invalidate_Vrep_Item(item : Variational_Representation_Item) : BOOLEAN; LOCAL reps : SET [1 : ?] OF Representation := Using_Representations(item); svri : SET [1 : ?] OF Variational_Representation_Item; iar : Instance_Attribute_Reference; i : INTEGER; n : INTEGER := HIINDEX(reps); END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item)) THEN IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_ATTRIBUTE_REFERENCE' IN TYPEOF(item\Generic_Variable.interpretation\Environment.semantics) THEN BEGIN iar := item\Generic_Variable.interpretation\Environment.semantics; IF (reps <> Using_Representations(iar\Instance_Attribute_Reference.owning_instance)) THEN RETURN(TRUE); END_IF; END; ELSE RETURN(TRUE); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF(item)) THEN BEGIN REPEAT i := 1 TO n; svri := QUERY(q <* reps[i]\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FREE_FORM_CONSTRAINT' IN TYPEOF(q)); IF SIZEOF(QUERY(r <* svri | item IN (r\Free_Form_Constraint.reference_elements + r\Free_Form_Constraint.constrained_elements))) = 0 THEN RETURN(TRUE); END_IF; END_REPEAT; END; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF(item)) THEN REPEAT i := 1 TO SIZEOF(item\Fixed_Instance_Attribute_Set.fixed_attributes); IF (reps <> Using_Representations(item\Fixed_Instance_Attribute_Set.fixed_attributes[i]\Instance_Attribute_Reference.owning_instance)) THEN RETURN(TRUE); END_IF; END_REPEAT; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_CONSTRAINT' IN TYPEOF(item)) THEN IF SIZEOF(QUERY(q <* (item\Explicit_Constraint.reference_elements + item\Explicit_Constraint.constrained_elements) | reps <> Using_Representations(q))) > 0 THEN RETURN(TRUE); END_IF; END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF(item)) THEN BEGIN REPEAT i := 1 TO n; svri := QUERY(q <* reps[i]\Representation.items | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXPLICIT_GEOMETRIC_CONSTRAINT' IN TYPEOF(q)); IF SIZEOF(QUERY(r <* svri | item IN r\Explicit_Geometric_Constraint.reference_elements)) = 0 THEN RETURN(TRUE); END_IF; END_REPEAT; END; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Is_Acyclic(arg : Generic_Expression) : BOOLEAN; RETURN(Acyclic(arg, [])); END_FUNCTION;
FUNCTION Is_Int_Expr(arg : Numeric_Expression) : BOOLEAN; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_LITERAL' IN TYPEOF(arg) THEN RETURN(TRUE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_LITERAL' IN TYPEOF(arg) THEN RETURN(FALSE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN RETURN(TRUE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN RETURN(FALSE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg) THEN RETURN(Is_Int_Expr(arg\Unary_Numeric_Expression.operand)); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg) THEN RETURN(Is_Int_Expr(arg\Unary_Numeric_Expression.operand)); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COS_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) THEN RETURN(FALSE); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULT_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF(arg)) THEN REPEAT i := 1 TO SIZEOF(arg\Multiple_Arity_Numeric_Expression.operands); IF NOT Is_Int_Expr(arg\Multiple_Arity_Numeric_Expression.operands[i]) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POWER_EXPRESSION' IN TYPEOF(arg)) THEN RETURN(Is_Int_Expr(arg\Binary_Numeric_Expression.operands[1]) AND Is_Int_Expr(arg\Binary_Numeric_Expression.operands[2])); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) THEN RETURN(TRUE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg) THEN RETURN(FALSE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg) THEN RETURN(TRUE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg) THEN IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INT_VALUE_FUNCTION' IN TYPEOF(arg) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INTEGER_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN(TRUE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN(FALSE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN(FALSE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN(FALSE); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Is_Sql_Mappable(arg : Expression) : BOOLEAN; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF(arg) THEN RETURN(TRUE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF(arg) THEN RETURN(TRUE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_FUNCTION' IN TYPEOF(arg) THEN RETURN(Is_Sql_Mappable(arg\Unary_Numeric_Expression.operand)); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABS_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIN_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COS_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TAN_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXP_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_FUNCTION' IN TYPEOF(arg)) THEN RETURN(FALSE); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULT_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF(arg)) THEN REPEAT i := 1 TO SIZEOF(arg\Multiple_Arity_Numeric_Expression.operands); IF NOT Is_Sql_Mappable(arg\Multiple_Arity_Numeric_Expression.operands[i]) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SLASH_EXPRESSION' IN TYPEOF(arg)) THEN RETURN(Is_Sql_Mappable(arg\Binary_Numeric_Expression.operands[1]) AND Is_Sql_Mappable(arg\Binary_Numeric_Expression.operands[2])); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POWER_EXPRESSION' IN TYPEOF(arg)) THEN RETURN(FALSE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF(arg) THEN RETURN(TRUE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NOT_EXPRESSION' IN TYPEOF(arg) THEN RETURN(Is_Sql_Mappable(arg\Unary_Generic_Expression.operand)); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ODD_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.XOR_EXPRESSION' IN TYPEOF(arg)) THEN RETURN(FALSE); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AND_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OR_EXPRESSION' IN TYPEOF(arg)) THEN REPEAT i := 1 TO SIZEOF(arg\Multiple_Arity_Boolean_Expression.operands); IF NOT Is_Sql_Mappable(arg\Multiple_Arity_Boolean_Expression.operands[i]) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EQUALS_EXPRESSION' IN TYPEOF(arg) THEN RETURN(Is_Sql_Mappable(arg\Binary_Generic_Expression.operands[1]) AND Is_Sql_Mappable(arg\Binary_Generic_Expression.operands[2])); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_EQUAL' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_GREATER' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_GREATER_EQUAL' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_LESS' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_LESS_EQUAL' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPARISON_NOT_EQUAL' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LIKE_EXPRESSION' IN TYPEOF(arg)) THEN RETURN(Is_Sql_Mappable(arg\Comparison_Expression.operands[1]) AND Is_Sql_Mappable(arg\Comparison_Expression.operands[2])); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INTERVAL_EXPRESSION' IN TYPEOF(arg) THEN RETURN(Is_Sql_Mappable(arg\Interval_Expression.interval_low) AND Is_Sql_Mappable(arg\Interval_Expression.interval_high) AND Is_Sql_Mappable(arg\Interval_Expression.interval_item)); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NUMERIC_DEFINED_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF(arg)) THEN RETURN(FALSE); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SIMPLE_STRING_EXPRESSION' IN TYPEOF(arg) THEN RETURN(TRUE); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INDEX_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SUBSTRING_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCAT_EXPRESSION' IN TYPEOF(arg)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FORMAT_FUNCTION' IN TYPEOF(arg)) THEN RETURN(FALSE); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Item_In_Context(item : Representation_Item; cntxt : Representation_Context) : BOOLEAN; LOCAL y : BAG OF Representation_Item; END_LOCAL; IF SIZEOF(USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS') * cntxt.representations_in_context) > 0 THEN RETURN(TRUE); ELSE y := QUERY(z <* USEDIN(item, '') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z)); IF SIZEOF(y) > 0 THEN REPEAT i := 1 TO HIINDEX(y); IF Item_In_Context(y[i], cntxt) THEN RETURN(TRUE); END_IF; END_REPEAT; END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Leap_Year(year : Year_Number) : BOOLEAN; IF ((((year MOD 4) = 0) AND ((year MOD 100) <> 0)) OR ((year MOD 400) = 0)) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END_FUNCTION;
FUNCTION List_Face_Loops(f : Face) : LIST [0 : ?] OF Loop; LOCAL loops : LIST [0 : ?] OF Loop := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(f.bounds); loops := loops + (f.bounds[i].bound); END_REPEAT; RETURN(loops); END_FUNCTION;
FUNCTION List_Of_Topology_Reversed(a_list : List_Of_Reversible_Topology_Item) : List_Of_Reversible_Topology_Item; LOCAL the_reverse : List_Of_Reversible_Topology_Item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF(a_list); the_reverse := Topology_Reversed(a_list[i]) + the_reverse; END_REPEAT; RETURN(the_reverse); END_FUNCTION;
FUNCTION List_Selected_Components(aggr : AGGREGATE OF LIST OF Maths_Value; k : Positive_Integer) : LIST OF Maths_Value; LOCAL result : LIST OF Maths_Value := []; j : INTEGER := 0; END_LOCAL; REPEAT i := LOINDEX(aggr) TO HIINDEX(aggr); IF k <= SIZEOF(aggr[i]) THEN INSERT(result, aggr[i][k], j); j := j + 1; END_IF; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION List_To_Array(lis : LIST [0 : ?] OF GENERIC : T; low : INTEGER; u : INTEGER) : ARRAY [low : u] OF GENERIC : T; LOCAL n : INTEGER; res : ARRAY [low : u] OF GENERIC : T; END_LOCAL; n := SIZEOF(lis); IF (n <> (u - low + 1)) THEN RETURN(?); ELSE res := [lis[1]:n]; REPEAT i := 2 TO n; res[low + i - 1] := lis[i]; END_REPEAT; RETURN(res); END_IF; END_FUNCTION;
FUNCTION List_To_Set(l : LIST [0 : ?] OF GENERIC : T) : SET OF GENERIC : T; LOCAL s : SET OF GENERIC : T := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(l); s := s + l[i]; END_REPEAT; RETURN(s); END_FUNCTION;
FUNCTION Make_Array_Of_Array(lis : LIST [1 : ?] OF LIST [1 : ?] OF GENERIC : T; low1 : INTEGER; u1 : INTEGER; low2 : INTEGER; u2 : INTEGER) : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF GENERIC : T; LOCAL res : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF GENERIC : T; END_LOCAL; (* Check input dimensions for consistency *) IF (u1 - low1 + 1) <> SIZEOF(lis) THEN RETURN(?); END_IF; IF (u2 - low2 + 1) <> SIZEOF(lis[1]) THEN RETURN(?); END_IF; (* Initialise res with values from lis[1] *) res := [List_To_Array(lis[1], low2, u2):(u1 - low1 + 1)]; REPEAT i := 2 TO HIINDEX(lis); IF (u2 - low2 + 1) <> SIZEOF(lis[i]) THEN RETURN(?); END_IF; res[low1 + i - 1] := List_To_Array(lis[i], low2, u2); END_REPEAT; RETURN(res); END_FUNCTION;
FUNCTION Make_Array_Of_Array_Of_Array(lis : LIST [1 : ?] OF LIST [1 : ?] OF LIST [1 : ?] OF GENERIC : T; low1 : INTEGER; u1 : INTEGER; low2 : INTEGER; u2 : INTEGER; low3 : INTEGER; u3 : INTEGER) : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF ARRAY [low3 : u3] OF GENERIC : T; LOCAL res : ARRAY [low1 : u1] OF ARRAY [low2 : u2] OF ARRAY [low3 : u3] OF GENERIC : T; END_LOCAL; (* Check input dimensions for consistency *) IF (u1 - low1 + 1) <> SIZEOF(lis) THEN RETURN(?); END_IF; IF (u2 - low2 + 1) <> SIZEOF(lis[1]) THEN RETURN(?); END_IF; (* Initialise res with values from lis[1] *) res := [Make_Array_Of_Array(lis[1], low2, u2, low3, u3):(u1 - low1 + 1)]; REPEAT i := 2 TO HIINDEX(lis); IF (u2 - low2 + 1) <> SIZEOF(lis[i]) THEN RETURN(?); END_IF; res[low1 + i - 1] := Make_Array_Of_Array(lis[i], low2, u2, low3, u3); END_REPEAT; RETURN(res); END_FUNCTION;
FUNCTION Make_Atom_Based_Literal(lit_value : Atom_Based_Value) : Atom_Based_Literal; RETURN(Atom_Based_Literal(lit_value) || Generic_Literal() || Simple_Generic_Expression() || Generic_Expression()); END_FUNCTION;
FUNCTION Make_Binary_Literal(lit_value : BINARY) : Binary_Literal; RETURN(Binary_Literal(lit_value) || Generic_Literal() || Simple_Generic_Expression() || Generic_Expression()); END_FUNCTION;
FUNCTION Make_Boolean_Literal(lit_value : BOOLEAN) : Boolean_Literal; RETURN(Boolean_Literal(lit_value) || Simple_Boolean_Expression() || Boolean_Expression() || Expression() || Generic_Expression() || Simple_Generic_Expression() || Generic_Literal()); END_FUNCTION;
FUNCTION Make_Cartesian_Complex_Number_Region(real_constraint : Real_Interval; imag_constraint : Real_Interval) : Cartesian_Complex_Number_Region; RETURN(Cartesian_Complex_Number_Region(real_constraint, imag_constraint) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Complex_Number_Literal(rpart : REAL; ipart : REAL) : Complex_Number_Literal; RETURN(Complex_Number_Literal(rpart, ipart) || Generic_Literal() || Simple_Generic_Expression() || Generic_Expression()); END_FUNCTION;
FUNCTION Make_Elementary_Function(func_id : Elementary_Function_Enumerators) : Elementary_Function; RETURN(Elementary_Function(func_id) || Maths_Function() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Elementary_Space(space_id : Elementary_Space_Enumerators) : Elementary_Space; RETURN(Elementary_Space(space_id) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Extended_Tuple_Space(base : Tuple_Space; extender : Maths_Space) : Extended_Tuple_Space; RETURN(Extended_Tuple_Space(base, extender) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Finite_Integer_Interval(min : INTEGER; max : INTEGER) : Finite_Integer_Interval; RETURN(Finite_Integer_Interval(min, max) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Finite_Real_Interval(min : REAL; minclo : Open_Closed; max : REAL; maxclo : Open_Closed) : Finite_Real_Interval; RETURN(Finite_Real_Interval(min, minclo, max, maxclo) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Finite_Space(members : SET OF Maths_Value) : Finite_Space; RETURN(Finite_Space(members) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Function_Application(afunction : Maths_Function_Select; arguments : LIST [1 : ?] OF Maths_Value) : Function_Application; RETURN(Function_Application(afunction, arguments) || Multiple_Arity_Generic_Expression(Convert_To_Maths_Function(afunction) + Convert_To_Operands(arguments)) || Generic_Expression()); END_FUNCTION;
FUNCTION Make_Function_Space(domain_constraint : Space_Constraint_Type; domain_argument : Maths_Space; range_constraint : Space_Constraint_Type; range_argument : Maths_Space) : Function_Space; RETURN(Function_Space(domain_constraint, domain_argument, range_constraint, range_argument) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Int_Literal(lit_value : INTEGER) : Int_Literal; RETURN(Int_Literal() || Literal_Number(lit_value) || Simple_Numeric_Expression() || Numeric_Expression() || Expression() || Generic_Expression() || Simple_Generic_Expression() || Generic_Literal()); END_FUNCTION;
FUNCTION Make_Listed_Product_Space(factors : LIST OF Maths_Space) : Listed_Product_Space; RETURN(Listed_Product_Space(factors) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Logical_Literal(lit_value : LOGICAL) : Logical_Literal; RETURN(Logical_Literal(lit_value) || Generic_Literal() || Simple_Generic_Expression() || Generic_Expression()); END_FUNCTION;
FUNCTION Make_Maths_Enum_Literal(lit_value : Maths_Enum_Atom) : Maths_Enum_Literal; RETURN(Maths_Enum_Literal(lit_value) || Generic_Literal() || Simple_Generic_Expression() || Generic_Expression()); END_FUNCTION;
FUNCTION Make_Maths_Tuple_Literal(lit_value : LIST OF Maths_Value) : Maths_Tuple_Literal; RETURN(Maths_Tuple_Literal(lit_value) || Generic_Literal() || Simple_Generic_Expression() || Generic_Expression()); END_FUNCTION;
FUNCTION Make_Numeric_Set(start : Maths_Number; delta : Maths_Number; incs : Positive_Integer) : SET [2 : ?] OF Maths_Number; LOCAL i : INTEGER; numeric_set : SET [2 : ?] OF Maths_Number := [start,(start + delta)]; END_LOCAL; IF incs > 1 THEN REPEAT i := 2 TO incs; numeric_set := numeric_set + (start + (i * delta)); END_REPEAT; END_IF; RETURN(numeric_set); END_FUNCTION;
FUNCTION Make_Parallel_Composed_Function(srcdom : Maths_Space_Or_Function; prepfuncs : LIST [2 : ?] OF Maths_Function; finfunc : Maths_Function_Select) : Parallel_Composed_Function; RETURN(Parallel_Composed_Function(srcdom, prepfuncs, finfunc) || Maths_Function() || Generic_Expression() || Multiple_Arity_Generic_Expression(Convert_To_Operands_Prcmfn(srcdom, prepfuncs, finfunc))); END_FUNCTION;
FUNCTION Make_Polar_Complex_Number_Region(centre : Complex_Number_Literal; dis_constraint : Real_Interval; dir_constraint : Finite_Real_Interval) : Polar_Complex_Number_Region; RETURN(Polar_Complex_Number_Region(centre, dis_constraint, dir_constraint) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Real_Interval_From_Min(min : REAL; minclo : Open_Closed) : Real_Interval_From_Min; RETURN(Real_Interval_From_Min(min, minclo) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Real_Interval_To_Max(max : REAL; maxclo : Open_Closed) : Real_Interval_To_Max; RETURN(Real_Interval_To_Max(max, maxclo) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Make_Real_Literal(lit_value : REAL) : Real_Literal; RETURN(Real_Literal() || Literal_Number(lit_value) || Simple_Numeric_Expression() || Numeric_Expression() || Expression() || Generic_Expression() || Simple_Generic_Expression() || Generic_Literal()); END_FUNCTION;
FUNCTION Make_String_Literal(lit_value : STRING) : String_Literal; RETURN(String_Literal(lit_value) || Simple_String_Expression() || String_Expression() || Expression() || Generic_Expression() || Simple_Generic_Expression() || Generic_Literal()); END_FUNCTION;
FUNCTION Make_Uniform_Product_Space(base : Maths_Space; exponent : Positive_Integer) : Uniform_Product_Space; RETURN(Uniform_Product_Space(base, exponent) || Maths_Space() || Generic_Expression() || Generic_Literal() || Simple_Generic_Expression()); END_FUNCTION;
FUNCTION Max_Exists(spc : Maths_Space) : BOOLEAN; LOCAL types : SET OF STRING := TYPEOF(spc); END_LOCAL; RETURN(Bool(((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR ((Schema_Prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) OR ((Schema_Prefix + 'FINITE_REAL_INTERVAL') IN types) OR ((Schema_Prefix + 'REAL_INTERVAL_TO_MAX') IN types))); END_FUNCTION;
FUNCTION Max_Included(spc : Maths_Space) : BOOLEAN; LOCAL types : SET OF STRING := TYPEOF(spc); END_LOCAL; IF ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR ((Schema_Prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) THEN RETURN(TRUE); END_IF; IF ((Schema_Prefix + 'FINITE_REAL_INTERVAL') IN types) THEN RETURN(Bool(spc\Finite_Real_Interval.max_closure = Closed)); END_IF; IF ((Schema_Prefix + 'REAL_INTERVAL_TO_MAX') IN types) THEN RETURN(Bool(spc\Real_Interval_To_Max.max_closure = Closed)); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Md_Pmi_Name_And_Type_Correlation(input : Annotation_Placeholder_Occurrence) : BOOLEAN; LOCAL pmi_role : STRING := input\Annotation_Placeholder_Occurrence.item\Representation_Item.name; dmiawps : SET OF Draughting_Model_Item_Association_With_Placeholder := input\Annotation_Placeholder_Occurrence.the_draughting_model_item_association_with_placeholders; v : SET OF STRING := []; END_LOCAL; IF (SIZEOF(dmiawps) = 1) THEN v := TYPEOF(dmiawps[1]\Draughting_Model_Item_Association_With_Placeholder.definition); ELSE RETURN(FALSE); END_IF; IF NOT (pmi_role IN ['angular dimension', 'angularity', 'circular runout', 'circularity', 'coaxiality', 'concentricity', 'curve dimension', 'cylindricity', 'datum', 'datum target', 'diameter dimension', 'flatness', 'general dimension', 'general note', 'general tolerance', 'label', 'linear dimension', 'note', 'ordinate dimension', 'parallelism', 'perpendicularity', 'position', 'profile of line', 'profile of surface', 'radial dimension', 'roundness', 'runout', 'straightness', 'surface roughness', 'symmetry', 'total runout']) THEN RETURN(?); END_IF; CASE pmi_role OF 'angular dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULAR_LOCATION' IN v THEN RETURN(TRUE); END_IF; 'angularity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULARITY_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'circular runout' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'circularity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDNESS_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'coaxiality' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COAXIALITY_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'concentricity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCENTRICITY_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'curve dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v THEN RETURN(TRUE); END_IF; 'cylindricity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CYLINDRICITY_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'datum' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM' IN v THEN RETURN(TRUE); END_IF; 'datum target' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATUM_TARGET' IN v THEN RETURN(TRUE); END_IF; 'diameter dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v THEN RETURN(TRUE); END_IF; 'flatness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FLATNESS_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'general dimension' : IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION'] * v) = 1) THEN RETURN(TRUE); END_IF; 'general note' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v THEN RETURN(TRUE); END_IF; 'general tolerance' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRIC_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'label' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v THEN RETURN(TRUE); END_IF; 'linear dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v THEN RETURN(TRUE); END_IF; 'note' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v THEN RETURN(TRUE); END_IF; 'ordinate dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v THEN RETURN(TRUE); END_IF; 'parallelism' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARALLELISM_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'perpendicularity' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PERPENDICULARITY_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'position' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'profile of line' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'profile of surface' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'radial dimension' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN v THEN RETURN(TRUE); END_IF; 'roundness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDNESS_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'runout' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOTAL_RUNOUT_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'straightness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRAIGHTNESS_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'surface roughness' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN v THEN RETURN(TRUE); END_IF; 'symmetry' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMMETRY_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; 'total runout' : IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOTAL_RUNOUT_TOLERANCE' IN v THEN RETURN(TRUE); END_IF; OTHERWISE: RETURN(FALSE); END_CASE; END_FUNCTION;
FUNCTION Md_Valid_Content_In_Geometric_Set_For_Placeholder(input : Geometric_Set) : BOOLEAN; LOCAL pass : BOOLEAN := TRUE; boxes : BAG OF Planar_Box := []; texts : BAG OF Annotation_Text := []; placements : BAG OF Placement := []; points : BAG OF Point := []; END_LOCAL; REPEAT i := LOINDEX(input\Geometric_Set.elements) TO HIINDEX(input\Geometric_Set.elements); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(input\Geometric_Set.elements[i])) AND NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_SURFACE'] * TYPEOF(input\Geometric_Set.elements[i])) = 1) THEN pass := FALSE; ELSE points := points + input\Geometric_Set.elements[i]; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_BOX' IN TYPEOF(input\Geometric_Set.elements[i]) THEN boxes := boxes + input\Geometric_Set.elements[i]; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANNOTATION_TEXT' IN TYPEOF(input\Geometric_Set.elements[i]) THEN texts := texts + input\Geometric_Set.elements[i]; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(input\Geometric_Set.elements[i]) THEN placements := placements + input\Geometric_Set.elements[i]; END_IF; END_REPEAT; IF SIZEOF(boxes) > 1 THEN pass := FALSE; END_IF; IF SIZEOF(texts) > 1 THEN pass := FALSE; END_IF; IF SIZEOF(points) < 1 THEN pass := FALSE; END_IF; IF SIZEOF(placements) <> 1 THEN pass := FALSE; END_IF; RETURN(pass); END_FUNCTION;
FUNCTION Member_Of(val : GENERIC : G; spc : Maths_Space) : LOGICAL; -- Trivial function introduced to avoid NIST Fedex compiler error FUNCTION fedex(val : AGGREGATE OF GENERIC : X; i : INTEGER) : GENERIC : X; RETURN(val[i]); END_FUNCTION; LOCAL v : Maths_Value := Simplify_Maths_Value(Convert_To_Maths_Value(val)); vtypes : SET OF STRING := Stripped_Typeof(v); s : Maths_Space := Simplify_Maths_Space(spc); stypes : SET OF STRING := Stripped_Typeof(s); tmp_int : INTEGER; tmp_real : REAL; tmp_cmplx : Complex_Number_Literal; lgcl : LOGICAL; cum : LOGICAL; vspc : Maths_Space; sspc : Maths_Space; smem : SET OF Maths_Value; factors : LIST OF Maths_Space; END_LOCAL; IF NOT EXISTS(s) THEN RETURN(FALSE); END_IF; IF NOT EXISTS(v) THEN RETURN(s = The_Generics); END_IF; IF ('GENERIC_EXPRESSION' IN vtypes) AND NOT ('MATHS_SPACE' IN vtypes) AND NOT ('MATHS_FUNCTION' IN vtypes) AND NOT ('COMPLEX_NUMBER_LITERAL' IN vtypes) THEN IF Has_Values_Space(v) THEN vspc := Values_Space_Of(v); IF Subspace_Of(vspc, s) THEN RETURN(TRUE); END_IF; IF NOT Compatible_Spaces(vspc, s) THEN RETURN(FALSE); END_IF; RETURN(UNKNOWN); END_IF; RETURN(UNKNOWN); END_IF; IF 'ELEMENTARY_SPACE' IN stypes THEN CASE s\Elementary_Space.space_id OF Es_Numbers : RETURN(('NUMBER' IN vtypes) OR ('COMPLEX_NUMBER_LITERAL' IN vtypes)); Es_Complex_Numbers : RETURN('COMPLEX_NUMBER_LITERAL' IN vtypes); Es_Reals : RETURN(('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes)); Es_Integers : RETURN('INTEGER' IN vtypes); Es_Logicals : RETURN('LOGICAL' IN vtypes); Es_Booleans : RETURN('BOOLEAN' IN vtypes); Es_Strings : RETURN('STRING' IN vtypes); Es_Binarys : RETURN('BINARY' IN vtypes); Es_Maths_Spaces : RETURN('MATHS_SPACE' IN vtypes); Es_Maths_Functions : RETURN('MATHS_FUNCTION' IN vtypes); Es_Generics : RETURN(TRUE); END_CASE; END_IF; IF 'FINITE_INTEGER_INTERVAL' IN stypes THEN IF 'INTEGER' IN vtypes THEN tmp_int := v; RETURN({s\Finite_Integer_Interval.min <= tmp_int <= s\Finite_Integer_Interval.max}); END_IF; RETURN(FALSE); END_IF; IF 'INTEGER_INTERVAL_FROM_MIN' IN stypes THEN IF 'INTEGER' IN vtypes THEN tmp_int := v; RETURN(s\Integer_Interval_From_Min.min <= tmp_int); END_IF; RETURN(FALSE); END_IF; IF 'INTEGER_INTERVAL_TO_MAX' IN stypes THEN IF 'INTEGER' IN vtypes THEN tmp_int := v; RETURN(tmp_int <= s\Integer_Interval_To_Max.max); END_IF; RETURN(FALSE); END_IF; IF 'FINITE_REAL_INTERVAL' IN stypes THEN IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN tmp_real := v; IF s\Finite_Real_Interval.min_closure = Closed THEN IF s\Finite_Real_Interval.max_closure = Closed THEN RETURN({s\Finite_Real_Interval.min <= tmp_real <= s\Finite_Real_Interval.max}); ELSE RETURN({s\Finite_Real_Interval.min <= tmp_real < s\Finite_Real_Interval.max}); END_IF; ELSE IF s\Finite_Real_Interval.max_closure = Closed THEN RETURN({s\Finite_Real_Interval.min < tmp_real <= s\Finite_Real_Interval.max}); ELSE RETURN({s\Finite_Real_Interval.min < tmp_real < s\Finite_Real_Interval.max}); END_IF; END_IF; END_IF; RETURN(FALSE); END_IF; IF 'REAL_INTERVAL_FROM_MIN' IN stypes THEN IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN tmp_real := v; IF s\Real_Interval_From_Min.min_closure = Closed THEN RETURN(s\Real_Interval_From_Min.min <= tmp_real); ELSE RETURN(s\Real_Interval_From_Min.min < tmp_real); END_IF; END_IF; RETURN(FALSE); END_IF; IF 'REAL_INTERVAL_TO_MAX' IN stypes THEN IF ('REAL' IN vtypes) AND NOT ('INTEGER' IN vtypes) THEN tmp_real := v; IF s\Real_Interval_To_Max.max_closure = Closed THEN RETURN(tmp_real <= s\Real_Interval_To_Max.max); ELSE RETURN(tmp_real < s\Real_Interval_To_Max.max); END_IF; END_IF; RETURN(FALSE); END_IF; IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN stypes THEN IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN RETURN(Member_Of(v\Complex_Number_Literal.real_part, s\Cartesian_Complex_Number_Region.real_constraint) AND Member_Of(v\Complex_Number_Literal.imag_part, s\Cartesian_Complex_Number_Region.imag_constraint)); END_IF; RETURN(FALSE); END_IF; IF 'POLAR_COMPLEX_NUMBER_REGION' IN stypes THEN IF 'COMPLEX_NUMBER_LITERAL' IN vtypes THEN tmp_cmplx := v; tmp_cmplx.real_part := tmp_cmplx.real_part - s\Polar_Complex_Number_Region.centre.real_part; tmp_cmplx.imag_part := tmp_cmplx.imag_part - s\Polar_Complex_Number_Region.centre.imag_part; tmp_real := SQRT(tmp_cmplx.real_part ** 2 + tmp_cmplx.imag_part ** 2); IF NOT Member_Of(tmp_real, s\Polar_Complex_Number_Region.distance_constraint) THEN RETURN(FALSE); END_IF; IF tmp_real = 0.0 THEN RETURN(TRUE); END_IF; tmp_real := Atan2(tmp_cmplx.imag_part, tmp_cmplx.real_part); RETURN(Member_Of(tmp_real, s\Polar_Complex_Number_Region.direction_constraint) OR Member_Of(tmp_real + 2.0 * PI, s\Polar_Complex_Number_Region.direction_constraint)); END_IF; RETURN(FALSE); END_IF; IF 'FINITE_SPACE' IN stypes THEN smem := s\Finite_Space.members; cum := FALSE; REPEAT i := 1 TO SIZEOF(smem); cum := cum OR Equal_Maths_Values(v, smem[i]); IF cum = TRUE THEN RETURN(TRUE); END_IF; END_REPEAT; RETURN(cum); END_IF; IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN IF 'LIST' IN vtypes THEN IF SIZEOF(v) = s\Uniform_Product_Space.exponent THEN sspc := s\Uniform_Product_Space.base; cum := TRUE; REPEAT i := 1 TO SIZEOF(v); cum := cum AND Member_Of(v[i], sspc); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; END_IF; RETURN(FALSE); END_IF; IF 'LISTED_PRODUCT_SPACE' IN stypes THEN IF 'LIST' IN vtypes THEN factors := s\Listed_Product_Space.factors; IF SIZEOF(v) = SIZEOF(factors) THEN cum := TRUE; REPEAT i := 1 TO SIZEOF(v); cum := cum AND Member_Of(v[i], factors[i]); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; END_IF; RETURN(FALSE); END_IF; IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN IF 'LIST' IN vtypes THEN sspc := s\Extended_Tuple_Space.base; tmp_int := Space_Dimension(sspc); IF SIZEOF(v) >= tmp_int THEN cum := TRUE; REPEAT i := 1 TO tmp_int; cum := cum AND Member_Of(v[i], Factor_Space(sspc, i)); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; sspc := s\Extended_Tuple_Space.extender; REPEAT i := tmp_int + 1 TO SIZEOF(v); cum := cum AND Member_Of(v[i], sspc); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; END_IF; RETURN(FALSE); END_IF; IF 'FUNCTION_SPACE' IN stypes THEN IF 'MATHS_FUNCTION' IN vtypes THEN vspc := v\Maths_Function.domain; sspc := s\Function_Space.domain_argument; CASE s\Function_Space.domain_constraint OF Sc_Equal : cum := Equal_Maths_Spaces(vspc, sspc); Sc_Subspace : cum := Subspace_Of(vspc, sspc); Sc_Member : cum := Member_Of(vspc, sspc); END_CASE; IF cum = FALSE THEN RETURN(FALSE); END_IF; vspc := v\Maths_Function.range; sspc := s\Function_Space.range_argument; CASE s\Function_Space.range_constraint OF Sc_Equal : cum := cum AND Equal_Maths_Spaces(vspc, sspc); Sc_Subspace : cum := cum AND Subspace_Of(vspc, sspc); Sc_Member : cum := cum AND Member_Of(vspc, sspc); END_CASE; RETURN(cum); END_IF; RETURN(FALSE); END_IF; RETURN(UNKNOWN); END_FUNCTION;
FUNCTION Min_Exists(spc : Maths_Space) : BOOLEAN; LOCAL types : SET OF STRING := TYPEOF(spc); END_LOCAL; RETURN(Bool(((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR ((Schema_Prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) OR ((Schema_Prefix + 'FINITE_REAL_INTERVAL') IN types) OR ((Schema_Prefix + 'REAL_INTERVAL_FROM_MIN') IN types))); END_FUNCTION;
FUNCTION Min_Included(spc : Maths_Space) : BOOLEAN; LOCAL types : SET OF STRING := TYPEOF(spc); END_LOCAL; IF ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN types) OR ((Schema_Prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) THEN RETURN(TRUE); END_IF; IF ((Schema_Prefix + 'FINITE_REAL_INTERVAL') IN types) THEN RETURN(Bool(spc\Finite_Real_Interval.min_closure = Closed)); END_IF; IF ((Schema_Prefix + 'REAL_INTERVAL_FROM_MIN') IN types) THEN RETURN(Bool(spc\Real_Interval_From_Min.min_closure = Closed)); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Mixed_Loop_Type_Set(l : SET [0 : ?] OF Loop) : LOGICAL; LOCAL poly_loop_type : LOGICAL; END_LOCAL; IF (SIZEOF(l) <= 1) THEN RETURN(FALSE); END_IF; poly_loop_type := ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLY_LOOP' IN TYPEOF(l[1])); REPEAT i := 2 TO SIZEOF(l); IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLY_LOOP' IN TYPEOF(l[i])) <> poly_loop_type) THEN RETURN(TRUE); END_IF; END_REPEAT; RETURN(FALSE); END_FUNCTION;
FUNCTION Msb_Shells(brep : Manifold_Solid_Brep) : SET [1 : ?] OF Closed_Shell; LOCAL return_set : SET [1 : ?] OF Closed_Shell := [brep.outer]; END_LOCAL; IF SIZEOF(QUERY(msbtype <* TYPEOF(brep) | msbtype LIKE '*BREP_WITH_VOIDS')) >= 1 THEN return_set := return_set + brep\Brep_With_Voids.voids; END_IF; RETURN(return_set); END_FUNCTION;
FUNCTION Msf_Curve_Check(cv : Representation_Item) : BOOLEAN; (* This function varifies the validity of a curve in the context of a manifold surface model. Representation_items are valid input, however, they are supposed to be curves; otherwise this function will return false. *) (* complex subtypes of curve that are both bounded_curve and oneof conic, curve_replica, line, or offset_curve_3d are not valid *) (* This function varifies the validity of a curve in the context of a manifold surface model. Representation_items are valid input, however, they are supposed to be curves; otherwise this function will return false. *) (* complex subtypes of curve that are both bounded_curve and oneof conic, curve_replica, line, or offset_curve_3d are not valid *) IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN RETURN(FALSE); END_IF; (* b_spline_curves shall not self-intersect *) IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\B_Spline_Curve.self_intersect = FALSE) OR (cv\B_Spline_Curve.self_intersect = UNKNOWN)) THEN RETURN(TRUE); ELSE IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE'] * TYPEOF(cv)) = 1 THEN RETURN(TRUE); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN(Msf_Curve_Check(cv\Curve_Replica.parent_curve)); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\Offset_Curve_3d.self_intersect = FALSE) OR (cv\Offset_Curve_3d.self_intersect = UNKNOWN)) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv\Offset_Curve_3d.basis_curve)))) THEN RETURN(Msf_Curve_Check(cv\Offset_Curve_3d.basis_curve)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(cv) THEN RETURN((Msf_Curve_Check(cv\Pcurve.reference_to_curve\Representation.items[1])) AND (Msf_Surface_Check(cv\Pcurve.basis_surface))); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN IF Msf_Curve_Check(cv\Surface_Curve.Curve_3d) THEN REPEAT i := 1 TO SIZEOF(cv\Surface_Curve.associated_geometry); IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(cv\Surface_Curve.associated_geometry[i]) THEN IF NOT Msf_Surface_Check(cv\Surface_Curve.associated_geometry[i]) THEN RETURN(FALSE); END_IF; ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(cv\Surface_Curve.associated_geometry[i]) THEN IF NOT Msf_Curve_Check(cv\Surface_Curve.associated_geometry[i]) THEN RETURN(FALSE); END_IF; END_IF; END_IF; END_REPEAT; RETURN(TRUE); END_IF; ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN IF (SIZEOF(cv\Polyline.points) >= 3) THEN RETURN(TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; (* FALSE is returned if the input parameter cv is not a valid curve. *) RETURN(FALSE); END_FUNCTION;
FUNCTION Msf_Surface_Check(surf : Surface) : BOOLEAN; (* This function varifies the validity of a surface in the context of a manifold surface model. *) (* elementary_surfaces are valid surface types *) (* This function varifies the validity of a surface in the context of a manifold surface model. *) (* elementary_surfaces are valid surface types *) IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN RETURN(TRUE); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF(surf) THEN RETURN(Msf_Curve_Check(surf\Swept_Surface.swept_curve)); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_SURFACE' IN TYPEOF(surf)) AND (surf\Offset_Surface.self_intersect = FALSE) OR (surf\Offset_Surface.self_intersect = UNKNOWN)) THEN RETURN(Msf_Surface_Check(surf\Offset_Surface.basis_surface)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf) THEN RETURN(Msf_Surface_Check(surf\Surface_Replica.parent_surface)); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND (surf\B_Spline_Surface.self_intersect = FALSE) OR (surf\B_Spline_Surface.self_intersect = UNKNOWN)) THEN RETURN(TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Nmsf_Curve_Check(cv : Representation_Item) : BOOLEAN; (* This function varifies the validity of a curve in the context of a non-manifold surface model. Representation_items are valid input, however, they are supposed to be curves; otherwise this function will return false. *) (* complex subtypes of curve that are both bounded_curve and oneof conic, curve_replica, line, or offset_curve_3d are not valid *) (* This function varifies the validity of a curve in the context of a non-manifold surface model. Representation_items are valid input, however, they are supposed to be curves; otherwise this function will return false. *) (* complex subtypes of curve that are both bounded_curve and oneof conic, curve_replica, line, or offset_curve_3d are not valid *) IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOUNDED_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D'] * TYPEOF(cv)) > 1 THEN RETURN(FALSE); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE' IN TYPEOF(cv)) AND (cv\B_Spline_Curve.self_intersect = FALSE) OR (cv\B_Spline_Curve.self_intersect = UNKNOWN)) THEN RETURN(TRUE); ELSE IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE'] * TYPEOF(cv)) = 1 THEN RETURN(TRUE); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(cv) THEN RETURN(Nmsf_Curve_Check(cv\Curve_Replica.parent_curve)); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(cv)) AND ((cv\Offset_Curve_3d.self_intersect = FALSE) OR (cv\Offset_Curve_3d.self_intersect = UNKNOWN)) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv\Offset_Curve_3d.basis_curve)))) THEN RETURN(Nmsf_Curve_Check(cv\Offset_Curve_3d.basis_curve)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(cv) THEN RETURN((Nmsf_Curve_Check(cv\Pcurve.reference_to_curve\Representation.items[1])) AND (Nmsf_Surface_Check(cv\Pcurve.basis_surface))); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_CURVE' IN TYPEOF(cv) THEN IF Nmsf_Curve_Check(cv\Surface_Curve.Curve_3d) THEN REPEAT i := 1 TO SIZEOF(cv\Surface_Curve.associated_geometry); IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE' IN TYPEOF(cv\Surface_Curve.associated_geometry[i]) THEN IF NOT Nmsf_Surface_Check(cv\Surface_Curve.associated_geometry[i]) THEN RETURN(FALSE); END_IF; ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PCURVE' IN TYPEOF(cv\Surface_Curve.associated_geometry[i]) THEN IF NOT Nmsf_Curve_Check(cv\Surface_Curve.associated_geometry[i]) THEN RETURN(FALSE); END_IF; END_IF; END_IF; END_REPEAT; RETURN(TRUE); END_IF; ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE' IN TYPEOF(cv) THEN IF (SIZEOF(cv\Polyline.points) >= 3) THEN RETURN(TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; (* FALSE is returned if the input parameter cv is not a valid curve. *) RETURN(FALSE); END_FUNCTION;
FUNCTION Nmsf_Surface_Check(surf : Surface) : BOOLEAN; (* This function varifies the validity of a surface in the context of a non-manifold surface model. *) (* elementary_surfaces are valid surface types *) (* This function varifies the validity of a surface in the context of a non-manifold surface model. *) (* elementary_surfaces are valid surface types *) IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF(surf) THEN RETURN(TRUE); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SWEPT_SURFACE' IN TYPEOF(surf) THEN RETURN(Nmsf_Curve_Check(surf\Swept_Surface.swept_curve)); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_SURFACE' IN TYPEOF(surf)) AND (surf\Offset_Surface.self_intersect = FALSE) OR (surf\Offset_Surface.self_intersect = UNKNOWN)) THEN RETURN(Nmsf_Surface_Check(surf\Offset_Surface.basis_surface)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_REPLICA' IN TYPEOF(surf) THEN RETURN(Nmsf_Surface_Check(surf\Surface_Replica.parent_surface)); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF(surf)) AND (surf\B_Spline_Surface.self_intersect = FALSE) OR (surf\B_Spline_Surface.self_intersect = UNKNOWN)) THEN RETURN(TRUE); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION No_Cyclic_Domain_Reference(ref : Maths_Space_Or_Function; used : SET OF Maths_Function) : BOOLEAN; LOCAL typenames : SET OF STRING := TYPEOF(ref); func : Maths_Function; END_LOCAL; IF (NOT EXISTS(ref)) OR (NOT EXISTS(used)) THEN RETURN(FALSE); END_IF; IF (Schema_Prefix + 'MATHS_SPACE') IN typenames THEN RETURN(TRUE); END_IF; func := ref; IF func IN used THEN RETURN(FALSE); END_IF; IF (Schema_Prefix + 'CONSTANT_FUNCTION') IN typenames THEN RETURN(No_Cyclic_Domain_Reference(func\Constant_Function.source_of_domain, used + [func])); END_IF; IF (Schema_Prefix + 'SELECTOR_FUNCTION') IN typenames THEN RETURN(No_Cyclic_Domain_Reference(func\Selector_Function.source_of_domain, used + [func])); END_IF; IF (Schema_Prefix + 'PARALLEL_COMPOSED_FUNCTION') IN typenames THEN RETURN(No_Cyclic_Domain_Reference(func\Parallel_Composed_Function.source_of_domain, used + [func])); END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION No_Cyclic_Space_Reference(spc : Maths_Space; refs : SET OF Maths_Space) : BOOLEAN; LOCAL types : SET OF STRING; refs_plus : SET OF Maths_Space; END_LOCAL; IF (spc IN refs) THEN RETURN(FALSE); END_IF; types := TYPEOF(spc); refs_plus := refs + spc; IF (Schema_Prefix + 'FINITE_SPACE') IN types THEN RETURN(Bool(SIZEOF(QUERY(sp <* QUERY(mem <* spc\Finite_Space.members | (Schema_Prefix + 'MATHS_SPACE') IN TYPEOF(mem)) | NOT No_Cyclic_Space_Reference(sp, refs_plus))) = 0)); END_IF; IF (Schema_Prefix + 'UNIFORM_PRODUCT_SPACE') IN types THEN RETURN(No_Cyclic_Space_Reference(spc\Uniform_Product_Space.base, refs_plus)); END_IF; IF (Schema_Prefix + 'LISTED_PRODUCT_SPACE') IN types THEN RETURN(Bool(SIZEOF(QUERY(fac <* spc\Listed_Product_Space.factors | NOT No_Cyclic_Space_Reference(fac, refs_plus))) = 0)); END_IF; IF (Schema_Prefix + 'EXTENDED_TUPLE_SPACE') IN types THEN RETURN(No_Cyclic_Space_Reference(spc\Extended_Tuple_Space.base, refs_plus) AND No_Cyclic_Space_Reference(spc\Extended_Tuple_Space.extender, refs_plus)); END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Nondecreasing(lr : LIST OF REAL) : BOOLEAN; IF NOT EXISTS(lr) THEN RETURN(FALSE); END_IF; REPEAT j := 2 TO SIZEOF(lr); IF lr[j] < lr[j - 1] THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Normalise(arg : Vector_Or_Direction) : Vector_Or_Direction; LOCAL ndim : INTEGER; v : Direction := Dummy_Gri || Direction([1.0,0.0,0.0]); result : Vector_Or_Direction; vec : Vector := Dummy_Gri || Vector(v, 1.0); mag : REAL; END_LOCAL; IF NOT EXISTS(arg) THEN result := ?; ELSE ndim := arg.dim; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(arg) THEN BEGIN v := Dummy_Gri || Direction(arg\Vector.Orientation.direction_ratios); IF arg\Vector.magnitude = 0.0 THEN RETURN(?); ELSE vec := Dummy_Gri || Vector(v, 1.0); END_IF; END; ELSE v := Dummy_Gri || Direction(arg.direction_ratios); END_IF; mag := 0.0; REPEAT i := 1 TO ndim; mag := mag + v.direction_ratios[i] * v.direction_ratios[i]; END_REPEAT; IF mag > 0.0 THEN mag := SQRT(mag); REPEAT i := 1 TO ndim; v.direction_ratios[i] := v.direction_ratios[i] / mag; END_REPEAT; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(arg) THEN vec.Orientation := v; result := vec; ELSE result := v; END_IF; ELSE RETURN(?); END_IF; END_IF; RETURN(result); END_FUNCTION;
FUNCTION Number_Superspace_Of(spc : Maths_Space) : Elementary_Space; IF Subspace_Of_Es(spc, Es_Integers) THEN RETURN(The_Integers); END_IF; IF Subspace_Of_Es(spc, Es_Reals) THEN RETURN(The_Reals); END_IF; IF Subspace_Of_Es(spc, Es_Complex_Numbers) THEN RETURN(The_Complex_Numbers); END_IF; IF Subspace_Of_Es(spc, Es_Numbers) THEN RETURN(The_Numbers); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Number_Tuple_Subspace_Check(spc : Maths_Space) : LOGICAL; LOCAL types : SET OF STRING := Stripped_Typeof(spc); factors : LIST OF Maths_Space; cum : LOGICAL := TRUE; END_LOCAL; IF 'UNIFORM_PRODUCT_SPACE' IN types THEN RETURN(Subspace_Of_Es(spc\Uniform_Product_Space.base, Es_Numbers)); END_IF; IF 'LISTED_PRODUCT_SPACE' IN types THEN factors := spc\Listed_Product_Space.factors; REPEAT i := 1 TO SIZEOF(factors); cum := cum AND Subspace_Of_Es(factors[i], Es_Numbers); END_REPEAT; RETURN(cum); END_IF; IF 'EXTENDED_TUPLE_SPACE' IN types THEN cum := Subspace_Of_Es(spc\Extended_Tuple_Space.extender, Es_Numbers); cum := cum AND Number_Tuple_Subspace_Check(spc\Extended_Tuple_Space.base); RETURN(cum); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION One_Tuples_Of(spc : Maths_Space) : Tuple_Space; RETURN(Make_Uniform_Product_Space(spc, 1)); END_FUNCTION;
FUNCTION Open_Path_Based_Inner_Boundary(input : SET OF Primitive_2d) : BOOLEAN; LOCAL pass : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO SIZEOF(input); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_AREA_WITH_PARAMETERS' IN TYPEOF(input[i])) AND (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE' IN TYPEOF(input[i]\Mapped_Item.mapping_source\Representation_Map.mapping_origin)) OR (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(input[i]\Mapped_Item.mapping_source\Representation_Map.mapping_origin)) AND (input[i]\Mapped_Item.mapping_source\Representation_Map.mapping_origin\Composite_Curve.closed_curve = TRUE))) THEN pass := FALSE; END_IF; END_REPEAT; RETURN(pass); END_FUNCTION;
FUNCTION Open_Shell_Reversed(a_shell : Open_Shell) : Oriented_Open_Shell; LOCAL the_reverse : Oriented_Open_Shell; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_OPEN_SHELL' IN TYPEOF(a_shell)) THEN the_reverse := Dummy_Tri || Connected_Face_Set(a_shell\Connected_Face_Set.cfs_faces) || Open_Shell() || Oriented_Open_Shell(a_shell\Oriented_Open_Shell.open_shell_element, (NOT (a_shell\Oriented_Open_Shell.Orientation))); ELSE the_reverse := Dummy_Tri || Connected_Face_Set(a_shell\Connected_Face_Set.cfs_faces) || Open_Shell() || Oriented_Open_Shell(a_shell, FALSE); END_IF; RETURN(the_reverse); END_FUNCTION;
FUNCTION Orthogonal_Complement(vec : Direction) : Direction; LOCAL result : Direction; END_LOCAL; IF (vec.dim <> 2) OR NOT EXISTS(vec) THEN RETURN(?); ELSE result := Dummy_Gri || Direction([-vec.direction_ratios[2],vec.direction_ratios[1]]); RETURN(result); END_IF; END_FUNCTION;
FUNCTION Parallel_Composed_Function_Composability_Check(funcs : LIST OF Maths_Function; final : Maths_Function_Select) : BOOLEAN; LOCAL tplsp : Tuple_Space := The_Zero_Tuple_Space; finfun : Maths_Function := Convert_To_Maths_Function(final); END_LOCAL; REPEAT i := 1 TO SIZEOF(funcs); tplsp := Assoc_Product_Space(tplsp, funcs[i].range); END_REPEAT; RETURN(Compatible_Spaces(tplsp, finfun.domain)); END_FUNCTION;
FUNCTION Parallel_Composed_Function_Domain_Check(comdom : Tuple_Space; funcs : LIST OF Maths_Function) : BOOLEAN; REPEAT i := 1 TO SIZEOF(funcs); IF NOT (Compatible_Spaces(comdom, funcs[i].domain)) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Parse_Express_Identifier(s : STRING; i : Positive_Integer) : Positive_Integer; LOCAL k : Positive_Integer; END_LOCAL; k := i; IF i <= LENGTH(s) THEN IF (s[i] LIKE '@') THEN REPEAT UNTIL (k > LENGTH(s)) OR ((s[k] <> '_') AND NOT (s[k] LIKE '@') AND NOT (s[k] LIKE '#')); k := k + 1; END_REPEAT; END_IF; END_IF; RETURN(k); END_FUNCTION;
FUNCTION Partial_Derivative_Check(domain : Tuple_Space; d_vars : LIST [1 : ?] OF Input_Selector) : BOOLEAN; LOCAL domn : Tuple_Space := domain; fspc : Maths_Space; dim : INTEGER; k : INTEGER; END_LOCAL; IF (Space_Dimension(domain) = 1) AND ((Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(Factor1(domain))) THEN domn := Factor1(domain); END_IF; dim := Space_Dimension(domn); REPEAT i := 1 TO SIZEOF(d_vars); k := d_vars[i]; IF k > dim THEN RETURN(FALSE); END_IF; fspc := Factor_Space(domn, k); IF (NOT Subspace_Of_Es(fspc, Es_Reals)) AND (NOT Subspace_Of_Es(fspc, Es_Complex_Numbers)) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Path_Head_To_Tail(a_path : Path) : LOGICAL; LOCAL n : INTEGER; p : LOGICAL := TRUE; END_LOCAL; n := SIZEOF(a_path.edge_list); REPEAT i := 2 TO n; p := p AND (a_path.edge_list[i - 1].edge_end :=: a_path.edge_list[i].edge_start); END_REPEAT; RETURN(p); END_FUNCTION;
FUNCTION Path_Reversed(a_path : Path) : Oriented_Path; LOCAL the_reverse : Oriented_Path; END_LOCAL; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ORIENTED_PATH' IN TYPEOF(a_path)) THEN the_reverse := Dummy_Tri || Path(List_Of_Topology_Reversed(a_path.edge_list)) || Oriented_Path(a_path\Oriented_Path.path_element, NOT (a_path\Oriented_Path.Orientation)); ELSE the_reverse := Dummy_Tri || Path(List_Of_Topology_Reversed(a_path.edge_list)) || Oriented_Path(a_path, FALSE); END_IF; RETURN(the_reverse); END_FUNCTION;
FUNCTION Plane_Angle_For_Pair_In_Radian(pair : Kinematic_Pair; angle : Plane_Angle_Measure) : Plane_Angle_Measure; LOCAL converted_angle : Plane_Angle_Measure := angle; link_rep : Kinematic_Link_Representation := Representation_Of_Link(pair.joint.edge_start); link_cntxt : Representation_Context; pa_units : SET OF Unit := []; pau : Unit; END_LOCAL; link_cntxt := link_rep\Representation.context_of_items; IF NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF(link_cntxt)) THEN RETURN(?); END_IF; pa_units := QUERY(Unit <* link_cntxt\Global_Unit_Assigned_Context.units | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(Unit)); IF SIZEOF(pa_units) <> 1 THEN RETURN(?); END_IF; pau := pa_units[1]; IF (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SI_UNIT' IN TYPEOF(pau)) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF(pau))) THEN RETURN(?); END_IF; REPEAT WHILE ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF(pau)); converted_angle := converted_angle * pau\Conversion_Based_Unit.conversion_factor.value_component; pau := pau\Conversion_Based_Unit.conversion_factor.unit_component; IF ((NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SI_UNIT' IN TYPEOF(pau)) AND NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF(pau))) OR (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF(pau)))) THEN RETURN(?); END_IF; END_REPEAT; IF (pau\Si_Unit.name <> Si_Unit_Name.Radian) THEN RETURN(?); END_IF; CASE pau\Si_Unit.prefix OF Si_Prefix.Exa : RETURN(1.E18 * converted_angle); Si_Prefix.Peta : RETURN(1.E15 * converted_angle); Si_Prefix.Tera : RETURN(1.E12 * converted_angle); Si_Prefix.Giga : RETURN(1.E9 * converted_angle); Si_Prefix.Mega : RETURN(1.E6 * converted_angle); Si_Prefix.Kilo : RETURN(1.E3 * converted_angle); Si_Prefix.Hecto : RETURN(1.E2 * converted_angle); Si_Prefix.Deca : RETURN(1.E1 * converted_angle); Si_Prefix.Deci : RETURN(1.E-1 * converted_angle); Si_Prefix.Centi : RETURN(1.E-2 * converted_angle); Si_Prefix.Milli : RETURN(1.E-3 * converted_angle); Si_Prefix.Micro : RETURN(1.E-6 * converted_angle); Si_Prefix.Nano : RETURN(1.E-9 * converted_angle); Si_Prefix.Pico : RETURN(1.E-12 * converted_angle); Si_Prefix.Femto : RETURN(1.E-15 * converted_angle); Si_Prefix.Atto : RETURN(1.E-18 * converted_angle); OTHERWISE: RETURN(converted_angle); END_CASE; END_FUNCTION;
FUNCTION Real_Max(spc : Maths_Space) : REAL; LOCAL types : SET OF STRING := TYPEOF(spc); END_LOCAL; IF ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN types) THEN RETURN(spc\Finite_Integer_Interval.max); END_IF; IF ((Schema_Prefix + 'INTEGER_INTERVAL_TO_MAX') IN types) THEN RETURN(spc\Integer_Interval_To_Max.max); END_IF; IF ((Schema_Prefix + 'FINITE_REAL_INTERVAL') IN types) THEN RETURN(spc\Finite_Real_Interval.max); END_IF; IF ((Schema_Prefix + 'REAL_INTERVAL_TO_MAX') IN types) THEN RETURN(spc\Real_Interval_To_Max.max); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Real_Min(spc : Maths_Space) : REAL; LOCAL types : SET OF STRING := TYPEOF(spc); END_LOCAL; IF ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN types) THEN RETURN(spc\Finite_Integer_Interval.min); END_IF; IF ((Schema_Prefix + 'INTEGER_INTERVAL_FROM_MIN') IN types) THEN RETURN(spc\Integer_Interval_From_Min.min); END_IF; IF ((Schema_Prefix + 'FINITE_REAL_INTERVAL') IN types) THEN RETURN(spc\Finite_Real_Interval.min); END_IF; IF ((Schema_Prefix + 'REAL_INTERVAL_FROM_MIN') IN types) THEN RETURN(spc\Real_Interval_From_Min.min); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Regular_Indexing(sub : LIST OF INTEGER; base : Zero_Or_One; shape : LIST [1 : ?] OF Positive_Integer; inc : LIST [1 : ?] OF INTEGER; first : INTEGER) : INTEGER; LOCAL k : INTEGER; index : INTEGER; END_LOCAL; IF NOT EXISTS(sub) OR NOT EXISTS(base) OR NOT EXISTS(shape) OR NOT EXISTS(inc) OR NOT EXISTS(first) THEN RETURN(?); END_IF; IF (SIZEOF(sub) <> SIZEOF(inc)) OR (SIZEOF(sub) <> SIZEOF(shape)) THEN RETURN(?); END_IF; index := first; REPEAT j := 1 TO SIZEOF(sub); IF NOT EXISTS(sub[j]) OR NOT EXISTS(inc[j]) THEN RETURN(?); END_IF; k := sub[j] - base; IF NOT ({0 <= k < shape[j]}) THEN RETURN(?); END_IF; index := index + k * inc[j]; END_REPEAT; RETURN(index); END_FUNCTION;
FUNCTION Relating_Shape_Representations_Of_Extreme_Values(item : Location_Of_Extreme_Value_Select) : SET OF Shape_Representation; LOCAL results : SET OF Shape_Representation := []; exti : SET OF Extreme_Instance := []; ii_ei : SET OF Instance_Report_Item_With_Extreme_Instances := []; sdiir : SET OF Shape_Data_Quality_Inspection_Instance_Report := []; sdqr : SET OF Shape_Data_Quality_Inspection_Result_Representation := []; sdisr : SET OF Shape_Data_Quality_Inspected_Shape_And_Result_Relationship := []; END_LOCAL; exti := exti + Bag_To_Set(USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTREME_INSTANCE.LOCATIONS_OF_EXTREME_VALUE')); REPEAT i := 1 TO HIINDEX(exti); ii_ei := ii_ei + Bag_To_Set(USEDIN(exti[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES.EXTREME_INSTANCES')); END_REPEAT; REPEAT i := 1 TO HIINDEX(ii_ei); sdiir := sdiir + Bag_To_Set(USEDIN(ii_ei[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT.INSPECTED_INSTANCES')); END_REPEAT; REPEAT i := 1 TO HIINDEX(sdiir); sdqr := sdqr + QUERY(i1 <* Bag_To_Set(USEDIN(sdiir[i].inspection_result, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' IN TYPEOF(i1)); END_REPEAT; REPEAT i := 1 TO HIINDEX(sdqr); sdisr := sdisr + Bag_To_Set(USEDIN(sdqr[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.REP_2')); END_REPEAT; REPEAT i := 1 TO HIINDEX(sdisr); results := results + sdisr[i].rep_1; END_REPEAT; RETURN(results); END_FUNCTION;
FUNCTION Remove_First(alist : LIST OF GENERIC : GEN) : LIST OF GENERIC : GEN; LOCAL blist : LIST OF GENERIC : GEN := alist; END_LOCAL; IF SIZEOF(blist) > 0 THEN REMOVE(blist, 1); END_IF; RETURN(blist); END_FUNCTION;
FUNCTION Repackage(tspace : Tuple_Space; repckg : Repackage_Options) : Tuple_Space; CASE repckg OF Ro_Nochange : RETURN(tspace); Ro_Wrap_As_Tuple : RETURN(One_Tuples_Of(tspace)); Ro_Unwrap_Tuple : RETURN(Factor1(tspace)); OTHERWISE: RETURN(?); END_CASE; END_FUNCTION;
FUNCTION Representation_Of_Link(link : Kinematic_Link) : Kinematic_Link_Representation; (* LOCAL link_rep_rel : BAG OF kinematic_link_representation_relation; END_LOCAL; link_rep_rel := USEDIN (link, 'KINEMATIC_STRUCTURE_SCHEMA.'+ 'KINEMATIC_LINK_REPRESENTATION_RELATION.'+ 'TOPOLOGICAL_ASPECTS'); IF (SIZEOF (link_rep_rel) = 0) THEN RETURN (?); ELSE RETURN (link_rep_rel[1].geometric_aspects); END_IF; *) (* LOCAL link_rep_rel : BAG OF kinematic_link_representation_relation; END_LOCAL; link_rep_rel := USEDIN (link, 'KINEMATIC_STRUCTURE_SCHEMA.'+ 'KINEMATIC_LINK_REPRESENTATION_RELATION.'+ 'TOPOLOGICAL_ASPECTS'); IF (SIZEOF (link_rep_rel) = 0) THEN RETURN (?); ELSE RETURN (link_rep_rel[1].geometric_aspects); END_IF; *) RETURN(?); END_FUNCTION;
FUNCTION Same_Side(plane_pts : LIST [3 : 3] OF Cartesian_Point; test_points : LIST [2 : ?] OF Cartesian_Point) : BOOLEAN; LOCAL val1 : REAL; val2 : REAL; n : INTEGER; END_LOCAL; IF (plane_pts[1].dim = 2) OR (test_points[1].dim = 2) THEN RETURN(?); END_IF; n := SIZEOF(test_points); val1 := Above_Plane(plane_pts[1], plane_pts[2], plane_pts[3], test_points[1]); REPEAT i := 2 TO n; val2 := Above_Plane(plane_pts[1], plane_pts[2], plane_pts[3], test_points[i]); IF (val1 * val2 <= 0.0) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Scalar_Times_Vector(scalar : REAL; vec : Vector_Or_Direction) : Vector; LOCAL v : Direction; mag : REAL; result : Vector; END_LOCAL; IF NOT EXISTS(scalar) OR NOT EXISTS(vec) THEN RETURN(?); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(vec) THEN v := Dummy_Gri || Direction(vec\Vector.Orientation.direction_ratios); mag := scalar * vec\Vector.magnitude; ELSE v := Dummy_Gri || Direction(vec.direction_ratios); mag := scalar; END_IF; IF (mag < 0.0) THEN REPEAT i := 1 TO SIZEOF(v.direction_ratios); v.direction_ratios[i] := -v.direction_ratios[i]; END_REPEAT; mag := -mag; END_IF; result := Dummy_Gri || Vector(Normalise(v), mag); END_IF; RETURN(result); END_FUNCTION;
FUNCTION Second_Proj_Axis(z_axis : Direction; x_axis : Direction; arg : Direction) : Direction; LOCAL y_axis : Vector; v : Direction; temp : Vector; END_LOCAL; IF NOT EXISTS(arg) THEN v := Dummy_Gri || Direction([0.0,1.0,0.0]); ELSE v := arg; END_IF; temp := Scalar_Times_Vector(Dot_Product(v, z_axis), z_axis); y_axis := Vector_Difference(v, temp); temp := Scalar_Times_Vector(Dot_Product(v, x_axis), x_axis); y_axis := Vector_Difference(y_axis, temp); y_axis := Normalise(y_axis); RETURN(y_axis.Orientation); END_FUNCTION;
FUNCTION Set_Of_Topology_Reversed(a_set : Set_Of_Reversible_Topology_Item) : Set_Of_Reversible_Topology_Item; LOCAL the_reverse : Set_Of_Reversible_Topology_Item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF(a_set); the_reverse := the_reverse + Topology_Reversed(a_set[i]); END_REPEAT; RETURN(the_reverse); END_FUNCTION;
FUNCTION Shape_Of_Array(func : Maths_Function) : LIST OF Positive_Integer; LOCAL tspace : Tuple_Space; temp : Maths_Space; result : LIST OF Positive_Integer := []; END_LOCAL; IF (Schema_Prefix + 'EXPLICIT_TABLE_FUNCTION') IN TYPEOF(func) THEN RETURN(func\Explicit_Table_Function.shape); END_IF; tspace := func.domain; IF (Space_Dimension(tspace) = 1) AND ((Schema_Prefix + 'TUPLE_SPACE') IN TYPEOF(Factor1(tspace))) THEN tspace := Factor1(tspace); END_IF; REPEAT i := 1 TO Space_Dimension(tspace); temp := Factor_Space(tspace, i); IF NOT ((Schema_Prefix + 'FINITE_INTEGER_INTERVAL') IN TYPEOF(temp)) THEN RETURN(?); END_IF; INSERT(result, temp\Finite_Integer_Interval.size, i - 1); END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Shell_Reversed(a_shell : Shell) : Shell; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OPEN_SHELL' IN TYPEOF(a_shell)) THEN RETURN(Open_Shell_Reversed(a_shell)); ELSE IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLOSED_SHELL' IN TYPEOF(a_shell)) THEN RETURN(Closed_Shell_Reversed(a_shell)); ELSE RETURN(?); END_IF; END_IF; END_FUNCTION;
FUNCTION Simplify_Function_Application(expr : Function_Application) : Maths_Value; FUNCTION ctmv(X : GENERIC : G) : Maths_Value; RETURN(Convert_To_Maths_Value(X)); END_FUNCTION; PROCEDURE parts(c : Complex_Number_Literal; VAR X : REAL; VAR y : REAL); X := c.real_part; y := c.imag_part; END_PROCEDURE; FUNCTION makec(X : REAL; y : REAL) : Complex_Number_Literal; RETURN(Make_Complex_Number_Literal(X, y)); END_FUNCTION; FUNCTION good_t(v : Maths_Value; tn : STRING) : BOOLEAN; LOCAL tpl : LIST OF Maths_Value; END_LOCAL; IF 'LIST' IN TYPEOF(v) THEN tpl := v; REPEAT i := 1 TO SIZEOF(tpl); IF NOT (tn IN TYPEOF(tpl[i])) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_IF; RETURN(FALSE); END_FUNCTION; CONSTANT cnlit : STRING := Schema_Prefix + 'COMPLEX_NUMBER_LITERAL'; END_CONSTANT; LOCAL types : SET OF STRING := Stripped_Typeof(expr.Func); ef_val : Elementary_Function_Enumerators; is_elementary : BOOLEAN := FALSE; v : Maths_Value; v1 : Maths_Value; v2 : Maths_Value; v3 : Maths_Value; vlist : LIST OF Maths_Value := []; gexpr : Generic_Expression; pairs : SET [1 : ?] OF LIST [2 : 2] OF Maths_Value; boo : BOOLEAN; lgc : LOGICAL; cum : LOGICAL; j : INTEGER; k : INTEGER; n : INTEGER; p : REAL; q : REAL; r : REAL; s : REAL; t : REAL; u : REAL; str : STRING; st2 : STRING; bin : BINARY; bi2 : BINARY; tpl : LIST OF Maths_Value; tp2 : LIST OF Maths_Value; mem : SET OF Maths_Value := []; END_LOCAL; REPEAT i := 1 TO SIZEOF(expr.arguments); v := Simplify_Maths_Value(expr.arguments[i]); INSERT(vlist, v, i - 1); END_REPEAT; IF SIZEOF(vlist) >= 1 THEN v1 := vlist[1]; END_IF; IF SIZEOF(vlist) >= 2 THEN v2 := vlist[2]; END_IF; IF SIZEOF(vlist) >= 3 THEN v3 := vlist[3]; END_IF; IF 'ELEMENTARY_FUNCTION_ENUMERATORS' IN types THEN ef_val := expr.Func; is_elementary := TRUE; END_IF; IF 'ELEMENTARY_FUNCTION' IN types THEN ef_val := expr.Func\Elementary_Function.func_id; is_elementary := TRUE; END_IF; IF is_elementary THEN CASE ef_val OF Ef_And : BEGIN cum := TRUE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'LOGICAL' IN TYPEOF(vlist[i]) THEN lgc := vlist[i]; cum := cum AND lgc; IF lgc = FALSE THEN RETURN(ctmv(FALSE)); END_IF; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(cum)); END_IF; IF cum <> TRUE THEN INSERT(vlist, ctmv(cum), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Or : BEGIN cum := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'LOGICAL' IN TYPEOF(vlist[i]) THEN lgc := vlist[i]; cum := cum OR lgc; IF lgc = TRUE THEN RETURN(ctmv(TRUE)); END_IF; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(cum)); END_IF; IF cum <> FALSE THEN INSERT(vlist, ctmv(cum), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Not : IF 'LOGICAL' IN TYPEOF(v1) THEN lgc := v1; RETURN(ctmv(NOT lgc)); END_IF; Ef_Xor : BEGIN IF 'LOGICAL' IN TYPEOF(v1) THEN lgc := v1; IF 'LOGICAL' IN TYPEOF(v2) THEN cum := v2; RETURN(ctmv(lgc XOR cum)); ELSE IF lgc = FALSE THEN RETURN(ctmv(v2)); ELSE IF lgc = UNKNOWN THEN RETURN(ctmv(UNKNOWN)); ELSE RETURN(Make_Function_Application(Ef_Not, [v2])); END_IF; END_IF; END_IF; ELSE IF 'LOGICAL' IN TYPEOF(v2) THEN lgc := v2; IF lgc = FALSE THEN RETURN(ctmv(v1)); ELSE IF lgc = UNKNOWN THEN RETURN(ctmv(UNKNOWN)); ELSE RETURN(Make_Function_Application(Ef_Not, [v1])); END_IF; END_IF; END_IF; END_IF; END; Ef_Negate_I : IF 'INTEGER' IN TYPEOF(v1) THEN j := v1; RETURN(ctmv(-j)); END_IF; Ef_Add_I : BEGIN j := 0; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'INTEGER' IN TYPEOF(vlist[i]) THEN k := vlist[i]; j := j + k; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(j)); END_IF; IF j <> 0 THEN INSERT(vlist, ctmv(j), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Subtract_I : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN j := v1; k := v2; RETURN(ctmv(j - k)); END_IF; Ef_Multiply_I : BEGIN j := 1; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'INTEGER' IN TYPEOF(vlist[i]) THEN k := vlist[i]; j := j * k; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(j)); END_IF; IF j <> 1 THEN INSERT(vlist, ctmv(j), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Divide_I : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN j := v1; k := v2; RETURN(ctmv(j DIV k)); END_IF; Ef_Mod_I : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN j := v1; k := v2; RETURN(ctmv(j MOD k)); END_IF; Ef_Exponentiate_I : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN j := v1; k := v2; n := 1; REPEAT i := 1 TO ABS(k); n := n * j; END_REPEAT; IF k < 0 THEN n := 1 DIV n; END_IF; RETURN(ctmv(n)); END_IF; Ef_Eq_I : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN j := v1; k := v2; RETURN(ctmv(j = k)); END_IF; Ef_Ne_I : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN j := v1; k := v2; RETURN(ctmv(j <> k)); END_IF; Ef_Gt_I : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN j := v1; k := v2; RETURN(ctmv(j > k)); END_IF; Ef_Lt_I : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN j := v1; k := v2; RETURN(ctmv(j < k)); END_IF; Ef_Ge_I : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN j := v1; k := v2; RETURN(ctmv(j >= k)); END_IF; Ef_Le_I : IF ('INTEGER' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN j := v1; k := v2; RETURN(ctmv(j <= k)); END_IF; Ef_Abs_I : IF 'INTEGER' IN TYPEOF(v1) THEN j := v1; RETURN(ctmv(ABS(j))); END_IF; Ef_Max_I : BEGIN boo := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'INTEGER' IN TYPEOF(vlist[i]) THEN IF boo THEN k := vlist[i]; IF k > j THEN j := k; END_IF; ELSE j := vlist[i]; boo := TRUE; END_IF; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(j)); END_IF; IF boo THEN INSERT(vlist, ctmv(j), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Min_I : BEGIN boo := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'INTEGER' IN TYPEOF(vlist[i]) THEN IF boo THEN k := vlist[i]; IF k < j THEN j := k; END_IF; ELSE j := vlist[i]; boo := TRUE; END_IF; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(j)); END_IF; IF boo THEN INSERT(vlist, ctmv(j), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Negate_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(-r)); END_IF; Ef_Reciprocal_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(1.0 / r)); END_IF; Ef_Add_R : BEGIN r := 0.0; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'REAL' IN TYPEOF(vlist[i]) THEN s := vlist[i]; r := r + s; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(r)); END_IF; IF r <> 0.0 THEN INSERT(vlist, ctmv(r), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Subtract_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(ctmv(r - s)); END_IF; Ef_Multiply_R : BEGIN r := 1.0; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'REAL' IN TYPEOF(vlist[i]) THEN s := vlist[i]; r := r * s; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(r)); END_IF; IF r <> 1.0 THEN INSERT(vlist, ctmv(r), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Divide_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(ctmv(r / s)); END_IF; Ef_Mod_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; t := r / s; j := t DIV 1; IF (t < 0.0) AND (j <> t) THEN j := j - 1; END_IF; RETURN(ctmv(r - j * s)); END_IF; Ef_Exponentiate_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(ctmv(r ** s)); END_IF; Ef_Exponentiate_Ri : IF ('REAL' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN r := v1; k := v2; t := 1.0; REPEAT i := 1 TO ABS(k); t := t * r; END_REPEAT; IF k < 0 THEN t := 1.0 / t; END_IF; RETURN(ctmv(t)); END_IF; Ef_Eq_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(ctmv(r = s)); END_IF; Ef_Ne_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(ctmv(r <> s)); END_IF; Ef_Gt_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(ctmv(r > s)); END_IF; Ef_Lt_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(ctmv(r < s)); END_IF; Ef_Ge_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(ctmv(r >= s)); END_IF; Ef_Le_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(ctmv(r <= s)); END_IF; Ef_Abs_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(ABS(r))); END_IF; Ef_Max_R : BEGIN boo := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'REAL' IN TYPEOF(vlist[i]) THEN IF boo THEN s := vlist[i]; IF s > r THEN r := s; END_IF; ELSE r := vlist[i]; boo := TRUE; END_IF; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(r)); END_IF; IF boo THEN INSERT(vlist, ctmv(r), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Min_R : BEGIN boo := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'REAL' IN TYPEOF(vlist[i]) THEN IF boo THEN s := vlist[i]; IF s < r THEN r := s; END_IF; ELSE r := vlist[i]; boo := TRUE; END_IF; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(r)); END_IF; IF boo THEN INSERT(vlist, ctmv(r), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Acos_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(ACOS(r))); END_IF; Ef_Asin_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(ASIN(r))); END_IF; Ef_Atan2_R : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(ctmv(Atan2(r, s))); END_IF; Ef_Cos_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(COS(r))); END_IF; Ef_Exp_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(EXP(r))); END_IF; Ef_Ln_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(LOG(r))); END_IF; Ef_Log2_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(LOG2(r))); END_IF; Ef_Log10_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(LOG10(r))); END_IF; Ef_Sin_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(SIN(r))); END_IF; Ef_Sqrt_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(SQRT(r))); END_IF; Ef_Tan_R : IF 'REAL' IN TYPEOF(v1) THEN r := v1; RETURN(ctmv(TAN(r))); END_IF; Ef_Form_C : IF ('REAL' IN TYPEOF(v1)) AND ('REAL' IN TYPEOF(v2)) THEN r := v1; s := v2; RETURN(makec(r, s)); END_IF; Ef_Rpart_C : IF cnlit IN TYPEOF(v1) THEN RETURN(ctmv(v1\Complex_Number_Literal.real_part)); END_IF; Ef_Ipart_C : IF cnlit IN TYPEOF(v1) THEN RETURN(ctmv(v1\Complex_Number_Literal.imag_part)); END_IF; Ef_Negate_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); RETURN(makec(-p, -q)); END_IF; Ef_Reciprocal_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); t := p * p + q * q; RETURN(makec(p / t, -q / t)); END_IF; Ef_Add_C : BEGIN p := 0.0; q := 0.0; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF cnlit IN TYPEOF(vlist[i]) THEN parts(vlist[i], r, s); p := p + r; q := q + s; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(makec(p, q)); END_IF; IF p * p + q * q <> 0.0 THEN INSERT(vlist, makec(p, q), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Subtract_C : IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN parts(v1, p, q); parts(v2, r, s); RETURN(makec(p - r, q - s)); END_IF; Ef_Multiply_C : BEGIN p := 1.0; q := 0.0; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF cnlit IN TYPEOF(vlist[i]) THEN parts(vlist[i], r, s); p := p * r - q * s; q := p * s + q * r; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(makec(p, q)); END_IF; IF (p <> 1.0) OR (q <> 0.0) THEN INSERT(vlist, makec(p, q), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Divide_C : IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN parts(v1, p, q); parts(v2, r, s); t := r * r + s * s; RETURN(makec((p * r + q * s) / t, (q * r - p * s) / t)); END_IF; Ef_Exponentiate_C : IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN parts(v1, p, q); parts(v2, r, s); t := 0.5 * LOG(p * p + q * q); u := Atan2(q, p); p := r * t - s * u; q := r * u + s * t; r := EXP(p); RETURN(makec(r * COS(q), r * SIN(q))); END_IF; Ef_Exponentiate_Ci : IF (cnlit IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN parts(v1, p, q); k := v2; r := 1.0; s := 0.0; REPEAT i := 1 TO ABS(k); r := p * r - q * s; s := p * s + q * r; END_REPEAT; IF k < 0 THEN t := r * r + s * s; r := r / t; s := -s / t; END_IF; RETURN(makec(r, s)); END_IF; Ef_Eq_C : IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN parts(v1, p, q); parts(v2, r, s); RETURN(ctmv((p = r) AND (q = s))); END_IF; Ef_Ne_C : IF (cnlit IN TYPEOF(v1)) AND (cnlit IN TYPEOF(v2)) THEN parts(v1, p, q); parts(v2, r, s); RETURN(ctmv((p <> r) OR (q <> s))); END_IF; Ef_Conjugate_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); RETURN(makec(p, -q)); END_IF; Ef_Abs_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); RETURN(ctmv(SQRT(p * p + q * q))); END_IF; Ef_Arg_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); RETURN(ctmv(Atan2(q, p))); END_IF; Ef_Cos_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); t := 0.5 * EXP(-q); u := 0.5 * EXP(q); RETURN(makec((t + u) * COS(p), (t - u) * SIN(p))); END_IF; Ef_Exp_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); RETURN(makec(EXP(p) * COS(q), EXP(p) * SIN(q))); END_IF; Ef_Ln_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); RETURN(makec(0.5 * LOG(p * p + q * q), Atan2(q, p))); END_IF; Ef_Sin_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); t := 0.5 * EXP(-q); u := 0.5 * EXP(q); RETURN(makec((t + u) * SIN(p), (u - t) * COS(p))); END_IF; Ef_Sqrt_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); t := SQRT(SQRT(p * p + q * q)); u := 0.5 * Atan2(q, p); RETURN(makec(t * COS(u), t * SIN(u))); END_IF; Ef_Tan_C : IF cnlit IN TYPEOF(v1) THEN parts(v1, p, q); t := EXP(2.0 * q) + EXP(-2.0 * q) + 2.0 * COS(2.0 * p); RETURN(makec(2.0 * SIN(2.0 * p) / t, (EXP(-2.0 * q) - EXP(2.0 * q)) / t)); END_IF; Ef_Subscript_S : IF ('STRING' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN str := v1; k := v2; RETURN(ctmv(str[k])); END_IF; Ef_Eq_S : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN str := v1; st2 := v2; RETURN(ctmv(str = st2)); END_IF; Ef_Ne_S : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN str := v1; st2 := v2; RETURN(ctmv(str <> st2)); END_IF; Ef_Gt_S : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN str := v1; st2 := v2; RETURN(ctmv(str > st2)); END_IF; Ef_Lt_S : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN str := v1; st2 := v2; RETURN(ctmv(str < st2)); END_IF; Ef_Ge_S : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN str := v1; st2 := v2; RETURN(ctmv(str >= st2)); END_IF; Ef_Le_S : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN str := v1; st2 := v2; RETURN(ctmv(str <= st2)); END_IF; Ef_Subsequence_S : IF ('STRING' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) AND ('INTEGER' IN TYPEOF(v3)) THEN str := v1; j := v2; k := v3; RETURN(ctmv(str[j:k])); END_IF; Ef_Concat_S : BEGIN str := ''; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'STRING' IN TYPEOF(vlist[i]) THEN st2 := vlist[i]; str := str + st2; REMOVE(vlist, i); ELSE IF str <> '' THEN INSERT(vlist, ctmv(str), i); str := ''; END_IF; END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(str)); END_IF; IF str <> '' THEN INSERT(vlist, ctmv(str), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Size_S : IF 'STRING' IN TYPEOF(v1) THEN str := v1; RETURN(ctmv(LENGTH(str))); END_IF; Ef_Format : IF ('NUMBER' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN RETURN(ctmv(FORMAT(v1, v2))); END_IF; Ef_Value : IF 'STRING' IN TYPEOF(v1) THEN str := v1; RETURN(ctmv(VALUE(str))); END_IF; Ef_Like : IF ('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN RETURN(ctmv(v1 LIKE v2)); END_IF; Ef_Subscript_B : IF ('BINARY' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN bin := v1; k := v2; RETURN(ctmv(bin[k])); END_IF; Ef_Eq_B : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN bin := v1; bi2 := v2; RETURN(ctmv(bin = bi2)); END_IF; Ef_Ne_B : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN bin := v1; bi2 := v2; RETURN(ctmv(bin <> bi2)); END_IF; Ef_Gt_B : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN bin := v1; bi2 := v2; RETURN(ctmv(bin > bi2)); END_IF; Ef_Lt_B : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN bin := v1; bi2 := v2; RETURN(ctmv(bin < bi2)); END_IF; Ef_Ge_B : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN bin := v1; bi2 := v2; RETURN(ctmv(bin >= bi2)); END_IF; Ef_Le_B : IF ('BINARY' IN TYPEOF(v1)) AND ('BINARY' IN TYPEOF(v2)) THEN bin := v1; bi2 := v2; RETURN(ctmv(bin <= bi2)); END_IF; Ef_Subsequence_B : IF ('BINARY' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) AND ('INTEGER' IN TYPEOF(v3)) THEN bin := v1; j := v2; k := v3; RETURN(ctmv(bin[j:k])); END_IF; Ef_Concat_B : BEGIN boo := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'BINARY' IN TYPEOF(vlist[i]) THEN IF boo THEN bi2 := vlist[i]; bin := bin + bi2; ELSE bin := vlist[i]; boo := TRUE; END_IF; REMOVE(vlist, i); ELSE IF boo THEN INSERT(vlist, ctmv(bin), i); boo := FALSE; END_IF; END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(bin)); END_IF; IF boo THEN INSERT(vlist, ctmv(bin), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Size_B : IF 'BINARY' IN TYPEOF(v1) THEN bin := v1; RETURN(ctmv(BLENGTH(bin))); END_IF; Ef_Subscript_T : IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN tpl := v1; k := v2; RETURN(ctmv(tpl[k])); END_IF; Ef_Eq_T : IF ('LIST' IN TYPEOF(v1)) AND ('LIST' IN TYPEOF(v2)) THEN lgc := Equal_Maths_Values(v1, v2); IF lgc <> UNKNOWN THEN RETURN(ctmv(lgc)); END_IF; END_IF; Ef_Ne_T : IF ('LIST' IN TYPEOF(v1)) AND ('LIST' IN TYPEOF(v2)) THEN lgc := Equal_Maths_Values(v1, v2); IF lgc <> UNKNOWN THEN RETURN(ctmv(NOT lgc)); END_IF; END_IF; Ef_Concat_T : BEGIN tpl := []; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'STRING' IN TYPEOF(vlist[i]) THEN tp2 := vlist[i]; tpl := tpl + tp2; REMOVE(vlist, i); ELSE IF SIZEOF(tpl) <> 0 THEN INSERT(vlist, ctmv(tpl), i); tpl := []; END_IF; END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(tpl)); END_IF; IF SIZEOF(tpl) <> 0 THEN INSERT(vlist, ctmv(tpl), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Size_T : IF 'LIST' IN TYPEOF(v1) THEN tpl := v1; RETURN(ctmv(SIZEOF(tpl))); END_IF; Ef_Entuple : RETURN(ctmv(vlist)); Ef_Detuple : IF 'LIST' IN TYPEOF(v1) THEN tpl := v1; RETURN(ctmv(tpl[1])); END_IF; Ef_Insert : IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v3)) THEN tpl := v1; k := v3; INSERT(tpl, v2, k); RETURN(ctmv(tpl)); END_IF; Ef_Remove : IF ('LIST' IN TYPEOF(v1)) AND ('INTEGER' IN TYPEOF(v2)) THEN tpl := v1; k := v2; REMOVE(tpl, k); RETURN(ctmv(tpl)); END_IF; Ef_Sum_It : IF good_t(v1, 'INTEGER') THEN tpl := v1; j := 0; REPEAT i := 1 TO SIZEOF(tpl); j := j + tpl[i]; END_REPEAT; RETURN(ctmv(j)); END_IF; Ef_Product_It : IF good_t(v1, 'INTEGER') THEN tpl := v1; j := 1; REPEAT i := 1 TO SIZEOF(tpl); j := j * tpl[i]; END_REPEAT; RETURN(ctmv(j)); END_IF; Ef_Add_It : BEGIN boo := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF good_t(vlist[i], 'INTEGER') THEN IF NOT boo THEN tpl := vlist[i]; boo := TRUE; ELSE tp2 := vlist[i]; IF SIZEOF(tpl) <> SIZEOF(tp2) THEN RETURN(?); END_IF; REPEAT l := 1 TO SIZEOF(tpl); tpl[j] := tpl[j] + tp2[j]; END_REPEAT; END_IF; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(tpl)); END_IF; IF boo THEN INSERT(vlist, ctmv(tpl), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Subtract_It : IF good_t(v1, 'INTEGER') AND good_t(v2, 'INTEGER') THEN tpl := v1; tp2 := v2; IF SIZEOF(tpl) <> SIZEOF(tp2) THEN RETURN(?); END_IF; REPEAT i := 1 TO SIZEOF(tpl); tpl[i] := tpl[i] - tp2[i]; END_REPEAT; RETURN(ctmv(tpl)); END_IF; Ef_Scalar_Mult_It : IF ('INTEGER' IN TYPEOF(v1)) AND good_t(v2, 'INTEGER') THEN j := v1; tpl := v2; REPEAT i := 1 TO SIZEOF(tpl); tpl[i] := j * tpl[i]; END_REPEAT; RETURN(ctmv(tpl)); END_IF; Ef_Dot_Prod_It : IF good_t(v1, 'INTEGER') AND good_t(v2, 'INTEGER') THEN tpl := v1; tp2 := v2; j := 0; IF SIZEOF(tpl) <> SIZEOF(tp2) THEN RETURN(?); END_IF; REPEAT i := 1 TO SIZEOF(tpl); j := j + tpl[i] * tp2[i]; END_REPEAT; RETURN(ctmv(j)); END_IF; Ef_Sum_Rt : IF good_t(v1, 'REAL') THEN tpl := v1; r := 0.0; REPEAT i := 1 TO SIZEOF(tpl); r := r + tpl[i]; END_REPEAT; RETURN(ctmv(r)); END_IF; Ef_Product_Rt : IF good_t(v1, 'REAL') THEN tpl := v1; r := 1.0; REPEAT i := 1 TO SIZEOF(tpl); r := r * tpl[i]; END_REPEAT; RETURN(ctmv(r)); END_IF; Ef_Add_Rt : BEGIN boo := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF good_t(vlist[i], 'REAL') THEN IF NOT boo THEN tpl := vlist[i]; boo := TRUE; ELSE tp2 := vlist[i]; IF SIZEOF(tpl) <> SIZEOF(tp2) THEN RETURN(?); END_IF; REPEAT l := 1 TO SIZEOF(tpl); tpl[j] := tpl[j] + tp2[j]; END_REPEAT; END_IF; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(tpl)); END_IF; IF boo THEN INSERT(vlist, ctmv(tpl), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Subtract_Rt : IF good_t(v1, 'REAL') AND good_t(v2, 'REAL') THEN tpl := v1; tp2 := v2; IF SIZEOF(tpl) <> SIZEOF(tp2) THEN RETURN(?); END_IF; REPEAT i := 1 TO SIZEOF(tpl); tpl[i] := tpl[i] - tp2[i]; END_REPEAT; RETURN(ctmv(tpl)); END_IF; Ef_Scalar_Mult_Rt : IF ('REAL' IN TYPEOF(v1)) AND good_t(v2, 'REAL') THEN r := v1; tpl := v2; REPEAT i := 1 TO SIZEOF(tpl); tpl[i] := r * tpl[i]; END_REPEAT; RETURN(ctmv(tpl)); END_IF; Ef_Dot_Prod_Rt : IF good_t(v1, 'REAL') AND good_t(v2, 'REAL') THEN tpl := v1; tp2 := v2; r := 0; IF SIZEOF(tpl) <> SIZEOF(tp2) THEN RETURN(?); END_IF; REPEAT i := 1 TO SIZEOF(tpl); r := r + tpl[i] * tp2[i]; END_REPEAT; RETURN(ctmv(r)); END_IF; Ef_Norm_Rt : IF good_t(v1, 'REAL') THEN tpl := v1; r := 0.0; REPEAT i := 1 TO SIZEOF(tpl); r := r + tpl[i] * tpl[i]; END_REPEAT; RETURN(ctmv(SQRT(r))); END_IF; Ef_Sum_Ct : IF good_t(v1, cnlit) THEN tpl := v1; p := 0.0; q := 0.0; REPEAT i := 1 TO SIZEOF(tpl); parts(tpl[i], r, s); p := p + r; q := q + s; END_REPEAT; RETURN(makec(p, q)); END_IF; Ef_Product_Ct : IF good_t(v1, cnlit) THEN tpl := v1; p := 1.0; q := 0.0; REPEAT i := 1 TO SIZEOF(tpl); parts(tpl[i], r, s); p := p * r - q * s; q := p * s + q * r; END_REPEAT; RETURN(makec(p, q)); END_IF; Ef_Add_Ct : BEGIN boo := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF good_t(vlist[i], cnlit) THEN IF NOT boo THEN tpl := vlist[i]; boo := TRUE; ELSE tp2 := vlist[i]; IF SIZEOF(tpl) <> SIZEOF(tp2) THEN RETURN(?); END_IF; REPEAT l := 1 TO SIZEOF(tpl); parts(tpl[j], p, q); parts(tp2[j], r, s); tpl[j] := makec(p + r, q + s); END_REPEAT; END_IF; REMOVE(vlist, i); END_IF; END_REPEAT; IF SIZEOF(vlist) = 0 THEN RETURN(ctmv(tpl)); END_IF; IF boo THEN INSERT(vlist, ctmv(tpl), 0); END_IF; IF SIZEOF(vlist) = 1 THEN RETURN(vlist[1]); END_IF; END; Ef_Subtract_Ct : IF good_t(v1, cnlit) AND good_t(v2, cnlit) THEN tpl := v1; tp2 := v2; IF SIZEOF(tpl) <> SIZEOF(tp2) THEN RETURN(?); END_IF; REPEAT i := 1 TO SIZEOF(tpl); parts(tpl[i], p, q); parts(tp2[i], r, s); tpl[i] := makec(p - r, q - s); END_REPEAT; RETURN(ctmv(tpl)); END_IF; Ef_Scalar_Mult_Ct : IF (cnlit IN TYPEOF(v1)) AND good_t(v2, cnlit) THEN parts(v1, p, q); tpl := v2; REPEAT i := 1 TO SIZEOF(tpl); parts(tpl[i], r, s); tpl[i] := makec(p * r - q * s, p * s + q * r); END_REPEAT; RETURN(ctmv(tpl)); END_IF; Ef_Dot_Prod_Ct : IF good_t(v1, cnlit) AND good_t(v2, cnlit) THEN tpl := v1; tp2 := v2; t := 0.0; u := 0.0; IF SIZEOF(tpl) <> SIZEOF(tp2) THEN RETURN(?); END_IF; REPEAT i := 1 TO SIZEOF(tpl); parts(tpl[i], p, q); parts(tp2[i], r, s); t := t + p * r + q * s; u := u + q * r - p * s; END_REPEAT; RETURN(makec(t, u)); END_IF; Ef_Norm_Ct : IF good_t(v1, cnlit) THEN tpl := v1; r := 0.0; REPEAT i := 1 TO SIZEOF(tpl); parts(tpl[i], p, q); r := r + p * p + q * q; END_REPEAT; RETURN(ctmv(SQRT(r))); END_IF; Ef_If, Ef_If_I, Ef_If_R, Ef_If_C, Ef_If_S, Ef_If_B, Ef_If_T : IF 'LOGICAL' IN TYPEOF(v1) THEN lgc := v1; IF lgc THEN RETURN(v2); ELSE RETURN(v3); END_IF; END_IF; Ef_Ensemble : RETURN(Make_Finite_Space(mem + vlist)); Ef_Member_Of : IF (Schema_Prefix + 'MATHS_SPACE') IN TYPEOF(v2) THEN lgc := Member_Of(v1, v2); IF lgc <> UNKNOWN THEN RETURN(ctmv(lgc)); END_IF; END_IF; END_CASE; RETURN(Make_Function_Application(expr.Func, vlist)); END_IF; IF 'ABSTRACTED_EXPRESSION_FUNCTION' IN types THEN gexpr := Substitute(expr.Func\Abstracted_Expression_Function.expr, expr.Func\Quantifier_Expression.variables, vlist); RETURN(Simplify_Generic_Expression(gexpr)); END_IF; IF 'FINITE_FUNCTION' IN types THEN pairs := expr.Func\Finite_Function.pairs; REPEAT i := 1 TO SIZEOF(pairs); IF Equal_Maths_Values(vlist[1], pairs[i][1]) THEN RETURN(Simplify_Maths_Value(pairs[i][2])); END_IF; END_REPEAT; RETURN(Make_Function_Application(expr.Func, vlist)); END_IF; RETURN(expr); END_FUNCTION;
FUNCTION Simplify_Generic_Expression(expr : Generic_Expression) : Maths_Value; FUNCTION restore_unary(expr : Unary_Generic_Expression; opnd : Generic_Expression) : Generic_Expression; expr.operand := opnd; RETURN(expr); END_FUNCTION; FUNCTION restore_binary(expr : Binary_Generic_Expression; opd1 : Generic_Expression; opd2 : Generic_Expression) : Generic_Expression; expr.operands[1] := opd1; expr.operands[2] := opd2; RETURN(expr); END_FUNCTION; FUNCTION restore_mulary(expr : Multiple_Arity_Generic_Expression; ops : LIST OF Generic_Expression) : Generic_Expression; expr.operands := ops; RETURN(expr); END_FUNCTION; FUNCTION make_number_literal(nmb : NUMBER) : Generic_Literal; IF 'INTEGER' IN TYPEOF(nmb) THEN RETURN(Make_Int_Literal(nmb)); END_IF; RETURN(Make_Real_Literal(nmb)); END_FUNCTION; LOCAL types : SET OF STRING := Stripped_Typeof(expr); v1 : Maths_Value; v2 : Maths_Value; vlist : LIST OF Maths_Value := []; op1 : Generic_Expression; op2 : Generic_Expression; oplist : LIST OF Generic_Expression := []; opnds : LIST [2 : ?] OF Generic_Expression; n : INTEGER; m : INTEGER; finfun : Maths_Function_Select; boo : BOOLEAN; str : STRING; nmb : NUMBER; END_LOCAL; IF 'INT_LITERAL' IN types THEN RETURN(Convert_To_Maths_Value(expr\Int_Literal.the_value)); END_IF; IF 'REAL_LITERAL' IN types THEN RETURN(Convert_To_Maths_Value(expr\Real_Literal.the_value)); END_IF; IF 'BOOLEAN_LITERAL' IN types THEN RETURN(Convert_To_Maths_Value(expr\Boolean_Literal.the_value)); END_IF; IF 'STRING_LITERAL' IN types THEN RETURN(Convert_To_Maths_Value(expr\String_Literal.the_value)); END_IF; IF 'COMPLEX_NUMBER_LITERAL' IN types THEN RETURN(expr); END_IF; IF 'LOGICAL_LITERAL' IN types THEN RETURN(Convert_To_Maths_Value(expr\Logical_Literal.lit_value)); END_IF; IF 'BINARY_LITERAL' IN types THEN RETURN(Convert_To_Maths_Value(expr\Binary_Literal.lit_value)); END_IF; IF 'MATHS_ENUM_LITERAL' IN types THEN RETURN(expr\Maths_Enum_Literal.lit_value); END_IF; IF 'REAL_TUPLE_LITERAL' IN types THEN RETURN(Convert_To_Maths_Value(expr\Real_Tuple_Literal.lit_value)); END_IF; IF 'INTEGER_TUPLE_LITERAL' IN types THEN RETURN(Convert_To_Maths_Value(expr\Integer_Tuple_Literal.lit_value)); END_IF; IF 'ATOM_BASED_LITERAL' IN types THEN RETURN(expr\Atom_Based_Literal.lit_value); END_IF; IF 'MATHS_TUPLE_LITERAL' IN types THEN RETURN(Convert_To_Maths_Value(expr\Maths_Tuple_Literal.lit_value)); END_IF; IF 'MATHS_SPACE' IN types THEN RETURN(Simplify_Maths_Space(expr)); END_IF; IF 'FUNCTION_APPLICATION' IN types THEN RETURN(Simplify_Function_Application(expr)); END_IF; IF 'UNARY_GENERIC_EXPRESSION' IN types THEN v1 := Simplify_Generic_Expression(expr\Unary_Generic_Expression.operand); op1 := Convert_To_Operand(v1); END_IF; IF 'BINARY_GENERIC_EXPRESSION' IN types THEN v1 := Simplify_Generic_Expression(expr\Binary_Generic_Expression.operands[1]); op1 := Convert_To_Operand(v1); v2 := Simplify_Generic_Expression(expr\Binary_Generic_Expression.operands[2]); op2 := Convert_To_Operand(v2); END_IF; IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN opnds := expr\Multiple_Arity_Generic_Expression.operands; REPEAT i := 1 TO SIZEOF(opnds); v1 := Simplify_Generic_Expression(opnds[i]); INSERT(vlist, v1, i - 1); INSERT(oplist, Convert_To_Operand(v1), i - 1); END_REPEAT; END_IF; IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN v1 := vlist[1]; n := SIZEOF(vlist); finfun := vlist[n]; REMOVE(vlist, n); REMOVE(vlist, 1); RETURN(Make_Parallel_Composed_Function(v1, vlist, finfun)); END_IF; IF ('ABS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(ABS(v1))); END_IF; IF ('ACOS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(ACOS(v1))); END_IF; IF 'AND_EXPRESSION' IN types THEN REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'BOOLEAN' IN TYPEOF(vlist[i]) THEN boo := vlist[i]; IF NOT boo THEN RETURN(Convert_To_Maths_Value(FALSE)); END_IF; REMOVE(oplist, i); END_IF; END_REPEAT; IF SIZEOF(oplist) = 0 THEN RETURN(Convert_To_Maths_Value(TRUE)); END_IF; IF SIZEOF(oplist) = 1 THEN RETURN(oplist[1]); END_IF; END_IF; IF ('ASIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(ASIN(v1))); END_IF; IF ('ATAN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) THEN RETURN(Convert_To_Maths_Value(ATAN(v1, v2))); END_IF; IF ('COMPARISON_EXPRESSION' IN types) AND ((('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2))) OR (('STRING' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2))) OR (('BOOLEAN' IN TYPEOF(v1)) AND ('BOOLEAN' IN TYPEOF(v2)))) THEN IF 'COMPARISON_EQUAL' IN types THEN boo := Bool(v1 = v2); ELSE IF 'COMPARISON_GREATER' IN types THEN boo := Bool(v1 > v2); ELSE IF 'COMPARISON_GREATER_EQUAL' IN types THEN boo := Bool(v1 >= v2); ELSE IF 'COMPARISON_LESS' IN types THEN boo := Bool(v1 < v2); ELSE IF 'COMPARISON_LESS_EQUAL' IN types THEN boo := Bool(v1 <= v2); ELSE IF 'COMPARISON_NOT_EQUAL' IN types THEN boo := Bool(v1 <> v2); ELSE IF 'LIKE_EXPRESSION' IN types THEN boo := Bool(v1 LIKE v2); ELSE RETURN(?); END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; END_IF; RETURN(Convert_To_Maths_Value(boo)); END_IF; IF 'CONCAT_EXPRESSION' IN types THEN str := ''; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'STRING' IN TYPEOF(vlist[i]) THEN str := vlist[i] + str; REMOVE(oplist, i); ELSE IF LENGTH(str) > 0 THEN INSERT(oplist, Make_String_Literal(str), i); str := ''; END_IF; END_IF; END_REPEAT; IF SIZEOF(oplist) = 0 THEN RETURN(Convert_To_Maths_Value(str)); END_IF; IF LENGTH(str) > 0 THEN INSERT(oplist, Make_String_Literal(str), 0); END_IF; IF SIZEOF(oplist) = 1 THEN RETURN(oplist[1]); END_IF; END_IF; IF ('COS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(COS(v1))); END_IF; IF ('DIV_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) THEN RETURN(Convert_To_Maths_Value(v1 DIV v2)); END_IF; IF 'EQUALS_EXPRESSION' IN types THEN opnds := expr\Binary_Generic_Expression.operands; RETURN(Convert_To_Maths_Value(opnds[1] :=: opnds[2])); END_IF; IF ('EXP_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(EXP(v1))); END_IF; IF ('FORMAT_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('STRING' IN TYPEOF(v2)) THEN RETURN(Convert_To_Maths_Value(FORMAT(v1, v2))); END_IF; IF ('INDEX_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) THEN str := v1; n := v2; RETURN(Convert_To_Maths_Value(str[n])); END_IF; IF ('INT_VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(VALUE(v1))); END_IF; IF 'INTERVAL_EXPRESSION' IN types THEN str := ''; IF 'NUMBER' IN TYPEOF(vlist[1]) THEN str := 'NUMBER'; END_IF; IF 'STRING' IN TYPEOF(vlist[1]) THEN str := 'STRING'; END_IF; IF 'BOOLEAN' IN TYPEOF(vlist[1]) THEN str := 'BOOLEAN'; END_IF; IF (LENGTH(str) > 0) AND (str IN TYPEOF(vlist[2])) AND (str IN TYPEOF(vlist[3])) THEN RETURN(Convert_To_Maths_Value({vlist[1] <= vlist[2] <= vlist[3]})); END_IF; END_IF; IF ('LENGTH_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(LENGTH(v1))); END_IF; IF ('LOG_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(LOG(v1))); END_IF; IF ('LOG10_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(LOG10(v1))); END_IF; IF ('LOG2_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(LOG2(v1))); END_IF; IF 'MAXIMUM_EXPRESSION' IN types THEN boo := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'NUMBER' IN TYPEOF(vlist[i]) THEN IF boo THEN IF nmb < vlist[i] THEN nmb := vlist[i]; END_IF; ELSE nmb := vlist[i]; boo := TRUE; END_IF; REMOVE(oplist, i); END_IF; END_REPEAT; IF SIZEOF(oplist) = 0 THEN RETURN(Convert_To_Maths_Value(nmb)); END_IF; IF boo THEN INSERT(oplist, make_number_literal(nmb), 0); END_IF; END_IF; IF 'MINIMUM_EXPRESSION' IN types THEN boo := FALSE; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'NUMBER' IN TYPEOF(vlist[i]) THEN IF boo THEN IF nmb > vlist[i] THEN nmb := vlist[i]; END_IF; ELSE nmb := vlist[i]; boo := TRUE; END_IF; REMOVE(oplist, i); END_IF; END_REPEAT; IF SIZEOF(oplist) = 0 THEN RETURN(Convert_To_Maths_Value(nmb)); END_IF; IF boo THEN INSERT(oplist, make_number_literal(nmb), 0); END_IF; END_IF; IF ('MINUS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) THEN RETURN(Convert_To_Maths_Value(v1 - v2)); END_IF; IF ('MOD_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) THEN RETURN(Convert_To_Maths_Value(v1 MOD v2)); END_IF; IF 'MULT_EXPRESSION' IN types THEN nmb := 1; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'NUMBER' IN TYPEOF(vlist[i]) THEN nmb := nmb * vlist[i]; REMOVE(oplist, i); END_IF; END_REPEAT; IF SIZEOF(oplist) = 0 THEN RETURN(Convert_To_Maths_Value(nmb)); END_IF; IF nmb <> 1 THEN INSERT(oplist, make_number_literal(nmb), 0); END_IF; IF SIZEOF(oplist) = 1 THEN RETURN(oplist[1]); END_IF; END_IF; IF ('NOT_EXPRESSION' IN types) AND ('BOOLEAN' IN TYPEOF(v1)) THEN boo := v1; RETURN(Convert_To_Maths_Value(NOT (boo))); END_IF; IF ('ODD_EXPRESSION' IN types) AND ('INTEGER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(ODD(v1))); END_IF; IF 'OR_EXPRESSION' IN types THEN REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'BOOLEAN' IN TYPEOF(vlist[i]) THEN boo := vlist[i]; IF boo THEN RETURN(Convert_To_Maths_Value(TRUE)); END_IF; REMOVE(oplist, i); END_IF; END_REPEAT; IF SIZEOF(oplist) = 0 THEN RETURN(Convert_To_Maths_Value(FALSE)); END_IF; IF SIZEOF(oplist) = 1 THEN RETURN(oplist[1]); END_IF; END_IF; IF 'PLUS_EXPRESSION' IN types THEN nmb := 0; REPEAT i := SIZEOF(vlist) TO 1 BY -1; IF 'NUMBER' IN TYPEOF(vlist[i]) THEN nmb := nmb + vlist[i]; REMOVE(oplist, i); END_IF; END_REPEAT; IF SIZEOF(oplist) = 0 THEN RETURN(Convert_To_Maths_Value(nmb)); END_IF; IF nmb <> 0 THEN INSERT(oplist, make_number_literal(nmb), 0); END_IF; IF SIZEOF(oplist) = 1 THEN RETURN(oplist[1]); END_IF; END_IF; IF ('POWER_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) THEN RETURN(Convert_To_Maths_Value(v1 ** v2)); END_IF; IF ('SIN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(SIN(v1))); END_IF; IF ('SLASH_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) AND ('NUMBER' IN TYPEOF(v2)) THEN RETURN(Convert_To_Maths_Value(v1 / v2)); END_IF; IF ('SQUARE_ROOT_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(SQRT(v1))); END_IF; IF ('SUBSTRING_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(vlist[1])) AND ('NUMBER' IN TYPEOF(vlist[2])) AND ('NUMBER' IN TYPEOF(vlist[3])) THEN str := vlist[1]; n := vlist[2]; m := vlist[3]; RETURN(Convert_To_Maths_Value(str[n:m])); END_IF; IF ('TAN_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(TAN(v1))); END_IF; IF ('UNARY_MINUS_EXPRESSION' IN types) AND ('NUMBER' IN TYPEOF(v1)) THEN nmb := v1; RETURN(Convert_To_Maths_Value(-nmb)); END_IF; IF ('VALUE_EXPRESSION' IN types) AND ('STRING' IN TYPEOF(v1)) THEN RETURN(Convert_To_Maths_Value(VALUE(v1))); END_IF; IF ('XOR_EXPRESSION' IN types) AND ('BOOLEAN' IN TYPEOF(v1)) AND ('BOOLEAN' IN TYPEOF(v2)) THEN RETURN(Convert_To_Maths_Value(v1 XOR v2)); END_IF; IF 'UNARY_GENERIC_EXPRESSION' IN types THEN RETURN(restore_unary(expr, op1)); END_IF; IF 'BINARY_GENERIC_EXPRESSION' IN types THEN RETURN(restore_binary(expr, op1, op2)); END_IF; IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN RETURN(restore_mulary(expr, oplist)); END_IF; RETURN(expr); END_FUNCTION;
FUNCTION Simplify_Maths_Space(spc : Maths_Space) : Maths_Space; LOCAL stypes : SET OF STRING := Stripped_Typeof(spc); sset : SET OF Maths_Value; zset : SET OF Maths_Value := []; zval : Maths_Value; zspc : Maths_Space; zallint : BOOLEAN := TRUE; zint : INTEGER; zmin : INTEGER; zmax : INTEGER; factors : LIST OF Maths_Space; zfactors : LIST OF Maths_Space := []; rspc : Maths_Space; END_LOCAL; IF 'FINITE_SPACE' IN stypes THEN sset := spc\Finite_Space.members; REPEAT i := 1 TO SIZEOF(sset); zval := Simplify_Maths_Value(sset[i]); zset := zset + [zval]; IF zallint AND ('INTEGER' IN TYPEOF(zval)) THEN zint := zval; IF i = 1 THEN zmin := zint; zmax := zint; ELSE IF zint < zmin THEN zmin := zint; END_IF; IF zint > zmax THEN zmax := zint; END_IF; END_IF; ELSE zallint := FALSE; END_IF; END_REPEAT; IF zallint AND (SIZEOF(zset) = zmax - zmin + 1) THEN RETURN(Make_Finite_Integer_Interval(zmin, zmax)); END_IF; RETURN(Make_Finite_Space(zset)); END_IF; IF 'UNIFORM_PRODUCT_SPACE' IN stypes THEN zspc := Simplify_Maths_Space(spc\Uniform_Product_Space.base); RETURN(Make_Uniform_Product_Space(zspc, spc\Uniform_Product_Space.exponent)); END_IF; IF 'LISTED_PRODUCT_SPACE' IN stypes THEN factors := spc\Listed_Product_Space.factors; REPEAT i := 1 TO SIZEOF(factors); INSERT(zfactors, Simplify_Maths_Space(factors[i]), i - 1); END_REPEAT; RETURN(Make_Listed_Product_Space(zfactors)); END_IF; IF 'EXTENDED_TUPLE_SPACE' IN stypes THEN zspc := Simplify_Maths_Space(spc\Extended_Tuple_Space.base); rspc := Simplify_Maths_Space(spc\Extended_Tuple_Space.extender); RETURN(Make_Extended_Tuple_Space(zspc, rspc)); END_IF; IF 'FUNCTION_SPACE' IN stypes THEN zspc := Simplify_Maths_Space(spc\Function_Space.domain_argument); rspc := Simplify_Maths_Space(spc\Function_Space.range_argument); RETURN(Make_Function_Space(spc\Function_Space.domain_constraint, zspc, spc\Function_Space.range_constraint, rspc)); END_IF; RETURN(spc); END_FUNCTION;
FUNCTION Simplify_Maths_Value(val : Maths_Value) : Maths_Value; LOCAL vtypes : SET OF STRING := Stripped_Typeof(val); vlist : LIST OF Maths_Value; nlist : LIST OF Maths_Value := []; END_LOCAL; IF 'GENERIC_EXPRESSION' IN vtypes THEN RETURN(Simplify_Generic_Expression(val)); END_IF; IF 'LIST' IN vtypes THEN vlist := val; REPEAT i := 1 TO SIZEOF(vlist); INSERT(nlist, Simplify_Maths_Value(vlist[i]), i - 1); END_REPEAT; RETURN(Convert_To_Maths_Value(nlist)); END_IF; RETURN(val); END_FUNCTION;
FUNCTION Singleton_Member_Of(spc : Maths_Space) : Maths_Value; LOCAL types : SET OF STRING := Stripped_Typeof(spc); END_LOCAL; IF 'FINITE_SPACE' IN types THEN IF SIZEOF(spc\Finite_Space.members) = 1 THEN RETURN(spc\Finite_Space.members[1]); END_IF; RETURN(?); END_IF; IF 'FINITE_INTEGER_INTERVAL' IN types THEN IF spc\Finite_Integer_Interval.size = 1 THEN RETURN(spc\Finite_Integer_Interval.min); END_IF; RETURN(?); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Sort_Link_Associations(aprr : SET [1 : ?] OF Pair_Representation_Relationship; one_not_two : BOOLEAN) : SET OF Kinematic_Link_Representation; LOCAL result : SET OF Kinematic_Link_Representation := []; END_LOCAL; IF one_not_two THEN REPEAT i := 1 TO HIINDEX(aprr); result := result + aprr[i].rep_1; END_REPEAT; ELSE REPEAT i := 1 TO HIINDEX(aprr); result := result + aprr[i].rep_2; END_REPEAT; END_IF; RETURN(result); END_FUNCTION;
FUNCTION Space_Dimension(tspace : Tuple_Space) : Nonnegative_Integer; LOCAL types : SET OF STRING := TYPEOF(tspace); END_LOCAL; IF (Schema_Prefix + 'UNIFORM_PRODUCT_SPACE') IN types THEN RETURN(tspace\Uniform_Product_Space.exponent); END_IF; IF (Schema_Prefix + 'LISTED_PRODUCT_SPACE') IN types THEN RETURN(SIZEOF(tspace\Listed_Product_Space.factors)); END_IF; IF (Schema_Prefix + 'EXTENDED_TUPLE_SPACE') IN types THEN RETURN(Space_Dimension(tspace\Extended_Tuple_Space.base)); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Space_Is_Continuum(space : Maths_Space) : BOOLEAN; LOCAL typenames : SET OF STRING := TYPEOF(space); factors : LIST OF Maths_Space; END_LOCAL; IF NOT EXISTS(space) THEN RETURN(FALSE); END_IF; IF Subspace_Of_Es(space, Es_Reals) OR Subspace_Of_Es(space, Es_Complex_Numbers) THEN RETURN(TRUE); END_IF; IF (Schema_Prefix + 'UNIFORM_PRODUCT_SPACE') IN typenames THEN RETURN(Space_Is_Continuum(space\Uniform_Product_Space.base)); END_IF; IF (Schema_Prefix + 'LISTED_PRODUCT_SPACE') IN typenames THEN factors := space\Listed_Product_Space.factors; IF SIZEOF(factors) = 0 THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO SIZEOF(factors); IF NOT Space_Is_Continuum(factors[i]) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Space_Is_Singleton(spc : Maths_Space) : BOOLEAN; LOCAL types : SET OF STRING := Stripped_Typeof(spc); END_LOCAL; IF 'FINITE_SPACE' IN types THEN RETURN(Bool(SIZEOF(spc\Finite_Space.members) = 1)); END_IF; IF 'FINITE_INTEGER_INTERVAL' IN types THEN RETURN(Bool(spc\Finite_Integer_Interval.size = 1)); END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Stripped_Typeof(arg : GENERIC : G) : SET OF STRING; LOCAL types : SET OF STRING := TYPEOF(arg); stypes : SET OF STRING := []; n : INTEGER := LENGTH(Schema_Prefix); END_LOCAL; REPEAT i := 1 TO SIZEOF(types); IF ((LENGTH(types[i]) > n) AND (types[i][1:n] = Schema_Prefix)) THEN stypes := stypes + [types[i][n + 1:LENGTH(types[i])]]; ELSE stypes := stypes + [types[i]]; END_IF; END_REPEAT; RETURN(stypes); END_FUNCTION;
FUNCTION Sts_Get_General_Datum_Reference(input : Datum_Reference_Element) : General_Datum_Reference; LOCAL general_datum_reference_bag : BAG OF General_Datum_Reference := (USEDIN(input, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERAL_DATUM_REFERENCE.BASE')); END_LOCAL; IF SIZEOF(general_datum_reference_bag) = 1 THEN RETURN(general_datum_reference_bag[1]); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Sts_Get_Product_Definition_Shape(input : Geometric_Tolerance_Target) : Product_Definition_Shape; CASE TRUE OF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_LOCATION' IN TYPEOF(input)) : RETURN(input\Shape_Aspect_Relationship.relating_shape_aspect\Shape_Aspect.of_shape); ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIMENSIONAL_SIZE' IN TYPEOF(input)) : RETURN(input\Dimensional_Size.applies_to\Shape_Aspect.of_shape); ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(input)) : RETURN(input); ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(input)) : RETURN(input\Shape_Aspect.of_shape); OTHERWISE: RETURN(?); END_CASE; END_FUNCTION;
FUNCTION Subspace_Of(space1 : Maths_Space; space2 : Maths_Space) : LOGICAL; LOCAL spc1 : Maths_Space := Simplify_Maths_Space(space1); spc2 : Maths_Space := Simplify_Maths_Space(space2); types1 : SET OF STRING := Stripped_Typeof(spc1); types2 : SET OF STRING := Stripped_Typeof(spc2); lgcl : LOGICAL; cum : LOGICAL; es_val : Elementary_Space_Enumerators; bnd1 : REAL; bnd2 : REAL; n : INTEGER; sp1 : Maths_Space; sp2 : Maths_Space; prgn1 : Polar_Complex_Number_Region; prgn2 : Polar_Complex_Number_Region; aitv : Finite_Real_Interval; END_LOCAL; IF NOT EXISTS(spc1) OR NOT EXISTS(spc2) THEN RETURN(FALSE); END_IF; IF spc2 = The_Generics THEN RETURN(TRUE); END_IF; IF 'ELEMENTARY_SPACE' IN types1 THEN IF NOT ('ELEMENTARY_SPACE' IN types2) THEN RETURN(FALSE); END_IF; es_val := spc2\Elementary_Space.space_id; IF spc1\Elementary_Space.space_id = es_val THEN RETURN(TRUE); END_IF; CASE spc1\Elementary_Space.space_id OF Es_Numbers : RETURN(FALSE); Es_Complex_Numbers : RETURN(es_val = Es_Numbers); Es_Reals : RETURN(es_val = Es_Numbers); Es_Integers : RETURN(es_val = Es_Numbers); Es_Logicals : RETURN(FALSE); Es_Booleans : RETURN(es_val = Es_Logicals); Es_Strings : RETURN(FALSE); Es_Binarys : RETURN(FALSE); Es_Maths_Spaces : RETURN(FALSE); Es_Maths_Functions : RETURN(FALSE); Es_Generics : RETURN(FALSE); END_CASE; RETURN(UNKNOWN); END_IF; IF 'FINITE_INTEGER_INTERVAL' IN types1 THEN cum := TRUE; REPEAT i := spc1\Finite_Integer_Interval.min TO spc1\Finite_Integer_Interval.max; cum := cum AND Member_Of(i, spc2); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; IF 'INTEGER_INTERVAL_FROM_MIN' IN types1 THEN IF 'ELEMENTARY_SPACE' IN types2 THEN es_val := spc2\Elementary_Space.space_id; RETURN((es_val = Es_Numbers) OR (es_val = Es_Integers)); END_IF; IF 'INTEGER_INTERVAL_FROM_MIN' IN types2 THEN RETURN(spc1\Integer_Interval_From_Min.min >= spc2\Integer_Interval_From_Min.min); END_IF; RETURN(FALSE); END_IF; IF 'INTEGER_INTERVAL_TO_MAX' IN types1 THEN IF 'ELEMENTARY_SPACE' IN types2 THEN es_val := spc2\Elementary_Space.space_id; RETURN((es_val = Es_Numbers) OR (es_val = Es_Integers)); END_IF; IF 'INTEGER_INTERVAL_TO_MAX' IN types2 THEN RETURN(spc1\Integer_Interval_To_Max.max <= spc2\Integer_Interval_To_Max.max); END_IF; RETURN(FALSE); END_IF; IF 'FINITE_REAL_INTERVAL' IN types1 THEN IF 'ELEMENTARY_SPACE' IN types2 THEN es_val := spc2\Elementary_Space.space_id; RETURN((es_val = Es_Numbers) OR (es_val = Es_Reals)); END_IF; IF ('FINITE_REAL_INTERVAL' IN types2) OR ('REAL_INTERVAL_FROM_MIN' IN types2) OR ('REAL_INTERVAL_TO_MAX' IN types2) THEN IF Min_Exists(spc2) THEN bnd1 := spc1\Finite_Real_Interval.min; bnd2 := Real_Min(spc2); IF (bnd1 < bnd2) OR ((bnd1 = bnd2) AND Min_Included(spc1) AND NOT Min_Included(spc2)) THEN RETURN(FALSE); END_IF; END_IF; IF Max_Exists(spc2) THEN bnd1 := spc1\Finite_Real_Interval.max; bnd2 := Real_Max(spc2); IF (bnd1 > bnd2) OR ((bnd1 = bnd2) AND Max_Included(spc1) AND NOT Max_Included(spc2)) THEN RETURN(FALSE); END_IF; END_IF; RETURN(TRUE); END_IF; RETURN(FALSE); END_IF; IF 'REAL_INTERVAL_FROM_MIN' IN types1 THEN IF 'ELEMENTARY_SPACE' IN types2 THEN es_val := spc2\Elementary_Space.space_id; RETURN((es_val = Es_Numbers) OR (es_val = Es_Reals)); END_IF; IF 'REAL_INTERVAL_FROM_MIN' IN types2 THEN bnd1 := spc1\Real_Interval_From_Min.min; bnd2 := spc2\Real_Interval_From_Min.min; RETURN((bnd2 < bnd1) OR ((bnd2 = bnd1) AND (Min_Included(spc2) OR NOT Min_Included(spc1)))); END_IF; RETURN(FALSE); END_IF; IF 'REAL_INTERVAL_TO_MAX' IN types1 THEN IF 'ELEMENTARY_SPACE' IN types2 THEN es_val := spc2\Elementary_Space.space_id; RETURN((es_val = Es_Numbers) OR (es_val = Es_Reals)); END_IF; IF 'REAL_INTERVAL_TO_MAX' IN types2 THEN bnd1 := spc1\Real_Interval_To_Max.max; bnd2 := spc2\Real_Interval_To_Max.max; RETURN((bnd2 > bnd1) OR ((bnd2 = bnd1) AND (Max_Included(spc2) OR NOT Max_Included(spc1)))); END_IF; RETURN(FALSE); END_IF; IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types1 THEN IF 'ELEMENTARY_SPACE' IN types2 THEN es_val := spc2\Elementary_Space.space_id; RETURN((es_val = Es_Numbers) OR (es_val = Es_Complex_Numbers)); END_IF; IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN RETURN(Subspace_Of(spc1\Cartesian_Complex_Number_Region.real_constraint, spc2\Cartesian_Complex_Number_Region.real_constraint) AND Subspace_Of(spc1\Cartesian_Complex_Number_Region.imag_constraint, spc2\Cartesian_Complex_Number_Region.imag_constraint)); END_IF; IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN RETURN(Subspace_Of(Enclose_Cregion_In_Pregion(spc1, spc2\Polar_Complex_Number_Region.centre), spc2)); END_IF; RETURN(FALSE); END_IF; IF 'POLAR_COMPLEX_NUMBER_REGION' IN types1 THEN IF 'ELEMENTARY_SPACE' IN types2 THEN es_val := spc2\Elementary_Space.space_id; RETURN((es_val = Es_Numbers) OR (es_val = Es_Complex_Numbers)); END_IF; IF 'CARTESIAN_COMPLEX_NUMBER_REGION' IN types2 THEN RETURN(Subspace_Of(Enclose_Pregion_In_Cregion(spc1), spc2)); END_IF; IF 'POLAR_COMPLEX_NUMBER_REGION' IN types2 THEN prgn1 := spc1; prgn2 := spc2; IF prgn1.centre = prgn2.centre THEN IF prgn2.direction_constraint.max > PI THEN aitv := Make_Finite_Real_Interval(-PI, Open, prgn2.direction_constraint.max - 2.0 * PI, prgn2.direction_constraint.max_closure); RETURN(Subspace_Of(prgn1.distance_constraint, prgn2.distance_constraint) AND (Subspace_Of(prgn1.direction_constraint, prgn2.direction_constraint) OR Subspace_Of(prgn1.direction_constraint, aitv))); ELSE RETURN(Subspace_Of(prgn1.distance_constraint, prgn2.distance_constraint) AND Subspace_Of(prgn1.direction_constraint, prgn2.direction_constraint)); END_IF; END_IF; RETURN(Subspace_Of(Enclose_Pregion_In_Pregion(prgn1, prgn2.centre), prgn2)); END_IF; RETURN(FALSE); END_IF; IF 'FINITE_SPACE' IN types1 THEN cum := TRUE; REPEAT i := 1 TO SIZEOF(spc1\Finite_Space.members); cum := cum AND Member_Of(spc1\Finite_Space.members[i], spc2); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; IF 'PRODUCT_SPACE' IN types1 THEN IF 'PRODUCT_SPACE' IN types2 THEN IF Space_Dimension(spc1) = Space_Dimension(spc2) THEN cum := TRUE; REPEAT i := 1 TO Space_Dimension(spc1); cum := cum AND Subspace_Of(Factor_Space(spc1, i), Factor_Space(spc2, i)); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; END_IF; IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN IF Space_Dimension(spc1) >= Space_Dimension(spc2) THEN cum := TRUE; REPEAT i := 1 TO Space_Dimension(spc1); cum := cum AND Subspace_Of(Factor_Space(spc1, i), Factor_Space(spc2, i)); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; END_IF; RETURN(FALSE); END_IF; IF 'EXTENDED_TUPLE_SPACE' IN types1 THEN IF 'EXTENDED_TUPLE_SPACE' IN types2 THEN n := Space_Dimension(spc1); IF n < Space_Dimension(spc2) THEN n := Space_Dimension(spc2); END_IF; cum := TRUE; REPEAT i := 1 TO n + 1; cum := cum AND Subspace_Of(Factor_Space(spc1, i), Factor_Space(spc2, i)); IF cum = FALSE THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(cum); END_IF; RETURN(FALSE); END_IF; IF 'FUNCTION_SPACE' IN types1 THEN IF 'ELEMENTARY_SPACE' IN types2 THEN RETURN(spc2\Elementary_Space.space_id = Es_Maths_Functions); END_IF; IF 'FUNCTION_SPACE' IN types2 THEN cum := TRUE; sp1 := spc1\Function_Space.domain_argument; sp2 := spc2\Function_Space.domain_argument; CASE spc1\Function_Space.domain_constraint OF Sc_Equal : BEGIN CASE spc2\Function_Space.domain_constraint OF Sc_Equal : cum := cum AND Equal_Maths_Spaces(sp1, sp2); Sc_Subspace : cum := cum AND Subspace_Of(sp1, sp2); Sc_Member : cum := cum AND Member_Of(sp1, sp2); END_CASE; END; Sc_Subspace : BEGIN CASE spc2\Function_Space.domain_constraint OF Sc_Equal : RETURN(FALSE); Sc_Subspace : cum := cum AND Subspace_Of(sp1, sp2); Sc_Member : BEGIN IF NOT Member_Of(sp1, sp2) THEN RETURN(FALSE); END_IF; cum := UNKNOWN; END; END_CASE; END; Sc_Member : BEGIN CASE spc2\Function_Space.domain_constraint OF Sc_Equal : cum := cum AND Space_Is_Singleton(sp1) AND Equal_Maths_Spaces(Singleton_Member_Of(sp1), sp2); Sc_Subspace : BEGIN IF NOT Member_Of(sp2, sp1) THEN RETURN(FALSE); END_IF; cum := UNKNOWN; END; Sc_Member : cum := cum AND (Subspace_Of(sp1, sp2)); END_CASE; END; END_CASE; IF cum = FALSE THEN RETURN(FALSE); END_IF; sp1 := spc1\Function_Space.range_argument; sp2 := spc2\Function_Space.range_argument; CASE spc1\Function_Space.range_constraint OF Sc_Equal : BEGIN CASE spc2\Function_Space.range_constraint OF Sc_Equal : cum := cum AND Equal_Maths_Spaces(sp1, sp2); Sc_Subspace : cum := cum AND Subspace_Of(sp1, sp2); Sc_Member : cum := cum AND Member_Of(sp1, sp2); END_CASE; END; Sc_Subspace : BEGIN CASE spc2\Function_Space.domain_constraint OF Sc_Equal : RETURN(FALSE); Sc_Subspace : cum := cum AND Subspace_Of(sp1, sp2); Sc_Member : BEGIN IF NOT Member_Of(sp1, sp2) THEN RETURN(FALSE); END_IF; cum := UNKNOWN; END; END_CASE; END; Sc_Member : BEGIN CASE spc2\Function_Space.domain_constraint OF Sc_Equal : cum := cum AND Space_Is_Singleton(sp1) AND Equal_Maths_Spaces(Singleton_Member_Of(sp1), sp2); Sc_Subspace : BEGIN IF NOT Member_Of(sp2, sp1) THEN RETURN(FALSE); END_IF; cum := UNKNOWN; END; Sc_Member : cum := cum AND Subspace_Of(sp1, sp2); END_CASE; END; END_CASE; RETURN(cum); END_IF; RETURN(FALSE); END_IF; RETURN(UNKNOWN); END_FUNCTION;
FUNCTION Subspace_Of_Es(spc : Maths_Space; es : Elementary_Space_Enumerators) : LOGICAL; LOCAL types : SET OF STRING := Stripped_Typeof(spc); END_LOCAL; IF NOT EXISTS(spc) OR NOT EXISTS(es) THEN RETURN(FALSE); END_IF; IF 'ELEMENTARY_SPACE' IN types THEN RETURN(Es_Subspace_Of_Es(spc\Elementary_Space.space_id, es)); END_IF; IF 'FINITE_SPACE' IN types THEN RETURN(All_Members_Of_Es(spc\Finite_Space.members, es)); END_IF; CASE es OF Es_Numbers : RETURN(('FINITE_INTEGER_INTERVAL' IN types) OR ('INTEGER_INTERVAL_FROM_MIN' IN types) OR ('INTEGER_INTERVAL_TO_MAX' IN types) OR ('FINITE_REAL_INTERVAL' IN types) OR ('REAL_INTERVAL_FROM_MIN' IN types) OR ('REAL_INTERVAL_TO_MAX' IN types) OR ('CARTESIAN_COMPLEX_NUMBER_REGION' IN types) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types)); Es_Complex_Numbers : RETURN(('CARTESIAN_COMPLEX_NUMBER_REGION' IN types) OR ('POLAR_COMPLEX_NUMBER_REGION' IN types)); Es_Reals : RETURN(('FINITE_REAL_INTERVAL' IN types) OR ('REAL_INTERVAL_FROM_MIN' IN types) OR ('REAL_INTERVAL_TO_MAX' IN types)); Es_Integers : RETURN(('FINITE_INTEGER_INTERVAL' IN types) OR ('INTEGER_INTERVAL_FROM_MIN' IN types) OR ('INTEGER_INTERVAL_TO_MAX' IN types)); Es_Logicals : RETURN(FALSE); Es_Booleans : RETURN(FALSE); Es_Strings : RETURN(FALSE); Es_Binarys : RETURN(FALSE); Es_Maths_Spaces : RETURN(FALSE); Es_Maths_Functions : RETURN('FUNCTION_SPACE' IN types); Es_Generics : RETURN(TRUE); END_CASE; RETURN(UNKNOWN); END_FUNCTION;
FUNCTION Substitute(expr : Generic_Expression; vars : LIST [1 : ?] OF Generic_Variable; vals : LIST [1 : ?] OF Maths_Value) : Generic_Expression; LOCAL types : SET OF STRING := Stripped_Typeof(expr); opnds : LIST OF Generic_Expression; op1 : Generic_Expression; op2 : Generic_Expression; qvars : LIST OF Generic_Variable; srcdom : Maths_Space_Or_Function; prpfun : LIST [1 : ?] OF Maths_Function; finfun : Maths_Function_Select; END_LOCAL; IF SIZEOF(vars) <> SIZEOF(vals) THEN RETURN(?); END_IF; IF 'GENERIC_LITERAL' IN types THEN RETURN(expr); END_IF; IF 'GENERIC_VARIABLE' IN types THEN REPEAT i := 1 TO SIZEOF(vars); IF expr :=: vars[i] THEN RETURN(vals[i]); END_IF; END_REPEAT; RETURN(expr); END_IF; IF 'QUANTIFIER_EXPRESSION' IN types THEN qvars := expr\Quantifier_Expression.variables; REPEAT i := SIZEOF(vars) TO 1 BY -1; IF vars[i] IN qvars THEN REMOVE(vars, i); REMOVE(vals, i); END_IF; END_REPEAT; opnds := expr\Multiple_Arity_Generic_Expression.operands; REPEAT i := 1 TO SIZEOF(opnds); IF NOT (opnds[i] IN qvars) THEN expr\Multiple_Arity_Generic_Expression.operands[i] := Substitute(opnds[i], vars, vals); END_IF; END_REPEAT; RETURN(expr); END_IF; IF 'UNARY_GENERIC_EXPRESSION' IN types THEN op1 := expr\Unary_Generic_Expression.operand; expr\Unary_Generic_Expression.operand := Substitute(op1, vars, vals); END_IF; IF 'BINARY_GENERIC_EXPRESSION' IN types THEN op1 := expr\Binary_Generic_Expression.operands[1]; expr\Binary_Generic_Expression.operands[1] := Substitute(op1, vars, vals); op2 := expr\Binary_Generic_Expression.operands[2]; expr\Binary_Generic_Expression.operands[2] := Substitute(op2, vars, vals); END_IF; IF 'PARALLEL_COMPOSED_FUNCTION' IN types THEN srcdom := expr\Parallel_Composed_Function.source_of_domain; prpfun := expr\Parallel_Composed_Function.prep_functions; finfun := expr\Parallel_Composed_Function.final_function; srcdom := Substitute(srcdom, vars, vals); REPEAT i := 1 TO SIZEOF(prpfun); prpfun[i] := Substitute(prpfun[i], vars, vals); END_REPEAT; IF 'MATHS_FUNCTION' IN Stripped_Typeof(finfun) THEN finfun := Substitute(finfun, vars, vals); END_IF; RETURN(Make_Parallel_Composed_Function(srcdom, prpfun, finfun)); END_IF; IF 'MULTIPLE_ARITY_GENERIC_EXPRESSION' IN types THEN opnds := expr\Multiple_Arity_Generic_Expression.operands; REPEAT i := 1 TO SIZEOF(opnds); expr\Multiple_Arity_Generic_Expression.operands[i] := Substitute(opnds[i], vars, vals); END_REPEAT; END_IF; RETURN(expr); END_FUNCTION;
FUNCTION Surface_Condition_Correlation(pd : Property_Definition; rep : Representation) : LOGICAL; CASE pd.name OF 'visual appearance', 'tactile appearance', 'contact ratio', 'hardness', 'treatment result', 'surface texture' : RETURN(pd.name = rep.name); OTHERWISE: RETURN(UNKNOWN); END_CASE; END_FUNCTION;
FUNCTION Surface_Weights_Positive(b : Rational_B_Spline_Surface) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.u_upper; REPEAT j := 0 TO b.v_upper; IF (b.weights[i][j] <= 0.0) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Topology_Reversed(an_item : Reversible_Topology) : Reversible_Topology; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE' IN TYPEOF(an_item)) THEN RETURN(Edge_Reversed(an_item)); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH' IN TYPEOF(an_item)) THEN RETURN(Path_Reversed(an_item)); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_BOUND' IN TYPEOF(an_item)) THEN RETURN(Face_Bound_Reversed(an_item)); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE' IN TYPEOF(an_item)) THEN RETURN(Face_Reversed(an_item)); END_IF; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL' IN TYPEOF(an_item)) THEN RETURN(Shell_Reversed(an_item)); END_IF; IF ('SET' IN TYPEOF(an_item)) THEN RETURN(Set_Of_Topology_Reversed(an_item)); END_IF; IF ('LIST' IN TYPEOF(an_item)) THEN RETURN(List_Of_Topology_Reversed(an_item)); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Type_Check_Function(the_type : GENERIC; sub_names : SET OF STRING; criterion : INTEGER) : LOGICAL; IF ((NOT EXISTS(the_type)) OR (SIZEOF(sub_names) = 0)) THEN RETURN(UNKNOWN); ELSE CASE criterion OF 0 : RETURN(SIZEOF(sub_names * TYPEOF(the_type)) > 0); 1 : RETURN(SIZEOF(sub_names * TYPEOF(the_type)) = 0); 2 : RETURN(SIZEOF(sub_names * TYPEOF(the_type)) = 1); 3 : RETURN(SIZEOF(sub_names * TYPEOF(the_type)) <= 1); OTHERWISE: RETURN(UNKNOWN); END_CASE; END_IF; END_FUNCTION;
FUNCTION Unambiguously_Specified_Multi_Level_Reference_Designator(links : LIST [1 : ?] OF Next_Assembly_Usage_Occurrence) : BOOLEAN; REPEAT i := 1 TO SIZEOF(links) - 1; CASE TRUE OF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i]\Product_Definition_Relationship.relating_product_definition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i]\Product_Definition_Relationship.related_product_definition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i + 1]\Product_Definition_Relationship.relating_product_definition)) : BEGIN IF NOT ((links[i]\Product_Definition_Relationship.related_product_definition :=: links[i + 1]\Product_Definition_Relationship.relating_product_definition) OR ((SIZEOF(QUERY(pdr <* USEDIN(links[i]\Product_Definition_Relationship.related_product_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr\Product_Definition_Relationship.relating_product_definition :=: links[i + 1]\Product_Definition_Relationship.relating_product_definition)) = 1) AND (links[i]\Product_Definition_Relationship.related_product_definition\Product_Definition.formation\Product_Definition_Formation.of_product :=: links[i + 1]\Product_Definition_Relationship.relating_product_definition\Product_Definition.formation\Product_Definition_Formation.of_product))) THEN RETURN(FALSE); END_IF; END; ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i]\Product_Definition_Relationship.related_product_definition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i + 1]\Product_Definition_Relationship.relating_product_definition)) : BEGIN IF NOT ((links[i]\Product_Definition_Relationship.related_product_definition :=: links[i + 1]\Product_Definition_Relationship.relating_product_definition) OR ((SIZEOF(QUERY(pdr <* USEDIN(links[i]\Product_Definition_Relationship.related_product_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr\Product_Definition_Relationship.relating_product_definition :=: links[i + 1]\Product_Definition_Relationship.relating_product_definition)) = 1) AND (links[i]\Product_Definition_Relationship.related_product_definition\Product_Definition_Reference.product_id = links[i + 1]\Product_Definition_Relationship.relating_product_definition\Product_Definition_Reference.product_id) AND (links[i]\Product_Definition_Relationship.related_product_definition\Product_Definition_Reference.id_owning_organization_name = links[i + 1]\Product_Definition_Relationship.relating_product_definition\Product_Definition_Reference.id_owning_organization_name) AND (links[i]\Product_Definition_Relationship.related_product_definition\Product_Definition_Reference.product_definition_id <> links[i + 1]\Product_Definition_Relationship.relating_product_definition\Product_Definition_Reference.product_definition_id))) THEN RETURN(FALSE); END_IF; END; ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF(links[i]\Product_Definition_Relationship.relating_product_definition)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(links[i]\Product_Definition_Relationship.related_product_definition)) : RETURN(FALSE); OTHERWISE: RETURN(FALSE); END_CASE; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Unique_In_Product_Definition(item : Representative_Shape_Representation) : BOOLEAN; LOCAL local_p_d : SET OF Product_Definition := []; local_s_r : SET OF Shape_Representation := []; i : INTEGER; j : INTEGER; END_LOCAL; local_p_d := Using_Product_Definition_Of_Shape_Representation(item); IF (SIZEOF(local_p_d) <> 1) THEN RETURN(FALSE); ELSE REPEAT i := 1 TO HIINDEX(local_p_d); local_s_r := Find_Shape_Representation_Of_Product_Definition(local_p_d[i]); REPEAT j := 1 TO HIINDEX(local_s_r); IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(local_s_r[j])) AND (local_s_r[j] :<>: item)) THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Unique_In_Shape_Aspect(item : Representative_Shape_Representation) : BOOLEAN; LOCAL local_s_a : SET OF Shape_Aspect := []; local_s_r : SET OF Shape_Representation := []; i : INTEGER; j : INTEGER; END_LOCAL; local_s_a := Using_Shape_Aspect_Of_Shape_Representation(item); IF (SIZEOF(local_s_a) <> 1) THEN RETURN(FALSE); ELSE REPEAT i := 1 TO HIINDEX(local_s_a); local_s_r := Find_Shape_Representation_Of_Shape_Aspect(local_s_a[i]); REPEAT j := 1 TO HIINDEX(local_s_r); IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF(local_s_r[j])) AND (local_s_r[j] :<>: item)) THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Used_Variables(arg : Generic_Expression) : SET OF Generic_Variable; LOCAL result : SET OF Generic_Variable := []; END_LOCAL; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GENERIC_VARIABLE' IN TYPEOF(arg) THEN RETURN([arg]); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg) THEN RETURN(Used_Variables(arg\Unary_Generic_Expression.operand)); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BINARY_GENERIC_EXPRESSION' IN TYPEOF(arg) THEN RETURN(Used_Variables(arg\Binary_Generic_Expression.operands[1]) + Used_Variables(arg\Binary_Generic_Expression.operands[2])); END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF(arg) THEN REPEAT i := 1 TO SIZEOF(arg\Multiple_Arity_Generic_Expression.operands); result := result + Used_Variables(arg\Multiple_Arity_Generic_Expression.operands[i]); END_REPEAT; RETURN(result); END_IF; RETURN([]); END_FUNCTION;
FUNCTION Using_Items(item : Founded_Item_Select; checked_items : SET OF Founded_Item_Select) : SET OF Founded_Item_Select; LOCAL new_check_items : SET OF Founded_Item_Select; result_items : SET OF Founded_Item_Select; next_items : SET OF Founded_Item_Select; END_LOCAL; result_items := []; new_check_items := checked_items + item; next_items := QUERY(z <* Bag_To_Set(USEDIN(item, '')) | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF(z)) OR ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FOUNDED_ITEM' IN TYPEOF(z))); IF SIZEOF(next_items) > 0 THEN REPEAT i := 1 TO HIINDEX(next_items); IF NOT (next_items[i] IN new_check_items) THEN result_items := result_items + next_items[i] + Using_Items(next_items[i], new_check_items); END_IF; END_REPEAT; END_IF; RETURN(result_items); END_FUNCTION;
FUNCTION Using_Product_Definition_Of_Shape_Aspect(item : Shape_Aspect) : Product_Definition; IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(item.of_shape.definition)) THEN RETURN(item.of_shape.definition); ELSE RETURN(?); END_IF; END_FUNCTION;
FUNCTION Using_Product_Definition_Of_Shape_Representation(item : Shape_Representation) : SET OF Product_Definition; LOCAL local_s_d_r : SET OF Shape_Definition_Representation := []; local_p_d : SET OF Product_Definition := []; i : INTEGER; END_LOCAL; local_s_d_r := QUERY(i1 <* Bag_To_Set(USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(i1)); REPEAT i := 1 TO HIINDEX(local_s_d_r); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION' IN TYPEOF(local_s_d_r[i]\Property_Definition_Representation.definition)) THEN IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(local_s_d_r[i]\Property_Definition_Representation.definition\Property_Definition.definition)) THEN local_p_d := local_p_d + local_s_d_r[i]\Property_Definition_Representation.definition\Property_Definition.definition; END_IF; END_IF; END_REPEAT; RETURN(local_p_d); END_FUNCTION;
FUNCTION Using_Representation_With_Mapping(item : Representation_Item) : SET OF Representation; LOCAL results : SET OF Representation := []; local_results : SET OF Representation := []; local_representation_map : SET OF Representation_Map := []; intermediate_items : SET OF Representation_Item := []; i : INTEGER; j : INTEGER; END_LOCAL; local_results := QUERY(z <* Using_Representations(item) | SIZEOF(USEDIN(z, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')) > 0); IF (SIZEOF(local_results) = 0) THEN RETURN([]); ELSE REPEAT i := 1 TO HIINDEX(local_results); local_representation_map := local_representation_map + Bag_To_Set(USEDIN(local_results[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION')); END_REPEAT; REPEAT i := 1 TO HIINDEX(local_representation_map); intermediate_items := intermediate_items + Bag_To_Set(USEDIN(local_representation_map[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE')); END_REPEAT; REPEAT j := 1 TO HIINDEX(intermediate_items); results := results + Bag_To_Set(Using_Representation_With_Mapping(intermediate_items[j])); END_REPEAT; END_IF; RETURN(results); END_FUNCTION;
FUNCTION Using_Representations(item : Founded_Item_Select) : SET OF Representation; LOCAL results : SET OF Representation; result_bag : BAG OF Representation; intermediate_items : SET OF Founded_Item_Select; END_LOCAL; results := []; result_bag := USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS'); IF SIZEOF(result_bag) > 0 THEN REPEAT i := 1 TO HIINDEX(result_bag); results := results + result_bag[i]; END_REPEAT; END_IF; intermediate_items := Using_Items(item, []); IF SIZEOF(intermediate_items) > 0 THEN REPEAT i := 1 TO HIINDEX(intermediate_items); result_bag := USEDIN(intermediate_items[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATION.ITEMS'); IF SIZEOF(result_bag) > 0 THEN REPEAT j := 1 TO HIINDEX(result_bag); results := results + result_bag[j]; END_REPEAT; END_IF; END_REPEAT; END_IF; RETURN(results); END_FUNCTION;
FUNCTION Using_Shape_Aspect_Of_Shape_Representation(item : Shape_Representation) : SET OF Shape_Aspect; LOCAL local_s_d_r : SET OF Shape_Definition_Representation := []; local_s_d_r2 : BAG OF Shape_Definition_Representation := []; local_s_a : SET OF Shape_Aspect := []; i : INTEGER; END_LOCAL; local_s_d_r2 := local_s_d_r2 + QUERY(pdr <* USEDIN(item, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)); local_s_d_r := Bag_To_Set(local_s_d_r2); REPEAT i := 1 TO HIINDEX(local_s_d_r); IF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT' IN TYPEOF(local_s_d_r[i]\Property_Definition_Representation.definition\Property_Definition.definition)) THEN local_s_a := local_s_a + local_s_d_r[i]\Property_Definition_Representation.definition\Property_Definition.definition; END_IF; END_REPEAT; RETURN(local_s_a); END_FUNCTION;
FUNCTION Valid_Basis_Curve_In_2d_Wireframe(crv : Curve) : BOOLEAN; -- check for valid basic curve types IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE'] * TYPEOF(crv)) = 1 THEN RETURN(TRUE); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE') IN TYPEOF(crv)) THEN IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARABOLA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HYPERBOLA'] * TYPEOF(crv\Trimmed_Curve.basis_curve)) = 1 THEN RETURN(TRUE); ELSE RETURN(Valid_Basis_Curve_In_2d_Wireframe(crv\Trimmed_Curve.basis_curve)); END_IF; ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_2D') IN TYPEOF(crv)) THEN RETURN(Valid_Basis_Curve_In_2d_Wireframe(crv\Offset_Curve_2d.basis_curve)); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA') IN TYPEOF(crv)) THEN RETURN(Valid_Basis_Curve_In_2d_Wireframe(crv\Curve_Replica.parent_curve)); ELSE IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE') IN TYPEOF(crv)) THEN RETURN(SIZEOF(QUERY(ccs <* crv\Composite_Curve.segments | NOT (Valid_Basis_Curve_In_2d_Wireframe(ccs.parent_curve)))) = 0); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Valid_Calendar_Date(date : Calendar_Date) : LOGICAL; CASE date.month_component OF 1 : RETURN({1 <= date.day_component <= 31}); 2 : BEGIN IF (Leap_Year(date.year_component)) THEN RETURN({1 <= date.day_component <= 29}); ELSE RETURN({1 <= date.day_component <= 28}); END_IF; END; 3 : RETURN({1 <= date.day_component <= 31}); 4 : RETURN({1 <= date.day_component <= 30}); 5 : RETURN({1 <= date.day_component <= 31}); 6 : RETURN({1 <= date.day_component <= 30}); 7 : RETURN({1 <= date.day_component <= 31}); 8 : RETURN({1 <= date.day_component <= 31}); 9 : RETURN({1 <= date.day_component <= 30}); 10 : RETURN({1 <= date.day_component <= 31}); 11 : RETURN({1 <= date.day_component <= 30}); 12 : RETURN({1 <= date.day_component <= 31}); END_CASE; RETURN(FALSE); END_FUNCTION;
FUNCTION Valid_Csg_2d_Primitives(input : Csg_Solid_2d) : BOOLEAN; CASE TRUE OF ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D' IN TYPEOF(input\Csg_Solid_2d.tree_root_expression)) : BEGIN IF (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPLEX_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPTIC_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HALF_SPACE_2D', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYGONAL_AREA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RECTANGULAR_AREA'] * TYPEOF(input\Csg_Solid_2d.tree_root_expression)) > 0) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BOOLEAN_RESULT_2D' IN TYPEOF(input\Csg_Solid_2d.tree_root_expression)) : RETURN(Valid_Csg_2d_Primitives(input\Csg_Solid_2d.tree_root_expression\Boolean_Result_2d.first_operand) AND Valid_Csg_2d_Primitives(input\Csg_Solid_2d.tree_root_expression\Boolean_Result_2d.second_operand)); OTHERWISE: RETURN(FALSE); END_CASE; END_FUNCTION;
FUNCTION Valid_Datum_Target_Parameters(pdf : Placed_Datum_Target_Feature) : BOOLEAN; LOCAL rep_set : SET OF Representation := []; parameter_representations : SET OF Representation; END_LOCAL; REPEAT i := 1 TO HIINDEX(pdf.representation_associations); rep_set := rep_set + pdf.representation_associations[i].used_representation; END_REPEAT; parameter_representations := QUERY(rep <* rep_set | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF(rep))); IF (SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(QUERY(i <* srwp.items | (i.name = 'orientation') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLACEMENT' IN TYPEOF(i)))) = 1))) <> 1) THEN RETURN(FALSE); END_IF; CASE pdf\Shape_Aspect.description OF 'point' : RETURN(SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(srwp.items) = 1))) = 1); 'circle', 'circular curve' : RETURN((SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(srwp.items) = 2))) = 1) AND (SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(QUERY(i <* srwp.items | (i.name = 'target diameter') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1)); 'line' : RETURN(SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(QUERY(i <* srwp.items | (i.name = 'target length') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1); 'rectangle' : RETURN((SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(srwp.items) = 3))) = 1) AND (SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(QUERY(i <* srwp.items | (i.name = 'target length') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1) AND (SIZEOF(QUERY(srwp <* parameter_representations | (SIZEOF(QUERY(i <* srwp.items | (i.name = 'target width') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF(i)) = 2))) = 1))) = 1)); OTHERWISE: RETURN(FALSE); END_CASE; END_FUNCTION;
FUNCTION Valid_Geometrically_Bounded_Wf_Curve(crv : Curve) : BOOLEAN; IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELLIPSE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCLE'] * TYPEOF(crv)) = 1 THEN RETURN(TRUE); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TRIMMED_CURVE' IN TYPEOF(crv) THEN IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARABOLA', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.HYPERBOLA'] * TYPEOF(crv\Trimmed_Curve.basis_curve)) = 1 THEN RETURN(TRUE); ELSE RETURN(Valid_Geometrically_Bounded_Wf_Curve(crv\Trimmed_Curve.basis_curve)); END_IF; ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(crv) THEN RETURN(Valid_Geometrically_Bounded_Wf_Curve(crv\Offset_Curve_3d.basis_curve)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(crv) THEN RETURN(Valid_Geometrically_Bounded_Wf_Curve(crv\Curve_Replica.parent_curve)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_CURVE' IN TYPEOF(crv) THEN RETURN(SIZEOF(QUERY(ccs <* crv\Composite_Curve.segments | NOT Valid_Geometrically_Bounded_Wf_Curve(ccs.parent_curve))) = 0); END_IF; END_IF; END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Valid_Geometrically_Bounded_Wf_Point(pnt : Point) : BOOLEAN; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) THEN RETURN(TRUE); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_ON_CURVE' IN TYPEOF(pnt) THEN RETURN(Valid_Geometrically_Bounded_Wf_Curve(pnt\Point_On_Curve.basis_curve)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPLICA' IN TYPEOF(pnt) THEN RETURN(Valid_Geometrically_Bounded_Wf_Point(pnt\Point_Replica.parent_pt)); END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Valid_Measure_Value(m : Measure_Value) : BOOLEAN; IF ('REAL' IN TYPEOF(m)) THEN RETURN(m > 0.0); ELSE IF ('INTEGER' IN TYPEOF(m)) THEN RETURN(m > 0); ELSE RETURN(TRUE); END_IF; END_IF; END_FUNCTION;
FUNCTION Valid_Selected_Instance_Representation(pd : Product_Definition_Or_Assembly_Relationship) : LOGICAL; LOCAL properties : SET OF Property_Definition := Bag_To_Set(QUERY(prd <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (prd.name = 'occurrence selection'))); property_definition_representations : SET OF Property_Definition_Representation := Bag_To_Set(QUERY(pdr <* USEDIN(properties[1], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (pdr.used_representation.name = 'selection criteria'))); selected_representation : Representation; END_LOCAL; IF (SIZEOF(properties) <> 1) THEN RETURN(FALSE); END_IF; IF (SIZEOF(property_definition_representations) <> 1) THEN RETURN(FALSE); END_IF; selected_representation := property_definition_representations[1]\Property_Definition_Representation.used_representation; IF (SIZEOF(selected_representation\Representation.items) < 1) OR (SIZEOF(selected_representation\Representation.items) > 2) THEN RETURN(FALSE); END_IF; IF (SIZEOF(QUERY(i <* selected_representation\Representation.items | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * TYPEOF(i)) = 1) AND (i.name = 'selection quantity'))) <> 1) THEN RETURN(FALSE); END_IF; IF (SIZEOF(QUERY(i <* selected_representation\Representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'selection control'))) > 1) THEN RETURN(FALSE); END_IF; IF (SIZEOF(QUERY(i <* selected_representation\Representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'selection control'))) = 0) AND (SIZEOF(QUERY(i <* selected_representation\Representation.items | (i.name = 'selection quantity') AND (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.QUALIFIED_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_RANGE'] * TYPEOF(i)) = 0))) > 0) THEN RETURN(FALSE); END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Valid_Time(time : Local_Time) : BOOLEAN; IF EXISTS(time.second_component) THEN RETURN(EXISTS(time.minute_component)); ELSE RETURN(TRUE); END_IF; END_FUNCTION;
FUNCTION Valid_Units(m : Measure_With_Unit) : BOOLEAN; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MASS_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TIME_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SOLID_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AREA_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VOLUME_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RATIO_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ACCELERATION_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(1.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CAPACITANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(-2.0, -1.0, 4.0, 2.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_CHARGE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(-2.0, -1.0, 3.0, 2.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(2.0, 1.0, -3.0, -1.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ENERGY_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(2.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FORCE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FREQUENCY_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ILLUMINANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(-2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INDUCTANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(2.0, 1.0, -2.0, -2.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LUMINOUS_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAGNETIC_FLUX_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(2.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 1.0, -2.0, -1.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POWER_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(2.0, 1.0, -3.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRESSURE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(-1.0, 1.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RESISTANCE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(2.0, 1.0, -3.0, -2.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VELOCITY_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(1.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.RADIOACTIVITY_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ABSORBED_DOSE_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DOSE_EQUIVALENT_MEASURE' IN TYPEOF(m.value_component) THEN IF Derive_Dimensional_Exponents(m.unit_component) <> Dimensional_Exponents(2.0, 0.0, -2.0, 0.0, 0.0, 0.0, 0.0) THEN RETURN(FALSE); END_IF; END_IF; RETURN(TRUE); END_FUNCTION;
FUNCTION Valid_Wireframe_Edge_Curve(crv : Curve) : BOOLEAN; IF SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONIC', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.B_SPLINE_CURVE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POLYLINE'] * TYPEOF(crv)) = 1 THEN RETURN(TRUE); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_REPLICA' IN TYPEOF(crv) THEN RETURN(Valid_Wireframe_Edge_Curve(crv\Curve_Replica.parent_curve)); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF(crv) THEN RETURN(Valid_Wireframe_Edge_Curve(crv\Offset_Curve_3d.basis_curve)); END_IF; END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Valid_Wireframe_Vertex_Point(pnt : Point) : BOOLEAN; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CARTESIAN_POINT' IN TYPEOF(pnt) THEN RETURN(TRUE); ELSE IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPLICA' IN TYPEOF(pnt) THEN RETURN(Valid_Wireframe_Vertex_Point(pnt\Point_Replica.parent_pt)); END_IF; END_IF; RETURN(FALSE); END_FUNCTION;
FUNCTION Validate_Accuracy_Types(ei : Shape_Data_Quality_Criterion; type_list : BAG OF STRING) : LOGICAL; LOCAL sdqca : BAG OF Shape_Data_Quality_Criterion_And_Accuracy_Association := []; sma : BAG OF Shape_Measurement_Accuracy := []; sdqir : SET OF Shape_Data_Quality_Inspection_Result := []; scraa : BAG OF Shape_Inspection_Result_Accuracy_Association := []; t_logic : BOOLEAN; END_LOCAL; sdqca := USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.SHAPE_DATA_QUALITY_CRITERION'); IF (SIZEOF(sdqca) <> 0) THEN REPEAT i := 1 TO SIZEOF(sdqca); sma := sma + sdqca[i].required_specific_accuracy; END_REPEAT; IF (SIZEOF(type_list) < SIZEOF(sma)) THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO SIZEOF(sma); t_logic := FALSE; REPEAT j := 1 TO SIZEOF(type_list); IF (type_list[j] IN Value_Limit_Type(sma[i].range)) THEN t_logic := TRUE; ESCAPE; END_IF; END_REPEAT; IF (NOT (t_logic)) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; sdqir := QUERY(q <* Bag_To_Set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)); IF (SIZEOF(sdqir) = 0) THEN RETURN(TRUE); END_IF; REPEAT i := 1 TO SIZEOF(sdqir); scraa := USEDIN(sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION.SHAPE_DATA_QUALITY_RESULT'); IF (SIZEOF(scraa) <> 0) THEN sma := []; REPEAT j := 1 TO SIZEOF(scraa); sma := sma + scraa[j].applied_specific_accuracy; END_REPEAT; IF (SIZEOF(type_list) < SIZEOF(sma)) THEN RETURN(FALSE); END_IF; REPEAT j := 1 TO SIZEOF(sma); t_logic := FALSE; REPEAT k := 1 TO SIZEOF(type_list); IF (type_list[k] IN Value_Limit_Type(sma[j].range)) THEN t_logic := TRUE; ESCAPE; END_IF; END_REPEAT; IF (NOT (t_logic)) THEN RETURN(FALSE); END_IF; END_REPEAT; END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Validate_Attribute_Id(attid : Attribute_Identifier) : BOOLEAN; CONSTANT letters : SET [52 : 52] OF STRING := ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; numbers_etc : SET [15 : 15] OF STRING := ['0','1','2','3','4','5','6','7','8','9','_','[',']','.','\']; valid_chars : SET [67 : 67] OF STRING := letters + numbers_etc; END_CONSTANT; LOCAL id_length : INTEGER := LENGTH(attid); id_valid : BOOLEAN := TRUE; i : INTEGER; END_LOCAL; IF NOT (attid[1] IN letters) THEN id_valid := FALSE; END_IF; REPEAT i := 2 TO id_length WHILE id_valid = TRUE; IF NOT (attid[i] IN valid_chars) THEN id_valid := FALSE; END_IF; END_REPEAT; RETURN(id_valid); END_FUNCTION;
FUNCTION Validate_Countersink_Radii(cskhole : Solid_With_Stepped_Round_Hole_And_Conical_Transitions) : BOOLEAN; LOCAL i : INTEGER; j : INTEGER; n : INTEGER := 1 + cskhole\Solid_With_Stepped_Round_Hole.segments; smaller : Positive_Length_Measure; larger : Positive_Length_Measure; END_LOCAL; REPEAT i := 1 TO SIZEOF(cskhole.conical_transitions); IF (((cskhole.conical_transitions[i].transition_number = 1) AND (cskhole.conical_transitions[i].cone_apex_angle < 0)) XOR ((cskhole.conical_transitions[i].transition_number = n) AND (cskhole.conical_transitions[i].cone_apex_angle > 0))) THEN RETURN(FALSE); ELSE IF ((cskhole.conical_transitions[i].transition_number <> 1) AND (cskhole.conical_transitions[i].transition_number <> n)) THEN BEGIN j := cskhole.conical_transitions[i].transition_number; IF cskhole\Solid_With_Stepped_Round_Hole.segment_radii[j] > cskhole\Solid_With_Stepped_Round_Hole.segment_radii[j - 1] THEN BEGIN IF (cskhole.conical_transitions[i].cone_apex_angle > 0) THEN RETURN(FALSE); END_IF; larger := cskhole\Solid_With_Stepped_Round_Hole.segment_radii[j]; smaller := cskhole\Solid_With_Stepped_Round_Hole.segment_radii[j - 1]; END; ELSE BEGIN IF (cskhole.conical_transitions[i].cone_apex_angle < 0) THEN RETURN(FALSE); END_IF; larger := cskhole\Solid_With_Stepped_Round_Hole.segment_radii[j - 1]; smaller := cskhole\Solid_With_Stepped_Round_Hole.segment_radii[j]; END; END_IF; IF ((cskhole.conical_transitions[i].cone_base_radius > larger) OR (cskhole.conical_transitions[i].cone_base_radius < smaller)) THEN RETURN(FALSE); END_IF; END; END_IF; END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Validate_Ecdq_Inspected_Elements_Type(ei : Externally_Conditioned_Data_Quality_Criterion; type_list : BAG OF STRING) : LOGICAL; LOCAL sdqir : SET OF Externally_Conditioned_Data_Quality_Inspection_Result := []; dir : SET OF Data_Quality_Inspection_Instance_Report := []; sdiri : SET OF Externally_Conditioned_Data_Quality_Inspection_Instance_Report_Item := []; t_type_list : BAG OF STRING := []; END_LOCAL; sdqir := QUERY(q <* Bag_To_Set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)); IF (SIZEOF(sdqir) = 0) THEN RETURN(TRUE); END_IF; REPEAT i := 1 TO SIZEOF(sdqir); dir := dir + QUERY(q <* Bag_To_Set(USEDIN(sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(q)); END_REPEAT; IF (SIZEOF(dir) = 0) THEN RETURN(TRUE); END_IF; REPEAT i := 1 TO SIZEOF(dir); sdiri := sdiri + QUERY(q <* dir[i].inspected_instances | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_CONDITIONED_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(q)); END_REPEAT; IF (SIZEOF(sdiri) = 0) THEN RETURN(TRUE); END_IF; REPEAT i := 1 TO SIZEOF(sdiri); IF (SIZEOF(sdiri[i].inspected_elements) <> SIZEOF(type_list)) THEN RETURN(FALSE); END_IF; t_type_list := type_list; REPEAT j := 1 TO SIZEOF(sdiri[i].inspected_elements); REPEAT k := 1 TO SIZEOF(t_type_list); IF (t_type_list[k] IN TYPEOF(sdiri[i].inspected_elements[j])) THEN t_type_list := t_type_list - t_type_list[k]; ESCAPE; END_IF; END_REPEAT; END_REPEAT; IF (SIZEOF(t_type_list) > 0) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Validate_Inspected_Elements_Type(ei : Shape_Data_Quality_Criterion; type_list : BAG OF STRING) : LOGICAL; LOCAL sdqir : SET OF Shape_Data_Quality_Inspection_Result := []; sdir : SET OF Shape_Data_Quality_Inspection_Instance_Report := []; sdiri : SET OF Shape_Data_Quality_Inspection_Instance_Report_Item := []; t_type_list : BAG OF STRING := []; END_LOCAL; sdqir := QUERY(q <* Bag_To_Set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)); IF (SIZEOF(sdqir) = 0) THEN RETURN(TRUE); END_IF; REPEAT i := 1 TO SIZEOF(sdqir); sdir := sdir + QUERY(q <* Bag_To_Set(USEDIN(sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(q)); END_REPEAT; IF (SIZEOF(sdir) = 0) THEN RETURN(TRUE); END_IF; REPEAT i := 1 TO SIZEOF(sdir); sdiri := sdiri + QUERY(q <* sdir[i].inspected_instances | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(q)); END_REPEAT; IF (SIZEOF(sdiri) = 0) THEN RETURN(TRUE); END_IF; REPEAT i := 1 TO SIZEOF(sdiri); IF (SIZEOF(sdiri[i].inspected_elements) <> SIZEOF(type_list)) THEN RETURN(FALSE); END_IF; t_type_list := type_list; REPEAT j := 1 TO SIZEOF(sdiri[i].inspected_elements); REPEAT k := 1 TO SIZEOF(t_type_list); IF (t_type_list[k] IN TYPEOF(sdiri[i].inspected_elements[j])) THEN t_type_list := t_type_list - t_type_list[k]; ESCAPE; END_IF; END_REPEAT; END_REPEAT; IF (SIZEOF(t_type_list) > 0) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Validate_Locations_Of_Extreme_Value_Type(ei : Shape_Data_Quality_Criterion; type_list : BAG OF STRING) : LOGICAL; LOCAL sdqir : SET OF Shape_Data_Quality_Inspection_Result := []; sdir : SET OF Shape_Data_Quality_Inspection_Instance_Report := []; sdei : SET OF Instance_Report_Item_With_Extreme_Instances := []; t_type_list : BAG OF STRING := []; END_LOCAL; sdqir := QUERY(q <* Bag_To_Set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)); IF (SIZEOF(sdqir) = 0) THEN RETURN(TRUE); END_IF; REPEAT i := 1 TO SIZEOF(sdqir); sdir := sdir + QUERY(q <* Bag_To_Set(USEDIN(sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(q)); END_REPEAT; REPEAT i := 1 TO SIZEOF(sdir); sdei := sdei + QUERY(q <* sdir[i].inspected_instances | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' IN TYPEOF(q)); END_REPEAT; IF (SIZEOF(sdei) = 0) THEN RETURN(TRUE); END_IF; IF ((SIZEOF(type_list) = 0) AND (SIZEOF(sdei) <> 0)) THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO SIZEOF(sdei); REPEAT j := 1 TO SIZEOF(sdei[i].extreme_instances); IF (SIZEOF(sdei[i].extreme_instances[j].locations_of_extreme_value) <> SIZEOF(type_list)) THEN RETURN(FALSE); END_IF; t_type_list := type_list; REPEAT k := 1 TO SIZEOF(sdei[i].extreme_instances[j].locations_of_extreme_value); REPEAT l := 1 TO SIZEOF(t_type_list); IF (t_type_list[l] IN TYPEOF(sdei[i].extreme_instances[j].locations_of_extreme_value[k])) THEN t_type_list := t_type_list - t_type_list[l]; ESCAPE; END_IF; END_REPEAT; END_REPEAT; IF (SIZEOF(t_type_list) > 0) THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Validate_Measured_Data_Type(ei : Shape_Data_Quality_Criterion; type_string : STRING) : LOGICAL; LOCAL sdqir : SET OF Shape_Data_Quality_Inspection_Result := []; sdcr : SET OF Shape_Data_Quality_Inspection_Criterion_Report := []; sdir : SET OF Shape_Data_Quality_Inspection_Instance_Report := []; sdii : SET OF Shape_Data_Quality_Inspection_Instance_Report_Item := []; sdei : BAG OF Instance_Report_Item_With_Extreme_Instances := []; END_LOCAL; sdqir := QUERY(q <* Bag_To_Set(USEDIN(ei, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_RESULT.CRITERION_INSPECTED')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_RESULT' IN TYPEOF(q)); IF (SIZEOF(sdqir) = 0) THEN RETURN(TRUE); END_IF; REPEAT i := 1 TO SIZEOF(sdqir); sdcr := sdcr + QUERY(q <* Bag_To_Set(USEDIN(sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT' IN TYPEOF(q)); END_REPEAT; REPEAT i := 1 TO SIZEOF(sdqir); sdir := sdir + QUERY(q <* Bag_To_Set(USEDIN(sdqir[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DATA_QUALITY_INSPECTION_REPORT.INSPECTION_RESULT')) | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' IN TYPEOF(q)); END_REPEAT; IF ((SIZEOF(sdcr) = 0) AND (SIZEOF(sdir) = 0)) THEN RETURN(TRUE); END_IF; REPEAT i := 1 TO SIZEOF(sdir); sdii := sdii + QUERY(q <* sdir[i].inspected_instances | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' IN TYPEOF(q)); END_REPEAT; REPEAT i := 1 TO SIZEOF(sdir); sdei := sdei + QUERY(q <* sdir[i].inspected_instances | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' IN TYPEOF(q)); END_REPEAT; REPEAT i := 1 TO SIZEOF(sdcr); IF (NOT (type_string IN TYPEOF(sdcr[i].representative_measured_value))) THEN RETURN(FALSE); END_IF; END_REPEAT; REPEAT i := 1 TO SIZEOF(sdii); IF (NOT (type_string IN TYPEOF(sdii[i].measured_value))) THEN RETURN(FALSE); END_IF; END_REPEAT; REPEAT i := 1 TO SIZEOF(sdei); REPEAT j := 1 TO SIZEOF(sdei[i].extreme_instances); IF (NOT (type_string IN TYPEOF(sdei[i].extreme_instances[j].measured_value))) THEN RETURN(FALSE); END_IF; END_REPEAT; END_REPEAT; RETURN(TRUE); END_FUNCTION;
FUNCTION Value_Limit_Type(iv : Shape_Data_Quality_Value_Limit_Type_Select) : SET OF STRING; LOCAL retval : SET OF STRING := []; END_LOCAL; IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_VALUE_RANGE') IN TYPEOF(iv)) THEN retval := TYPEOF(iv\Compound_Representation_Item.item_element[1].value_component); END_IF; IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DATA_QUALITY_VALUE_LIMIT') IN TYPEOF(iv)) THEN IF (('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_WITH_UNIT') IN TYPEOF(iv)) THEN retval := TYPEOF(iv\Measure_With_Unit.value_component); END_IF; END_IF; RETURN(retval); END_FUNCTION;
FUNCTION Value_Range_Aggregate_Rep_Item(agg : AGGREGATE OF Representation_Item) : BOOLEAN; BEGIN IF (SIZEOF(QUERY(i1 <* agg | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)))) = 6) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION;
FUNCTION Value_Range_Wr1(agg : Compound_Item_Definition) : BOOLEAN; BEGIN IF (SIZEOF(agg) = 2) AND ((SIZEOF(QUERY(i1 <* agg | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)))) = 2) OR (SIZEOF(QUERY(i2 <* agg | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF(i2)))) = 2)) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION;
FUNCTION Value_Range_Wr2(agg : Compound_Item_Definition) : BOOLEAN; BEGIN IF ((SIZEOF(QUERY(i <* agg | (i\Representation_Item.name = 'upper limit'))) = 1) AND (SIZEOF(QUERY(i <* agg | (i\Representation_Item.name = 'lower limit'))) = 1)) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION;
FUNCTION Value_Range_Wr3(agg : Compound_Item_Definition) : BOOLEAN; BEGIN IF (SIZEOF(QUERY(i1 <* agg | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i1)) AND (SIZEOF(QUERY(i2 <* agg | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i2)) AND (i1 :<>: i2) AND (i1\Measure_With_Unit.unit_component :=: i2\Measure_With_Unit.unit_component))) = 1))) = 2) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END; END_FUNCTION;
FUNCTION Values_Space_Of(expr : Generic_Expression) : Maths_Space; LOCAL e_prefix : STRING := 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.'; typenames : SET OF STRING := TYPEOF(expr); END_LOCAL; IF (Schema_Prefix + 'MATHS_VARIABLE') IN typenames THEN RETURN(expr\Maths_Variable.values_space); END_IF; IF (e_prefix + 'EXPRESSION') IN typenames THEN IF (e_prefix + 'NUMERIC_EXPRESSION') IN typenames THEN IF expr\Numeric_Expression.is_int THEN IF (e_prefix + 'INT_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\Int_Literal.the_value])); ELSE RETURN(The_Integers); END_IF; ELSE IF (e_prefix + 'REAL_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\Real_Literal.the_value])); ELSE RETURN(The_Reals); END_IF; END_IF; END_IF; IF (e_prefix + 'BOOLEAN_EXPRESSION') IN typenames THEN IF (e_prefix + 'BOOLEAN_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\Boolean_Literal.the_value])); ELSE RETURN(The_Booleans); END_IF; END_IF; IF (e_prefix + 'STRING_EXPRESSION') IN typenames THEN IF (e_prefix + 'STRING_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\String_Literal.the_value])); ELSE RETURN(The_Strings); END_IF; END_IF; RETURN(?); END_IF; IF (Schema_Prefix + 'MATHS_FUNCTION') IN typenames THEN IF Expression_Is_Constant(expr) THEN RETURN(Make_Finite_Space([expr])); ELSE RETURN(Make_Function_Space(Sc_Equal, expr\Maths_Function.domain, Sc_Equal, expr\Maths_Function.range)); END_IF; END_IF; IF (Schema_Prefix + 'FUNCTION_APPLICATION') IN typenames THEN RETURN(expr\Function_Application.Func.range); END_IF; IF (Schema_Prefix + 'MATHS_SPACE') IN typenames THEN IF Expression_Is_Constant(expr) THEN RETURN(Make_Finite_Space([expr])); ELSE RETURN(Make_Elementary_Space(Es_Maths_Spaces)); END_IF; END_IF; IF (Schema_Prefix + 'DEPENDENT_VARIABLE_DEFINITION') IN typenames THEN RETURN(Values_Space_Of(expr\Unary_Generic_Expression.operand)); END_IF; IF (Schema_Prefix + 'COMPLEX_NUMBER_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr])); END_IF; IF (Schema_Prefix + 'LOGICAL_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\Logical_Literal.lit_value])); END_IF; IF (Schema_Prefix + 'BINARY_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\Binary_Literal.lit_value])); END_IF; IF (Schema_Prefix + 'MATHS_ENUM_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\Maths_Enum_Literal.lit_value])); END_IF; IF (Schema_Prefix + 'REAL_TUPLE_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\Real_Tuple_Literal.lit_value])); END_IF; IF (Schema_Prefix + 'INTEGER_TUPLE_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\Integer_Tuple_Literal.lit_value])); END_IF; IF (Schema_Prefix + 'ATOM_BASED_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\Atom_Based_Literal.lit_value])); END_IF; IF (Schema_Prefix + 'MATHS_TUPLE_LITERAL') IN typenames THEN RETURN(Make_Finite_Space([expr\Maths_Tuple_Literal.lit_value])); END_IF; IF (Schema_Prefix + 'PARTIAL_DERIVATIVE_EXPRESSION') IN typenames THEN RETURN(Drop_Numeric_Constraints(Values_Space_Of(expr\Partial_Derivative_Expression.derivand))); END_IF; IF (Schema_Prefix + 'DEFINITE_INTEGRAL_EXPRESSION') IN typenames THEN RETURN(Drop_Numeric_Constraints(Values_Space_Of(expr\Definite_Integral_Expression.integrand))); END_IF; RETURN(?); END_FUNCTION;
FUNCTION Vector_Difference(arg1 : Vector_Or_Direction; arg2 : Vector_Or_Direction) : Vector; LOCAL result : Vector; res : Direction; vec1 : Direction; vec2 : Direction; mag : REAL; mag1 : REAL; mag2 : REAL; ndim : INTEGER; END_LOCAL; IF ((NOT EXISTS(arg1)) OR (NOT EXISTS(arg2))) OR (arg1.dim <> arg2.dim) THEN RETURN(?); ELSE BEGIN IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(arg1) THEN mag1 := arg1\Vector.magnitude; vec1 := arg1\Vector.Orientation; ELSE mag1 := 1.0; vec1 := arg1; END_IF; IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VECTOR' IN TYPEOF(arg2) THEN mag2 := arg2\Vector.magnitude; vec2 := arg2\Vector.Orientation; ELSE mag2 := 1.0; vec2 := arg2; END_IF; vec1 := Normalise(vec1); vec2 := Normalise(vec2); ndim := SIZEOF(vec1.direction_ratios); mag := 0.0; res := Dummy_Gri || Direction(vec1.direction_ratios); REPEAT i := 1 TO ndim; res.direction_ratios[i] := mag1 * vec1.direction_ratios[i] - mag2 * vec2.direction_ratios[i]; mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]); END_REPEAT; IF (mag > 0.0) THEN result := Dummy_Gri || Vector(res, SQRT(mag)); ELSE result := Dummy_Gri || Vector(vec1, 0.0); END_IF; END; END_IF; RETURN(result); END_FUNCTION;
FUNCTION Volume_Weights_Positive(b : Rational_B_Spline_Volume) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.u_upper; REPEAT j := 0 TO b.v_upper; REPEAT k := 0 TO b.w_upper; IF (b.weights[i][j][k] <= 0.0) THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; END_REPEAT; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Weights_Positive(weights : LIST OF REAL) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO SIZEOF(weights); IF weights[i] <= 0.0 THEN result := FALSE; RETURN(result); END_IF; END_REPEAT; RETURN(result); END_FUNCTION;
FUNCTION Ypr_Index(ypr : Ypr_Enumeration) : INTEGER; CASE ypr OF Yaw : RETURN(1); Pitch : RETURN(2); Roll : RETURN(3); END_CASE; RETURN(?); END_FUNCTION;
RULE Alternative_Solution_Requires_Solution_Definition FOR (Product_Definition_Formation); LOCAL solution_versions : SET OF Product_Definition_Formation := []; END_LOCAL; solution_versions := QUERY(pdf <* Product_Definition_Formation | SIZEOF(QUERY(prpc <* USEDIN(pdf.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'alternative solution')) = 1); WHERE WR1: SIZEOF(QUERY(pdf <* solution_versions | SIZEOF(QUERY(pd <* USEDIN(pdf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION') | pd.frame_of_reference.name = 'alternative definition')) <> 1)) = 0; END_RULE;
RULE Ap242_Application_Protocol_Definition_Required FOR (Application_Context); WHERE WR1: SIZEOF(QUERY(ac <* Application_Context | (SIZEOF(QUERY(apd <* USEDIN(ac, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION') | apd.application_interpreted_model_schema_name = 'ap242_managed_model_based_3d_engineering_mim_lf')) > 0))) > 0; END_RULE;
RULE Breakdown_Element_Requires_Product_Definition FOR (Product_Definition_Formation); WHERE WR1: SIZEOF(QUERY(pdf <* Product_Definition_Formation | (SIZEOF(QUERY(prpc <* USEDIN(pdf.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'functionality')) = 1) AND (SIZEOF(QUERY(pd <* USEDIN(pdf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION') | pd.frame_of_reference.name = 'functional definition')) < 1))) = 0; WR2: SIZEOF(QUERY(pdf <* Product_Definition_Formation | (SIZEOF(QUERY(prpc <* USEDIN(pdf.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'conceptual design')) = 1) AND (SIZEOF(QUERY(pd <* USEDIN(pdf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION') | pd.frame_of_reference.name = 'conceptual definition')) < 1))) = 0; END_RULE;
RULE Chamfer_Offset_Requires_Faces FOR (Chamfer_Offset, Property_Definition_Representation); WHERE WR1: (SIZEOF(QUERY(co <* Chamfer_Offset | NOT (1 = SIZEOF(QUERY(pdr <* Property_Definition_Representation | ((pdr\Property_Definition_Representation.definition\Property_Definition.definition = co) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (((pdr\Property_Definition_Representation.definition\Property_Definition.definition.description = 'first offset') AND (pdr.used_representation.name = 'first face shape')) OR ((pdr\Property_Definition_Representation.definition\Property_Definition.definition.description = 'second offset') AND (pdr.used_representation.name = 'second face shape'))))))))) = 0); END_RULE;
RULE Chamfer_Requires_Faces FOR (Chamfer, Property_Definition_Representation); WHERE WR1: (SIZEOF(QUERY(cf <* Chamfer | NOT (1 = SIZEOF(QUERY(pdr <* Property_Definition_Representation | ((pdr\Property_Definition_Representation.definition\Property_Definition.definition = cf) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'chamfer face'))))))) = 0); END_RULE;
RULE Compatible_Dimension FOR (Cartesian_Point, Direction, Geometric_Representation_Context); WHERE WR1: Check_Geometric_Dimension(Cartesian_Point, Direction, Geometric_Representation_Context); END_RULE;
RULE Component_Class_For_Assembly_Select FOR (Composite_Assembly_Sequence_Definition, Next_Assembly_Usage_Occurrence, Product_Related_Product_Category); LOCAL i : INTEGER := 0; j : INTEGER := 0; k : INTEGER := 0; dkuhr : LOGICAL := TRUE; nnauo : INTEGER := 0; nprpc : INTEGER := 0; rp : Product; END_LOCAL; REPEAT i := LOINDEX(Composite_Assembly_Sequence_Definition) TO HIINDEX(Composite_Assembly_Sequence_Definition); nnauo := 0; REPEAT j := LOINDEX(Next_Assembly_Usage_Occurrence) TO HIINDEX(Next_Assembly_Usage_Occurrence); IF (Composite_Assembly_Sequence_Definition[i] = Next_Assembly_Usage_Occurrence[j].relating_product_definition) THEN rp := Next_Assembly_Usage_Occurrence[j].related_product_definition.formation.of_product; nprpc := 0; REPEAT k := LOINDEX(Product_Related_Product_Category) TO HIINDEX(Product_Related_Product_Category); IF ((rp IN Product_Related_Product_Category[k].products) AND (Product_Related_Product_Category[k].name IN ['ply','ply laminate','filament laminate','processed core','composite assembly'])) THEN nprpc := nprpc + 1; END_IF; END_REPEAT; IF (nprpc = 1) THEN nnauo := nnauo + 1; ELSE dkuhr := FALSE; ESCAPE; END_IF; END_IF; END_REPEAT; IF (dkuhr = FALSE) THEN ESCAPE; END_IF; IF (nnauo = 0) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; WHERE WR1: dkuhr; END_RULE;
RULE Consistent_Uncertainty FOR (Global_Uncertainty_Assigned_Context, Qualified_Representation_Item, Uncertainty_Assigned_Representation); WHERE WR1: SIZEOF(QUERY(guac <* Global_Uncertainty_Assigned_Context | SIZEOF(QUERY(u1 <* guac.uncertainty | SIZEOF(QUERY(u2 <* guac.uncertainty | u2.name = u1.name)) > 1)) > 0)) = 0; WR2: SIZEOF(QUERY(uar <* Uncertainty_Assigned_Representation | SIZEOF(QUERY(u1 <* uar.uncertainty | SIZEOF(QUERY(u2 <* uar.uncertainty | u2.name = u1.name)) > 1)) > 0)) = 0; WR3: SIZEOF(QUERY(qri <* Qualified_Representation_Item | SIZEOF(QUERY(u1 <* qri.qualifiers | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNCERTAINTY_QUALIFIER' IN TYPEOF(u1)) AND (SIZEOF(QUERY(u2 <* qri.qualifiers | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.UNCERTAINTY_QUALIFIER' IN TYPEOF(u2)) AND (u2\Uncertainty_Qualifier.measure_name = u1\Uncertainty_Qualifier.measure_name))) > 1))) > 0)) = 0; END_RULE;
RULE Constraint_Definition_Requires_Constraint_Category FOR (Product_Definition); LOCAL constraint_definitions : SET OF Product_Definition := []; END_LOCAL; constraint_definitions := QUERY(pd <* Product_Definition | (pd.frame_of_reference.name = 'design constraint definition')); WHERE WR1: SIZEOF(QUERY(pd <* constraint_definitions | (SIZEOF(QUERY(prpc <* USEDIN(pd.formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'requirement')) = 0))) = 0; END_RULE;
RULE Design_Constraint_Requires_Product_Definition FOR (Product_Definition_Formation); WHERE WR1: SIZEOF(QUERY(pdf <* Product_Definition_Formation | (SIZEOF(QUERY(prpc <* USEDIN(pdf.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'requirement')) > 0) AND (SIZEOF(QUERY(pd <* USEDIN(pdf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FORMATION') | pd.frame_of_reference.name = 'design constraint definition')) < 1))) = 0; END_RULE;
RULE Dimensioning_Data_Requires_Document FOR (Applied_Document_Reference, Product_Definition_Context_Association, Role_Association); LOCAL adr : SET OF Applied_Document_Reference := (QUERY(adr <* Applied_Document_Reference | (adr\Document_Reference.assigned_document\Document.kind\Document_Type.product_data_type = 'Standards Document') AND ((adr\Document_Reference.assigned_document\Document.id = 'ASME Y14.41-2003') OR (adr\Document_Reference.assigned_document\Document.id = 'ASME Y14.5M-1994') OR (adr\Document_Reference.assigned_document\Document.id = 'ISO 1101: 2004')))); pdca : SET OF Product_Definition_Context_Association := (QUERY(pdca <* Product_Definition_Context_Association | (pdca\Product_Definition_Context_Association.role\Product_Definition_Context_Role.name = 'additional context') AND (pdca\Product_Definition_Context_Association.frame_of_reference\Application_Context_Element.name = 'Geometric Dimensioning and Tolerancing Product Specification'))); ra : SET OF Role_Association := (QUERY(ra <* Role_Association | ra\Role_Association.role\Object_Role.name = 'dimensioning standard')); ra1 : SET OF Role_Association := []; pdpdca : SET OF Product_Definition := []; pdadr : SET OF Product_Definition := []; pass : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO HIINDEX(pdca); pdpdca := pdpdca + pdca[i]\Product_Definition_Context_Association.definition; END_REPEAT; REPEAT i := 1 TO HIINDEX(adr); ra1 := Bag_To_Set(USEDIN(adr[i], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROLE_ASSOCIATION.ITEM_WITH_ROLE')); IF (ra1 * ra) <> ra1 THEN pass := FALSE; END_IF; REPEAT j := 1 TO HIINDEX(adr[i]\Applied_Document_Reference.items); IF 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(adr[i]\Applied_Document_Reference.items[j]) THEN pdadr := pdadr + adr[i]\Applied_Document_Reference.items[j]; END_IF; END_REPEAT; END_REPEAT; WHERE WR1: pass; WR2: pdpdca = pdadr; END_RULE;
RULE Edge_Round_Requires_Faces FOR (Edge_Round, Property_Definition_Representation); WHERE WR1: (0 = SIZEOF(QUERY(er <* Edge_Round | NOT (1 = SIZEOF(QUERY(pdr <* Property_Definition_Representation | ((pdr\Property_Definition_Representation.definition\Property_Definition.definition = er) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'edge round face')))))))); WR2: (SIZEOF(QUERY(er <* Edge_Round | NOT (1 = SIZEOF(QUERY(pdr <* Property_Definition_Representation | ((pdr\Property_Definition_Representation.definition\Property_Definition.definition = er) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'first face shape'))))))) = 0); WR3: (SIZEOF(QUERY(er <* Edge_Round | NOT (1 = SIZEOF(QUERY(pdr <* Property_Definition_Representation | ((pdr\Property_Definition_Representation.definition\Property_Definition.definition = er) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF(pdr.used_representation)) AND (pdr.used_representation.name = 'second face shape'))))))) = 0); END_RULE;
RULE External_Version_Assignments_Are_Valid FOR (Applied_External_Identification_Assignment); WHERE WR1: SIZEOF(QUERY(aia <* Applied_External_Identification_Assignment | NOT External_Version_Assignment_Is_Valid(aia))) = 0; END_RULE;
RULE Material_For_Coating_Layer FOR (Shape_Aspect); LOCAL coating_layers : SET OF Shape_Aspect := []; END_LOCAL; coating_layers := QUERY(r <* Shape_Aspect | (r.name = 'coating layer')); WHERE WR1: SIZEOF(QUERY(r <* coating_layers | SIZEOF(USEDIN(r, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MATERIAL_DESIGNATION.DEFINITIONS')) <> 1)) = 0; END_RULE;
RULE Non_Uniform_Zone_Definition_Constraint FOR (Tolerance_Zone_Definition, Tolerance_Zone, Tolerance_Zone_Form); LOCAL tzf_set : SET OF Tolerance_Zone_Form := QUERY(tzf <* Tolerance_Zone_Form | tzf\Tolerance_Zone_Form.name = 'non uniform'); nuzd_set : SET OF Tolerance_Zone_Definition := QUERY(tzd <* Tolerance_Zone_Definition | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_UNIFORM_ZONE_DEFINITION' IN TYPEOF(tzd)); END_LOCAL; WHERE WR1: QUERY(tzd <* nuzd_set | (tzd\Tolerance_Zone_Definition.zone\Tolerance_Zone.form IN tzf_set)) = nuzd_set; END_RULE;
RULE Plib_Property_Reference_Requires_Name_Scope FOR (Externally_Defined_General_Property); LOCAL known_sourced_properties : SET OF Externally_Defined_General_Property; END_LOCAL; known_sourced_properties := QUERY(edc <* Externally_Defined_General_Property | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE' IN TYPEOF(edc.Source)); WHERE WR1: SIZEOF(QUERY(edgp <* known_sourced_properties | (SIZEOF(QUERY(edir <* USEDIN(edgp, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM') | (edir.name = 'name scope') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EXTERNALLY_DEFINED_CLASS' IN TYPEOF(edir.related_item)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE' IN TYPEOF(edir.related_item.Source)))) <> 1))) = 0; END_RULE;
RULE Plib_Property_Reference_Requires_Version FOR (Externally_Defined_General_Property); LOCAL plib_properties : SET OF Externally_Defined_General_Property := []; END_LOCAL; plib_properties := QUERY(edgp <* Externally_Defined_General_Property | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE' IN TYPEOF(edgp.Source)) AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.KNOWN_SOURCE.NAME' = 'ISO 13584 library')); WHERE WR1: SIZEOF(QUERY(edgp <* plib_properties | (SIZEOF(QUERY(edir <* USEDIN(edgp, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT.ITEMS') | (edir.role.name = 'version'))) <> 1))) = 0; END_RULE;
RULE Ply_Reference FOR (Ply_Laminate_Sequence_Definition, Next_Assembly_Usage_Occurrence, Product_Related_Product_Category); LOCAL i : INTEGER; j : INTEGER; k : INTEGER; dkuhr : LOGICAL := TRUE; nnauo : INTEGER; nprpc : INTEGER := 0; rp : Product; END_LOCAL; REPEAT i := LOINDEX(Ply_Laminate_Sequence_Definition) TO HIINDEX(Ply_Laminate_Sequence_Definition); nnauo := 0; REPEAT j := LOINDEX(Next_Assembly_Usage_Occurrence) TO HIINDEX(Next_Assembly_Usage_Occurrence); IF (Ply_Laminate_Sequence_Definition[i] = Next_Assembly_Usage_Occurrence[j].relating_product_definition) THEN rp := Next_Assembly_Usage_Occurrence[j].related_product_definition.formation.of_product; nprpc := 0; REPEAT k := LOINDEX(Product_Related_Product_Category) TO HIINDEX(Product_Related_Product_Category); IF ((Product_Related_Product_Category[k].name = 'ply') AND (rp IN Product_Related_Product_Category[k].products)) THEN nprpc := nprpc + 1; END_IF; END_REPEAT; IF (nprpc = 1) THEN nnauo := nnauo + 1; ELSE dkuhr := FALSE; ESCAPE; END_IF; END_IF; END_REPEAT; IF (dkuhr = FALSE) THEN ESCAPE; END_IF; IF (nnauo = 0) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; WHERE WR1: dkuhr; END_RULE;
RULE Ply_Stock_Material_Select FOR (Product_Related_Product_Category, Make_From_Usage_Option); LOCAL i : INTEGER; j : INTEGER; k : INTEGER; kp : INTEGER; dkuhr : LOGICAL; nmfuo : INTEGER; nprpc : INTEGER := 0; rp : Product; END_LOCAL; dkuhr := TRUE; REPEAT kp := LOINDEX(Product_Related_Product_Category) TO HIINDEX(Product_Related_Product_Category); IF (Product_Related_Product_Category[kp].name = 'ply') THEN REPEAT i := LOINDEX(Product_Related_Product_Category[kp].products) TO HIINDEX(Product_Related_Product_Category[kp].products); nmfuo := 0; REPEAT j := LOINDEX(Make_From_Usage_Option) TO HIINDEX(Make_From_Usage_Option); rp := Make_From_Usage_Option[j].related_product_definition.formation.of_product; IF (Product_Related_Product_Category[kp].products[i] = rp) THEN REPEAT k := LOINDEX(Product_Related_Product_Category) TO HIINDEX(Product_Related_Product_Category); IF ((rp IN Product_Related_Product_Category[k].products) AND (Product_Related_Product_Category[k].name IN ['isotropic material','filament assembly','discontinuous fiber assembly'])) THEN nprpc := nprpc + 1; END_IF; END_REPEAT; IF (nprpc = 1) THEN nmfuo := nmfuo + 1; ELSE dkuhr := FALSE; ESCAPE; END_IF; END_IF; END_REPEAT; IF (dkuhr = FALSE) THEN ESCAPE; END_IF; IF (nmfuo <> 1) THEN dkuhr := FALSE; ESCAPE; END_IF; END_REPEAT; END_IF; END_REPEAT; WHERE WR1: dkuhr; END_RULE;
RULE Product_Concept_Feature_Requires_Category FOR (Product_Concept_Feature); WHERE WR1: SIZEOF(QUERY(pcf <* Product_Concept_Feature | (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INCLUSION_PRODUCT_CONCEPT_FEATURE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDITIONAL_CONCEPT_FEATURE'] * TYPEOF(pcf)) = 0) AND (SIZEOF(QUERY(aga <* USEDIN(pcf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_GROUP_ASSIGNMENT.ITEMS') | (aga\Group_Assignment.role\Object_Role.name = 'specification category member') AND ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(aga.assigned_group)))) <> 1))) = 0; END_RULE;
RULE Product_Definition_Replacement_Requires_Effectivity_Assignment FOR (Product_Definition_Relationship); WHERE WR1: SIZEOF(QUERY(pdr <* Product_Definition_Relationship | (pdr.name = 'definition replacement') AND (SIZEOF(USEDIN(pdr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_EFFECTIVITY_ASSIGNMENT.ITEMS')) = 0))) = 0; END_RULE;
RULE Restrict_Alternative_Definition FOR (Product_Definition); LOCAL solution_definitions : SET OF Product_Definition := []; END_LOCAL; solution_definitions := QUERY(pd <* Product_Definition | (pd.frame_of_reference.name = 'alternative definition')); WHERE WR1: SIZEOF(QUERY(pd <* solution_definitions | (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr.name = 'solution alternative definition')) <> 1))) = 0; WR2: SIZEOF(QUERY(pd <* solution_definitions | NOT (pd.name IN ['technical','supplier','technical supplier','']))) = 0; WR3: SIZEOF(QUERY(pd <* solution_definitions | (pd.name IN ['supplier','technical supplier']) AND (SIZEOF(QUERY(aoa <* USEDIN(pd.formation, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS') | aoa.role.name = 'supplier')) <> 1))) = 0; END_RULE;
RULE Restrict_Assembly_Category FOR (Product_Definition); LOCAL assembly_definitions : SET OF Product_Definition := []; END_LOCAL; assembly_definitions := QUERY(pd <* Product_Definition | SIZEOF(QUERY(pdca <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | pdca.frame_of_reference.name = 'assembly definition')) > 0); WHERE WR1: SIZEOF(QUERY(pd <* assembly_definitions | NOT ('assembly' IN Categories_Of_Product(pd.formation.of_product)))) = 0; END_RULE;
RULE Restrict_Centre_Of_Mass_Representation FOR (Representation); WHERE WR1: SIZEOF(QUERY(r <* Representation | (r.name = 'centre of mass') AND ((SIZEOF(r.items) <> 1) OR (SIZEOF(QUERY(i <* r.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT' IN TYPEOF(i)) AND (i.name = 'centre point'))) <> 1)))) = 0; END_RULE;
RULE Restrict_Classification_Assignments FOR (Applied_Classification_Assignment); WHERE WR1: SIZEOF(QUERY(aia <* Applied_Classification_Assignment | NOT Class_Assignment_Is_Valid(aia))) = 0; END_RULE;
RULE Restrict_Collection_Category FOR (Product_Definition); LOCAL collection_definitions : SET OF Product_Definition := []; END_LOCAL; collection_definitions := QUERY(pd <* Product_Definition | SIZEOF(QUERY(pdca <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | pdca.frame_of_reference.name = 'collection definition')) > 0); WHERE WR1: SIZEOF(QUERY(pd <* collection_definitions | NOT ('collection' IN Categories_Of_Product(pd.formation.of_product)))) = 0; END_RULE;
RULE Restrict_Concept_Feature_Operator FOR (Concept_Feature_Operator); WHERE WR1: SIZEOF(QUERY(cfo <* Concept_Feature_Operator | NOT (cfo.name IN ['and','or','oneof','not','implication']))) = 0; WR2: SIZEOF(QUERY(cfo <* Concept_Feature_Operator | (cfo.name = 'implication') AND (SIZEOF(QUERY(cfrwc <* USEDIN(cfo, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') | SIZEOF(QUERY(ccf <* USEDIN(cfrwc, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONDITIONAL_CONCEPT_FEATURE.CONDITION') | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(ccf)))) > 0)) > 0))) = 0; WR3: SIZEOF(QUERY(cfo <* Concept_Feature_Operator | (cfo.name = 'not') AND (SIZEOF(QUERY(cfrwc <* USEDIN(cfo, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') | cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature)) > 0))) = 0; END_RULE;
RULE Restrict_Configuration_Design_For_Class_Breakdown_Association FOR (Configuration_Design); WHERE WR1: SIZEOF(QUERY(cd <* Configuration_Design | (cd.name = 'functionality') AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(cd.design)) OR (cd.design\Product_Definition.frame_of_reference.name <> 'functional definition')))) = 0; WR2: SIZEOF(QUERY(cd <* Configuration_Design | (cd.name = 'realization') AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(cd.design)) OR (cd.design\Product_Definition.frame_of_reference.name <> 'conceptual definition')))) = 0; WR3: SIZEOF(QUERY(cd <* Configuration_Design | (cd.name IN ['functionality','realization']) AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CLASS' IN TYPEOF(cd.configuration.item_concept))))) = 0; END_RULE;
RULE Restrict_Configuration_Design_For_Design_Constraint FOR (Configuration_Design); WHERE WR1: SIZEOF(QUERY(cd <* Configuration_Design | (cd.name = 'design constraint usage') AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF(cd.design)) OR (cd.design\Product_Definition.frame_of_reference.name <> 'design constraint definition')))) = 0; END_RULE;
RULE Restrict_Group_Relationship_For_Classification_Hierarchy FOR (Group_Relationship); WHERE WR1: SIZEOF(QUERY(gr <* Group_Relationship | (gr\Group_Relationship.name = 'class hierarchy') AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS' IN TYPEOF(gr\Group_Relationship.related_group)) OR NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CLASS' IN TYPEOF(gr\Group_Relationship.relating_group))))) = 0; END_RULE;
RULE Restrict_Group_Relationship_For_Specification_Category FOR (Group_Relationship); WHERE WR1: SIZEOF(QUERY(gr <* Group_Relationship | (gr.name = 'specification category hierarchy') AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.related_group)) OR NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.relating_group))))) = 0; END_RULE;
RULE Restrict_Language_Assignment_Per_Attribute FOR (Attribute_Language_Assignment); WHERE WR1: SIZEOF(QUERY(ala1 <* Attribute_Language_Assignment | SIZEOF(QUERY(it <* ala1.items | SIZEOF(QUERY(ala2 <* USEDIN(it, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ATTRIBUTE_LANGUAGE_ASSIGNMENT.ITEMS') | (ala1\Attribute_Classification_Assignment.attribute_name = ala2\Attribute_Classification_Assignment.attribute_name) AND (ala1\Attribute_Classification_Assignment.assigned_class :=: ala2\Attribute_Classification_Assignment.assigned_class))) > 1)) > 0)) = 0; END_RULE;
RULE Restrict_Part_Occurrence FOR (Product_Definition); LOCAL part_occurrences : SET OF Product_Definition := QUERY(pd <* Product_Definition | (pd.frame_of_reference.name = 'part occurrence')); END_LOCAL; WHERE WR1: SIZEOF(QUERY(pd <* part_occurrences | (NOT (pd.name IN ['single instance','selected instance','quantified instance','specified instance'])))) = 0; WR2: SIZEOF(QUERY(pd <* part_occurrences | (SIZEOF(QUERY(pdr <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | pdr.name = 'definition usage')) <> 1) AND (SIZEOF(QUERY(cd <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONFIGURATION_DESIGN.DESIGN') | (cd.name = 'occurrence usage definition') AND (NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_IDENTIFICATION' IN TYPEOF(cd.configuration))))) <> 1))) = 0; WR3: SIZEOF(QUERY(pd <* part_occurrences | (SIZEOF(QUERY(cd <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_USAGE' IN TYPEOF(cd)))) = 0) AND (SIZEOF(USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE')) = 0))) = 0; WR4: SIZEOF(QUERY(pd <* part_occurrences | (pd.name = 'selected instance') AND NOT Valid_Selected_Instance_Representation(pd))) = 0; WR5: SIZEOF(QUERY(pd <* part_occurrences | (pd.name = 'quantified instance') AND (SIZEOF(QUERY(ppd <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION.DEFINITION') | (ppd.name = 'occurrence quantity') AND (SIZEOF(QUERY(pdr <* USEDIN(ppd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (pdr.used_representation.name = 'quantity') AND (SIZEOF(pdr.used_representation.items) = 1) AND (SIZEOF(QUERY(i <* pdr.used_representation.items | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF(i)) AND (i.name = 'quantity measure'))) = 1))) = 1))) = 0))) = 0; WR6: SIZEOF(QUERY(pd <* part_occurrences | (pd.name = 'specified instance') AND (SIZEOF(QUERY(pdor <* USEDIN(pd, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE' IN TYPEOF(pdor.occurrence_usage))) = 0))) = 0; END_RULE;
RULE Restrict_Part_Occurrence_Category FOR (Product_Definition); LOCAL part_occurrences : SET OF Product_Definition := QUERY(pd <* Product_Definition | (pd.frame_of_reference.name = 'part occurrence')); END_LOCAL; WHERE WR1: SIZEOF(QUERY(pd <* part_occurrences | (SIZEOF(QUERY(prpc <* USEDIN(pd.formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name IN ['part','raw material','tool'])) = 0))) = 0; END_RULE;
RULE Restrict_Product_Definitions_For_Base_Element FOR (Product_Definition_Relationship); WHERE WR1: SIZEOF(QUERY(pdr <* Product_Definition_Relationship | (pdr.name = 'solution alternative definition') AND (NOT (pdr.relating_product_definition.frame_of_reference.name IN ['alternative definition','functional definition','conceptual definition']) OR (pdr.related_product_definition.frame_of_reference.name <> 'alternative definition')))) = 0; END_RULE;
RULE Restrict_Product_Definitions_For_Collection FOR (Product_Definition_Relationship); WHERE WR1: SIZEOF(QUERY(pdr <* Product_Definition_Relationship | (pdr.name = 'collection membership') AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part occurrence') OR (SIZEOF(QUERY(pdca <* USEDIN(pdr.relating_product_definition, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.DEFINITION') | (pdca.role.name = 'part definition type') AND (pdca.frame_of_reference.name = 'collection definition'))) = 0)))) = 0; END_RULE;
RULE Restrict_Product_Definitions_For_Definition_Usage FOR (Product_Definition_Relationship); WHERE WR1: SIZEOF(QUERY(pdr <* Product_Definition_Relationship | (pdr.name = 'definition usage') AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part occurrence')))) = 0; END_RULE;
RULE Restrict_Product_Definitions_For_Design_Constraint_Association FOR (Product_Definition_Relationship); WHERE WR1: SIZEOF(QUERY(pdr <* Product_Definition_Relationship | (pdr.name = 'design constraint association') AND ((pdr.relating_product_definition.frame_of_reference.name <> 'design constraint definition') OR NOT (pdr.related_product_definition.frame_of_reference.name IN ['alternative definition','functional definition','conceptual definition'])))) = 0; END_RULE;
RULE Restrict_Product_Definitions_For_Part_Definition_Relationship FOR (Product_Definition_Relationship); WHERE WR1: SIZEOF(QUERY(pdr <* Product_Definition_Relationship | (pdr.name IN ['geometrical relationship','definition replacement']) AND ((pdr.relating_product_definition.frame_of_reference.name <> 'part definition') OR (pdr.related_product_definition.frame_of_reference.name <> 'part definition')))) = 0; END_RULE;
RULE Restrict_Representation_For_Surface_Condition FOR (Property_Definition_Representation); WHERE WR1: SIZEOF(QUERY(pdr <* Property_Definition_Representation | NOT Surface_Condition_Correlation(pdr.definition, pdr.used_representation))) = 0; END_RULE;
RULE Restrict_Support_Structure_Category FOR (Product_Definition); LOCAL support_structures : SET OF Product_Definition := []; END_LOCAL; support_structures := QUERY(pd <* Product_Definition | (SIZEOF(QUERY(prpc <* USEDIN(pd.formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'additive manufacturing support structure')) <> 0)); WHERE WR1: SIZEOF(QUERY(pd <* support_structures | (SIZEOF(QUERY(prpc <* USEDIN(pd.formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'part')) <> 0))) = 0; END_RULE;
RULE Restrict_Treatment_Result FOR (Representation); LOCAL treatment_results : SET OF Representation := []; END_LOCAL; treatment_results := QUERY(r <* Representation | (r.name = 'treatment result')); WHERE WR1: (SIZEOF(QUERY(r <* treatment_results | (SIZEOF(r.items) > 2))) = 0) AND (SIZEOF(QUERY(r <* treatment_results | (SIZEOF(QUERY(i <* r.items | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF(i)))) > 0))) = 0); WR2: SIZEOF(QUERY(r <* treatment_results | (SIZEOF(QUERY(i <* r.items | i.name = 'result')) = 0))) = 0; WR3: SIZEOF(QUERY(r <* treatment_results | (SIZEOF(QUERY(i <* r.items | i.name = 'purpose')) > 1))) = 0; END_RULE;
RULE Selected_Instance_Usage_Requires_Representation FOR (Assembly_Component_Usage); LOCAL selected_instance_usages : SET OF Assembly_Component_Usage := QUERY(acr <* Assembly_Component_Usage | (acr.name = 'selected instance usage')); END_LOCAL; WHERE WR1: SIZEOF(QUERY(acr <* selected_instance_usages | NOT Valid_Selected_Instance_Representation(acr))) = 0; END_RULE;
RULE Solution_Definition_Requires_Solution_Category FOR (Product_Definition); LOCAL solution_definitions : SET OF Product_Definition := []; END_LOCAL; solution_definitions := QUERY(pd <* Product_Definition | (pd.frame_of_reference.name = 'alternative definition')); WHERE WR1: SIZEOF(QUERY(pd <* solution_definitions | (SIZEOF(QUERY(prpc <* USEDIN(pd.formation.of_product, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS') | prpc.name = 'alternative solution')) = 0))) = 0; END_RULE;
RULE Styled_Curve FOR (Styled_Item); WHERE WR1: SIZEOF(QUERY(si <* Styled_Item | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE' IN TYPEOF(si.item)) AND (SIZEOF(QUERY(psa <* si.styles | (SIZEOF(QUERY(cs <* psa.styles | ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_STYLE' IN TYPEOF(cs)))) > 0))) <> 1))) = 0; END_RULE;
RULE Subtype_Exclusiveness_Geometric_Tolerance FOR (Geometric_Tolerance); WHERE WR1: SIZEOF(QUERY(gt <* Geometric_Tolerance | NOT (Type_Check_Function(gt, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ANGULARITY_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COAXIALITY_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CONCENTRICITY_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CYLINDRICITY_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FLATNESS_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LINE_PROFILE_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PARALLELISM_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PERPENDICULARITY_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POSITION_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ROUNDNESS_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.STRAIGHTNESS_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SURFACE_PROFILE_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SYMMETRY_TOLERANCE', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TOTAL_RUNOUT_TOLERANCE'], 2)))) = 0; END_RULE;
RULE Subtype_Exclusiveness_Representation_Item FOR (Representation_Item); WHERE WR1: SIZEOF(QUERY(cri <* Representation_Item | NOT (Type_Check_Function(cri, ['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.VALUE_REPRESENTATION_ITEM', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_REPRESENTATION_ITEM'], 3)))) = 0; END_RULE;
RULE Subtype_Mandatory_Shape_Representation FOR (Shape_Representation); WHERE WR1: SIZEOF(QUERY(sr <* Shape_Representation | NOT ((SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ADVANCED_BREP_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SURFACE_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.BEVELED_SHEET_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOSITE_SHEET_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.COMPOUND_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_2D_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CSG_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.DIRECTION_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.FACE_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.LOCATION_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PATH_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PLANAR_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.POINT_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DIMENSION_REPRESENTATION', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION'] * TYPEOF(sr)) = 1) OR (SIZEOF(QUERY(it <* sr\Representation.items | NOT ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF(it)))) = 0) OR (SIZEOF(QUERY(sdr <* QUERY(pdr <* USEDIN(sr, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)) | NOT (SIZEOF(['AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT', 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT_RELATIONSHIP'] * TYPEOF(sdr.definition)) = 1))) = 0)))) = 0; END_RULE;
RULE Text_Font_Usage FOR (Externally_Defined_Text_Font, Pre_Defined_Text_Font); WHERE WR1: SIZEOF(QUERY(pdtf <* Pre_Defined_Text_Font | SIZEOF(USEDIN(pdtf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL.FONT')) = 0)) = 0; WR2: SIZEOF(QUERY(edtf <* Externally_Defined_Text_Font | SIZEOF(USEDIN(edtf, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.TEXT_LITERAL.FONT')) = 0)) = 0; END_RULE;
RULE Tolerance_Zone_Form_Name_Constraint FOR (Tolerance_Zone_Form); LOCAL names : SET OF STRING := ['within a circle', 'within a cylinder', 'within a cone', 'within a single complex surface', 'within a sphere', 'between two coaxial cylinders', 'between two concentric circles', 'between two equidistant curves', 'between two equidistant complex lines or two parallel straight lines', 'between two equidistant complex surfaces or two parallel planes', 'between two equidistant surfaces', 'between two non-equidistant complex lines or two non-parallel straight lines', 'between two non-equidistant complex surfaces or two non-parallel planes', 'between two parallel circles on a conical surface', 'between two parallel circles of the same diameter', 'non uniform', 'cylindrical or circular', 'spherical', 'unknown']; pass : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO SIZEOF(Tolerance_Zone_Form) WHILE pass; pass := (Tolerance_Zone_Form[i].name IN names); END_REPEAT; WHERE WR1: pass; END_RULE;
RULE Transition_Feature_On_Part_Boundary FOR (Transition_Feature); WHERE WR1: SIZEOF(QUERY(tf <* Transition_Feature | NOT (tf.product_definitional))) = 0; END_RULE;
RULE Unique_Datum_System FOR (Datum_System); LOCAL pass : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO SIZEOF(Datum_System); REPEAT j := 1 TO SIZEOF(Datum_System); IF (i <> j) THEN IF Datum_System[i]\Datum_System.constituents = Datum_System[j]\Datum_System.constituents THEN pass := FALSE; END_IF; END_IF; END_REPEAT; END_REPEAT; WHERE WR1: pass; END_RULE;
RULE Unique_Gdt_Element_Id_Constraint FOR (Product_Definition_Shape, Dimensional_Location, Dimensional_Size, Shape_Aspect, Shape_Aspect_Relationship); LOCAL bss : BAG OF STRING := []; ds : SET OF Dimensional_Size := QUERY(ds <* Dimensional_Size | EXISTS(ds\Dimensional_Size.id)); sa : SET OF Shape_Aspect := QUERY(sa <* Shape_Aspect | EXISTS(sa\Shape_Aspect.id)); sar : SET OF Shape_Aspect_Relationship := QUERY(sar <* Shape_Aspect_Relationship | EXISTS(sar\Shape_Aspect_Relationship.id)); ssa : SET OF Shape_Aspect := []; pass : BOOLEAN := TRUE; END_LOCAL; REPEAT ii := 1 TO SIZEOF(Product_Definition_Shape) WHILE pass; bss := []; ssa := Bag_To_Set(USEDIN(Product_Definition_Shape[ii], 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.SHAPE_ASPECT.OF_SHAPE')); REPEAT i := 1 TO SIZEOF(ds); IF (ds[i]\Dimensional_Size.applies_to IN ssa) THEN bss := bss + ds[i]\Dimensional_Size.id; END_IF; END_REPEAT; REPEAT i := 1 TO SIZEOF(sa); IF (sa[i] IN ssa) THEN bss := bss + sa[i]\Shape_Aspect.id; END_IF; END_REPEAT; REPEAT i := 1 TO SIZEOF(sar); IF (sar[i]\Shape_Aspect_Relationship.relating_shape_aspect IN ssa) THEN bss := bss + sar[i]\Shape_Aspect_Relationship.id; END_IF; END_REPEAT; IF (SIZEOF(Bag_To_Set(bss)) <> SIZEOF(bss)) THEN pass := FALSE; END_IF; END_REPEAT; WHERE WR1: pass; END_RULE;
RULE Valid_Product_And_Manufacturing_Information_View_Contexts FOR (Product_Definition_Context); LOCAL design_view_contexts : SET OF Product_Definition_Context := QUERY(pdc <* Product_Definition_Context | pdc.life_cycle_stage = 'design'); gdt_representation_view_contexts : SET OF Product_Definition_Context := QUERY(pdc <* Product_Definition_Context | pdc.frame_of_reference.application = 'geometrical dimensioning and tolerancing representation'); machining_feature_view_contexts : SET OF Product_Definition_Context := QUERY(pdc <* Product_Definition_Context | pdc.frame_of_reference.application = 'machining feature'); material_specification_view_contexts : SET OF Product_Definition_Context := QUERY(pdc <* Product_Definition_Context | pdc.frame_of_reference.application = 'material specification'); model_based_3d_annotation_presentation_view_contexts : SET OF Product_Definition_Context := QUERY(pdc <* Product_Definition_Context | pdc.frame_of_reference.application = 'model based 3D annotation presentation'); model_based_view_contexts : SET OF Product_Definition_Context := QUERY(pdc <* Product_Definition_Context | pdc.frame_of_reference.application = 'model based product geometry'); process_state_view_contexts : SET OF Product_Definition_Context := QUERY(pdc <* Product_Definition_Context | pdc.frame_of_reference.application = 'process state'); surface_finish_view_contexts : SET OF Product_Definition_Context := QUERY(pdc <* Product_Definition_Context | pdc.frame_of_reference.application = 'surface finish'); additional_view_contexts : SET OF Product_Definition_Context := gdt_representation_view_contexts + machining_feature_view_contexts + material_specification_view_contexts + model_based_3d_annotation_presentation_view_contexts + process_state_view_contexts + surface_finish_view_contexts; need_initial_model_based_view_contexts : SET OF Product_Definition_Context := gdt_representation_view_contexts + model_based_3d_annotation_presentation_view_contexts; END_LOCAL; WHERE WR1: SIZEOF(gdt_representation_view_contexts * design_view_contexts) = SIZEOF(gdt_representation_view_contexts); WR2: SIZEOF(machining_feature_view_contexts * design_view_contexts) = SIZEOF(machining_feature_view_contexts); WR3: SIZEOF(material_specification_view_contexts * design_view_contexts) = SIZEOF(material_specification_view_contexts); WR4: SIZEOF(model_based_3d_annotation_presentation_view_contexts * design_view_contexts) = SIZEOF(model_based_3d_annotation_presentation_view_contexts); WR5: SIZEOF(model_based_view_contexts * design_view_contexts) = SIZEOF(model_based_view_contexts); WR6: SIZEOF(process_state_view_contexts * design_view_contexts) = SIZEOF(process_state_view_contexts); WR7: SIZEOF(surface_finish_view_contexts * design_view_contexts) = SIZEOF(surface_finish_view_contexts); WR8: SIZEOF(QUERY(mbvc <* model_based_view_contexts | (SIZEOF(USEDIN(mbvc, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE')) = 0))) = SIZEOF(model_based_view_contexts); WR9: SIZEOF(QUERY(avc <* additional_view_contexts | (SIZEOF(USEDIN(avc, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION.FRAME_OF_REFERENCE')) = 0))) = SIZEOF(additional_view_contexts); WR10: SIZEOF(QUERY(nimbvc <* need_initial_model_based_view_contexts | NOT (SIZEOF(QUERY(pdca <* USEDIN(nimbvc, 'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRODUCT_DEFINITION_CONTEXT_ASSOCIATION.FRAME_OF_REFERENCE') | (pdca\Product_Definition_Context_Association.definition\Product_Definition.frame_of_reference IN model_based_view_contexts))) = SIZEOF(need_initial_model_based_view_contexts)))) = 0; WR11: SIZEOF(QUERY(gdt_pdc <* gdt_representation_view_contexts | SIZEOF(['ISO 1101','ASME Y14.5'] * Get_Associated_Mandatory_Document_Ids(gdt_pdc)) = 0)) = 0; WR12: SIZEOF(QUERY(mb3d_pdc <* model_based_3d_annotation_presentation_view_contexts | SIZEOF(['ISO 1101','ISO 16792','ASME Y14.41','ASME Y14.5'] * Get_Associated_Mandatory_Document_Ids(mb3d_pdc)) = 0)) = 0; END_RULE;
RULE Validate_Dependently_Instantiable_Entity_Data_Types FOR (Aggregate_Id_Attribute, Attribute_Value_Role, Camera_Model_D2, Classification_Assignment_Relationship, Concept_Feature_Relationship, Concept_Feature_Relationship_With_Condition, Data_Equivalence_Assessment_Specification, Data_Equivalence_Criteria_Representation, Data_Equivalence_Criterion, Data_Equivalence_Inspection_Instance_Report_Item, Data_Equivalence_Inspection_Requirement, Data_Equivalence_Inspection_Result_Representation, Document_Usage_Constraint, Edge_Blended_Solid, Effectivity_Context_Role, Event_Occurrence_Role, Explicit_Procedural_Representation_Item_Relationship, Founded_Item, Indirectly_Selected_Elements, Location_Representation_Role, Location_Role, Modified_Solid_With_Placed_Configuration, One_Direction_Repeat_Factor, Organization_Type_Role, Procedural_Representation, Procedural_Representation_Sequence, Product_Definition_Effectivity, Product_Definition_Relationship_Relationship, Runout_Zone_Orientation, Solid_With_Depression, Solid_With_Hole, Solid_With_Pocket, Solid_With_Protrusion, Solid_With_Shape_Element_Pattern, Solid_With_Slot, Swept_Area_Solid, Symbol_Target, Two_Direction_Repeat_Factor, User_Selected_Elements); LOCAL number_of_input_instances : INTEGER; previous_in_chain : LIST OF GENERIC := []; set_of_input_types : SET OF STRING := []; all_instances : SET OF GENERIC := []; END_LOCAL; all_instances := all_instances + Aggregate_Id_Attribute; all_instances := all_instances + Attribute_Value_Role; all_instances := all_instances + Camera_Model_D2; all_instances := all_instances + Classification_Assignment_Relationship; all_instances := all_instances + Concept_Feature_Relationship; all_instances := all_instances + Concept_Feature_Relationship_With_Condition; all_instances := all_instances + Data_Equivalence_Assessment_Specification; all_instances := all_instances + Data_Equivalence_Criteria_Representation; all_instances := all_instances + Data_Equivalence_Criterion; all_instances := all_instances + Data_Equivalence_Inspection_Instance_Report_Item; all_instances := all_instances + Data_Equivalence_Inspection_Requirement; all_instances := all_instances + Data_Equivalence_Inspection_Result_Representation; all_instances := all_instances + Document_Usage_Constraint; all_instances := all_instances + Edge_Blended_Solid; all_instances := all_instances + Effectivity_Context_Role; all_instances := all_instances + Event_Occurrence_Role; all_instances := all_instances + Explicit_Procedural_Representation_Item_Relationship; all_instances := all_instances + Founded_Item; all_instances := all_instances + Indirectly_Selected_Elements; all_instances := all_instances + Location_Representation_Role; all_instances := all_instances + Location_Role; all_instances := all_instances + Modified_Solid_With_Placed_Configuration; all_instances := all_instances + One_Direction_Repeat_Factor; all_instances := all_instances + Organization_Type_Role; all_instances := all_instances + Procedural_Representation; all_instances := all_instances + Procedural_Representation_Sequence; all_instances := all_instances + Product_Definition_Effectivity; all_instances := all_instances + Product_Definition_Relationship_Relationship; all_instances := all_instances + Runout_Zone_Orientation; all_instances := all_instances + Solid_With_Depression; all_instances := all_instances + Solid_With_Hole; all_instances := all_instances + Solid_With_Pocket; all_instances := all_instances + Solid_With_Protrusion; all_instances := all_instances + Solid_With_Shape_Element_Pattern; all_instances := all_instances + Solid_With_Slot; all_instances := all_instances + Swept_Area_Solid; all_instances := all_instances + Symbol_Target; all_instances := all_instances + Two_Direction_Repeat_Factor; all_instances := all_instances + User_Selected_Elements; ; number_of_input_instances := SIZEOF(all_instances); REPEAT i := 1 TO number_of_input_instances; set_of_input_types := set_of_input_types + TYPEOF(all_instances[i]); END_REPEAT; WHERE WR1: Dependently_Instantiated(all_instances, set_of_input_types, previous_in_chain); END_RULE; END_SCHEMA;