(************************************************************************) (* Wed Mar 04 09:26:28 2015 *) (* This HTML file is produced by *) (* The EXPRESS Data Manager EXPRESS Compiler version 9.9.1B 20140211*) (************************************************************************)
(* $Id: mim_lf.exp,v 1.46 2014/05/22 15:19:23 jhaenisch Exp $ WG12N8334 - ISO/TS 10303-409 ap209_multidisciplinary_analysis_and_design - EXPRESS MIM LF *) (* ===================================================================================== *) (* Long form schema generated by The EXPRESS Data Manager compiler version 9.8.3B 20121030*) (* Fri Feb 07 11:23:49 2014 *) (* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994 *) (* ===================================================================================== *) (* This file was generated by the EXPRESS Pretty Printer exppp, part of STEPcode (formerly NIST's SCL). exppp version: git commit id: v0.7-353-g0a46b86, build timestamp 26 Feb 2014 19:15 *) (* patches 4665, 4779, 4979, 4988, 4992, 5004, 5018, 5019, 5023, 5048, 5052, 5054, 5056, 5057 *) SCHEMA Ap209_Multidisciplinary_Analysis_And_Design_Mim_Lf;
CONSTANT Schema_Date_Stamp : STRING := 'Mon Mar 24 10:53:49 2014'; 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 := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, Closed, 1, 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, 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, Closed, PI, Closed ); The_Zero_Tuple_Space : Listed_Product_Space := Make_Listed_Product_Space( [] ); END_CONSTANT;
TYPE Absorbed_Dose_Measure = REAL; END_TYPE;
TYPE Acceleration_Measure = REAL; END_TYPE;
TYPE Action_Items = SELECT ( Action, Action_Directive, Action_Method, Action_Property, Action_Relationship, Action_Request_Solution, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Classification_Assignment, Applied_Person_And_Organization_Assignment, Applied_State_Type_Assignment, Approval_Status, Assembly_Component_Usage_Substitute, Certification, Certification_Item, Characterized_Object, Class, Class_System, Classification_Item, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Document_File, Document_Reference_Item, Draughting_Model, Drawing_Revision, Evaluated_Characteristic, Executed_Action, General_Property, Identification_Item, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organization, Organization_Relationship, Organizational_Project, 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_Assigned_Item, Requirement_For_Action_Resource, Resource_Property, Security_Classification, Security_Classification_Level, Shape_Aspect, Shape_Representation, Versioned_Action_Request ); END_TYPE;
TYPE Action_Method_Items = SELECT ( Action, Action_Method, Action_Property, Applied_Action_Assignment, Configuration_Design, Contract, Document_File, Event_Occurrence, Organization, Organizational_Project, Person, Person_And_Organization, Product, Product_Concept, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Property_Definition ); 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, Document_File, Draughting_Model, Drawing_Revision, General_Property, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organizational_Project, 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, Resource_Property, Shape_Aspect, Shape_Representation, Versioned_Action_Request ); END_TYPE;
TYPE Action_Type = ENUMERATION OF ( Applied_Loads, Residual_Loads ); END_TYPE;
TYPE Actuated_Direction = ENUMERATION OF ( Bidirectional, Positive_Only, Negative_Only, Not_Actuated ); END_TYPE;
TYPE Aggregated_Angular_Variable = ENUMERATION OF ( Total_Applied_Moment, Application_Defined_Aggregated_Angular_Scalar_Variable ); END_TYPE;
TYPE Aggregated_Scalar_Variable = ENUMERATION OF ( Total_Strain_Energy, Mass, Volume ); END_TYPE;
TYPE Aggregated_Tensor2_3d_Variable = ENUMERATION OF ( Rotational_Inertia ); END_TYPE;
TYPE Aggregated_Vector_3d_Variable = ENUMERATION OF ( Total_Applied_Force, Centre_Of_Mass_Offset ); 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 ( Fea_Model, Product_Definition, Temporal_Spatial_Domain ); END_TYPE;
TYPE Angle_Direction_Reference_Select = SELECT ( Direction, Curve, 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_Value = Context_Dependent_Measure; END_TYPE;
TYPE Anisotropic_Symmetric_Tensor2_2d = ARRAY [1 : 3] OF Context_Dependent_Measure; END_TYPE;
TYPE Anisotropic_Symmetric_Tensor2_3d = ARRAY [1 : 6] OF Context_Dependent_Measure; END_TYPE;
TYPE Anisotropic_Symmetric_Tensor4_2d = ARRAY [1 : 6] OF Context_Dependent_Measure; END_TYPE;
TYPE Anisotropic_Symmetric_Tensor4_3d = ARRAY [1 : 21] OF Context_Dependent_Measure; 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 ( Text_Literal, Annotation_Text, Annotation_Text_Character, Defined_Character_Glyph, Composite_Text ); END_TYPE;
TYPE Application_Defined_Degree_Of_Freedom = STRING; END_TYPE;
TYPE Application_Defined_Element_Purpose = STRING; END_TYPE;
TYPE Application_Defined_Matrix_Property_Type = STRING; END_TYPE;
TYPE Application_Defined_Scalar_Variable = STRING; END_TYPE;
TYPE Application_Defined_Tensor2_2d_Variable = STRING; END_TYPE;
TYPE Application_Defined_Tensor2_3d_Variable = STRING; END_TYPE;
TYPE Application_Defined_Vector_2d_Variable = STRING; END_TYPE;
TYPE Application_Defined_Vector_3d_Variable = STRING; END_TYPE;
TYPE Approval_Item = SELECT ( Action, Action_Directive, Action_Property, Action_Request_Solution, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Classification_Assignment, Applied_Usage_Right, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Control, Date, Directed_Action, Document, Document_File, Draughting_Model, Drawing_Revision, Effectivity, Executed_Action, Fea_Model, Frozen_Assignment, General_Property, General_Property_Relationship, Group, Group_Relationship, Information_Usage_Right, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organizational_Project, 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, Representation, Requirement_Assignment, Resource_Property, Result, Security_Classification, Shape_Aspect_Relationship, Shape_Representation, Temporal_Spatial_Domain, 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, Rectangular, Square ); END_TYPE;
TYPE Atom_Based_Tuple = LIST OF Atom_Based_Value; END_TYPE;
TYPE Atom_Based_Value = SELECT ( Maths_Atom, Atom_Based_Tuple ); END_TYPE;
TYPE Attribute_Classification_Item = SELECT ( Action_Directive, Action_Method, Action_Property, Action_Property_Representation, Action_Relationship, Action_Request_Solution, Action_Request_Status, Alternate_Product_Relationship, Applied_Action_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_Organization_Assignment, Applied_Organizational_Project_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, Event_Occurrence_Relationship, Executed_Action, General_Property, General_Property_Relationship, Group, Group_Relationship, Information_Right, Information_Usage_Right, Language, Measure_Representation_Item, Measure_With_Unit, Named_Unit, Organization_Relationship, Organizational_Address, Organizational_Project_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, 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, Actuated_Kinematic_Pair, Alternate_Product_Relationship, Application_Context, Applied_Certification_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_External_Identification_Assignment, Applied_Identification_Assignment, Applied_Organizational_Project_Assignment, Applied_Security_Classification_Assignment, Approval, Approval_Relationship, Approval_Status, Assembly_Component_Usage_Substitute, Attribute_Value_Assignment, Certification, Certification_Type, Configuration_Design, Configuration_Item, Contract, Data_Environment, Date_Role, Date_Time_Role, Descriptive_Representation_Item, Document_Relationship, Document_Usage_Role, Draughting_Title, Effectivity, Effectivity_Relationship, Event_Occurrence, External_Source, General_Property, General_Property_Relationship, Geometric_Representation_Item, Geometric_Tolerance, Group, Group_Relationship, Identification_Role, Information_Right, Information_Usage_Right, Kinematic_Pair, Make_From_Usage_Option, Mapped_Item, Multi_Language_Attribute_Assignment, Name_Assignment, Object_Role, Organization_Relationship, Organization_Role, Organizational_Project, Organizational_Project_Relationship, Organizational_Project_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_Related_Product_Category, Property_Definition, Property_Definition_Relationship, Representation, Representation_Relationship, Requirement_For_Action_Resource, Resource_Property, Resource_Requirement_Type, Security_Classification, Security_Classification_Assignment, Shape_Aspect, Shape_Aspect_Relationship, Shape_Representation, Styled_Item, Time_Interval_Role, Topological_Representation_Item, Uncertainty_Measure_With_Unit, Uncertainty_Qualifier, Usage_Association, Versioned_Action_Request, Versioned_Action_Request_Relationship ); END_TYPE;
TYPE Attribute_Type = SELECT ( Label, Text ); END_TYPE;
TYPE Axi_Or_Plane = ENUMERATION OF ( Axisymmetric, Planar ); END_TYPE;
TYPE Axial_Geometry_Constraint_Element = SELECT ( Point, Line, Circle, Plane, Cylindrical_Surface, Conical_Surface, Spherical_Surface, Toroidal_Surface, Surface_Of_Revolution, Sphere, Right_Circular_Cone, Right_Circular_Cylinder, Torus, Revolved_Face_Solid, Revolved_Area_Solid ); 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D' IN TYPEOF( SELF ) ) ); END_TYPE;
TYPE Blend_End_Condition_Select = SELECT ( Point_On_Curve, Edge_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 ( Bounded_Primitive_2d, Boolean_Result_2d ); END_TYPE;
TYPE Boolean_Operator = ENUMERATION OF ( Union, Intersection, Difference ); END_TYPE;
TYPE Boolean_Value = BOOLEAN; END_TYPE;
TYPE Boundary_Aggregated_Variable = SELECT ( Aggregated_Vector_3d_Variable, Application_Defined_Vector_3d_Variable ); END_TYPE;
TYPE Boundary_Curve_Scalar_Variable = ENUMERATION OF ( Normal_Force_Per_Unit_Length ); END_TYPE;
TYPE Boundary_Curve_Vector_3d_Variable = ENUMERATION OF ( Applied_Force_Per_Unit_Length, Applied_Moment_Per_Unit_Length ); END_TYPE;
TYPE Boundary_Edge_Variable = SELECT ( Boundary_Curve_Scalar_Variable, Boundary_Curve_Vector_3d_Variable, Application_Defined_Scalar_Variable, Application_Defined_Vector_3d_Variable ); END_TYPE;
TYPE Boundary_Surface_Scalar_Variable = ENUMERATION OF ( Pressure ); END_TYPE;
TYPE Boundary_Surface_Vector_3d_Variable = ENUMERATION OF ( Applied_Force_Per_Unit_Area, Applied_Moment_Per_Unit_Area ); END_TYPE;
TYPE Boundary_Variable = SELECT ( Boundary_Surface_Scalar_Variable, Boundary_Surface_Vector_3d_Variable, Application_Defined_Scalar_Variable, Application_Defined_Vector_3d_Variable ); 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_Width, Box_Slant_Angle, Box_Rotate_Angle ); END_TYPE;
TYPE Box_Height = Positive_Ratio_Measure; END_TYPE;
TYPE Box_Rotate_Angle = Plane_Angle_Measure; END_TYPE;
TYPE Box_Slant_Angle = Plane_Angle_Measure; END_TYPE;
TYPE Box_Width = Positive_Ratio_Measure; END_TYPE;
TYPE Camera_Model_D3_Multi_Clipping_Interection_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 Cell_Shape = SELECT ( Cell_Shape_0d, Cell_Shape_1d, Cell_Shape_2d, Cell_Shape_3d ); END_TYPE;
TYPE Cell_Shape_0d = ENUMERATION OF ( Single ); END_TYPE;
TYPE Cell_Shape_1d = ENUMERATION OF ( Line ); END_TYPE;
TYPE Cell_Shape_2d = ENUMERATION OF ( Quadrilateral, Triangle ); END_TYPE;
TYPE Cell_Shape_3d = ENUMERATION OF ( Hexahedron, Pyramid, Tetrahedron, Wedge ); END_TYPE;
TYPE Celsius_Temperature_Measure = REAL; END_TYPE;
TYPE Central_Or_Parallel = ENUMERATION OF ( Central, Parallel ); END_TYPE;
TYPE Certification_Item = SELECT ( Alternate_Product_Relationship, Make_From_Usage_Option, Product_Definition, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_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_Relationship, Class, Event_Occurrence, Project_Item ); END_TYPE;
TYPE Change_Relationship_Select = SELECT ( Action_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 ( Length_Measure, Ratio_Measure, Measure_With_Unit, Descriptive_Measure ); END_TYPE;
TYPE Character_Style_Select = SELECT ( Character_Glyph_Style_Stroke, Character_Glyph_Style_Outline, Text_Style_For_Defined_Font ); END_TYPE;
TYPE Characterized_Action_Definition = SELECT ( Action, Action_Method, Action_Method_Relationship, Action_Relationship ); END_TYPE;
TYPE Characterized_Definition = SELECT ( Characterized_Object, Characterized_Product_Definition, Shape_Definition ); END_TYPE;
TYPE Characterized_Material_Property = SELECT ( Material_Property_Representation, Product_Material_Composition_Relationship ); END_TYPE;
TYPE Characterized_Product_Composition_Value = SELECT ( Measure_With_Unit ); END_TYPE;
TYPE Characterized_Product_Definition = SELECT ( Product_Definition, Product_Definition_Relationship ); END_TYPE;
TYPE Characterized_Resource_Definition = SELECT ( Action_Resource, Action_Resource_Requirement ); END_TYPE;
TYPE Choose_General_Property_Identifier = SELECT ( Defined_Data_Name, Externally_Defined_Item ); END_TYPE;
TYPE Choose_Geometry_Location = SELECT ( Externally_Defined_Item, Shape_Representation ); END_TYPE;
TYPE Choose_Representation_Context_Identifier = SELECT ( Defined_Data_Class, Externally_Defined_Item ); END_TYPE;
TYPE Class_Usage_Effectivity_Context_Item = SELECT ( Product_Definition ); END_TYPE;
TYPE Classification_Item = SELECT ( Action, Action_Directive, Action_Method, Action_Property, Action_Relationship, Action_Request_Solution, Action_Request_Status, Address, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Action_Request_Assignment, Applied_Approval_Assignment, Applied_Certification_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_Identification_Assignment, Applied_Organization_Assignment, Applied_Organizational_Project_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Approval, Approval_Person_Organization, Approval_Relationship, Approval_Status, Assembly_Component_Usage_Substitute, Calendar_Date, Certification, Characterized_Class, Characterized_Object, Class, Classified_Item, Configuration_Item, Context_Dependent_Unit, Contract, Conversion_Based_Unit, Date_And_Time, Date_And_Time_Assignment, Date_Assignment, Derived_Unit, Descriptive_Representation_Item, Directed_Action, Document_File, Document_Relationship, Document_Type, Effectivity, Event_Occurrence, Executed_Action, Feature_Definition, General_Feature, General_Property, General_Property_Relationship, Group, Identification_Assignment, Information_Right, Information_Usage_Right, Language, Material_Designation, Measure_Representation_Item, Measure_With_Unit, Multi_Language_Attribute_Assignment, Named_Unit, Organization, Organization_Relationship, Organizational_Address, Organizational_Project, Organizational_Project_Relationship, Person, Person_And_Organization_Address, Plus_Minus_Tolerance, Process_Operation, Product, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Category, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Relationship, Property_Definition, Property_Definition_Representation, Representation, Representation_Context, Representation_Item, Resource_Property, Security_Classification, Security_Classification_Level, Shape_Aspect, State_Type, State_Type_Assignment, State_Type_Relationship, Uncertainty_Measure_With_Unit, Usage_Association, Versioned_Action_Request ); 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 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 ); 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 Constraint_Group_Member = SELECT ( Explicit_Constraint, Simultaneous_Constraint_Group ); END_TYPE;
TYPE Constructive_Geometry_Representation_Or_Shape_Represenation = SELECT ( Constructive_Geometry_Representation, Shape_Representation ); END_TYPE;
TYPE Context_Dependent_Measure = REAL; END_TYPE;
TYPE Contract_Item = SELECT ( Action_Directive, Alternate_Product_Relationship, Directed_Action, Drawing_Revision, Executed_Action, Information_Usage_Right, Organization, Person_And_Organization, Product, Product_Definition_Formation ); END_TYPE;
TYPE Contracted_Item = SELECT ( Product_Definition_Formation ); END_TYPE;
TYPE Coordinate_Data_Name = ENUMERATION OF ( Coordinate_Eta, Coordinate_Normal, Coordinate_Phi, Coordinate_R, Coordinate_Tangential, Coordinate_Theta, Coordinate_Transform, Coordinate_X, Coordinate_Xi, Coordinate_Y, Coordinate_Z, Coordinate_Zeta ); END_TYPE;
TYPE Coordinate_System_Type = ENUMERATION OF ( Cartesian, Cylindrical, Spherical ); 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 ( Mapped_Item, Axis2_Placement_2d, Csg_Solid_2d ); END_TYPE;
TYPE Csg_Primitive = SELECT ( Block, Bounded_Primitive_2d, (* The following five items have been added to resolve BZ#5057. *) Cyclide_Segment_Solid, Eccentric_Cone, Ellipsoid, Faceted_Primitive, Rectangular_Pyramid, (* end of insertion *) 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 ( Bounded_Primitive_2d, Boolean_Result_2d ); END_TYPE;
TYPE Current_Element_Assignment_Select = SELECT ( Modify_Element, Add_Element ); END_TYPE;
TYPE Curve_2d_Element_Descriptor = SELECT ( Axisymmetric_Curve_2d_Element_Descriptor, Plane_Curve_2d_Element_Descriptor ); END_TYPE;
TYPE Curve_2d_Element_Output_Reference = SELECT ( Curve_2d_Element_Representation, Curve_2d_Element_Descriptor, Curve_2d_Element_Group, Curve_2d_Substructure_Element_Reference, Analysis_Item_Within_Representation ); END_TYPE;
TYPE Curve_2d_Element_Representation = SELECT ( Axisymmetric_Curve_2d_Element_Representation, Plane_Curve_2d_Element_Representation ); END_TYPE;
TYPE Curve_2d_State_Coordinate_System = SELECT ( Fea_Axis2_Placement_3d, Curve_2d_Element_Coordinate_System ); END_TYPE;
TYPE Curve_3d_Element_Coordinate_System = SELECT ( Aligned_Curve_3d_Element_Coordinate_System, Parametric_Curve_3d_Element_Coordinate_System ); END_TYPE;
TYPE Curve_3d_Element_Length_Integration = SELECT ( Element_Integration_Algebraic, Curve_3d_Element_Length_Integration_Rule, Curve_3d_Element_Length_Integration_Explicit ); END_TYPE;
TYPE Curve_3d_Element_Output_Reference = SELECT ( Curve_3d_Element_Representation, Curve_3d_Element_Descriptor, Curve_3d_Element_Group, Curve_3d_Substructure_Element_Reference, Analysis_Item_Within_Representation ); END_TYPE;
TYPE Curve_3d_State_Coordinate_System = SELECT ( Fea_Axis2_Placement_3d, Curve_3d_Element_Coordinate_System ); END_TYPE;
TYPE Curve_Edge = ENUMERATION OF ( Element_Edge ); END_TYPE;
TYPE Curve_Element_End_Coordinate_System = SELECT ( Fea_Axis2_Placement_3d, Curve_3d_Element_Coordinate_System ); END_TYPE;
TYPE Curve_Element_Freedom = SELECT ( Enumerated_Curve_Element_Freedom, Application_Defined_Degree_Of_Freedom ); END_TYPE;
TYPE Curve_Element_Purpose = SELECT ( Enumerated_Curve_Element_Purpose, Application_Defined_Element_Purpose ); END_TYPE;
TYPE Curve_Element_Variable = SELECT ( Volume_Variable, Curve_Scalar_Variable, Curve_Vector_2d_Variable, Application_Defined_Vector_2d_Variable, Curve_Vector_3d_Variable ); END_TYPE;
TYPE Curve_Font_Or_Scaled_Curve_Font_Select = SELECT ( Curve_Style_Font_Select, Curve_Style_Font_And_Scaling ); END_TYPE;
TYPE Curve_Matrix_Property_Type = SELECT ( Enumerated_Curve_Matrix_Property_Type, Application_Defined_Matrix_Property_Type ); END_TYPE;
TYPE Curve_On_Surface = SELECT ( Composite_Curve_On_Surface, Pcurve, Surface_Curve ); END_TYPE;
TYPE Curve_Or_Annotation_Curve_Occurrence = SELECT ( Curve, Annotation_Curve_Occurrence ); 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_Scalar_Variable = ENUMERATION OF ( Curve_Axial_Force, Curve_Axial_Strain, Torque, Curve_Warping, Bi_Moment, Twist ); END_TYPE;
TYPE Curve_Style_Font_Select = SELECT ( Curve_Style_Font, Pre_Defined_Curve_Font, Externally_Defined_Curve_Font ); END_TYPE;
TYPE Curve_Vector_2d_Variable = ENUMERATION OF ( Curve_Shear_Force, Curve_Bending_Moment, Curve_Element_Curvature, Curve_Thermal_Gradient, Reference_Curve_Thermal_Gradient ); END_TYPE;
TYPE Curve_Vector_3d_Variable = ENUMERATION OF ( Applied_Force_Per_Unit_Length, Applied_Moment_Per_Unit_Length ); END_TYPE;
TYPE Curves_Or_Area = ENUMERATION OF ( Curves, Area ); END_TYPE;
TYPE Cylindrical_Harmonic_Number = INTEGER; WHERE wr1: ( SELF >= 0 ); END_TYPE;
TYPE Date_And_Time_Item = SELECT ( Action, Action_Directive, Action_Method, Action_Property, Action_Relationship, Action_Request_Solution, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Classification_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Approval_Person_Organization, Approval_Status, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Item, Configured_Effectivity_Assignment, Contract, Data_Quality_Definition, Directed_Action, Document, Document_File, Draughting_Model, Drawing_Revision, Effectivity, Event_Occurrence, Executed_Action, General_Property, Information_Usage_Right, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organization_Relationship, Organizational_Project, 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, Rule_Action, Security_Classification, Security_Classification_Level, Shape_Representation, Versioned_Action_Request ); END_TYPE;
TYPE Date_Item = SELECT ( Action, Action_Directive, Action_Method, Action_Property, Action_Relationship, Action_Request_Solution, Alternate_Product_Relationship, Applied_Action_Assignment, Applied_Classification_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Approval_Person_Organization, Approval_Status, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Item, Configured_Effectivity_Assignment, Contract, Data_Quality_Definition, Directed_Action, Document, Document_File, Draughting_Model, Drawing_Revision, Effectivity, Event_Occurrence, Executed_Action, General_Property, Information_Usage_Right, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organization_Relationship, Organizational_Project, 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, 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 ) AND ( SELF <= 31 ) ); END_TYPE;
TYPE Day_In_Week_Number = INTEGER; WHERE wr1: ( ( 1 <= SELF ) AND ( SELF <= 7 ) ); END_TYPE;
TYPE Day_In_Year_Number = INTEGER; WHERE wr1: ( ( 1 <= SELF ) AND ( SELF <= 366 ) ); END_TYPE;
TYPE Defined_Data_Class = ENUMERATION OF ( Application_Defined, Dimensional, Dimensionless_Constant, Dimensionless_Parameter, Normalise_By_Unknown_Dimensional, Normalised_By_Dimensional, Unspecified ); END_TYPE;
TYPE Defined_Data_Name = SELECT ( Coordinate_Data_Name, (* The following line is added as patch for BZ#5048 *) Property_3d_Data_Name, Fd_Defined_Data_Name ); END_TYPE;
(* The following enumeration is added as patch for BZ#5048 *) TYPE Property_3d_Data_Name = ENUMERATION OF ( Acceleration, Displacement, Force, Momentum, Position, Skin_Friction, Velocity, Vorticity ); END_TYPE;
TYPE Defined_Glyph_Select = SELECT ( Pre_Defined_Character_Glyph, Externally_Defined_Character_Glyph ); END_TYPE;
TYPE Defined_Symbol_Select = SELECT ( Pre_Defined_Symbol, Externally_Defined_Symbol ); END_TYPE;
TYPE Degree_Of_Freedom = SELECT ( Enumerated_Degree_Of_Freedom, Application_Defined_Degree_Of_Freedom ); END_TYPE;
TYPE Derived_Property_Select = SELECT ( Property_Definition, Action_Property, 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, Organization_Role, Organizational_Project, Person_And_Organization, Person_And_Organization_Role, Property_Definition_Representation, Representation ); END_TYPE;
TYPE Descriptive_Measure = STRING; 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 Direction_Count_Select = SELECT ( U_Direction_Count, V_Direction_Count ); END_TYPE;
TYPE Directionally_Explicit_Element_Coordinate_System = SELECT ( Directionally_Explicit_Element_Coordinate_System_Arbitrary, Directionally_Explicit_Element_Coordinate_System_Aligned ); END_TYPE;
TYPE Discretised_Action_Model_Select = SELECT ( Analysis_Step, Model_Action_Domain ); END_TYPE;
TYPE Discretised_Distribution_Model_Select = SELECT ( Model_Property_Distribution, State_Definition ); END_TYPE;
TYPE Discretised_Product_Model_Select = SELECT ( Fea_Model, Model_Product_Domain ); END_TYPE;
TYPE Discretised_State_Model_Select = SELECT ( Model_State_Domain, State ); END_TYPE;
TYPE Document_Identifier_Assigned_Item = SELECT ( Document ); END_TYPE;
TYPE Document_Reference_Item = SELECT ( Action_Directive, Action_Method, Action_Relationship, Applied_Action_Assignment, Applied_External_Identification_Assignment, Approval, Assembly_Component_Usage, Certification, Characterized_Class, Characterized_Object, Class, Class_System, Configuration_Design, Configuration_Item, Contract, Descriptive_Representation_Item, Dimensional_Size, Executed_Action, Externally_Conditioned_Data_Quality_Criterion, Externally_Defined_Dimension_Definition, Externally_Defined_Item, Feature_Definition, General_Property, Group, Group_Relationship, Information_Right, Information_Usage_Right, Material_Designation, Measure_Representation_Item, Organization, Organizational_Project, Person, Presentation_Area, Process_Plan, Product, Product_Category, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Category, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Process, Product_Definition_Relationship, Product_Definition_Substitute, Product_Related_Product_Category, Property_Definition, Representation, Representation_Item, Resource_Requirement_Type, Retention, Rule_Set, Security_Classification, Shape_Aspect, Shape_Aspect_Relationship, Usage_Association, 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_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 ( 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_Organization_Assignment, Applied_Organizational_Project_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Dimensional_Size, Geometric_Tolerance, Product_Definition_Relationship, Product_Definition_Shape, Property_Definition, Shape_Aspect, Shape_Aspect_Relationship ); END_TYPE;
TYPE Draughting_Model_Item_Select = SELECT ( Mapped_Item, Styled_Item, Axis2_Placement, Camera_Model, Draughting_Callout ); END_TYPE;
TYPE Draughting_Subfigure_Representation_Item = SELECT ( Annotation_Occurrence, Draughting_Callout, Axis2_Placement ); END_TYPE;
TYPE Draughting_Symbol_Representation_Item = SELECT ( Annotation_Curve_Occurrence, Annotation_Symbol_Occurrence, Annotation_Fill_Area_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_Method, Action_Method_Relationship, Action_Property, Action_Relationship, Assembly_Component_Usage_Substitute, Class, Class_System, Configuration_Design, Configuration_Item, Configured_Effectivity_Assignment, Document_File, Draughting_Model, Drawing_Revision, General_Property, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, 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, Shape_Aspect, Shape_Representation ); END_TYPE;
TYPE Electric_Charge_Measure = REAL; END_TYPE;
TYPE Electric_Current_Measure = REAL; END_TYPE;
TYPE Electric_Potential_Measure = REAL; END_TYPE;
TYPE Element_2d_Shape = ENUMERATION OF ( Quadrilateral, Triangle ); END_TYPE;
TYPE Element_Aspect = SELECT ( Element_Volume, Volume_3d_Face, Volume_2d_Face, Volume_3d_Edge, Volume_2d_Edge, Surface_3d_Face, Surface_2d_Face, Surface_3d_Edge, Surface_2d_Edge, Curve_Edge ); END_TYPE;
TYPE Element_Integration_Algebraic = ENUMERATION OF ( Algebraic ); END_TYPE;
TYPE Element_Or_Element_Group = SELECT ( Element_Representation, Element_Group ); END_TYPE;
TYPE Element_Order = ENUMERATION OF ( Linear_Order, Quadratic_Order, Cubic_Order ); END_TYPE;
TYPE Element_Volume = ENUMERATION OF ( Volume ); 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 Enumerated_Curve_Element_Freedom = ENUMERATION OF ( X_Translation, Y_Translation, Z_Translation, X_Rotation, Y_Rotation, Z_Rotation, Warp, None ); END_TYPE;
TYPE Enumerated_Curve_Element_Purpose = ENUMERATION OF ( Axial, Y_Y_Bending, Z_Z_Bending, Torsion, X_Y_Shear, X_Z_Shear, Warping ); END_TYPE;
TYPE Enumerated_Curve_Matrix_Property_Type = ENUMERATION OF ( Axial, Y_Y_Bending, Z_Z_Bending, Torsion, X_Y_Shear, X_Z_Shear, Warping, Axial_Mass, Y_Y_Bending_Mass, Z_Z_Bending_Mass, Torsion_Mass, X_Y_Shear_Mass, X_Z_Shear_Mass, Warping_Mass, Mass ); END_TYPE;
TYPE Enumerated_Degree_Of_Freedom = ENUMERATION OF ( X_Translation, Y_Translation, Z_Translation, X_Rotation, Y_Rotation, Z_Rotation, Warp ); END_TYPE;
TYPE Enumerated_Matrix_Property_Type = ENUMERATION OF ( Stiffness, Mass, Damping ); END_TYPE;
TYPE Enumerated_Plane_2d_Element_Purpose = ENUMERATION OF ( Plane_Stress, Plane_Strain ); END_TYPE;
TYPE Enumerated_Surface_Element_Purpose = ENUMERATION OF ( Membrane_Direct, Membrane_Shear, Bending_Direct, Bending_Torsion, Normal_To_Plane_Shear ); END_TYPE;
TYPE Enumerated_Surface_Matrix_Property_Type = ENUMERATION OF ( Membrane_Direct, Membrane_Shear, Bending_Direct, Bending_Torsion, Normal_To_Plane_Shear, Membrane_Direct_Mass, Membrane_Shear_Mass, Bending_Direct_Mass, Bending_Torsion_Mass, Normal_To_Plane_Shear_Mass, Mass ); END_TYPE;
TYPE Enumerated_Volume_Element_Purpose = ENUMERATION OF ( Stress_Displacement ); 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_Property, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organization_Relationship, Organizational_Project, 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 Expression_Extension_Select = SELECT ( Expression_Extension_String, Expression_Extension_Numeric ); 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_Relationship, Action_Request_Status, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Approval, Approval_Status, Assembly_Bond_Definition, Date_And_Time_Assignment, Date_Assignment, Document_File, External_Source, 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, Generic_Product_Definition_Reference, Organizational_Address, Product_Definition, Security_Classification, Trimmed_Curve, Versioned_Action_Request ); END_TYPE;
TYPE Face_Or_Surface = SELECT ( Face, Surface ); END_TYPE;
TYPE Fd_Bc_Type_Simple = Mbna_Bc_Type_Simple; END_TYPE;
TYPE Fd_Behaviour_Models = SELECT ( Gas_Model, Turbulence_Closure, Turbulence_Model, Viscosity_Model ); END_TYPE;
TYPE Fd_Defined_Data_Name = SELECT ( Fd_Nondimensional_Parameter_Name, Flow_Solution_Data_Name, Force_Moment_Data_Name, Gas_Model_Data_Name, Riemann_1d_Data_Name, Thermal_Conductivity_Model_Data_Name, Turbulence_Closure_Data_Name, Turbulence_Model_Data_Name, Viscosity_Model_Data_Name ); END_TYPE;
TYPE Fd_Governing_Equation_Type = Mbna_Governing_Equation_Type; END_TYPE;
TYPE Fd_Nondimensional_Parameter_Name = ENUMERATION OF ( Coef_Pressure, Coef_Pressure_Dynamic, Coef_Pressure_Reference, Coef_Skin_Friction_X, Coef_Skin_Friction_Y, Coef_Skin_Friction_Z, Length_Reference, Mach, Mach_Velocity, Mach_Velocity_Sound, Prandtl, Prandtl_Specific_Heat_Pressure, Prandtl_Thermal_Conductivity, Prandtl_Viscosity_Molecular, Reynolds, Reynolds_Length, Reynolds_Velocity, Reynolds_Viscosity_Kinematic, Specific_Heat_Ratio, Specific_Heat_Ratio_Pressure, Specific_Heat_Ratio_Volume ); END_TYPE;
TYPE Fea_Column_Normalised_Monoclinic_Symmetric_Tensor4_3d = ARRAY [1 : 13] OF Context_Dependent_Measure; END_TYPE;
TYPE Fea_Column_Normalised_Orthotropic_Symmetric_Tensor4_3d = ARRAY [1 : 9] OF Context_Dependent_Measure; END_TYPE;
TYPE Fea_Iso_Orthotropic_Symmetric_Tensor4_3d = ARRAY [1 : 3] OF Context_Dependent_Measure; END_TYPE;
TYPE Fea_Isotropic_Symmetric_Tensor4_3d = ARRAY [1 : 2] OF Context_Dependent_Measure; END_TYPE;
TYPE Fea_Transverse_Isotropic_Symmetric_Tensor4_3d = ARRAY [1 : 5] OF Context_Dependent_Measure; END_TYPE;
TYPE Field_Value = SELECT ( Unspecified_Value, Scalar, Tensor1_2d, Tensor1_3d, Anisotropic_Symmetric_Tensor2_2d, Isotropic_Symmetric_Tensor2_3d, Orthotropic_Symmetric_Tensor2_3d, Anisotropic_Symmetric_Tensor2_3d ); END_TYPE;
TYPE Fill_Area_Style_Tile_Shape_Select = SELECT ( Fill_Area_Style_Tile_Curve_With_Style, Fill_Area_Style_Tile_Coloured_Region, Fill_Area_Style_Tile_Symbol_With_Style, Pre_Defined_Tile, Externally_Defined_Tile ); END_TYPE;
TYPE Fill_Style_Select = SELECT ( Fill_Area_Style_Colour, Externally_Defined_Tile_Style, Fill_Area_Style_Tiles, Externally_Defined_Hatch_Style, Fill_Area_Style_Hatching ); END_TYPE;
TYPE Flow_Solution_Data_Name = ENUMERATION OF ( Density, Density_Stagnation, Energy_Internal, Energy_Kinetic, Energy_Stagnation, Energy_Stagnation_Density, Enthalpy, Enthalpy_Stagnation, Entropy, Entropy_Approx, Ideal_Gas_Constant, Mass_Flow, Momentum_Magnitude, Momentum_X, Momentum_Y, Momentum_Z, Potential, Pressure, Pressure_Dynamic, Pressure_Stagnation, Reynolds_Stress_Xx, Reynolds_Stress_Xy, Reynolds_Stress_Xz, Reynolds_Stress_Yy, Reynolds_Stress_Yz, Reynolds_Stress_Zz, Skin_Friction_Magnitude, Skin_Friction_X, Skin_Friction_Y, Skin_Friction_Z, Specific_Heat_Pressure, Specific_Heat_Volume, Stream_Function, Temperature, Temperature_Stagnation, Thermal_Conductivity, Velocity_Angle_X, Velocity_Angle_Y, Velocity_Angle_Z, Velocity_Magnitude, Velocity_Normal, Velocity_Phi, Velocity_R, Velocity_Sound, Velocity_Sound_Stagnation, Velocity_Tangential, Velocity_Theta, Velocity_Unit_Vector_X, Velocity_Unit_Vector_Y, Velocity_Unit_Vector_Z, Velocity_X, Velocity_Y, Velocity_Z, Viscosity_Eddy, Viscosity_Kinematic, Viscosity_Molecular, Vorticity_Magnitude, Vorticity_X, Vorticity_Y, Vorticity_Z ); END_TYPE;
TYPE Font_Select = SELECT ( Pre_Defined_Text_Font, Externally_Defined_Text_Font, Text_Font ); END_TYPE;
TYPE Force_Measure = REAL; END_TYPE;
TYPE Force_Moment_Data_Name = ENUMERATION OF ( Coef_Drag, Coef_Length, Coef_Lift, Coef_Moment_Area, Coef_Moment_Eta, Coef_Moment_Phi, Coef_Moment_Pressure_Dynamic, Coef_Moment_R, Coef_Moment_Theta, Coef_Moment_X, Coef_Moment_Xi, Coef_Moment_Y, Coef_Moment_Z, Coef_Moment_Zeta, Drag, Force_Phi, Force_R, Force_Theta, Force_X, Force_Y, Force_Z, Lift, Moment_Center_X, Moment_Center_Y, Moment_Center_Z, Moment_Eta, Moment_Phi, Moment_R, Moment_Theta, Moment_X, Moment_Xi, Moment_Y, Moment_Z, Moment_Zeta ); END_TYPE;
TYPE Founded_Item_Select = SELECT ( Founded_Item, Representation_Item ); END_TYPE;
TYPE Frequency_Measure = REAL; END_TYPE;
TYPE Gas_Model_Data_Name = ENUMERATION OF ( Ideal_Gas_Constant, Specific_Heat_Pressure, Specific_Heat_Ratio, Specific_Heat_Volume ); END_TYPE;
TYPE Gas_Model_Type = ENUMERATION OF ( Application_Defined, Ideal, Unspecified, Van_Der_Waals ); END_TYPE;
TYPE Generalized_Surface_Select = SELECT ( Surface, Face_Surface, Surfaced_Open_Shell ); END_TYPE;
TYPE Geometric_Constraint_Element = SELECT ( Point, Curve, Surface, Vector, Direction ); 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 ( Curve, Point, Surface ); END_TYPE;
TYPE Geometric_Tolerance_Modifier = ENUMERATION OF ( Any_Cross_Section, Common_Zone, Each_Radial_Element, Free_State, Least_Material_Requirement, Line_Element, Major_Diameter, Maximum_Material_Requirement, Minor_Diameter, Not_Convex, Pitch_Diameter, Reciprocity_Requirement, Separate_Requirement, Statistical_Tolerance, Tangent_Plane ); END_TYPE;
TYPE Geometric_Tolerance_Target = SELECT ( Dimensional_Location, Dimensional_Size, Product_Definition_Shape, Shape_Aspect ); END_TYPE;
TYPE Groupable_Item = SELECT ( Address, Applied_Approval_Assignment, Applied_Classification_Assignment, Applied_Document_Reference, Applied_External_Identification_Assignment, Applied_Group_Assignment, Applied_Identification_Assignment, Applied_Name_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Approval, Approval_Person_Organization, Approval_Relationship, Approval_Status, Assembly_Component_Usage, Calendar_Date, Class, Collection_Assignment, Collection_Membership, Component_Feature, Control, Coordinated_Universal_Time_Offset, Date_And_Time, Date_And_Time_Assignment, Date_Assignment, Derived_Unit, Derived_Unit_Element, Document_File, Document_Relationship, External_Source, Fea_Model, General_Property, General_Property_Relationship, Geometric_Representation_Item, Group, Group_Relationship, Local_Time, Mapped_Item, Measure_Qualification, Measure_With_Unit, Multi_Language_Attribute_Assignment, Named_Unit, Numerical_Model, Organization, Organization_Relationship, Package_Product_Concept_Feature, Person, Person_And_Organization, Precision_Qualifier, Product, Product_Concept_Feature, Product_Definition, Product_Definition_Context, Product_Definition_Formation, Product_Definition_Formation_Relationship, Product_Definition_Group_Assignment, Product_Definition_Relationship, Product_Relationship, Property_Definition, Property_Definition_Representation, Representation, Representation_Context, Representation_Item, Representation_Relationship, Representation_Relationship_With_Transformation, Result, Security_Classification, Shape_Aspect, Shape_Aspect_Relationship, Shape_Representation_Relationship, State, State_Definition, State_Relationship, Styled_Item, Topological_Representation_Item, Type_Qualifier, Uncertainty_Qualifier ); WHERE wr1: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GROUP' IN TYPEOF( SELF ) ) ); END_TYPE;
TYPE Hour_In_Day = INTEGER; WHERE wr1: ( ( 0 <= SELF ) AND ( SELF < 24 ) ); END_TYPE;
TYPE Id_Attribute_Select = SELECT ( Action, Address, Application_Context, Dimensional_Size, Geometric_Tolerance, Group, Organizational_Project, Product_Category, Property_Definition, Representation, Shape_Aspect, Shape_Aspect_Relationship ); END_TYPE;
TYPE Idealised_Action_Select = SELECT ( Action, Physical_Action_Domain ); END_TYPE;
TYPE Idealised_Distribution_Select = SELECT ( Domain_Property, Property_Definition ); END_TYPE;
TYPE Idealised_Product_Select = SELECT ( Physical_Product_Domain, Product_Definition ); END_TYPE;
TYPE Idealised_State_Select = SELECT ( Physical_State_Domain, State_Type ); END_TYPE;
TYPE Identification_Item = SELECT ( Action, Action_Directive, Action_Method, Action_Property, Applied_Identification_Assignment, Approval_Status, Characterized_Class, Class, Class_System, Configuration_Item, Contract, Dimensional_Size, Document_File, Document_Type, Draughting_Model, Effectivity, General_Property, Group, Group_Relationship, Information_Right, Information_Usage_Right, Material_Designation, Measure_Representation_Item, Mechanical_Design_Geometric_Presentation_Representation, Organization, Organizational_Project, Person_And_Organization, Presentation_Area, Product, Product_Category, Product_Class, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Category, Product_Definition, Product_Definition_Formation, Product_Definition_Relationship, Product_Identification, Property_Definition, Property_Definition_Relationship, Representation, Rule_Set, Security_Classification, Security_Classification_Level, Shape_Aspect_Relationship, Shape_Representation, State_Type, State_Type_Relationship, Usage_Association, Versioned_Action_Request ); END_TYPE;
TYPE Identifier = STRING; END_TYPE;
TYPE Ijk_Minmax = ENUMERATION OF ( I_Min, J_Min, K_Min, I_Max, J_Max, K_Max ); END_TYPE;
TYPE Illuminance_Measure = REAL; END_TYPE;
TYPE Indices_Group = SELECT ( Indices_List, Indices_Range ); END_TYPE;
TYPE Inductance_Measure = REAL; END_TYPE;
TYPE Input_Selector = Positive_Integer; END_TYPE;
TYPE Inspected_Ecdq_Element_Select = Inspected_Element_Select; 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_Shape_Element_Select = Inspected_Element_Select; END_TYPE;
TYPE Instance_Usage_Context_Select = SELECT ( Product_Definition_Relationship, Product_Definition_Usage ); END_TYPE;
TYPE Integration_Rule = ENUMERATION OF ( Gaussian, Simpson ); END_TYPE;
TYPE Internal_Or_Reflected_Shape_Aspect = SELECT ( Shape_Aspect, Identifier ); 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 Isotropic_Symmetric_Tensor2_3d = Context_Dependent_Measure; 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_Organization_Assignment, Applied_Organizational_Project_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Applied_Time_Interval_Assignment, Applied_Usage_Right, Dimensional_Size, General_Property, Geometric_Tolerance, Product_Definition_Relationship, Property_Definition, Property_Definition_Relationship, Shape_Aspect, Shape_Aspect_Relationship ); END_TYPE;
TYPE Item_Identified_Representation_Usage_Select = SELECT ( Representation_Item, List_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_Structure, Kinematic_Topology_Directed_Structure, Kinematic_Topology_Network_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 Limit_Condition = ENUMERATION OF ( Maximum_Material_Condition, Least_Material_Condition, Regardless_Of_Feature_Size ); END_TYPE;
TYPE Linear_Geometry_Constraint_Element = SELECT ( Line, Plane, Direction, Vector ); END_TYPE;
TYPE Link_Or_Shape_Representation = SELECT ( Kinematic_Link_Representation, Shape_Representation ); 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 Location_In_Aggregate_Item = LIST [1 : ?] OF Integer_Representation_Item; END_TYPE;
TYPE Location_Of_Extreme_Value_Select = SELECT ( Inspected_Shape_Element_Select, B_Spline_Surface_Knot_Locator, B_Spline_Curve_Knot_Locator, B_Spline_Curve_Segment, B_Spline_Surface_Strip, B_Spline_Surface_Patch, Composite_Curve_Transition_Locator, Rectangular_Composite_Surface_Transition_Locator, Boundary_Curve_Of_B_Spline_Or_Rectangular_Composite_Surface, Oriented_Edge, Face_Bound, Point_On_Edge_Curve, Point_On_Face_Surface, Subedge, Subface ); 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_Simple_Atom, Maths_Enum_Atom ); END_TYPE;
TYPE Maths_Binary = BINARY; END_TYPE;
TYPE Maths_Boolean = BOOLEAN; END_TYPE;
TYPE Maths_Enum_Atom = SELECT ( Elementary_Space_Enumerators, Ordering_Type, Lower_Upper, Symmetry_Type, Elementary_Function_Enumerators, Open_Closed, Space_Constraint_Type, Repackage_Options, Extension_Options ); END_TYPE;
TYPE Maths_Expression = SELECT ( Atom_Based_Value, Maths_Tuple, Generic_Expression ); END_TYPE;
TYPE Maths_Function_Select = SELECT ( Maths_Function, Elementary_Function_Enumerators ); 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_Number, Maths_Real, Maths_Integer, Maths_Logical, Maths_Boolean, Maths_String, Maths_Binary ); END_TYPE;
TYPE Maths_Space_Or_Function = SELECT ( Maths_Space, Maths_Function ); 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 Matrix_Property_Type = SELECT ( Enumerated_Matrix_Property_Type, Application_Defined_Matrix_Property_Type ); END_TYPE;
TYPE Matrix_Symmetry = ENUMERATION OF ( Symmetric, Diagonal ); END_TYPE;
TYPE Mbna_Bc_Type = SELECT ( Mbna_Bc_Type_Compound, Mbna_Bc_Type_Simple ); END_TYPE;
TYPE Mbna_Bc_Type_Compound = ENUMERATION OF ( Application_Defined, Bc_Farfield, Bc_Inflow, Bc_Outflow, Unspecified ); END_TYPE;
TYPE Mbna_Bc_Type_Simple = ENUMERATION OF ( Application_Defined, Bc_Axissymmetric_Wedge, Bc_Degenerate_Line, Bc_Degenerate_Point, Bc_Dirichlet, Bc_Extrapolate, Bc_General, Bc_Inflow_Subsonic, Bc_Inflow_Supersonic, Bc_Neumann, Bc_Outflow_Subsonic, Bc_Outflow_Supersonic, Bc_Symmetry_Plane, Bc_Symmetry_Polar, Bc_Tunnel_Inflow, Bc_Tunnel_Outflow, Bc_Wall, Bc_Wall_Inviscid, Bc_Wall_Viscous, Bc_Wall_Viscous_Heat_Flux, Bc_Wall_Viscous_Isothermal, Unspecified ); END_TYPE;
TYPE Mbna_Behaviour_Models = SELECT ( Thermal_Conductivity_Model ); END_TYPE;
TYPE Mbna_Governing_Equation_Type = ENUMERATION OF ( Application_Defined, Euler, Full_Potential, Ns_Laminar, Ns_Laminar_Incompressible, Ns_Turbulent, Ns_Turbulent_Incompressible, Unspecified ); END_TYPE;
TYPE Measure_Or_Unspecified_Value = SELECT ( Context_Dependent_Measure, Unspecified_Value ); END_TYPE;
TYPE Measure_Value = SELECT ( Absorbed_Dose_Measure, Dose_Equivalent_Measure, Radioactivity_Measure, Acceleration_Measure, Amount_Of_Substance_Measure, Area_Measure, Celsius_Temperature_Measure, Context_Dependent_Measure, Count_Measure, Descriptive_Measure, Capacitance_Measure, Electric_Charge_Measure, Conductance_Measure, Electric_Current_Measure, Electric_Potential_Measure, Energy_Measure, Magnetic_Flux_Density_Measure, Force_Measure, Frequency_Measure, Illuminance_Measure, Inductance_Measure, Length_Measure, Luminous_Flux_Measure, Luminous_Intensity_Measure, Magnetic_Flux_Measure, Mass_Measure, Numeric_Measure, Non_Negative_Length_Measure, Parameter_Value, Plane_Angle_Measure, Positive_Length_Measure, Positive_Plane_Angle_Measure, Positive_Ratio_Measure, Power_Measure, Pressure_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_Ratio_Pair, Plane_Angle_And_Length_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 Mesh_Location = ENUMERATION OF ( Application_Defined, Cell_Centre, Edge_Centre, Face_Centre, Iface_Centre, Jface_Centre, Kface_Centre, Unspecified, Vertices ); END_TYPE;
TYPE Mesh_Maths_Space_Type = ENUMERATION OF ( Cells, Vertices ); END_TYPE;
TYPE Message = STRING; END_TYPE;
TYPE Message_Level = ENUMERATION OF ( Error, Warning, Note ); END_TYPE;
TYPE Minute_In_Hour = INTEGER; WHERE wr1: ( ( 0 <= SELF ) AND ( SELF <= 59 ) ); END_TYPE;
TYPE Mismatched_Region_Type = ENUMERATION OF ( Abutting, Overset ); END_TYPE;
TYPE Model_Or_Control_Element = SELECT ( Element_Representation, Constraint_Element ); END_TYPE;
TYPE Month_In_Year_Number = INTEGER; WHERE wr1: ( ( 1 <= SELF ) AND ( SELF <= 12 ) ); END_TYPE;
TYPE Multi_Language_Attribute_Item = SELECT ( Action, Action_Directive, Action_Method, Action_Property, Action_Relationship, Actuated_Kinematic_Pair, Alternate_Product_Relationship, Application_Context, Applied_Certification_Assignment, Applied_Document_Reference, Applied_Document_Usage_Constraint_Assignment, Applied_External_Identification_Assignment, Applied_Identification_Assignment, Applied_Organizational_Project_Assignment, Approval, Approval_Relationship, Approval_Status, Assembly_Component_Usage_Substitute, Attribute_Value_Assignment, Certification, Certification_Type, Colour, Configuration_Design, Configuration_Item, Contract, Data_Environment, Date_Role, Date_Time_Role, Descriptive_Representation_Item, Document_Relationship, Document_Usage_Role, Draughting_Title, Effectivity, Effectivity_Relationship, Event_Occurrence, External_Source, General_Property, General_Property_Relationship, Geometric_Representation_Item, Geometric_Tolerance, Group, Group_Relationship, Identification_Role, Information_Right, Information_Usage_Right, Kinematic_Pair, Make_From_Usage_Option, Mapped_Item, Name_Assignment, Object_Role, Organization_Relationship, Organization_Role, Organizational_Project, Organizational_Project_Relationship, Organizational_Project_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_Related_Product_Category, Property_Definition, Property_Definition_Relationship, Representation, Representation_Relationship, Requirement_For_Action_Resource, Resource_Property, Resource_Requirement_Type, Security_Classification, Security_Classification_Assignment, Shape_Aspect, Shape_Aspect_Relationship, Shape_Representation, Styled_Item, Time_Interval_Role, Topological_Representation_Item, Uncertainty_Measure_With_Unit, Uncertainty_Qualifier, Usage_Association, 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 ( Assembly_Component_Usage, External_Class_Library, Group, Group_Relationship, Product, Product_Definition ); END_TYPE;
TYPE Node_Or_Node_Group = SELECT ( Node_Representation, Node_Group ); END_TYPE;
TYPE Node_Output_Reference = SELECT ( Node_Representation, Node_Group, Substructure_Node_Reference, Analysis_Item_Within_Representation ); END_TYPE;
TYPE Non_Negative_Length_Measure = Length_Measure; WHERE wr1: ( SELF >= 0 ); 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_Classification_Assignment, Applied_Identification_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Approval, Approval_Status, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Data_Quality_Definition, Document_File, Document_Type, Draughting_Model, Drawing_Revision, Effectivity, Event_Occurrence, Executed_Action, General_Property, Information_Usage_Right, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organization, Organization_Relationship, Organizational_Project, 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, Rule_Action, Security_Classification, Security_Classification_Level, Shape_Representation, Versioned_Action_Request ); END_TYPE;
TYPE Orientation_Basis_Select = SELECT ( Axis2_Placement_3d, Min_And_Major_Ply_Orientation_Basis ); END_TYPE;
TYPE Orthotropic_Symmetric_Tensor2_3d = ARRAY [1 : 3] OF Context_Dependent_Measure; 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_Classification_Assignment, Applied_Identification_Assignment, Applied_Organization_Assignment, Applied_Person_And_Organization_Assignment, Applied_Security_Classification_Assignment, Approval, Approval_Status, Assembly_Component_Usage_Substitute, Certification, Class, Class_System, Configuration_Design, Configuration_Effectivity, Configuration_Item, Configured_Effectivity_Assignment, Contract, Data_Quality_Definition, Document_File, Document_Type, Draughting_Model, Drawing_Revision, Event_Occurrence, Executed_Action, General_Property, Information_Usage_Right, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organization, Organization_Relationship, Organizational_Project, 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, Rule_Action, Security_Classification, Security_Classification_Level, Shape_Representation, Versioned_Action_Request ); END_TYPE;
TYPE Person_Organization_Select = SELECT ( Person, Organization, Person_And_Organization ); END_TYPE;
TYPE Picture_Representation_Item_Select = SELECT ( Styled_Item, Planar_Box, Axis2_Placement_2d ); 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_2d_Element_Purpose = SELECT ( Enumerated_Plane_2d_Element_Purpose, Application_Defined_Element_Purpose ); END_TYPE;
TYPE Plane_Angle_Measure = REAL; END_TYPE;
TYPE Plane_Or_Planar_Box = SELECT ( Plane, Planar_Box ); END_TYPE;
TYPE Point_And_Vector_Member = SELECT ( Point, Direction ); END_TYPE;
TYPE Point_And_Vector_Members = LIST [2 : 3] OF Point_And_Vector_Member; END_TYPE;
TYPE Point_Curve_Or_Surface_Constraint_Element = SELECT ( Point, Curve, Surface ); END_TYPE;
TYPE Point_Path_Members = LIST [1 : ?] OF Point_And_Vector; END_TYPE;
TYPE Point_Placement_Shape_Representation_Item = SELECT ( Compound_Representation_Item, Mapped_Item, Axis2_Placement_3d ); 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 ); END_TYPE;
TYPE Positive_Plane_Angle_Measure = Plane_Angle_Measure; WHERE wr1: ( SELF > 0 ); END_TYPE;
TYPE Positive_Ratio_Measure = Ratio_Measure; WHERE wr1: ( SELF > 0 ); END_TYPE;
TYPE Power_Measure = REAL; END_TYPE;
TYPE Preferred_Ordering = ENUMERATION OF ( Extremity_Order, 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 ( Presentation_View, Presentation_Area, Area_In_Set ); END_TYPE;
TYPE Presentation_Style_Select = SELECT ( Point_Style, Curve_Style, Surface_Style_Usage, Symbol_Style, Fill_Area_Style, Text_Style, Externally_Defined_Style, Null_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 ( Modify_Element, Delete_Element ); 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_Definition, Product_Definition_Usage ); END_TYPE;
TYPE Product_Definition_Or_Product_Definition_Relationship = SELECT ( Product_Definition, Product_Definition_Usage ); END_TYPE;
TYPE Product_Definition_Or_Reference = SELECT ( Product_Definition, Generic_Product_Definition_Reference ); END_TYPE;
TYPE Product_Or_Formation_Or_Definition = SELECT ( Product, Product_Definition_Formation, Product_Definition ); END_TYPE;
TYPE Product_Space = SELECT ( Uniform_Product_Space, Listed_Product_Space ); END_TYPE;
TYPE Project_Item = SELECT ( Assembly_Component_Usage, Configuration_Item, Executed_Action, Product, Product_Concept, Product_Definition, Product_Definition_Formation ); END_TYPE;
TYPE Property_Distribution_Select = SELECT ( Action_Property, General_Property_Relationship, Model_Property_Distribution, Property_Definition, Resource_Property ); 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, Cylindrical_Surface, Conical_Surface, Spherical_Surface, Right_Circular_Cylinder, Right_Circular_Cone, Sphere ); 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 Represented_Definition = SELECT ( General_Property, Property_Definition, Property_Definition_Relationship, Shape_Aspect, Shape_Aspect_Relationship ); END_TYPE;
TYPE Requirement_Assigned_Item = SELECT ( Assembly_Joint, Configuration_Item, Descriptive_Representation_Item, Product, Product_Class, Product_Definition, Product_Definition_Formation, Product_Definition_Relationship, Representation, Shape_Aspect ); END_TYPE;
TYPE Requirement_Satisfaction_Item = SELECT ( Requirement_Assigned_Item ); END_TYPE;
TYPE Requirement_Source_Item = SELECT ( Characterized_Object, Group, Group_Relationship, Product, Product_Definition, Product_Definition_Formation, Product_Definition_Relationship, Shape_Aspect ); END_TYPE;
TYPE Resistance_Measure = REAL; END_TYPE;
TYPE Reversible_Topology = SELECT ( Reversible_Topology_Item, List_Of_Reversible_Topology_Item, Set_Of_Reversible_Topology_Item ); END_TYPE;
TYPE Reversible_Topology_Item = SELECT ( Edge, Path, Face, Face_Bound, Closed_Shell, Open_Shell ); END_TYPE;
TYPE Riemann_1d_Data_Name = ENUMERATION OF ( Characteristic_Acoustic_Minus, Characteristic_Acoustic_Plus, Characteristic_Entropy, Characteristic_Vorticity1, Characteristic_Vorticity2, Riemann_Invariant_Minus, Riemann_Invariant_Plus ); 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, Document_Reference, Effectivity_Assignment, Group_Assignment, Name_Assignment, Security_Classification_Assignment ); END_TYPE;
TYPE Rule_Superseded_Item = SELECT ( Product_Definition_Formation ); END_TYPE;
TYPE Scalar = Context_Dependent_Measure; END_TYPE;
TYPE Second_In_Minute = REAL; WHERE wr1: ( ( 0 <= SELF ) AND ( SELF < 60 ) ); END_TYPE;
TYPE Security_Classification_Item = SELECT ( Action, Action_Directive, Action_Property, Applied_Action_Assignment, Assembly_Component_Usage, Assembly_Component_Usage_Substitute, Class_System, Configuration_Design, Configuration_Effectivity, Configured_Effectivity_Assignment, Document, Document_File, Draughting_Model, Drawing_Revision, Executed_Action, General_Property, Make_From_Usage_Option, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organizational_Project, Presentation_Area, Product, Product_Concept, Product_Concept_Feature, Product_Concept_Feature_Category, Product_Definition, Product_Definition_Formation, Product_Definition_Relationship, Product_Definition_Usage, Property_Definition, Resource_Property, Shape_Representation, Versioned_Action_Request ); END_TYPE;
TYPE Set_Inner_Area_Boundary = SET [1 : ?] OF Bounded_Primitive_2d; 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_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_Range, Shape_Data_Quality_Value_Limit ); 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_Function = ENUMERATION OF ( Lagrangian_Function, Serendipity_Function, Hermitian_Function, Unspecified_Function ); 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 ( Vertex_Shell, Wire_Shell, Open_Shell, Closed_Shell ); END_TYPE;
TYPE Si_Prefix = ENUMERATION OF ( Exa, Peta, Tera, Giga, Mega, Kilo, Hecto, Deca, Deci, Centi, Milli, Micro, Nano, Pico, Femto, Atto ); END_TYPE;
TYPE Si_Unit_Name = ENUMERATION OF ( Metre, Gram, Second, Ampere, Kelvin, Mole, Candela, Radian, Steradian, Hertz, Newton, Pascal, Joule, Watt, Coulomb, Volt, Farad, Ohm, Siemens, Weber, Tesla, Henry, Degree_Celsius, Lumen, Lux, Becquerel, Gray, Sievert ); END_TYPE;
TYPE 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 ( Positive_Length_Measure, Measure_With_Unit, Descriptive_Measure ); END_TYPE;
TYPE Sketch_Basis_Select = SELECT ( Planar_Curve_Select, Curve_Bounded_Surface, Face_Surface ); END_TYPE;
TYPE Sketch_Element_Select = SELECT ( Curve, Point ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Space_Context_Select = SELECT ( Action, Action_Method, General_Property, Product_Definition, Representation_Item, Shape_Aspect ); END_TYPE;
TYPE Spatial_Rotation = SELECT ( Ypr_Rotation, Rotation_About_Direction ); END_TYPE;
TYPE Spherical_Pair_Select = SELECT ( Spherical_Pair, Spherical_Pair_With_Pin ); END_TYPE;
TYPE Start_Request_Item = SELECT ( Product_Definition_Formation ); 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 Structured_Mesh_Type = ENUMERATION OF ( Pentahedral, Pyramidal, Rectangular, Tetrahedral ); END_TYPE;
TYPE Style_Context_Select = SELECT ( Group, Presentation_Layer_Assignment, Presentation_Set, Representation, Representation_Item, Representation_Relationship ); END_TYPE;
TYPE Styled_Item_Target = SELECT ( Geometric_Representation_Item, Mapped_Item, Representation, Topological_Representation_Item ); 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_Directive, Action, Action_Method ); END_TYPE;
TYPE Surface_2d_Edge = INTEGER; WHERE wr1: ( ( SELF >= 1 ) AND ( SELF <= 2 ) ); END_TYPE;
TYPE Surface_2d_Element_Coordinate_System = SELECT ( Aligned_Surface_2d_Element_Coordinate_System, Parametric_Surface_2d_Element_Coordinate_System ); END_TYPE;
TYPE Surface_2d_Element_Descriptor = SELECT ( Axisymmetric_Surface_2d_Element_Descriptor, Plane_Surface_2d_Element_Descriptor ); END_TYPE;
TYPE Surface_2d_Element_Length_Integration = SELECT ( Element_Integration_Algebraic, Surface_2d_Element_Length_Integration_Rule, Surface_2d_Element_Length_Integration_Explicit ); END_TYPE;
TYPE Surface_2d_Element_Output_Reference = SELECT ( Surface_2d_Element_Representation, Surface_2d_Element_Descriptor, Surface_2d_Element_Group, Surface_2d_Substructure_Element_Reference, Analysis_Item_Within_Representation ); END_TYPE;
TYPE Surface_2d_Element_Representation = SELECT ( Axisymmetric_Surface_2d_Element_Representation, Plane_Surface_2d_Element_Representation ); END_TYPE;
TYPE Surface_2d_Face = INTEGER; WHERE wr1: ( ( SELF >= 1 ) AND ( SELF <= 2 ) ); END_TYPE;
TYPE Surface_2d_State_Coordinate_System = SELECT ( Fea_Axis2_Placement_3d, Surface_2d_Element_Coordinate_System ); END_TYPE;
TYPE Surface_3d_Edge = INTEGER; WHERE wr1: ( ( SELF >= 1 ) AND ( SELF <= 4 ) ); END_TYPE;
TYPE Surface_3d_Element_Coordinate_System = SELECT ( Aligned_Surface_3d_Element_Coordinate_System, Parametric_Surface_3d_Element_Coordinate_System, Constant_Surface_3d_Element_Coordinate_System ); END_TYPE;
TYPE Surface_3d_Element_Field_Integration = SELECT ( Element_Integration_Algebraic, Surface_3d_Element_Field_Integration_Rule, Surface_3d_Element_Field_Integration_Explicit ); END_TYPE;
TYPE Surface_3d_Element_Output_Reference = SELECT ( Surface_3d_Element_Representation, Surface_3d_Element_Descriptor, Surface_3d_Element_Group, Surface_3d_Substructure_Element_Reference, Analysis_Item_Within_Representation ); END_TYPE;
TYPE Surface_3d_Face = INTEGER; WHERE wr1: ( ( SELF >= 1 ) AND ( SELF <= 2 ) ); END_TYPE;
TYPE Surface_3d_State_Coordinate_System = SELECT ( Fea_Axis2_Placement_3d, Surface_3d_Element_Coordinate_System ); END_TYPE;
TYPE Surface_Boundary_Type = ENUMERATION OF ( U_Parameter_Min, V_Parameter_Min, U_Parameter_Max, V_Parameter_Max ); END_TYPE;
TYPE Surface_Element_Purpose = SELECT ( Enumerated_Surface_Element_Purpose, Application_Defined_Element_Purpose ); END_TYPE;
TYPE Surface_Element_Variable = SELECT ( Volume_Variable, Surface_Scalar_Variable, Surface_Vector_2d_Variable, Surface_Vector_3d_Variable, Surface_Tensor2_2d_Variable, Application_Defined_Tensor2_2d_Variable ); END_TYPE;
TYPE Surface_Matrix_Property_Type = SELECT ( Enumerated_Surface_Matrix_Property_Type, Application_Defined_Matrix_Property_Type ); END_TYPE;
TYPE Surface_Model = SELECT ( Face_Based_Surface_Model, Shell_Based_Surface_Model ); END_TYPE;
TYPE Surface_Or_Solid_Model = SELECT ( Surface_Model, Solid_Model ); END_TYPE;
TYPE Surface_Scalar_Variable = ENUMERATION OF ( Thickness, Surface_Thermal_Gradient, Reference_Surface_Thermal_Gradient ); END_TYPE;
TYPE Surface_Section_Integration = SELECT ( Element_Integration_Algebraic, Surface_Section_Integration_Rule, Surface_Section_Integration_Explicit ); END_TYPE;
TYPE Surface_Side = ENUMERATION OF ( Positive, Negative, Both ); END_TYPE;
TYPE Surface_Side_Style_Select = SELECT ( Surface_Side_Style, Pre_Defined_Surface_Side_Style ); END_TYPE;
TYPE Surface_Style_Element_Select = SELECT ( Surface_Style_Fill_Area, Surface_Style_Boundary, Surface_Style_Silhouette, Surface_Style_Segmentation_Curve, Surface_Style_Control_Grid, Surface_Style_Parameter_Line, Surface_Style_Rendering ); END_TYPE;
TYPE Surface_Tensor2_2d_Variable = ENUMERATION OF ( Surface_Membrane_Force, Surface_Membrane_Strain, Surface_Bending_Moment, Surface_Curvature ); END_TYPE;
TYPE Surface_Vector_2d_Variable = ENUMERATION OF ( Surface_Out_Of_Plane_Shear_Force, Surface_Out_Of_Plane_Shear_Strain ); END_TYPE;
TYPE Surface_Vector_3d_Variable = ENUMERATION OF ( Applied_Force_Per_Unit_Area, Applied_Moment_Per_Unit_Area ); END_TYPE;
TYPE Swept_Surface_Or_Solid = SELECT ( Swept_Surface, Swept_Face_Solid, Swept_Area_Solid ); END_TYPE;
TYPE Symbol_Style_Select = SELECT ( Symbol_Colour ); END_TYPE;
TYPE Symmetric_Tensor2_2d = SELECT ( Anisotropic_Symmetric_Tensor2_2d ); END_TYPE;
TYPE Symmetric_Tensor2_3d = SELECT ( Isotropic_Symmetric_Tensor2_3d, Orthotropic_Symmetric_Tensor2_3d, Anisotropic_Symmetric_Tensor2_3d ); END_TYPE;
TYPE Symmetric_Tensor4_2d = SELECT ( Anisotropic_Symmetric_Tensor4_2d ); END_TYPE;
TYPE Symmetric_Tensor4_3d = SELECT ( Anisotropic_Symmetric_Tensor4_3d, Fea_Isotropic_Symmetric_Tensor4_3d, Fea_Iso_Orthotropic_Symmetric_Tensor4_3d, Fea_Transverse_Isotropic_Symmetric_Tensor4_3d, Fea_Column_Normalised_Orthotropic_Symmetric_Tensor4_3d, Fea_Column_Normalised_Monoclinic_Symmetric_Tensor4_3d ); 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 Tensor1_2d = ARRAY [1 : 2] OF Context_Dependent_Measure; END_TYPE;
TYPE Tensor1_3d = ARRAY [1 : 3] OF Context_Dependent_Measure; END_TYPE;
TYPE Tensor_Type = SELECT ( Scalar, Angular_Value, Tensor1_2d, Tensor1_3d, Anisotropic_Symmetric_Tensor2_2d, Isotropic_Symmetric_Tensor2_3d, Orthotropic_Symmetric_Tensor2_3d, Anisotropic_Symmetric_Tensor2_3d, Anisotropic_Symmetric_Tensor4_2d, Anisotropic_Symmetric_Tensor4_3d, Fea_Isotropic_Symmetric_Tensor4_3d, Fea_Iso_Orthotropic_Symmetric_Tensor4_3d, Fea_Transverse_Isotropic_Symmetric_Tensor4_3d, Fea_Column_Normalised_Orthotropic_Symmetric_Tensor4_3d, Fea_Column_Normalised_Monoclinic_Symmetric_Tensor4_3d ); END_TYPE;
TYPE Tessellated_Edge_Or_Vertex = SELECT ( Tessellated_Edge, Tessellated_Vertex ); END_TYPE;
TYPE Text = STRING; END_TYPE;
TYPE Text_Alignment = Label; END_TYPE;
TYPE Text_Delineation = Label; END_TYPE;
TYPE Text_Or_Character = SELECT ( Annotation_Text, Annotation_Text_Character, Defined_Character_Glyph, Composite_Text, Text_Literal ); END_TYPE;
TYPE Text_Path = ENUMERATION OF ( Left, Right, Up, Down ); END_TYPE;
TYPE Text_String_Representation_Item = SELECT ( Text_Literal, Annotation_Text, Annotation_Text_Character, Defined_Character_Glyph, Composite_Text, Axis2_Placement ); END_TYPE;
TYPE Thermal_Conductivity_Model_Data_Name = ENUMERATION OF ( Constant_Prandtl, Power_Law_Exponent, Sutherland_Constant_Conductivity, Temperature_Reference, Thermal_Conductivity_Reference ); END_TYPE;
TYPE Thermal_Conductivity_Model_Type = ENUMERATION OF ( Application_Defined, Constant_Prandtl, Independent, Power_Law, Sutherland_Law, Unspecified ); 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, 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, Executed_Action, General_Property, Material_Designation, Mechanical_Design_Geometric_Presentation_Representation, Organization_Relationship, Organizational_Project, 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, 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_Zone_Target = SELECT ( Dimensional_Location, Dimensional_Size, Geometric_Tolerance, General_Datum_Reference ); END_TYPE;
TYPE Transformation = SELECT ( Item_Defined_Transformation, Functionally_Defined_Transformation ); END_TYPE;
TYPE Transition_Code = ENUMERATION OF ( Discontinuous, Continuous, Cont_Same_Gradient, Cont_Same_Gradient_Same_Curvature ); END_TYPE;
TYPE Trim_Condition_Select = SELECT ( Length_Measure, Plane_Angle_Measure, Generalized_Surface_Select, 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 ( Product_Space, (* next line added as patch for BZ#5023 *) Mesh_Derived_Maths_Space, Extended_Tuple_Space ); END_TYPE;
TYPE Turbulence_Closure_Data_Name = ENUMERATION OF ( Eddy_Viscosity, Prandtl_Turbulent ); END_TYPE;
TYPE Turbulence_Closure_Type = ENUMERATION OF ( Application_Defined, Eddy_Viscosity, Reynolds_Stress, Reynolds_Stress_Algebraic, Unspecified ); END_TYPE;
TYPE Turbulence_Model_Data_Name = ENUMERATION OF ( Turbulent_Bb_Reynolds, Turbulent_Dissipation, Turbulent_Dissipation_Rate, Turbulent_Distance, Turbulent_Energy_Kinetic, Turbulent_Sa_Cb1, Turbulent_Sa_Cb2, Turbulent_Sa_Chi, Turbulent_Sa_Ct1, Turbulent_Sa_Ct2, Turbulent_Sa_Ct3, Turbulent_Sa_Ct4, Turbulent_Sa_Cv1, Turbulent_Sa_Cw1, Turbulent_Sa_Cw2, Turbulent_Sa_Cw3, Turbulent_Sa_Kappa, Turbulent_Sa_Nu_Tilde, Turbulent_Sa_Sigma ); END_TYPE;
TYPE Turbulence_Model_Type = ENUMERATION OF ( Algebraic_Baldwin_Lomax, Algebraic_Cebeci_Smith, Application_Defined, Half_Equation_Johnson_King, One_Equation_Baldwin_Barth, One_Equation_Spalart_Allmaras, Two_Equation_Jones_Launder, Two_Equation_Menter_Sst, Two_Equation_Wilcox, Unspecified ); 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 Unspecified_Value = ENUMERATION OF ( Unspecified ); 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 Value_Format_Type = Identifier; WHERE wr1: ( LENGTH( SELF ) <= 80 ); END_TYPE;
TYPE Value_Qualifier = SELECT ( 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 Viscosity_Model_Data_Name = ENUMERATION OF ( Sutherland_Constant_Viscosity, Viscosity_Molecular_Reference ); END_TYPE;
TYPE Viscosity_Model_Type = ENUMERATION OF ( Application_Defined, Constant_Viscosity, Power_Law, Sutherland_Law, Unspecified ); END_TYPE;
TYPE Volume_2d_Edge = INTEGER; WHERE wr1: ( ( SELF >= 1 ) AND ( SELF <= 4 ) ); END_TYPE;
TYPE Volume_2d_Element_Coordinate_System = SELECT ( Arbitrary_Volume_2d_Element_Coordinate_System, Parametric_Volume_2d_Element_Coordinate_System ); END_TYPE;
TYPE Volume_2d_Element_Descriptor = SELECT ( Axisymmetric_Volume_2d_Element_Descriptor, Plane_Volume_2d_Element_Descriptor ); END_TYPE;
TYPE Volume_2d_Element_Field_Integration = SELECT ( Element_Integration_Algebraic, Volume_2d_Element_Field_Integration_Rule, Volume_2d_Element_Field_Integration_Explicit ); END_TYPE;
TYPE Volume_2d_Element_Output_Reference = SELECT ( Volume_2d_Element_Representation, Volume_2d_Element_Descriptor, Volume_2d_Element_Group, Volume_2d_Substructure_Element_Reference, Analysis_Item_Within_Representation ); END_TYPE;
TYPE Volume_2d_Element_Representation = SELECT ( Axisymmetric_Volume_2d_Element_Representation, Plane_Volume_2d_Element_Representation ); END_TYPE;
TYPE Volume_2d_Face = INTEGER; WHERE wr1: ( ( SELF >= 1 ) AND ( SELF <= 4 ) ); END_TYPE;
TYPE Volume_3d_Edge = INTEGER; WHERE wr1: ( ( SELF >= 1 ) AND ( SELF <= 12 ) ); END_TYPE;
TYPE Volume_3d_Element_Coordinate_System = SELECT ( Arbitrary_Volume_3d_Element_Coordinate_System, Parametric_Volume_3d_Element_Coordinate_System ); END_TYPE;
TYPE Volume_3d_Element_Field_Integration = SELECT ( Element_Integration_Algebraic, Volume_3d_Element_Field_Integration_Rule, Volume_3d_Element_Field_Integration_Explicit ); END_TYPE;
TYPE Volume_3d_Element_Output_Reference = SELECT ( Volume_3d_Element_Representation, Volume_3d_Element_Descriptor, Volume_3d_Element_Group, Volume_3d_Substructure_Element_Reference, Analysis_Item_Within_Representation ); END_TYPE;
TYPE Volume_3d_Element_Shape = ENUMERATION OF ( Hexahedron, Wedge, Tetrahedron, Pyramid ); END_TYPE;
TYPE Volume_3d_Face = INTEGER; WHERE wr1: ( ( SELF >= 1 ) AND ( SELF <= 6 ) ); END_TYPE;
TYPE Volume_Aggregated_Variable = SELECT ( Aggregated_Scalar_Variable, Aggregated_Angular_Variable, Aggregated_Vector_3d_Variable, Aggregated_Tensor2_3d_Variable, Application_Defined_Scalar_Variable, Application_Defined_Vector_3d_Variable, Application_Defined_Tensor2_3d_Variable ); END_TYPE;
TYPE Volume_Angular_Variable = ENUMERATION OF ( Constant_Angular_Acceleration, Application_Defined_Angular_Scalar_Variable ); END_TYPE;
TYPE Volume_Element_Purpose = SELECT ( Enumerated_Volume_Element_Purpose, Application_Defined_Element_Purpose ); END_TYPE;
TYPE Volume_Measure = REAL; END_TYPE;
TYPE Volume_Scalar_Variable = ENUMERATION OF ( Temperature, Moisture, Reference_Temperature, Strain_Energy_Per_Unit_Volume ); END_TYPE;
TYPE Volume_Tensor2_3d_Variable = ENUMERATION OF ( Total_Strain, Stress ); END_TYPE;
TYPE Volume_Variable = SELECT ( Volume_Scalar_Variable, Volume_Angular_Variable, Volume_Vector_3d_Variable, Volume_Tensor2_3d_Variable, Application_Defined_Scalar_Variable, Application_Defined_Vector_3d_Variable, Application_Defined_Tensor2_3d_Variable ); END_TYPE;
TYPE Volume_Vector_3d_Variable = ENUMERATION OF ( Position, Applied_Force_Per_Unit_Volume, Applied_Moment_Per_Unit_Volume, Displacement, Infinitesimal_Rotation, Acceleration ); END_TYPE;
TYPE Week_In_Year_Number = INTEGER; WHERE wr1: ( ( 1 <= SELF ) AND ( 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;
(* The following two ENTITIYs have been added to address Bug 5012 for the initial ed2 version until they can properly be added to the consituent modules *) ENTITY Defined_Maths_Space_Context SUBTYPE OF (Maths_Space_Context); END_ENTITY;
ENTITY Representation_Context_Defined_Maths_Space_Context SUBTYPE OF (Defined_Maths_Space_Context); representation_basis : Representation_Context; END_ENTITY;
(* End of added ENTITYs. KAH April 28, 2014*) (* The following seven ENTITYs have been added to address Bug 5057 for the initial ed2 version until they can properly be added to the constituent modules. *) 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 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 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 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 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 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 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;
(* End of added ENTITYs. JH 2014-05-22 *) 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, -2, 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= 1 ); END_ENTITY;
ENTITY Action_Assignment ABSTRACT SUPERTYPE; assigned_action : Action; DERIVE role : Object_Role := Get_Role( SELF ); WHERE wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE' ) ) <= 1 ); END_ENTITY;
ENTITY Action_Directive; name : Label; description : OPTIONAL Text; analysis : Text; comment : Text; requests : SET [1 : ?] OF Versioned_Action_Request; END_ENTITY;
ENTITY Action_Method; name : Label; description : OPTIONAL Text; consequence : Text; purpose : Text; END_ENTITY;
ENTITY Action_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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 Action_View_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; discretised_model : Discretised_Action_Model_Select; idealised_action : Idealised_Action_Select; 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 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SOLID_BREP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SOLID_BREP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3: ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ADVANCED_FACE' IN TYPEOF( fcs ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\Manifold_Solid_Brep.outer ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' ] * TYPEOF( face_geometry ) ) = 1 ); wr2 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe\Oriented_Edge.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr3 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' ] * TYPEOF( oe.edge_element\Edge_Curve. edge_geometry ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe\Edge.edge_start ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( oe\Edge.edge_start\Vertex_Point. vertex_geometry ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe\Edge. edge_end ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( oe\Edge. edge_end\Vertex_Point.vertex_geometry ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_PATH' IN TYPEOF( elp_fbnds.bound ) ) ) ) = 0 ); wr6 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( face_geometry ) ) ) OR ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] * TYPEOF( face_geometry\ Swept_Surface.swept_curve ) ) = 1 ) ); wr7 : ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VERTEX_POINT' IN TYPEOF( vlp_fbnds\Face_Bound.bound\Vertex_Loop.loop_vertex ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnd.bound ) ) = 1 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( sc_ag ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( face_geometry ) ) ) OR ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Aligned_Axis_Tolerance; model_ref : Fea_Model; tolerance : Context_Dependent_Measure; END_ENTITY;
ENTITY Aligned_Curve_3d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); coordinate_system : Fea_Axis2_Placement_3d; END_ENTITY;
ENTITY Aligned_Surface_2d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); orientation : Direction; WHERE wr1: ( SELF\Geometric_Representation_Item.dim = 2 ); END_ENTITY;
ENTITY Aligned_Surface_3d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); coordinate_system : Fea_Axis2_Placement_3d; 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 Amount_Of_Substance_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 0 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 1 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 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_Item_Within_Representation; name : Label; description : Text; item : Representation_Item; rep : Representation; WHERE wr1: ( SIZEOF( QUERY ( tmp <* Using_Representations( item ) | ( tmp :=: rep ) ) ) = 1 ); END_ENTITY;
ENTITY Analysis_Message SUPERTYPE OF ( ONEOF ( Whole_Model_Analysis_Message, Element_Analysis_Message, Node_Analysis_Message, Element_Group_Analysis_Message ) ) SUBTYPE OF ( State_Definition ); level : Message_Level; message_text : Text; 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 Analysis_Step SUPERTYPE OF ( ONEOF ( Control_Analysis_Step, Result_Analysis_Step ) ); analysis_control : Control; 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_PATH' IN TYPEOF( related_representation_item ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MIN_AND_MAJOR_PLY_ORIENTATION_BASIS' IN TYPEOF( relating_representation_item ) ) ) OR ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_PATH' IN TYPEOF( related_representation_item ) ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( Dimension_Curve, 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 <* SELF.boundaries | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' IN TYPEOF( Curve ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE' IN TYPEOF( Curve ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF( Curve ) ) AND ( Curve\ B_Spline_Curve.closed_curve = TRUE ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE' IN TYPEOF( Curve ) ) AND ( Curve\Composite_Curve.closed_curve = TRUE ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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, Tessellated_Annotation_Occurrence ) ) SUBTYPE OF ( Styled_Item ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF ) ); wr2: ( SIZEOF( QUERY ( reps <* Using_Representations( SELF ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_FILL_AREA_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANAR_BOX' ) IN TYPEOF( SELF\Styled_Item.item ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( SELF\Styled_Item. item\Planar_Box.Placement ) ) ); wr3: ( ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANAR_BOX' ) IN TYPEOF( SELF\Styled_Item.item ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE' ) IN TYPEOF( SELF\Styled_Item.styles[ 1]\Presentation_Style_Assignment.styles[1] ) ) ) OR ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE' ) IN TYPEOF( SELF\Styled_Item.item ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NULL_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) = 0 ); wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( SELF.item ) ); wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_STRING_REPRESENTATION' IN TYPEOF( SELF\Mapped_Item. mapping_source.mapped_representation ) ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTER_GLYPH_SYMBOL' IN TYPEOF( SELF\Mapped_Item. mapping_source.mapped_representation ) ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 SUPERTYPE OF ( ONEOF ( Mesh_Function, Mesh_Function_Basis ) ) 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( SELF.of_shape ) ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( ( 2 <= SIZEOF( impl_rep.used_representation.items ) ) AND ( SIZEOF( impl_rep. used_representation.items ) <= 3 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'effective length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) <= 1 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'maximum length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Contract_Assignment SUBTYPE OF ( Contract_Assignment ); items : SET [1 : ?] OF Contract_Item; END_ENTITY;
ENTITY Applied_Date_And_Time_Assignment SUBTYPE OF ( Date_And_Time_Assignment ); items : SET [1 : ?] OF Date_And_Time_Item; END_ENTITY;
ENTITY Applied_Date_Assignment SUBTYPE OF ( Date_Assignment ); items : SET [1 : ?] OF Date_Item; END_ENTITY;
ENTITY Applied_Document_Reference SUBTYPE OF ( Document_Reference ); items : SET [1 : ?] OF Document_Reference_Item; END_ENTITY;
ENTITY Applied_Document_Usage_Constraint_Assignment SUBTYPE OF ( Document_Usage_Constraint_Assignment ); items : SET [1 : ?] OF Document_Reference_Item; END_ENTITY;
ENTITY Applied_Effectivity_Assignment SUBTYPE OF ( Effectivity_Assignment ); items : SET [1 : ?] OF Effectivity_Item; END_ENTITY;
ENTITY Applied_Event_Occurrence_Assignment SUBTYPE OF ( Event_Occurrence_Assignment ); items : SET [1 : ?] OF Event_Occurrence_Item; END_ENTITY;
ENTITY Applied_External_Identification_Assignment SUBTYPE OF ( External_Identification_Assignment ); items : SET [1 : ?] OF External_Identification_Item; END_ENTITY;
ENTITY Applied_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOT_EFFECTIVITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SERIAL_NUMBERED_EFFECTIVITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_EFFECTIVITY' ] * TYPEOF( SELF. assigned_effectivity ) ) = 0 ); 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_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_Type_Assignment SUBTYPE OF ( State_Type_Assignment ); 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 ( Applied_Action_Assignment ); SELF\applied_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); END_ENTITY;
ENTITY Approval_Status; name : Label; END_ENTITY;
ENTITY Arbitrary_Volume_2d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); orientation : Direction; WHERE wr1: ( SELF\Geometric_Representation_Item.dim = 2 ); END_ENTITY;
ENTITY Arbitrary_Volume_3d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); coordinate_system : Fea_Axis2_Placement_3d; 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) ); 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_Based_Unstructured_Mesh SUBTYPE OF ( Unstructured_Mesh ); cells : ARRAY [1 : SELF\Unstructured_Mesh.cell_count] OF Vertex_Defined_Cell; WHERE wr1: ( SELF\Mesh.index_count = 1 ); END_ENTITY;
ENTITY Array_Based_Unstructured_Mesh_And_Vertices SUBTYPE OF ( Array_Based_Unstructured_Mesh ); vertex_count : INTEGER; vertices : ARRAY [1 : vertex_count] OF UNIQUE Vertex; WHERE wr1: All_Mesh_Vertices( SELF ); 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 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_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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_GROUP_COMPONENT_DEFINITION_PLACEMENT_LINK' ); END_ENTITY;
ENTITY Assembly_Joint SUBTYPE OF ( Component_Feature_Joint ); WHERE wr1: Acyclic_Shape_Aspect_Relationship( SELF, [SELF\Shape_Aspect_Relationship.related_shape_aspect], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ASSEMBLY_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 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 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, 1] ) ); 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 ) ); END_ENTITY;
ENTITY Axisymmetric_2d_Element_Property; angle : Plane_Angle_Measure; END_ENTITY;
ENTITY Axisymmetric_Curve_2d_Element_Descriptor SUBTYPE OF ( Element_Descriptor ); purpose : SET [1 : ?] OF SET [1 : ?] OF Curve_Element_Purpose; END_ENTITY;
ENTITY Axisymmetric_Curve_2d_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model_2d; element_descriptor : Axisymmetric_Curve_2d_Element_Descriptor; property : Curve_2d_Element_Property; angle_property : Axisymmetric_2d_Element_Property; material : Element_Material; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( model_ref.type_of_2d_analysis = Axisymmetric ); wr2: ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\Property_Definition_Representation. used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) = 1 ) ) ) >= 1 ); wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ Representation.context_of_items ) ); fu1: Required_0d_Nodes( SELF\Element_Representation.node_list ); END_ENTITY;
ENTITY Axisymmetric_Surface_2d_Element_Descriptor SUBTYPE OF ( Element_Descriptor ); purpose : SET [1 : ?] OF SET [1 : ?] OF Surface_Element_Purpose; END_ENTITY;
ENTITY Axisymmetric_Surface_2d_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model_2d; element_descriptor : Axisymmetric_Surface_2d_Element_Descriptor; property : Surface_Element_Property; angle_property : Axisymmetric_2d_Element_Property; material : Element_Material; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( model_ref.type_of_2d_analysis = Axisymmetric ); wr2: ( ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PARAMETRIC_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ALIGNED_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\Property_Definition_Representation. used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_BENDING_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF( item2 ) ) = 1 ) ) ) = 1 ) ) ) >= 1 ); wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ Representation.context_of_items ) ); fu1: Required_1d_Nodes( SELF\Element_Representation.node_list, Element_Descriptor\Element_Descriptor.topology_order ); END_ENTITY;
ENTITY Axisymmetric_Volume_2d_Element_Descriptor SUBTYPE OF ( Element_Descriptor ); purpose : SET [1 : ?] OF SET [1 : ?] OF Volume_Element_Purpose; shape : Element_2d_Shape; END_ENTITY;
ENTITY Axisymmetric_Volume_2d_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model_2d; element_descriptor : Axisymmetric_Volume_2d_Element_Descriptor; angle_property : Axisymmetric_2d_Element_Property; material : Element_Material; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( model_ref.type_of_2d_analysis = Axisymmetric ); wr2: ( ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PARAMETRIC_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ARBITRARY_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\Property_Definition_Representation. used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) = 1 ) ) ) >= 1 ); wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ Representation.context_of_items ) ); fu1: Required_2d_Nodes( SELF\Element_Representation.node_list, Element_Descriptor.shape, Element_Descriptor\ Element_Descriptor.topology_order ); 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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNIFORM_CURVE' IN TYPEOF( SELF ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.QUASI_UNIFORM_CURVE' IN TYPEOF( SELF ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEZIER_CURVE' IN TYPEOF( SELF ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNIFORM_SURFACE' IN TYPEOF( SELF ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.QUASI_UNIFORM_SURFACE' IN TYPEOF( SELF ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEZIER_SURFACE' IN TYPEOF( SELF ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'profile usage' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CIRCULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'profile usage' ) ) ) ) = 1 ) ) ) ) = 1 ); wr3: ( ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( 1 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr.used_representation. items ) <= 2 ) ) ) ) = 1 ) ); wr4: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'profile usage' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'OPEN_PATH_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. name = 'bead end usage' ) AND ( sar.description = 'starting' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. name = 'bead end usage' ) AND ( sar.description = 'ending' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BEAD_END' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); END_ENTITY;
ENTITY Bead_End SUBTYPE OF ( Shape_Aspect ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) ) = 1 ) ) ) ) = 1 ) ); wr7: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'bead end usage' ) AND ( sar.description IN [ 'starting', 'ending'] ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Behavioural_Decomposition_Of_Numerical_Model; parts : SET [2 : ?] OF Numerical_Model; whole : Numerical_Model; END_ENTITY;
ENTITY Behavioural_Decomposition_Of_Temporal_Spatial_Domain; parts : SET [2 : ?] OF Temporal_Spatial_Domain; whole : Temporal_Spatial_Domain; END_ENTITY;
ENTITY Between_Shape_Aspect SUBTYPE OF ( Continuous_Shape_Aspect ); 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 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 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'boss height occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 1 <= SIZEOF( pdr. used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 2 ) ) ) ) = 1 ) ) ) = 1 ); wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'circular profile occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr7 : ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'top condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'boss top usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'rectangular profile occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr12: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr4: ( ( NOT ( SELF.description = 'planar' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr5: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr6: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'boss top usage' ) AND ( sar. name IN [ 'boss height start', 'boss height end'] ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = 'top condition occurrence' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS' IN TYPEOF( fcr. related_shape_aspect.of_shape.definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS_TOP' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) <= 1 ) ) ) ) = 0 ); wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF( SELF\Environment. syntactic_representation ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) ) SUBTYPE OF ( Curve ); END_ENTITY;
ENTITY Bounded_Pcurve SUBTYPE OF ( Pcurve, Bounded_Curve ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE' IN TYPEOF( SELF\Pcurve.reference_to_curve.items[1] ) ); END_ENTITY;
ENTITY Bounded_Surface SUPERTYPE OF ( ONEOF ( B_Spline_Surface, Rectangular_Trimmed_Surface, Curve_Bounded_Surface, Rectangular_Composite_Surface ) ) SUBTYPE OF ( Surface ); END_ENTITY;
ENTITY Bounded_Surface_Curve SUBTYPE OF ( Surface_Curve, Bounded_Curve ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Calculated_State SUBTYPE OF ( State ); 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( SELF\Mapped_Item. mapping_target\Planar_Box.Placement ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ITEM_DEFINED_TRANSFORMATION.' + 'TRANSFORM_ITEM_1' ) ) + SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.MAPPING_ORIGIN' ) ) ) > 0 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Interection_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_Interection_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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 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 ); WHERE wr1: ( scl > 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 Cell SUPERTYPE OF ( ONEOF ( Cell_Of_Structured_Mesh, Vertex_Defined_Cell ) ) SUBTYPE OF ( Topological_Representation_Item ); description : Text; dimension : INTEGER; END_ENTITY;
ENTITY Cell_Of_Structured_Mesh SUBTYPE OF ( Cell ); the_mesh : Structured_Mesh; cell_identifier : ARRAY [1 : index_count] OF INTEGER; DERIVE index_count : INTEGER := the_mesh\Mesh.index_count; END_ENTITY;
ENTITY Cell_With_Explicit_Boundary SUBTYPE OF ( Cell ); boundary : SET [1 : ?] OF Topological_Representation_Item; END_ENTITY;
ENTITY Celsius_Temperature_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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]; SELF\item_identified_representation_usage.used_representation : Representation := nodes[HIINDEX( nodes )]; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CHAMFER_OFFSET' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CHAMFER_OFFSET' IN TYPEOF( fcr.related_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'offset amount' ) ) OR ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CHAMFER' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 <= baseline_ratio ) AND ( baseline_ratio <= 1 ) ); wr2: Item_In_Context( SELF.character_box, SELF\Representation.context_of_items ); wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( SELF.Box_Height ) ); END_ENTITY;
ENTITY Character_Glyph_Symbol_Outline SUBTYPE OF ( Character_Glyph_Symbol ); outlines : SET [1 : ?] OF Annotation_Fill_Area; WHERE wr1: ( SELF.outlines <= SELF\Representation.items ); END_ENTITY;
ENTITY Character_Glyph_Symbol_Stroke SUBTYPE OF ( Character_Glyph_Symbol ); strokes : SET [1 : ?] OF Curve; WHERE wr1: ( SELF.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]; SELF\characterized_item_within_representation.rep : Representation := nodes[HIINDEX( nodes )]; 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 wr1 : item, rep; WHERE wr2: ( rep IN Using_Representations( item ) ); END_ENTITY;
ENTITY Characterized_Object; name : Label; description : OPTIONAL Text; 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. related_shape_aspect ) ) ) ) = 1 ) ) ) <= 3 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'angular spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( i ) ) ) ) ) = 0 ); wr3: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 <= red ) AND ( red <= 1 ) ); wr2: ( ( 0 <= green ) AND ( green <= 1 ) ); wr3: ( ( 0 <= blue ) AND ( blue <= 1 ) ); 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM' IN TYPEOF( sar.related_shape_aspect ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF\ Binary_Generic_Expression.operands[1] ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NUMERIC_EXPRESSION' IN TYPEOF( SELF\Binary_Generic_Expression.operands[2] ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF( SELF\Binary_Generic_Expression .operands[1] ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_EXPRESSION' IN TYPEOF( SELF\ Binary_Generic_Expression.operands[2] ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'STRING_EXPRESSION' IN TYPEOF( SELF\Binary_Generic_Expression.operands[1] ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Mating_Constraint_Condition SUBTYPE OF ( Shape_Aspect ); UNIQUE ur1 : SELF\Shape_Aspect.name, SELF\Shape_Aspect.of_shape; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( SELF\Characterized_Object.description IN [ 'counterbore', 'countersunk'] ); wr2: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROUND_HOLE' IN TYPEOF( sar.related_shape_aspect ) ) ) ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); wr3: ( ( NOT ( SELF\Characterized_Object.description = 'countersunk' ) ) OR ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( sar.related_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( sar. related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr2 <* QUERY ( sar2 <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar2.description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar2 ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 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: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + 'OF_SHAPE' ) | ( ( csa.name = 'compound feature in solid' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) ) = 1 ) ) ) ) = 1 ); wr2: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + 'OF_SHAPE' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) = 1 ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( QUERY ( fcr <* csa.component_relationships | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( fcr ) ) ) ) ) = 0 ) ) ) ) = 1 ) ) ) ) = 1 ); wr4: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + 'OF_SHAPE' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) ) ) = 1 ) ) ) ) = 1 ); wr5: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'THREAD' IN TYPEOF( sar.related_shape_aspect ) ) ) ) = 0 ) ) ) ) = 1 ) ) ) ) = 1 ); wr6: ( SIZEOF( QUERY ( pds <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Path ) 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_3D'] * TYPEOF( cbsr_i ) ) <> 1 ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( cbsr_i <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM'] * TYPEOF( cbsr_i ) ) = 1 ) ) ) > 0 ); wr4: ( SIZEOF( QUERY ( cbsr_i <* SELF.items | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM' ) IN TYPEOF( cbsr_i ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOUND_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Conditional_Concept_Feature SUBTYPE OF ( Product_Concept_Feature ); condition : Concept_Feature_Relationship_With_Condition; END_ENTITY;
ENTITY Conductance_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EFFECTIVITY_CONTEXT_ASSIGNMENT.ASSIGNED_EFFECTIVITY_ASSIGNMENT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); END_ENTITY;
ENTITY Connected_Edge_Set SUBTYPE OF ( Topological_Representation_Item ); ces_edges : SET [1 : ?] OF Edge; END_ENTITY;
ENTITY Connected_Face_Set SUPERTYPE OF ( ONEOF ( Closed_Shell, Open_Shell ) ) SUBTYPE OF ( Topological_Representation_Item ); cfs_faces : SET [1 : ?] OF Face; END_ENTITY;
ENTITY Connected_Face_Sub_Set SUBTYPE OF ( Connected_Face_Set ); parent_face_set : Connected_Face_Set; END_ENTITY;
ENTITY Connection_Zone_Based_Assembly_Joint SUBTYPE OF ( Assembly_Joint ); 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 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 Constant_Surface_3d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); axis : INTEGER; angle : Plane_Angle_Measure; WHERE wr1: ( ( axis >= 1 ) AND ( axis <= 2 ) ); 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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( SELF\ Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation. transform_item_1 ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KINEMATIC_PAIR' IN TYPEOF( SELF\ Representation_Relationship_With_Transformation.transformation_operator ) ); END_ENTITY;
ENTITY Constraint_Element SUPERTYPE OF ( ONEOF ( Single_Point_Constraint_Element, Linear_Constraint_Equation_Element, Nodal_Dof_Reduction, Point_Constraint, Curve_Constraint, Surface_Constraint, Solid_Constraint ) ); element_id : Identifier; steps : SET [1 : ?] OF Control_Analysis_Step; END_ENTITY;
ENTITY Constructive_Geometry_Representation SUBTYPE OF ( Representation ); WHERE wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF. context_of_items ) ) AND ( 2 <= SELF.context_of_items\Geometric_Representation_Context.coordinate_space_dimension ) AND ( SELF.context_of_items\Geometric_Representation_Context.coordinate_space_dimension <= 3 ) ); wr2: ( SIZEOF( QUERY ( cgr_i <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' ] * TYPEOF( cgr_i ) ) <> 1 ) ) ) = 0 ); wr3: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_2' ) ) > 0 ); wr4: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) ) = 0 ); END_ENTITY;
ENTITY Constructive_Geometry_Representation_Relationship SUBTYPE OF ( Representation_Relationship ); SELF\representation_relationship.rep_1 : Constructive_Geometry_Representation_Or_Shape_Represenation; SELF\representation_relationship.rep_2 : Constructive_Geometry_Representation; WHERE wr1: ( ( SELF.rep_1.context_of_items :=: SELF.rep_2.context_of_items ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF.rep_1. context_of_items ) ) ); wr2: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION' ) IN TYPEOF( SELF ) ) ); END_ENTITY;
ENTITY Contact_Ratio_Representation SUBTYPE OF ( Representation ); WHERE wr1: ( ( SIZEOF( SELF.items ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) = 1 ) AND ( i.name = 'ratio value' ) ) ) ) = 1 ) ); wr2: ( ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( pdr\Property_Definition_Representation.name = 'contact ratio reference' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( ( pdr\Property_Definition_Representation.name = 'contact ratio reference' ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION' ) IN TYPEOF( pdr\ Property_Definition_Representation.definition\Property_Definition.definition ) ) ) ) ) = 1 ) ); wr3: ( ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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 <* SELF.style_context | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_ITEM' IN TYPEOF( sc ) ) ) ) = 1 ) OR ( SIZEOF( QUERY ( sc <* SELF.style_context | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( sc ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF( SELF. represented_product_relation.definition ) ); wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); wr3: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Control; model_ref : Fea_Model; control_id : Identifier; creating_software : Text; description : Text; user_defined_control : SET [1 : ?] OF Text; intended_analysis_code : SET [1 : ?] OF Text; UNIQUE ur1 : model_ref, control_id; END_ENTITY;
ENTITY Control_Analysis_Step SUPERTYPE OF ( ONEOF ( Control_Linear_Static_Analysis_Step, Control_Linear_Modes_And_Frequencies_Analysis_Step ) ) SUBTYPE OF ( Analysis_Step ); step_id : Identifier; sequence : INTEGER; initial_state : State; description : Text; UNIQUE ur1 : SELF\Analysis_Step.analysis_control, sequence; ur2 : SELF\Analysis_Step.analysis_control, step_id; END_ENTITY;
ENTITY Control_Linear_Modes_And_Frequencies_Analysis_Step SUBTYPE OF ( Control_Analysis_Step ); process : Control_Linear_Modes_And_Frequencies_Process; number_of_modes : Count_Measure; frequency_range : ARRAY [1 : 2] OF Context_Dependent_Measure; END_ENTITY;
ENTITY Control_Linear_Modes_And_Frequencies_Process SUBTYPE OF ( Control_Process ); final_input_state : State; END_ENTITY;
ENTITY Control_Linear_Static_Analysis_Step SUBTYPE OF ( Control_Analysis_Step ); process : Control_Linear_Static_Load_Increment_Process; END_ENTITY;
ENTITY Control_Linear_Static_Analysis_Step_With_Harmonic SUBTYPE OF ( Control_Linear_Static_Analysis_Step ); symmetry : Cylindrical_Symmetry_Control; END_ENTITY;
ENTITY Control_Linear_Static_Load_Increment_Process SUBTYPE OF ( Control_Process ); final_input_state : State; END_ENTITY;
ENTITY Control_Process SUPERTYPE OF ( ONEOF ( Control_Linear_Static_Load_Increment_Process, Control_Linear_Modes_And_Frequencies_Process ) ); process_id : Identifier; description : Text; END_ENTITY;
ENTITY Control_Result_Relationship; control : Control_Analysis_Step; result : Result_Analysis_Step; 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 Coordinated_Universal_Time_Offset; hour_offset : INTEGER; minute_offset : OPTIONAL INTEGER; sense : Ahead_Or_Behind; DERIVE actual_minute_offset : INTEGER := NVL( minute_offset, 0 ); WHERE wr1: ( ( 0 <= hour_offset ) AND ( hour_offset < 24 ) ); wr2: ( ( 0 <= actual_minute_offset ) AND ( actual_minute_offset <= 59 ) ); wr3: ( NOT ( ( ( hour_offset <> 0 ) OR ( actual_minute_offset <> 0 ) ) AND ( sense = Exact ) ) ); END_ENTITY;
ENTITY 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPOSITIONED_TESSELLATED_ITEM'] * TYPEOF( SELF ) ) = 0 ); END_ENTITY;
ENTITY Cos_Function SUBTYPE OF ( Unary_Function_Call ); 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID'] * TYPEOF( it ) ) = 1 ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CSG_2D_SHAPE_REPRESENTATION' ) IN TYPEOF( it\ Mapped_Item.mapping_source.mapped_representation ) ) ) ) ) ) >= 1 ); wr3: ( SIZEOF( QUERY ( it <* SELF.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REVOLVED_FACE_SOLID' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF( it ) ) <> 1 ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SHAPE_REPRESENTATION' IN TYPEOF( mi\Mapped_Item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( sr <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_REPLICA' IN TYPEOF( it ) ) ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SOLID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REVOLVED_FACE_SOLID' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTRUDED_FACE_SOLID' ] * TYPEOF( sr\Solid_Replica.parent_solid ) ) = 0 ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Currency ABSTRACT SUPERTYPE OF ( ONEOF ( Externally_Defined_Currency, Iso4217_Currency ) ) SUBTYPE OF ( Context_Dependent_Unit ); WHERE wr1: ( ( SELF\Named_Unit.dimensions.length_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 0 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY;
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, Pcurve, Surface_Curve, Offset_Curve_2d, Offset_Curve_3d, Curve_Replica ) ) SUBTYPE OF ( Geometric_Representation_Item ); END_ENTITY;
ENTITY Curve_2d_Element_Basis; descriptor : Curve_2d_Element_Descriptor; variable : Curve_Element_Variable; END_ENTITY;
ENTITY Curve_2d_Element_Constant_Specified_Variable_Value SUBTYPE OF ( Curve_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Surface_Element_Variable; coordinate_system : OPTIONAL Curve_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_2d_Element_Constant_Specified_Volume_Variable_Value SUBTYPE OF ( Curve_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Variable; coordinate_system : OPTIONAL Curve_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_2d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); orientation : Direction; WHERE wr1: ( SELF\Geometric_Representation_Item.dim = 2 ); END_ENTITY;
ENTITY Curve_2d_Element_Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Curve_2d_Element_Location_Point_Volume_Variable_Values, Curve_2d_Element_Location_Point_Variable_Values, Curve_2d_Whole_Element_Variable_Value, Curve_2d_Element_Constant_Specified_Variable_Value, Curve_2d_Element_Constant_Specified_Volume_Variable_Value ) ) SUBTYPE OF ( Field_Variable_Element_Definition ); element : Curve_2d_Element_Output_Reference; END_ENTITY;
ENTITY Curve_2d_Element_Group SUBTYPE OF ( Element_Group ); WHERE wr1: ( SIZEOF( QUERY ( item <* elements | ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXISYMMETRIC_CURVE_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_CURVE_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Curve_2d_Element_Integrated_Matrix; descriptor : Curve_2d_Element_Descriptor; property_type : Curve_Matrix_Property_Type; integration_description : Text; END_ENTITY;
ENTITY Curve_2d_Element_Integrated_Matrix_With_Definition SUBTYPE OF ( Curve_2d_Element_Integrated_Matrix ); integration_definition : Curve_2d_Element_Integration; END_ENTITY;
ENTITY Curve_2d_Element_Integration; section : LIST [1 : ?] OF Curve_Section_Element_Location; END_ENTITY;
ENTITY Curve_2d_Element_Location_Point_Variable_Values SUBTYPE OF ( Curve_2d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Curve_2d_Element_Value_And_Location; variable : Curve_Element_Variable; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_2d_Element_Location_Point_Volume_Variable_Values SUBTYPE OF ( Curve_2d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Curve_2d_Element_Value_And_Volume_Location; variable : Curve_Element_Variable; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_2d_Element_Property; property_id : Identifier; description : Text; section : Curve_Element_Section_Definition; END_ENTITY;
ENTITY Curve_2d_Element_Value_And_Location; simple_value : Field_Value; location : Curve_Section_Element_Location; coordinate_system : OPTIONAL Curve_2d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); END_ENTITY;
ENTITY Curve_2d_Element_Value_And_Volume_Location; simple_value : Field_Value; location : Curve_Volume_Element_Location; coordinate_system : OPTIONAL Curve_2d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); END_ENTITY;
ENTITY Curve_2d_Node_Field_Aggregated_Variable_Values SUBTYPE OF ( Curve_2d_Node_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Curve_2d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_2d_Node_Field_Section_Variable_Values SUBTYPE OF ( Curve_2d_Node_Field_Variable_Definition ); simple_value : Field_Value; variable : Curve_Element_Variable; location : Curve_Section_Element_Location; coordinate_system : OPTIONAL Curve_2d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_2d_Node_Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Curve_2d_Node_Field_Section_Variable_Values, Curve_2d_Node_Field_Aggregated_Variable_Values ) ) SUBTYPE OF ( Field_Variable_Node_Definition ); END_ENTITY;
ENTITY Curve_2d_Substructure_Element_Reference; substructure_element_ref : Substructure_Element_Representation; element_ref : Curve_2d_Element_Representation; END_ENTITY;
ENTITY Curve_2d_Whole_Element_Variable_Value SUBTYPE OF ( Curve_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Curve_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_3d_Element_Basis; descriptor : Curve_3d_Element_Descriptor; variable : Curve_Element_Variable; variable_order : Element_Order; variable_shape_function : Shape_Function; evaluation_points : LIST [1 : ?] OF Curve_Element_Location; END_ENTITY;
ENTITY Curve_3d_Element_Constant_Specified_Variable_Value SUBTYPE OF ( Curve_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Curve_Element_Variable; coordinate_system : OPTIONAL Curve_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_3d_Element_Constant_Specified_Volume_Variable_Value SUBTYPE OF ( Curve_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Variable; coordinate_system : OPTIONAL Curve_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_3d_Element_Descriptor SUBTYPE OF ( Element_Descriptor ); purpose : SET [1 : ?] OF SET [1 : ?] OF Curve_Element_Purpose; END_ENTITY;
ENTITY Curve_3d_Element_Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Curve_3d_Element_Location_Point_Volume_Variable_Values, Curve_3d_Element_Location_Point_Variable_Values, Curve_3d_Whole_Element_Variable_Value, Curve_3d_Element_Constant_Specified_Variable_Value, Curve_3d_Element_Constant_Specified_Volume_Variable_Value, Curve_3d_Element_Nodal_Specified_Variable_Values ) ) SUBTYPE OF ( Field_Variable_Element_Definition ); element : Curve_3d_Element_Output_Reference; END_ENTITY;
ENTITY Curve_3d_Element_Group SUBTYPE OF ( Element_Group ); WHERE wr1: ( SIZEOF( QUERY ( item <* elements | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_3D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Curve_3d_Element_Integrated_Matrix; descriptor : Curve_3d_Element_Descriptor; property_type : Curve_Matrix_Property_Type; integration_description : Text; END_ENTITY;
ENTITY Curve_3d_Element_Integrated_Matrix_With_Definition SUBTYPE OF ( Curve_3d_Element_Integrated_Matrix ); integration_definition : Curve_3d_Element_Integration; END_ENTITY;
ENTITY Curve_3d_Element_Integration; element_length : Curve_3d_Element_Length_Integration; section : Curve_Section_Integration_Explicit; END_ENTITY;
ENTITY Curve_3d_Element_Length_Integration_Explicit; integration_positions_and_weights : SET [1 : ?] OF Curve_3d_Element_Position_Weight; END_ENTITY;
ENTITY Curve_3d_Element_Length_Integration_Rule; integration_method : Integration_Rule; integration_order : INTEGER; END_ENTITY;
ENTITY Curve_3d_Element_Location_Point_Variable_Values SUBTYPE OF ( Curve_3d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Curve_3d_Element_Value_And_Location; variable : Curve_Element_Variable; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_3d_Element_Location_Point_Volume_Variable_Values SUBTYPE OF ( Curve_3d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Curve_3d_Element_Value_And_Volume_Location; variable : Volume_Variable; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_3d_Element_Nodal_Specified_Variable_Values SUBTYPE OF ( Curve_3d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Curve_Element_Variable; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_3d_Element_Position_Weight; integration_position : Curve_Volume_Element_Location; integration_weight : Context_Dependent_Measure; END_ENTITY;
ENTITY Curve_3d_Element_Property; property_id : Identifier; description : Text; interval_definitions : LIST [1 : ?] OF Curve_Element_Interval; end_offsets : ARRAY [1 : 2] OF Curve_Element_End_Offset; end_releases : ARRAY [1 : 2] OF Curve_Element_End_Release; END_ENTITY;
ENTITY Curve_3d_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model_3d; element_descriptor : Curve_3d_Element_Descriptor; property : Curve_3d_Element_Property; material : Element_Material; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ALIGNED_CURVE_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); wr2: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\Property_Definition_Representation. used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) = 1 ) ) ) >= 1 ); wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ Representation.context_of_items ) ); fu1: Required_1d_Nodes( SELF\Element_Representation.node_list, Element_Descriptor\Element_Descriptor.topology_order ); END_ENTITY;
ENTITY Curve_3d_Element_Value_And_Location; simple_value : Field_Value; location : Curve_Element_Location; coordinate_system : OPTIONAL Curve_3d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); END_ENTITY;
ENTITY Curve_3d_Element_Value_And_Volume_Location; simple_value : Field_Value; location : Curve_Volume_Element_Location; coordinate_system : OPTIONAL Curve_3d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); END_ENTITY;
ENTITY Curve_3d_Node_Field_Aggregated_Variable_Values SUBTYPE OF ( Curve_3d_Node_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Curve_3d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_3d_Node_Field_Section_Variable_Values SUBTYPE OF ( Curve_3d_Node_Field_Variable_Definition ); simple_value : Field_Value; variable : Curve_Element_Variable; location : Curve_Section_Element_Location; coordinate_system : OPTIONAL Curve_3d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Curve_3d_Node_Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Curve_3d_Node_Field_Section_Variable_Values, Curve_3d_Node_Field_Aggregated_Variable_Values ) ) SUBTYPE OF ( Field_Variable_Node_Definition ); END_ENTITY;
ENTITY Curve_3d_Substructure_Element_Reference; substructure_element_ref : Substructure_Element_Representation; element_ref : Curve_3d_Element_Representation; END_ENTITY;
ENTITY Curve_3d_Whole_Element_Variable_Value SUBTYPE OF ( Curve_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Curve_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTER_BOUNDARY_CURVE' IN TYPEOF( temp ) ) ) ) = 0 ) ); wr2: ( ( NOT implicit_outer ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_SURFACE' IN TYPEOF( basis_surface ) ) ); wr3: ( SIZEOF( QUERY ( temp <* boundaries | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Constraint SUBTYPE OF ( Constraint_Element ); required_curve : Analysis_Item_Within_Representation; coordinate_system : Fea_Axis2_Placement_3d; freedoms_and_coefficients : SET [1 : ?] OF Freedom_And_Coefficient; description : Text; WHERE wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( required_curve.item ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( required_curve.item ) ) ); 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Element_End_Offset; coordinate_system : Curve_Element_End_Coordinate_System; offset_vector : ARRAY [1 : 3] OF Context_Dependent_Measure; END_ENTITY;
ENTITY Curve_Element_End_Release; coordinate_system : Curve_Element_End_Coordinate_System; releases : LIST [1 : ?] OF Curve_Element_End_Release_Packet; END_ENTITY;
ENTITY Curve_Element_End_Release_Packet; release_freedom : Curve_Element_Freedom; release_stiffness : Context_Dependent_Measure; END_ENTITY;
ENTITY Curve_Element_Interval SUPERTYPE OF ( ONEOF ( Curve_Element_Interval_Constant, Curve_Element_Interval_Linearly_Varying ) ); finish_position : Curve_Element_Location; eu_angles : Euler_Angles; END_ENTITY;
ENTITY Curve_Element_Interval_Constant SUBTYPE OF ( Curve_Element_Interval ); section : Curve_Element_Section_Definition; END_ENTITY;
ENTITY Curve_Element_Interval_Linearly_Varying SUBTYPE OF ( Curve_Element_Interval ); sections : ARRAY [1 : 2] OF Curve_Element_Section_Definition; END_ENTITY;
ENTITY Curve_Element_Location; coordinate : Fea_Parametric_Point; END_ENTITY;
ENTITY Curve_Element_Section_Definition SUPERTYPE OF ( Curve_Element_Section_Derived_Definitions ); description : Text; section_angle : Plane_Angle_Measure; END_ENTITY;
ENTITY Curve_Element_Section_Derived_Definitions SUBTYPE OF ( Curve_Element_Section_Definition ); cross_sectional_area : Context_Dependent_Measure; shear_area : ARRAY [1 : 2] OF Measure_Or_Unspecified_Value; second_moment_of_area : ARRAY [1 : 3] OF Context_Dependent_Measure; torsional_constant : Context_Dependent_Measure; warping_constant : Measure_Or_Unspecified_Value; location_of_centroid : ARRAY [1 : 2] OF Measure_Or_Unspecified_Value; location_of_shear_centre : ARRAY [1 : 2] OF Measure_Or_Unspecified_Value; location_of_non_structural_mass : ARRAY [1 : 2] OF Measure_Or_Unspecified_Value; non_structural_mass : Measure_Or_Unspecified_Value; polar_moment : Measure_Or_Unspecified_Value; END_ENTITY;
ENTITY Curve_Freedom_Action_Definition SUBTYPE OF ( Curve_Freedom_And_Value_Definition ); action : Action_Type; END_ENTITY;
ENTITY Curve_Freedom_And_Value_Definition SUPERTYPE OF ( ONEOF ( Curve_Freedom_Values, Curve_Freedom_Action_Definition ) ) SUBTYPE OF ( State_Definition ); required_curve : Analysis_Item_Within_Representation; coordinate_system : Fea_Axis2_Placement_3d; degrees_of_freedom : Freedoms_List; values : LIST [1 : ?] OF Measure_Or_Unspecified_Value; WHERE wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( required_curve.item ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( required_curve.item ) ) ); END_ENTITY;
ENTITY Curve_Freedom_Values SUBTYPE OF ( Curve_Freedom_And_Value_Definition ); 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_Section_Element_Location; offsets : ARRAY [1 : 2] OF Context_Dependent_Measure; END_ENTITY;
ENTITY Curve_Section_Integration_Explicit; integration_positions : SET [1 : ?] OF Curve_Section_Element_Location; 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SWEPT_AREA_SOLID' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_DISK_SOLID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_AREA_SOLID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_DISK_SOLID' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_CURVE_SWEPT_AREA_SOLID' IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( scsas\ Surface_Curve_Swept_Area_Solid.directrix ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( scsas\Surface_Curve_Swept_Area_Solid.directrix ) ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Curve_Volume_Element_Location; field_location : Curve_Element_Location; section_location : Curve_Section_Element_Location; 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE'] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); 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_Surface SUBTYPE OF ( Elementary_Surface ); radius : Positive_Length_Measure; END_ENTITY;
ENTITY Cylindrical_Symmetry_Control SUBTYPE OF ( Symmetry_Control ); harmonic : Cylindrical_Harmonic_Number; phase : Measure_Or_Unspecified_Value; END_ENTITY;
ENTITY Cylindricity_Tolerance SUBTYPE OF ( Geometric_Tolerance ); WHERE wr1: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN TYPEOF( SELF ) ) ); END_ENTITY;
ENTITY Data_Environment; name : Label; description : Text; elements : SET [1 : ?] OF Property_Definition_Representation; 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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_REPORT_REQUEST.CRITERION_OF_REPORT_REQUEST' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.' + 'ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMMON_DATUM' IN TYPEOF( SELF ) ) XOR ( SIZEOF( QUERY ( X <* SELF\Datum.established_by_relationships | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATUM_FEATURE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_TARGET'] * TYPEOF( X\ Shape_Aspect_Relationship.relating_shape_aspect ) ) = 1 ) ) ) >= 1 ) ); wr2: ( SIZEOF( QUERY ( X <* SELF\Datum.established_by_relationships | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Tolerance_Table SUBTYPE OF ( Representation ); WHERE wr1: ( SIZEOF( QUERY ( i <* SELF.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DEFAULT_TOLERANCE_TABLE_CELL' IN TYPEOF( i ) ) ) ) ) = 0 ); wr2: ( ( SIZEOF( QUERY ( rr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.REP_1' ) | ( rr.name < 'general tolerance definition' ) ) ) = 0 ) AND ( SIZEOF( QUERY ( rr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) | ( ( rr.name = 'general tolerance definition' ) AND ( rr.rep_2.name < 'default tolerance' ) ) ) ) = 0 ) AND ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION.ITEMS' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Representation SUBTYPE OF ( Representation ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) ) ); wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); END_ENTITY;
ENTITY Derived_Unit_Element; unit : Named_Unit; exponent : REAL; END_ENTITY;
ENTITY Description_Attribute; attribute_value : Text; described_item : Description_Attribute_Select; END_ENTITY;
ENTITY Descriptive_Representation_Item 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_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 Dimension_Callout SUBTYPE OF ( Draughting_Callout ); WHERE wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( SIZEOF( QUERY ( dce_1 <* SELF\Draughting_Callout.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'LEADER_CURVE' IN TYPEOF( dce_1 ) ) ) ) = 0 ) ); wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( SIZEOF( QUERY ( dce_1 <* SELF\Draughting_Callout.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROJECTION_CURVE' IN TYPEOF( dce_1 ) ) ) ) = 0 ) ); wr3: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) XOR ( SIZEOF( QUERY ( dce_1 <* SELF\Draughting_Callout.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRUCTURED_DIMENSION_CALLOUT' IN TYPEOF( SELF. relating_draughting_callout ) ); wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'LEADER_DIRECTED_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANGULAR_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_DIMENSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIAMETER_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORDINATE_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RADIUS_DIMENSION' ] ) >= 1 ); wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROJECTION_DIRECTED_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TERMINATOR_SYMBOL.' + 'ANNOTATED_CURVE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CURVE_TERMINATOR' ) IN TYPEOF( dct ) ) ) ) <= 2 ); wr2: ( SIZEOF( QUERY ( dcdc <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT.' + 'CONTENTS' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CURVE_DIRECTED_CALLOUT' ) IN TYPEOF( dcdc ) ) ) ) >= 1 ); wr3: ( ( SIZEOF( QUERY ( dct1 <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TERMINATOR_SYMBOL.' + 'ANNOTATED_CURVE' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TERMINATOR_SYMBOL.' + 'ANNOTATED_CURVE' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANGULAR_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_DIMENSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIAMETER_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORDINATE_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RADIUS_DIMENSION' ] ) = 1 ); wr3: ( SIZEOF( TYPEOF( SELF.related_draughting_callout ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANGULAR_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_DIMENSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIAMETER_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORDINATE_DIMENSION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' IN TYPEOF( SELF\Mapped_Item. mapping_source.mapped_representation ) ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF( SELF\Mapped_Item.mapping_target ) ); wr3: ( SIZEOF( QUERY ( ato <* QUERY ( si <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM.' + 'ITEM' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( si ) ) ) | ( NOT ( SIZEOF( QUERY ( dc <* USEDIN( ato, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= 1 ); END_ENTITY;
ENTITY Dimensional_Size_With_Datum_Feature SUBTYPE OF ( Datum_Feature, Dimensional_Size ); 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_Angle SUBTYPE OF ( Shape_Aspect ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2: ( SIZEOF( QUERY ( pdr <* Get_Shape_Aspect_Property_Definition_Representations( SELF ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( pdr <* Get_Shape_Aspect_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'angle' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Direction SUBTYPE OF ( Geometric_Representation_Item ); direction_ratios : LIST [2 : 3] OF REAL; WHERE wr1: ( SIZEOF( QUERY ( tmp <* direction_ratios | ( tmp <> 0 ) ) ) > 0 ); END_ENTITY;
ENTITY Direction_Node SUBTYPE OF ( Direction ); node_1 : Node_Representation; node_2 : Node_Representation; DERIVE SELF\direction.direction_ratios : LIST [2 : 3] OF REAL := Build_Direction_Node( node_1, node_2 ); WHERE wr1: ( SIZEOF( QUERY ( item <* node_1\Representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CARTESIAN_POINT' IN TYPEOF( item ) ) ) ) = 1 ); wr2: ( SIZEOF( QUERY ( item <* node_2\Representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CARTESIAN_POINT' IN TYPEOF( item ) ) ) ) = 1 ); wr3: ( NOT ( ( direction_ratios[1] = 0 ) AND ( direction_ratios[2] = 0 ) AND ( direction_ratios[3] = 0 ) ) ); END_ENTITY;
ENTITY Direction_Shape_Representation SUBTYPE OF ( Shape_Representation ); WHERE wr1: ( SIZEOF( SELF.items ) = 1 ); wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION' IN TYPEOF( it ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Directionally_Explicit_Element_Coefficient; property_type : Matrix_Property_Type; coefficient : Context_Dependent_Measure; END_ENTITY;
ENTITY Directionally_Explicit_Element_Coordinate_System_Aligned SUBTYPE OF ( Fea_Representation_Item ); aligned_system : Curve_3d_Element_Coordinate_System; END_ENTITY;
ENTITY Directionally_Explicit_Element_Coordinate_System_Arbitrary SUBTYPE OF ( Fea_Representation_Item ); arbitrary_system : Fea_Axis2_Placement_3d; END_ENTITY;
ENTITY Directionally_Explicit_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model; systems_and_freedoms : LIST [2 : 2] OF System_And_Freedom; coefficient : Directionally_Explicit_Element_Coefficient; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE fu1: Required_1d_Nodes( SELF\Element_Representation.node_list, Linear_Order ); END_ENTITY;
ENTITY Disallowed_Assembly_Relationship_Usage SUBTYPE OF ( Externally_Conditioned_Data_Quality_Criterion ); WHERE wr1: Validate_Ecdq_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Distribution_View_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; discretised_model : Discretised_Distribution_Model_Select; idealised_distribution : Idealised_Distribution_Select; 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 ABSTRACT SUPERTYPE; 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'document' ) ) ) = 1 ) ) ); wr3: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'document' ) ) ) = 1 ) ) ); wr4: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Domain_Property; domain : Temporal_Spatial_Domain; property_type : General_Property; END_ENTITY;
ENTITY Dose_Equivalent_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Draughting_Annotation_Occurrence SUBTYPE OF ( Annotation_Occurrence ); WHERE wr1 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) = 0 ) ); wr2 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) = 0 ) ); wr3 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'STYLED_ITEM.ITEM' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_CURVE_OCCURRENCE' ) IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) = 0 ) ); wr4 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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] ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMBOL_STYLE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NULL_STYLE' ] ) = 1 ) ) ) ) ) = 0 ) ); wr5 : ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_SYMBOL_REPRESENTATION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_SUBFIGURE_REPRESENTATION'] * TYPEOF( SELF. item\Mapped_Item.mapping_source.mapped_representation ) ) = 1 ) ); wr6 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( SIZEOF( QUERY ( sty <* SELF.styles | ( NOT ( ( SIZEOF( sty.styles ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_STYLE' IN TYPEOF( sty.styles[1] ) ) ) ) ) ) = 0 ) ); wr7 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) ) OR ( SIZEOF( TYPEOF( SELF.item ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' ] ) = 1 ) ); wr8 : ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( QUERY ( tl <* SELF.item\Composite_Text.collected_text | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( tl ) ) ) ) ) = 0 ) ); wr9 : ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( SELF.item ) ) ) ) OR ( SELF.item\ Text_Literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right'] ) ); wr10: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( QUERY ( tl <* QUERY ( Text <* SELF.item\Composite_Text.collected_text | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( Text ) ) ) | ( NOT ( tl\ Text_Literal.alignment IN [ 'baseline left', 'baseline centre', 'baseline right'] ) ) ) ) = 0 ) ); wr11: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR Check_Text_Alignment( SELF.item ) ); wr12: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR Check_Text_Font( SELF.item ) ); wr13: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( SELF.item ) ) ) ) OR ( SIZEOF( QUERY ( tl <* QUERY ( Text <* SELF.item\Composite_Text.collected_text | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' IN TYPEOF( Text ) ) ) | ( NOT ( SIZEOF( TYPEOF( tl ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TEXT_LITERAL_WITH_BLANKING_BOX', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TEXT_LITERAL_WITH_ASSOCIATED_CURVES'] ) = 0 ) ) ) ) = 0 ) ); wr14: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM.ITEM' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) = 0 ) ); wr15: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( SELF ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM.ITEM' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' IN TYPEOF( si ) ) ) ) > 0 ) ) ) ) = 0 ) ); wr16: ( SIZEOF( QUERY ( cs <* QUERY ( sty <* SELF.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( cs.styles[1]\Curve_Style.curve_width ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( ( SIZEOF( QUERY ( fs <* fas.styles[1]\ Fill_Area_Style.fill_styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILL_AREA_STYLE_TILES' IN TYPEOF( fs ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( fst <* QUERY ( fs <* fas.styles[1]\Fill_Area_Style.fill_styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FILL_AREA_STYLE' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( SIZEOF( QUERY ( fsh <* QUERY ( fs <* fas.styles[1]\ Fill_Area_Style.fill_styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_STYLE' IN TYPEOF( sty.styles[1] ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TEXT_STYLE_WITH_BOX_CHARACTERISTICS' ) IN TYPEOF( ts.styles[1] ) ) ) ) ) = 0 ); wr20: ( SIZEOF( QUERY ( ts <* QUERY ( sty <* SELF.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'LEADER_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'LEADER_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) AND ( SIZEOF( QUERY ( l_1 <* SELF\Draughting_Callout.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) AND ( SIZEOF( QUERY ( l_1 <* SELF\Draughting_Callout.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CURVE' IN TYPEOF( l_1 ) ) ) ) = 0 ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'LEADER_CURVE' IN TYPEOF( con ) ) ) | ( NOT ( SIZEOF( QUERY ( ldc <* USEDIN( l_c, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT.CONTENTS' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' IN TYPEOF( ldc ) ) ) ) <= 1 ) ) ) ) = 0 ); wr2: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' IN TYPEOF( SELF ) ) ) OR ( SIZEOF( QUERY ( con <* SELF.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_CURVE' IN TYPEOF( con ) ) ) ) <= 2 ) ); wr3: ( SIZEOF( QUERY ( rc <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND ( rc.name = 'primary' ) ) ) ) <= 1 ); wr4: ( SIZEOF( QUERY ( rc <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND ( rc.name = 'secondary' ) ) ) ) <= 1 ); wr5: ( SIZEOF( QUERY ( sec <* QUERY ( rc <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_RELATIONSHIP' ) IN TYPEOF( rc ) ) AND ( rc.name = 'secondary' ) ) ) | ( NOT ( SIZEOF( QUERY ( prim <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT_' + 'RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_MODEL' ] * TYPEOF( mi\Mapped_Item.mapping_source. mapped_representation ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( smi <* QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( si\Styled_Item.item ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Pre_Defined_Colour SUBTYPE OF ( Pre_Defined_Colour ); WHERE wr1: ( SELF.name IN [ 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'black', 'white'] ); END_ENTITY;
ENTITY Draughting_Pre_Defined_Curve_Font SUBTYPE OF ( Pre_Defined_Curve_Font ); WHERE wr1: ( SELF.name IN [ 'continuous', 'chain', 'chain double dash', 'dashed', 'dotted'] ); END_ENTITY;
ENTITY Draughting_Pre_Defined_Text_Font SUBTYPE OF ( Pre_Defined_Text_Font ); WHERE wr1: ( SELF.name[1 : 8] = 'ISO 3098' ); 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT'] * TYPEOF( item ) ) = 1 ) ) ) >= 1 ); wr2: ( SIZEOF( QUERY ( srm <* QUERY ( rm <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SYMBOL_REPRESENTATION_MAP' IN TYPEOF( rm ) ) ) | ( NOT ( SIZEOF( QUERY ( a_s <* QUERY ( mi <* srm.map_usage | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL' IN TYPEOF( mi ) ) ) | ( NOT ( SIZEOF( QUERY ( aso <* USEDIN( a_s, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'STYLED_ITEM.ITEM' ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_CURVE_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_SYMBOL_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_FILL_AREA_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_OCCURRENCE' ] ) = 1 ) ) ) >= 1 ); wr2: ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_SUBFIGURE_OCCURRENCE' IN TYPEOF( item ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( rm <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM' IN TYPEOF( item ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF( SELF\ Representation_Relationship.rep_1 ) ); wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_SHEET_REVISION' IN TYPEOF( SELF\Area_In_Set.Area ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAWING_REVISION' IN TYPEOF( SELF\Area_In_Set.in_set ) ) ); END_ENTITY;
ENTITY Dummy_Node SUBTYPE OF ( Node_Representation ); END_ENTITY;
ENTITY Edge SUPERTYPE OF ( ONEOF ( Edge_Curve, Oriented_Edge, Subedge ) ) SUBTYPE OF ( Topological_Representation_Item ); edge_start : Vertex; edge_end : Vertex; END_ENTITY;
ENTITY Edge_Based_Wireframe_Model SUBTYPE OF ( Geometric_Representation_Item ); ebwm_boundary : SET [1 : ?] OF Connected_Edge_Set; END_ENTITY;
ENTITY Edge_Based_Wireframe_Shape_Representation SUBTYPE OF ( Shape_Representation ); WHERE wr1: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) >= 1 ); wr3: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( edges ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( edges.edge_start ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( edges.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( ebwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [] ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 0 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 1 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY;
ENTITY Electric_Potential_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Element_Analysis_Message SUBTYPE OF ( Analysis_Message ); element : Element_Representation; END_ENTITY;
ENTITY Element_Definition SUBTYPE OF ( Shape_Aspect ); END_ENTITY;
ENTITY Element_Descriptor SUPERTYPE OF ( ONEOF ( Volume_3d_Element_Descriptor, Axisymmetric_Volume_2d_Element_Descriptor, Plane_Volume_2d_Element_Descriptor, Surface_3d_Element_Descriptor, Axisymmetric_Surface_2d_Element_Descriptor, Plane_Surface_2d_Element_Descriptor, Curve_3d_Element_Descriptor, Axisymmetric_Curve_2d_Element_Descriptor, Plane_Curve_2d_Element_Descriptor ) ); topology_order : Element_Order; description : Text; END_ENTITY;
ENTITY Element_Geometric_Relationship; element_ref : Element_Or_Element_Group; item : Analysis_Item_Within_Representation; aspect : Element_Aspect; WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); wr2: Consistent_Geometric_Reference( aspect, item.item ); wr3: Consistent_Element_Or_Group_Reference( aspect, element_ref ); END_ENTITY;
ENTITY Element_Group SUBTYPE OF ( Fea_Group ); elements : SET [1 : ?] OF Element_Representation; END_ENTITY;
ENTITY Element_Group_Analysis_Message SUBTYPE OF ( Analysis_Message ); group : Element_Group; END_ENTITY;
ENTITY Element_Material; material_id : Identifier; description : Text; properties : SET [1 : ?] OF Material_Property_Representation; END_ENTITY;
ENTITY Element_Nodal_Freedom_Actions SUBTYPE OF ( State_Definition ); element : Model_Or_Control_Element; nodal_action : LIST [1 : ?] OF Element_Nodal_Freedom_Terms; END_ENTITY;
ENTITY Element_Nodal_Freedom_Terms; coordinate_system : Fea_Axis2_Placement_3d; degrees_of_freedom : Freedoms_List; values : LIST [1 : ?] OF Measure_Or_Unspecified_Value; WHERE wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); END_ENTITY;
ENTITY Element_Representation SUPERTYPE OF ( ONEOF ( Volume_3d_Element_Representation, Axisymmetric_Volume_2d_Element_Representation, Plane_Volume_2d_Element_Representation, Surface_3d_Element_Representation, Axisymmetric_Surface_2d_Element_Representation, Plane_Surface_2d_Element_Representation, Curve_3d_Element_Representation, Axisymmetric_Curve_2d_Element_Representation, Plane_Curve_2d_Element_Representation, Point_Element_Representation, Directionally_Explicit_Element_Representation, Explicit_Element_Representation, Substructure_Element_Representation ) ) SUBTYPE OF ( Representation ); node_list : LIST [1 : ?] OF Node_Representation; WHERE wr1: ( SIZEOF( QUERY ( item <* node_list | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_NODE' ) IN TYPEOF( item ) ) ) ) = 0 ); END_ENTITY;
ENTITY Element_Sequence; order_id : Identifier; control_ref : Control; purpose : Text; elements : LIST [1 : ?] OF Model_Or_Control_Element; UNIQUE ur1 : order_id, control_ref; END_ENTITY;
ENTITY Element_Topological_Relationship; aspect : Element_Aspect; element_ref : Element_Representation; item : Analysis_Item_Within_Representation; WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TOPOLOGICAL_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); wr2: Consistent_Topological_Reference( aspect, item.item ); wr3: Consistent_Element_Reference( aspect, element_ref ); END_ENTITY;
ENTITY Elementary_Brep_Shape_Representation SUBTYPE OF ( Shape_Representation ); WHERE wr1 : ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SOLID_BREP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SOLID_BREP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( csh <* Msb_Shells( msb ) | ( NOT ( SIZEOF( QUERY ( fcs <* csh.cfs_faces | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( fcs ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( fcs\Face_Surface. face_geometry ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_start ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\Manifold_Solid_Brep.outer ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ELEMENTARY_BREP_SHAPE_REPRESENTATION' IN TYPEOF( mi\Mapped_Item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( msb <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\Face_Bound.bound\ Vertex_Loop.loop_vertex ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Elements_Bc SUBTYPE OF ( Mbna_Bc ); elements : LIST OF Vertex_Defined_Cell; END_ENTITY;
ENTITY Ellipse SUBTYPE OF ( Conic ); semi_axis_1 : Positive_Length_Measure; semi_axis_2 : 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_SURFACE'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Euler_Angles; angles : ARRAY [1 : 3] OF Plane_Angle_Measure; 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 Excessive_Use_Of_Groups SUBTYPE OF ( Externally_Conditioned_Data_Quality_Criterion ); WHERE wr1: Validate_Ecdq_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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_Element_Matrix; property_type : Matrix_Property_Type; symmetry : Matrix_Symmetry; node_dof_list : LIST [1 : ?] OF LIST [1 : ?] OF Degree_Of_Freedom; matrix_values : LIST [1 : ?] OF Context_Dependent_Measure; WHERE wr1: ( SIZEOF( matrix_values ) = Number_Of_Terms( node_dof_list, symmetry ) ); END_ENTITY;
ENTITY Explicit_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model; matrix : Explicit_Element_Matrix; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AXIS2_PLACEMENT_3D' ) IN TYPEOF( item ) ) ) ) = 1 ); wr2: ( SIZEOF( matrix.node_dof_list ) = SIZEOF( SELF\Element_Representation.node_list ) ); 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCEDURAL_REPRESENTATION' IN TYPEOF( SELF\ Representation_Relationship.rep_2 ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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 Explicit_Unstructured_Mesh SUBTYPE OF ( Unstructured_Mesh ); explicit_model : Fea_Model; cells : ARRAY [1 : SELF\Unstructured_Mesh.cell_count] OF UNIQUE Element_Representation; 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 ); (* next line replaced by the line thereafter as patch for BZ#5052 base : product_space; *) 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_Source; source_id : Source_Item; DERIVE description : Text := Get_Description_Value( SELF ); WHERE wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION' ) ) = 0 ); wr2: ( SIZEOF( QUERY ( i1 <* Bag_To_Set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN TYPEOF( i1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( i1 <* Bag_To_Set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES' ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 5 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. used_representation.items ) <= 10 ) ) ) ) = 1 ) ) ) = 1 ) ); wr3 : ( ( NOT ( SELF\Characterized_Object.description = 'marking' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied area usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'number of threads' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. name = 'fit class 2' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Extraction_Of_Structured_Submesh SUBTYPE OF ( Extraction_Of_Submesh ); lower_vertex : ARRAY [1 : whole_indices] OF INTEGER; used_indices : ARRAY [1 : part_indices] OF INTEGER; used_senses : ARRAY [1 : part_indices] OF BOOLEAN; DERIVE whole_indices : INTEGER := whole\Mesh.index_count; part_indices : INTEGER := part\Mesh.index_count; WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRUCTURED_MESH' IN TYPEOF( SELF\Extraction_Of_Submesh.whole ) ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRUCTURED_MESH' IN TYPEOF( SELF\Extraction_Of_Submesh.part ) ); END_ENTITY;
ENTITY Extraction_Of_Submesh; whole : Mesh; part : Submesh; END_ENTITY;
ENTITY Extraction_Of_Submesh_By_Cells SUBTYPE OF ( Extraction_Of_Submesh ); cell_count : INTEGER; cells : ARRAY [1 : cell_count] OF Cell; END_ENTITY;
ENTITY Extraction_Of_Submesh_By_Vertices SUBTYPE OF ( Extraction_Of_Submesh ); vertex_count : INTEGER; vertices : ARRAY [1 : vertex_count] OF Vertex; 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); 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 ); 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( first_trim_condition ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( second_trim_condition ) ) ) ); wr2: ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN TYPEOF( first_trim_condition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( it ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF( it ) ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Face_Shape_Representation_Relationship SUBTYPE OF ( Representation_Relationship ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( SELF.rep_1 ) ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( it <* items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3: ( SIZEOF( QUERY ( fbrep <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( fcs ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( fcs\Face_Surface. face_geometry ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_OUTER_BOUND' IN TYPEOF( bnds ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( msb <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SOLID_BREP' IN TYPEOF( it ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ORIENTED_CLOSED_SHELL' IN TYPEOF( msb\Manifold_Solid_Brep.outer ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( brv <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF( mi\Mapped_Item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Fact_Type SUBTYPE OF ( Property_Definition ); END_ENTITY;
ENTITY Fd_Bc SUBTYPE OF ( Mbna_Bc ); SELF\mbna_bc.datasets : SET OF Fd_Bc_Dataset; END_ENTITY;
ENTITY Fd_Bc_Dataset SUBTYPE OF ( Mbna_Bc_Dataset ); SELF\mbna_bc_dataset.the_type : Fd_Bc_Type_Simple; END_ENTITY;
ENTITY Fd_Diffusion_Equation SUBTYPE OF ( Fd_Governing_Equation ); diffusion_model : Fd_Diffusion_Model; END_ENTITY;
ENTITY Fd_Diffusion_Model; terms : ARRAY [1 : diff] OF BOOLEAN; diff : INTEGER; END_ENTITY;
ENTITY Fd_Governing_Equation SUBTYPE OF ( Mbna_Governing_Equation ); SELF\mbna_governing_equation.equation_type : Fd_Governing_Equation_Type; END_ENTITY;
ENTITY Fd_Step SUBTYPE OF ( Mbna_Step ); SELF\mbna_step.equations : SET OF Flow_Equation_Set; SELF\mbna_step.zones : LIST OF Fd_Zone; END_ENTITY;
ENTITY Fd_Zone SUBTYPE OF ( Mbna_Zone ); SELF\mbna_zone.conditions : SET OF Fd_Zone_Bc; SELF\mbna_zone.equations : SET OF Flow_Equation_Set; END_ENTITY;
ENTITY Fd_Zone_Bc SUBTYPE OF ( Mbna_Zone_Bc ); SELF\mbna_zone_bc.conditions : SET OF Fd_Bc; END_ENTITY;
ENTITY Fea_Area_Density SUBTYPE OF ( Fea_Material_Property_Representation_Item ); fea_constant : Scalar; END_ENTITY;
ENTITY Fea_Axis2_Placement_2d SUBTYPE OF ( Axis2_Placement_2d ); system_type : Coordinate_System_Type; description : Text; END_ENTITY;
ENTITY Fea_Axis2_Placement_3d SUBTYPE OF ( Axis2_Placement_3d ); system_type : Coordinate_System_Type; description : Text; END_ENTITY;
ENTITY Fea_Beam_Section_Idealisation_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; idealised : General_Property; idealising : Curve_Element_Section_Definition; END_ENTITY;
ENTITY Fea_Curve_Section_Geometric_Relationship; section_ref : Curve_Element_Section_Definition; item : Analysis_Item_Within_Representation; WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); END_ENTITY;
ENTITY Fea_Group SUPERTYPE OF ( ONEOF ( Element_Group, Node_Group ) ) SUBTYPE OF ( Group ); model_ref : Fea_Model; END_ENTITY;
ENTITY Fea_Group_Relation SUBTYPE OF ( Group_Relationship ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_GROUP' IN TYPEOF( SELF\Group_Relationship.relating_group ) ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_GROUP' IN TYPEOF( SELF\Group_Relationship.related_group ) ); END_ENTITY;
ENTITY Fea_Linear_Elasticity SUBTYPE OF ( Fea_Material_Property_Representation_Item ); fea_constants : Symmetric_Tensor4_3d; END_ENTITY;
ENTITY Fea_Mass_Density SUBTYPE OF ( Fea_Material_Property_Representation_Item ); fea_constant : Scalar; END_ENTITY;
ENTITY Fea_Material_Property_Geometric_Relationship; material_ref : Fea_Material_Property_Representation; item : Analysis_Item_Within_Representation; WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); END_ENTITY;
ENTITY Fea_Material_Property_Representation SUBTYPE OF ( Material_Property_Representation ); WHERE wr1: ( SIZEOF( QUERY ( item <* SELF\Property_Definition_Representation.used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_BENDING_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF( item ) ) = 1 ) ) ) = 1 ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MATERIAL_PROPERTY' IN TYPEOF( SELF\ Property_Definition_Representation.definition ) ); END_ENTITY;
ENTITY Fea_Material_Property_Representation_Item SUPERTYPE OF ( ONEOF ( Fea_Linear_Elasticity, Fea_Mass_Density, Fea_Area_Density, Fea_Tangential_Coefficient_Of_Linear_Thermal_Expansion, Fea_Secant_Coefficient_Of_Linear_Thermal_Expansion, Fea_Moisture_Absorption, Fea_Shell_Membrane_Stiffness, Fea_Shell_Bending_Stiffness, Fea_Shell_Membrane_Bending_Coupling_Stiffness, Fea_Shell_Shear_Stiffness ) ) SUBTYPE OF ( Representation_Item ); END_ENTITY;
ENTITY Fea_Model SUPERTYPE OF ( ONEOF ( Fea_Model_2d, Fea_Model_3d ) ) SUBTYPE OF ( Representation ); creating_software : Text; intended_analysis_code : SET [1 : ?] OF Text; analysis_type : Text; UNIQUE ur1 : SELF\Representation.name; END_ENTITY;
ENTITY Fea_Model_2d SUBTYPE OF ( Fea_Model ); type_of_2d_analysis : Axi_Or_Plane; WHERE wr1: ( SELF\Representation.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 2 ); END_ENTITY;
ENTITY Fea_Model_3d SUBTYPE OF ( Fea_Model ); WHERE wr1: ( SELF\Representation.context_of_items\Geometric_Representation_Context.coordinate_space_dimension = 3 ); END_ENTITY;
ENTITY Fea_Model_Definition SUBTYPE OF ( Shape_Aspect ); END_ENTITY;
ENTITY Fea_Model_Topological_Relationship; item : Analysis_Item_Within_Representation; model_ref : Fea_Model; WHERE wr1: ( 'TOPOLOGICAL_DEFINITION_AND_MESH_SCHEMA.MESH' IN TYPEOF( item.item ) ); END_ENTITY;
ENTITY Fea_Moisture_Absorption SUBTYPE OF ( Fea_Material_Property_Representation_Item ); fea_constants : Symmetric_Tensor2_3d; END_ENTITY;
ENTITY Fea_Parametric_Point SUBTYPE OF ( Point ); coordinates : LIST [1 : 3] OF Parameter_Value; WHERE wr1: Valid_Parametric_Coordinate( coordinates ); wr2: ( SIZEOF( TYPEOF( SELF ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CYLINDRICAL_POINT' ] ) = 0 ); END_ENTITY;
ENTITY Fea_Representation_Item SUPERTYPE OF ( ONEOF ( Arbitrary_Volume_3d_Element_Coordinate_System, Parametric_Volume_3d_Element_Coordinate_System, Arbitrary_Volume_2d_Element_Coordinate_System, Parametric_Volume_2d_Element_Coordinate_System, Aligned_Surface_3d_Element_Coordinate_System, Parametric_Surface_3d_Element_Coordinate_System, Constant_Surface_3d_Element_Coordinate_System, Aligned_Surface_2d_Element_Coordinate_System, Parametric_Surface_2d_Element_Coordinate_System, Aligned_Curve_3d_Element_Coordinate_System, Parametric_Curve_3d_Element_Coordinate_System, Parametric_Curve_3d_Element_Coordinate_Direction, Curve_2d_Element_Coordinate_System, Directionally_Explicit_Element_Coordinate_System_Arbitrary, Directionally_Explicit_Element_Coordinate_System_Aligned ) ) SUBTYPE OF ( Representation_Item ); END_ENTITY;
ENTITY Fea_Secant_Coefficient_Of_Linear_Thermal_Expansion SUBTYPE OF ( Fea_Material_Property_Representation_Item ); fea_constants : Symmetric_Tensor2_3d; reference_temperature : Thermodynamic_Temperature_Measure; END_ENTITY;
ENTITY Fea_Shell_Bending_Stiffness SUBTYPE OF ( Fea_Material_Property_Representation_Item ); fea_constants : Symmetric_Tensor4_2d; END_ENTITY;
ENTITY Fea_Shell_Membrane_Bending_Coupling_Stiffness SUBTYPE OF ( Fea_Material_Property_Representation_Item ); fea_constants : Symmetric_Tensor4_2d; END_ENTITY;
ENTITY Fea_Shell_Membrane_Stiffness SUBTYPE OF ( Fea_Material_Property_Representation_Item ); fea_constants : Symmetric_Tensor4_2d; END_ENTITY;
ENTITY Fea_Shell_Section_Distribution_Idealisation_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; idealised : Property_Definition; idealising : Surface_Section_Field; END_ENTITY;
ENTITY Fea_Shell_Section_Idealisation_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; idealised : General_Property; idealising : Surface_Section; END_ENTITY;
ENTITY Fea_Shell_Shear_Stiffness SUBTYPE OF ( Fea_Material_Property_Representation_Item ); fea_constants : Symmetric_Tensor2_2d; END_ENTITY;
ENTITY Fea_Surface_Section_Geometric_Relationship; section_ref : Surface_Section; item : Analysis_Item_Within_Representation; WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); END_ENTITY;
ENTITY Fea_Tangential_Coefficient_Of_Linear_Thermal_Expansion SUBTYPE OF ( Fea_Material_Property_Representation_Item ); fea_constants : Symmetric_Tensor2_3d; END_ENTITY;
ENTITY Feature_Component_Definition SUBTYPE OF ( Characterized_Object ); WHERE wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPLICATE_FEATURE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRANSITION_FEATURE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' ] * TYPEOF( SELF.relating_shape_aspect ) ) = 1 ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MACHINING_FEATURE_DEFINITION' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( NOT ( ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. used_representation.items ) <= 3 ) ) ) ) ) ) = 0 ); wr3 : ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); wr5 : ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'directed angle usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.description = 'profile usage' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr. used_representation ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( SIZEOF( QUERY ( srwp_i <* pdr.used_representation.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( srwp_i ) ) ) ) ) > 0 ) ) ) ) > 0 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'base feature placement' ) ) ) ) > 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY;
ENTITY Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Field_Variable_Element_Definition, Field_Variable_Element_Group_Value, Field_Variable_Whole_Model_Value, Field_Variable_Node_Definition ) ) SUBTYPE OF ( State_Definition ); END_ENTITY;
ENTITY Field_Variable_Element_Definition SUPERTYPE OF ( ONEOF ( Volume_3d_Element_Field_Variable_Definition, Volume_2d_Element_Field_Variable_Definition, Surface_3d_Element_Field_Variable_Definition, Surface_2d_Element_Field_Variable_Definition, Curve_3d_Element_Field_Variable_Definition, Curve_2d_Element_Field_Variable_Definition ) ) SUBTYPE OF ( Field_Variable_Definition ); END_ENTITY;
ENTITY Field_Variable_Element_Group_Value SUBTYPE OF ( Field_Variable_Definition ); group : Element_Group; simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Fea_Axis2_Placement_3d; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Field_Variable_Node_Definition SUPERTYPE OF ( ONEOF ( Volume_3d_Node_Field_Variable_Definition, Volume_2d_Node_Field_Variable_Definition, Surface_3d_Node_Field_Variable_Definition, Surface_2d_Node_Field_Variable_Definition, Curve_3d_Node_Field_Variable_Definition, Curve_2d_Node_Field_Variable_Definition ) ) SUBTYPE OF ( Field_Variable_Definition ); node : Node_Output_Reference; group : OPTIONAL Element_Group; END_ENTITY;
ENTITY Field_Variable_Whole_Model_Value SUBTYPE OF ( Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Fea_Axis2_Placement_3d; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); 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 <* SELF.fill_styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( closed_curve ) ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' IN TYPEOF( closed_curve ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE' IN TYPEOF( closed_curve ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' IN TYPEOF( closed_curve ) ) AND ( closed_curve\B_Spline_Curve.closed_curve = TRUE ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOSITE_CURVE' IN TYPEOF( closed_curve ) ) AND ( closed_curve\Composite_Curve.closed_curve = TRUE ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second offset' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FACE_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'second face shape' ) ) ) ) = 1 ) ) ) ) = 0 ); 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF( r ) ) ) ) > 1 ) ) ) = 0 ); END_ENTITY;
ENTITY Flat_Face SUBTYPE OF ( Feature_Definition ); WHERE wr1: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'removal boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( csa.name = 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION' ] * TYPEOF( sar.related_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE' ) IN TYPEOF( SELF ) ) ); END_ENTITY;
ENTITY Flow_Equation_Set SUBTYPE OF ( Mbna_Equation_Set ); SELF\mbna_equation_set.equations : Fd_Governing_Equation; fd_models : SET OF Fd_Behaviour_Models; END_ENTITY;
ENTITY Force_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( value_to_format ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); wr4: Validate_Accuracy_Types( SELF, [] ); wr5: ( SIZEOF( QUERY ( sdqr <* Bag_To_Set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( sdqr ) ) AND ( SIZEOF( QUERY ( sdqiir <* Bag_To_Set( USEDIN( sdqr, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( sdqiir ) ) AND ( SIZEOF( QUERY ( sdqiri <* sdqiir.inspected_instances | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ITEM_DEFINED_TRANSFORMATION' IN TYPEOF( SELF\ Representation_Relationship_With_Transformation.transformation_operator ) ); wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( SELF\ Representation_Relationship_With_Transformation.transformation_operator\Item_Defined_Transformation. transform_item_1 ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Freedom_And_Coefficient; freedom : Degree_Of_Freedom; a : Measure_Or_Unspecified_Value; END_ENTITY;
ENTITY Freedoms_List; freedoms : LIST [1 : ?] OF Degree_Of_Freedom; END_ENTITY;
ENTITY Frequency_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_ANGLE_AND_RATIO_PAIR' ); wr4: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); wr5: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE' ] ); wr6: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_ANGLE_AND_RATIO_PAIR' ); wr4: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); wr5: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_LOWER_VALUE_LIMIT' ) IN TYPEOF( assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_ANGLE_AND_RATIO_PAIR' ); wr4: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); wr5: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'B_SPLINE_SURFACE_KNOT_LOCATOR' ] ); wr6: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE'] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE'] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE'] ); END_ENTITY;
ENTITY Gas_Model SUBTYPE OF ( Mbna_Behaviour_Model ); model_type : Gas_Model_Type; END_ENTITY;
ENTITY Gear SUBTYPE OF ( Feature_Definition ); WHERE wr1 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM' IN TYPEOF( base ) ) ) OR ( SELF\Shape_Aspect. of_shape = base\Shape_Aspect.of_shape ) ); wr6: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.description = 'profile usage' ) ) ) ) = 1 ) ) ) ) ); wr5: ( ( SIZEOF( QUERY ( sa <* Get_Shape_Aspects( SELF ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOSITE_SHAPE_ASPECT' IN TYPEOF( sa ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( sa <* Get_Shape_Aspects( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( sa ) ) AND ( sa.name = 'general compound feature' ) AND ( SIZEOF( QUERY ( sar <* USEDIN( sa, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.BASE_DEFINITION' ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( USEDIN( derived_definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) ) = 1 ); wr2: ( derived_definition.name = base_definition.name ); END_ENTITY;
ENTITY General_Property_Relationship; name : Label; description : OPTIONAL Text; relating_property : General_Property; related_property : General_Property; END_ENTITY;
ENTITY 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 ); 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_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' 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; UNIQUE ur1 : definition; 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_Node SUBTYPE OF ( Node_Representation ); WHERE wr1: ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( item ) ) ) ) = 1 ); 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, Volume, Half_Space_Solid, Shell_Based_Surface_Model, Face_Based_Surface_Model, Shell_Based_Wireframe_Model, Edge_Based_Wireframe_Model, Geometric_Set, Tessellated_Item ) ANDOR ONEOF ( Camera_Model, Camera_Model_D3_Multi_Clipping_Intersection, Camera_Model_D3_Multi_Clipping_Union, Curve, Direction, Light_Source ) ANDOR ONEOF ( Annotation_Fill_Area, Composite_Text, Curve, Defined_Character_Glyph, Defined_Symbol, Point, Symbol_Target, Text_Literal ) ANDOR ONEOF ( Kinematic_Path, Placement ) ANDOR ONEOF ( Curve, Externally_Defined_Hatch_Style, Externally_Defined_Tile_Style, Fill_Area_Style_Hatching, Fill_Area_Style_Tile_Coloured_Region, Fill_Area_Style_Tile_Curve_With_Style, Fill_Area_Style_Tile_Symbol_With_Style, Fill_Area_Style_Tiles, One_Direction_Repeat_Factor, Point, Vector ) ANDOR ONEOF ( Curve, Planar_Extent ) 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); UNIQUE ur1 : id, controlling_shape; WHERE wr1: ( magnitude\Measure_With_Unit.value_component >= 0 ); wr2: EXISTS( controlling_shape ); wr3: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= 1 ); END_ENTITY;
ENTITY Geometric_Tolerance_Relationship; name : Label; description : Text; relating_geometric_tolerance : Geometric_Tolerance; related_geometric_tolerance : Geometric_Tolerance; END_ENTITY;
ENTITY Geometric_Tolerance_With_Datum_Reference 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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Measure_With_Unit; WHERE wr1: ( NOT ( EXISTS( second_unit_size ) XOR ( area_type = Area_Unit_Type.Rectangular ) ) ); END_ENTITY;
ENTITY Geometric_Tolerance_With_Defined_Unit SUBTYPE OF ( Geometric_Tolerance ); unit_size : Length_Measure_With_Unit; WHERE wr1: ( ( 'NUMBER' IN TYPEOF( unit_size\Measure_With_Unit.value_component ) ) AND ( unit_size\Measure_With_Unit. value_component > 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; 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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( item <* SELF.items | ( SIZEOF( TYPEOF( item ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_CURVE_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] ) = 1 ) ) ) >= 1 ); wr4: ( SIZEOF( QUERY ( mi <* QUERY ( item <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( item ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | ( NOT ( SIZEOF( QUERY ( elem <* gcs\Geometric_Set.elements | ( NOT ( SIZEOF( TYPEOF( elem ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOSITE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPSE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_2D' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE'] ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( gcs <* QUERY ( item <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | ( NOT ( SIZEOF( QUERY ( crv <* QUERY ( elem <* gcs\Geometric_Set. elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( elem ) ) ) | ( NOT Valid_Basis_Curve_In_2d_Wireframe( crv ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( gcs <* QUERY ( item <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( item ) ) ) | ( NOT ( SIZEOF( QUERY ( pnt <* QUERY ( elem <* gcs\Geometric_Set. elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( elem ) ) ) | ( NOT ( SIZEOF( TYPEOF( pnt ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( pnt <* QUERY ( gsel <* gs\Geometric_Set.elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( gsel ) ) ) | ( NOT Gbsf_Check_Point( pnt ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( cv <* QUERY ( gsel <* gs\Geometric_Set.elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( gsel ) ) ) | ( NOT Gbsf_Check_Curve( cv ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( sf <* QUERY ( gsel <* gs\Geometric_Set.elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF( gsel ) ) ) | ( NOT Gbsf_Check_Surface( sf ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( gs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_SET' IN TYPEOF( it ) ) ) | ( SIZEOF( QUERY ( gsel <* gs\Geometric_Set.elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_CURVE_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' ] ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( TYPEOF( it ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_CURVE_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] ) = 1 ) ) ) >= 1 ); wr3: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( crv <* QUERY ( elem <* gcs\Geometric_Set. elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( elem ) ) ) | ( NOT Valid_Geometrically_Bounded_Wf_Curve( crv ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( pnts <* QUERY ( elem <* gcs\Geometric_Set. elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( elem ) ) ) | ( NOT Valid_Geometrically_Bounded_Wf_Point( pnts ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( cnc <* QUERY ( elem <* gcs\Geometric_Set. elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' IN TYPEOF( elem ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' IN TYPEOF( cnc\Conic.Position ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( gcs <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_CURVE_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( pline <* QUERY ( elem <* gcs\Geometric_Set. elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( elem ) ) ) | ( NOT ( SIZEOF( pline\Polyline.points ) > 2 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' ) IN TYPEOF( mi\Mapped_Item.mapping_source. mapped_representation ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Geometry_Reference; description : Text; data : Choose_Geometry_Location; 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 Grid_Coordinates SUBTYPE OF ( Model_Property_Distribution ); SELF\model_property_distribution.domain : Model_Product_Domain_With_Mesh; SELF\model_property_distribution.range : Specified_General_Property; INVERSE data : SET OF Property_Distribution_Description FOR physical_function; WHERE wr1: Is_Coordinate_Property( range ); END_ENTITY;
ENTITY Grid_Coordinates_With_Rind SUBTYPE OF ( Grid_Coordinates ); rind_planes : Rind; END_ENTITY;
ENTITY Ground_Fact SUBTYPE OF ( Atomic_Formula ); END_ENTITY;
ENTITY Grounded_Damper SUBTYPE OF ( Point_Element_Matrix ); damping_coefficients : ARRAY [1 : 6] OF Context_Dependent_Measure; END_ENTITY;
ENTITY Grounded_Spring SUBTYPE OF ( Point_Element_Matrix ); stiffness_coefficients : ARRAY [1 : 6] OF Context_Dependent_Measure; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) ) AND ( SIZEOF( SELF.items ) <= 4 ) AND ( ( SIZEOF( QUERY ( i <* items | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( i.name IN [ 'measuring method', 'measuring position'] ) ) ) ) + SIZEOF( QUERY ( i <* items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CAMERA_MODEL_D3_WITH_HLHSR' IN TYPEOF( SELF.item\Mapped_Item. mapping_source.mapping_origin ) ); 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Hole_Bottom SUBTYPE OF ( Shape_Aspect ); WHERE wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr5 : ( ( NOT ( SELF.description = 'flat' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar .description = 'hole bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'hole bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( fcr.related_shape_aspect.of_shape. definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.HOLE_BOTTOM' IN TYPEOF( fcr. relating_shape_aspect ) ) ) ) ) >= 1 ); wr15: ( ( NOT ( SELF.description = 'flat with taper' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'profile usage' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CIRCULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Idealisation_Relationship; id : Identifier; name : Label; description : Text; idealised : Product_Definition; idealisation : Temporal_Spatial_Domain; END_ENTITY;
ENTITY Identification_Assignment ABSTRACT SUPERTYPE; assigned_id : Identifier; role : Identification_Role; END_ENTITY;
ENTITY Identification_Role; name : Label; description : OPTIONAL Text; END_ENTITY;
ENTITY Illuminance_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'IMPLICIT_PLANAR_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'IMPLICIT_POINT_ON_PLANE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Inappropriate_Element_Visibility SUBTYPE OF ( Externally_Conditioned_Data_Quality_Criterion ); WHERE wr1: Validate_Ecdq_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PACKAGE_PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( SELF ) ) ); wr2: ( ( SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( cfr ) ) ) ) + SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CLOSED_OR_OPEN_SHELL_SELECT' ] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_CURVE'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'RECTANGULAR_COMPOSITE_SURFACE' ] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( operand ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index ) ) ); wr2: Is_Int_Expr( index ); END_ENTITY;
ENTITY Indexed_Elements_Bc SUBTYPE OF ( Mbna_Bc ); element_indices : Indices_Group; END_ENTITY;
ENTITY Indexed_Points_Bc SUBTYPE OF ( Mbna_Bc ); point_indices : Indices_Group; END_ENTITY;
ENTITY Indices_List; nindices : INTEGER; indices : LIST [1 : ?] OF ARRAY [1 : nindices] OF INTEGER; END_ENTITY;
ENTITY Indices_Range; nindices : INTEGER; start : ARRAY [1 : nindices] OF INTEGER; finish : ARRAY [1 : nindices] OF INTEGER; 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETER_VALUE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE_WITH_KNOTS'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETER_VALUE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'B_SPLINE_SURFACE_WITH_KNOTS' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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 ( 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET' ] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE'] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPRESSION' IN TYPEOF( interval_low ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPRESSION' IN TYPEOF( interval_item ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXPRESSION' IN TYPEOF( interval_high ) ) ); wr2: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_low ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_high ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF.interval_item ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_low ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( SELF.interval_item ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; WHERE wr1: ( SELF.used_representation IN Using_Representations( SELF.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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( NOT ( ( 5 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. used_representation.items ) <= 10 ) ) ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); wr4 : ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); wr5 : ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'height' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); wr6 : ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); wr7 : ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar. description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar .name = 'joggle termination usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.JOGGLE_TERMINATION' IN TYPEOF( sar.relating_shape_aspect ) ) ) ) ) = 1 ) ) ) ) = 1 ); wr10: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); wr11: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); wr12: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); wr13: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); END_ENTITY;
ENTITY Joggle_Termination SUBTYPE OF ( Shape_Aspect ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'depth' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'angle' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ) ); wr7: ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar.name = 'joggle termination usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT.' + 'CONTENTS' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_CURVE' IN TYPEOF( con ) ) ) ) = 1 ); END_ENTITY;
ENTITY Leader_Terminator SUBTYPE OF ( Terminator_Symbol ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 0 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY;
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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( SELF\Binary_Generic_Expression. operands[1] ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_ARRAY_COMPONENT_DEFINITION_LINK' ); END_ENTITY;
ENTITY Linear_Array_Placement_Group_Component SUBTYPE OF ( Array_Placement_Group ); END_ENTITY;
ENTITY Linear_Constraint_Equation_Element SUBTYPE OF ( Constraint_Element ); freedoms_and_coefficients : SET [1 : ?] OF Linear_Constraint_Equation_Nodal_Term; description : Text; END_ENTITY;
ENTITY Linear_Constraint_Equation_Element_Value SUBTYPE OF ( State_Definition ); element : Linear_Constraint_Equation_Element; b : Measure_Or_Unspecified_Value; END_ENTITY;
ENTITY Linear_Constraint_Equation_Nodal_Term; node : Node_Representation; coordinate_system : Fea_Axis2_Placement_3d; freedom_and_coefficient_term : Freedom_And_Coefficient; dependent : LOGICAL; 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Linearly_Superimposed_State SUBTYPE OF ( State ); INVERSE components : SET [1 : ?] OF State_Component FOR State; 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 (* JH removed WR1 on 2014-05-14 for the following compilation error; fix is not ISO confirmed: ERROR : Line 19237: C3001:Unresolved attribute qualification in WHERE clause. Attribute qualification: REP_1[].ITEMS 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_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 Location_In_Aggregate_Representation_Item SUBTYPE OF ( Compound_Representation_Item ); SELF\compound_representation_item.item_element : Location_In_Aggregate_Item; END_ENTITY;
ENTITY Location_Shape_Representation SUBTYPE OF ( Shape_Representation ); WHERE wr1: ( SIZEOF( SELF.items ) = 1 ); wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( NOT ( ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. used_representation.items ) <= 5 ) ) ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) AND ( SIZEOF( QUERY ( i <* pdr.used_representation.items | ( ( i.name = 'diameter' ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); wr4: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) = 1 ); wr5: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) ) <= 1 ); END_ENTITY;
ENTITY Log10_Function SUBTYPE OF ( Unary_Function_Call ); END_ENTITY;
ENTITY Log2_Function SUBTYPE OF ( Unary_Function_Call ); END_ENTITY;
ENTITY Log_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIGID_LINK_REPRESENTATION' IN TYPEOF( lr ) ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( lr <* SELF\Kinematic_Pair.associated_link_representations_2 | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 0 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 1 ) ); END_ENTITY;
ENTITY Magnetic_Flux_Density_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' IN TYPEOF( mi\Mapped_Item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'OPEN_SHELL' IN TYPEOF( cfss ) ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ADVANCED_FACE' IN TYPEOF( fac ) ) ) ) ) = 0 ) ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\Connected_Face_Set. cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBEDGE' IN TYPEOF( oe.edge_element ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\Connected_Face_Set. cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_start ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\Connected_Face_Set. cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( bnds <* fcs.bounds | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP'] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\Connected_Face_Set. cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\Connected_Face_Set. cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( sc_ag ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( cfss <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONNECTED_FACE_SUB_SET' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( fcs <* cfss\Connected_Face_Set. cfs_faces | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' IN TYPEOF( fcs ) ) AND ( NOT ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fcs.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds.bound\Path.edge_list | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_SURFACE_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_SURFACE_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHELL_BASED_SURFACE_MODEL' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_SURFACE_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( sh <* sbsm\Shell_Based_Surface_Model .sbsm_boundary | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_SHELL', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_CLOSED_SHELL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' ] * TYPEOF( sh ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( fa ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( bnds <* fa.bounds | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\Path.edge_list | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\Path.edge_list | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\Path.edge_list | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_start ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\Path.edge_list | ( NOT ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( oe.edge_element.edge_start\ Vertex_Point.vertex_geometry ) ) = 1 ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CARTESIAN_POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\Vertex_Loop.loop_vertex ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr14: ( SIZEOF( QUERY ( sbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 2 <= SIZEOF( pdr. used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 6 ) ) ) ) = 1 ) ) ) = 1 ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. name = 'marking text' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. name = 'special instructions' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. name = 'font name' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'character height' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 1 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY;
ENTITY Matched_Mesh_Connection SUBTYPE OF ( Mesh_Connectivity ); SELF\mesh_connectivity.current : Structured_Mesh; range : Indices_Range; donor : Structured_Mesh; donor_range : Indices_Range; transform : ARRAY [1 : SELF\Mesh_Connectivity.index_count] OF INTEGER; WHERE wr1: ( current :<>: donor ); wr2: ( donor\Mesh.index_count = SELF\Mesh_Connectivity.index_count ); wr3: ( range\Indices_Range.nindices = SELF\Mesh_Connectivity.index_count ); wr4: ( donor_range\Indices_Range.nindices = SELF\Mesh_Connectivity.index_count ); 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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_OBJECT' IN TYPEOF( SELF\Property_Definition. definition ) ) OR ( SIZEOF( Bag_To_Set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) - QUERY ( temp <* Bag_To_Set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Space_Context; id : Identifier; name : Label; description : OPTIONAL Text; abstract_space : Maths_Space; physical_space : Space_Context_Select; 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_Variable SUBTYPE OF ( Generic_Variable ); values_space : Maths_Space; name : Label; WHERE wr1: Expression_Is_Constant( values_space ); END_ENTITY;
ENTITY Maximum_Function SUBTYPE OF ( Multiple_Arity_Function_Call ); END_ENTITY;
ENTITY Mbna_Bc SUPERTYPE OF ( ONEOF ( Elements_Bc, Indexed_Elements_Bc, Indexed_Points_Bc ) ) SUBTYPE OF ( Mbna_Condition ); datasets : SET OF Mbna_Bc_Dataset; gridloc : Mesh_Location; inward_normal_index : OPTIONAL Ijk_Minmax; inward_normal_list : OPTIONAL Indices_List; rstate : SET OF Mbna_Reference_State; the_type : Mbna_Bc_Type; END_ENTITY;
ENTITY Mbna_Bc_Data SUBTYPE OF ( Mbna_Condition ); END_ENTITY;
ENTITY Mbna_Bc_Data_Global SUBTYPE OF ( Mbna_Bc_Data ); INVERSE data_global : SET OF Model_Property_Distribution FOR domain; END_ENTITY;
ENTITY Mbna_Bc_Data_Local SUBTYPE OF ( Mbna_Bc_Data ); INVERSE data_local : SET OF Model_Property_Distribution FOR domain; END_ENTITY;
ENTITY Mbna_Bc_Dataset SUPERTYPE OF ( ONEOF ( Mbna_Dirichlet_Bc_Dataset, Mbna_Neumann_Bc_Dataset ) ) SUBTYPE OF ( Mbna_Condition ); gridloc : Mesh_Location; rstate : SET OF Mbna_Reference_State; the_type : Mbna_Bc_Type_Simple; END_ENTITY;
ENTITY Mbna_Behaviour_Model SUPERTYPE OF ( ONEOF ( Thermal_Conductivity_Model, Gas_Model, Turbulence_Closure, Turbulence_Model, Viscosity_Model ) ) SUBTYPE OF ( Mbna_Equation ); INVERSE data : SET OF Model_Property_Distribution FOR domain; END_ENTITY;
ENTITY Mbna_Condition ABSTRACT SUPERTYPE OF ( ONEOF ( Mbna_Zone_Bc, Mbna_Bc, Mbna_Bc_Dataset, Mbna_Bc_Data, Mbna_Reference_State ) ) SUBTYPE OF ( Model_State_Domain ); END_ENTITY;
ENTITY Mbna_Dirichlet_Bc_Dataset SUBTYPE OF ( Mbna_Bc_Dataset ); data : Mbna_Bc_Data; END_ENTITY;
ENTITY Mbna_Discrete_Data SUBTYPE OF ( Mbna_Result ); gridloc : Mesh_Location; INVERSE data : SET OF Property_Distribution_Description FOR physical_function; END_ENTITY;
ENTITY Mbna_Discrete_Data_With_Rind SUBTYPE OF ( Mbna_Discrete_Data ); rind_planes : Rind; END_ENTITY;
ENTITY Mbna_Equation SUPERTYPE OF ( ONEOF ( Mbna_Equation_Set, Mbna_Governing_Equation, Mbna_Behaviour_Model ) ) SUBTYPE OF ( Model_Product_Domain ); END_ENTITY;
ENTITY Mbna_Equation_Set SUBTYPE OF ( Mbna_Equation ); dimension : INTEGER; equations : Mbna_Governing_Equation; mbna_models : SET OF Mbna_Behaviour_Models; END_ENTITY;
ENTITY Mbna_Governing_Equation SUBTYPE OF ( Mbna_Equation ); equation_type : Mbna_Governing_Equation_Type; END_ENTITY;
ENTITY Mbna_History SUBTYPE OF ( Mbna_Result ); notes : LIST OF Text; INVERSE data : SET OF Property_Distribution_Description FOR physical_function; END_ENTITY;
ENTITY Mbna_Model SUBTYPE OF ( Model_Product_Domain ); SELF\model_product_domain.temporal_parts : LIST OF Mbna_Step; equations : SET OF Mbna_Equation_Set; INVERSE history : SET OF Mbna_History FOR domain; END_ENTITY;
ENTITY Mbna_Neumann_Bc_Dataset SUBTYPE OF ( Mbna_Bc_Dataset ); data : Mbna_Bc_Data; END_ENTITY;
ENTITY Mbna_Reference_State SUBTYPE OF ( Mbna_Condition ); INVERSE data : SET OF Model_Property_Distribution FOR domain; END_ENTITY;
ENTITY Mbna_Result SUPERTYPE OF ( ONEOF ( Mbna_Solution, Mbna_History, Mbna_Discrete_Data ) ) SUBTYPE OF ( Model_Property_Distribution ); END_ENTITY;
ENTITY Mbna_Solution SUBTYPE OF ( Mbna_Result ); gridloc : Mesh_Location; INVERSE solution : SET OF Property_Distribution_Description FOR physical_function; END_ENTITY;
ENTITY Mbna_Solution_With_Rind SUBTYPE OF ( Mbna_Solution ); rind_planes : Rind; END_ENTITY;
ENTITY Mbna_State SUBTYPE OF ( Model_State_Domain ); END_ENTITY;
ENTITY Mbna_Step SUBTYPE OF ( Model_Action_Domain ); SELF\model_action_domain.final : Mbna_State; equations : SET OF Mbna_Equation_Set; refstate : SET OF Mbna_Reference_State; zones : LIST OF Mbna_Zone; INVERSE history : SET OF Mbna_History FOR domain; END_ENTITY;
ENTITY Mbna_Zone SUBTYPE OF ( Model_Product_Domain_With_Mesh ); conditions : SET OF Mbna_Zone_Bc; equations : SET OF Mbna_Equation_Set; grid_connectivity : OPTIONAL Multiple_Mesh_Block; rstate : SET OF Mbna_Reference_State; INVERSE coordinates : SET OF Grid_Coordinates FOR domain; field_data : SET OF Mbna_Discrete_Data FOR domain; history : SET OF Mbna_History FOR domain; solution : SET OF Mbna_Solution FOR domain; END_ENTITY;
ENTITY Mbna_Zone_Bc SUBTYPE OF ( Mbna_Condition ); conditions : SET OF Mbna_Bc; rstate : SET OF Mbna_Reference_State; 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRECISION_QUALIFIER' IN TYPEOF( temp ) ) ) ) < 2 ); wr2: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_MODEL' ) IN TYPEOF( rep_2 ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_MODEL' ) IN TYPEOF( rep_1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) ); wr2: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_2 ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) ); wr3: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_2 ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) IN TYPEOF( rep_1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it1\ Mapped_Item.mapping_source.mapped_representation ) ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( it2 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it2 ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it2\Mapped_Item. mapping_source.mapped_representation ) ) ) ) ) ) OR ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION' ) IN TYPEOF( it2\Mapped_Item.mapping_source.mapped_representation ) ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr3: ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( ais, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.' + 'UNIT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( ps. size.Placement ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_3D' ) IN TYPEOF( ps.size.Placement ) ) ) ) = 0 ) ) OR ( ( SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( ais, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( ps.size.Placement ) ) ) ) = 1 ) ) ) = 1 ) AND ( SIZEOF( QUERY ( ais <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( QUERY ( ps <* USEDIN( ais, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( si\Styled_Item.item ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( pss <* psa. styles | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' ] * TYPEOF( pss ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psbc <* QUERY ( psa <* si\Styled_Item.styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( psa ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION' ] * TYPEOF( psbc\ Presentation_Style_By_Context.style_context ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ps <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE' IN TYPEOF( pss ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( ps\ Point_Style.marker_size ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ps\ Point_Style.marker_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( cs <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( pss ) ) ) | ( NOT ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( cs\ Curve_Style.curve_colour ) ) = 1 ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( cs\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_SIDE_STYLE' ) IN TYPEOF( ssu\Surface_Style_Usage.style ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY'] * TYPEOF( sses ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sspl <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sspl\ Surface_Style_Parameter_Line.style_of_parameter_lines ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sspl\ Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_colour ) ) = 1 ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sspl\ Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sscg <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sscg\ Surface_Style_Control_Grid.style_of_control_grid ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sscg\ Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_colour ) ) = 1 ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sscg\ Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sssh <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sssh\ Surface_Style_Silhouette.style_of_silhouette ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssh\ Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_colour ) ) = 1 ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sssh\ Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sssc <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sssc\ Surface_Style_Segmentation_Curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssc\ Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_colour ) ) = 1 ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( sssc\ Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( ssbd <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( ssbd\ Surface_Style_Boundary.style_of_boundary ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ssbd\Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_colour ) ) = 1 ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' ) IN TYPEOF( ssbd\ Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_FONT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( it1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it1\Mapped_Item.mapping_source. mapped_representation ) ) ) ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( it2 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it2 ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_VIEW' IN TYPEOF( it2\Mapped_Item. mapping_source.mapped_representation ) ) ) ) ) ) OR ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( it2 ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MECHANICAL_DESIGN_SHADED_PRESENTATION_REPRESENTATION' ) IN TYPEOF( it2\Mapped_Item.mapping_source.mapped_representation ) ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr3: ( ( SIZEOF( QUERY ( ps <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SET' ) IN TYPEOF( ais.in_set ) ) ) | ( SIZEOF( QUERY ( ps <* USEDIN( pset, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.' + 'UNIT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( psize. size.Placement ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pset <* QUERY ( ais <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SET' ) IN TYPEOF( ais.in_set ) ) ) | ( SIZEOF( QUERY ( psize <* USEDIN( pset, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.' + 'UNIT' ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_2D' ) IN TYPEOF( psize.size.Placement ) ) ) ) ) = 0 ) ) ) = 0 ) ); wr5: ( SIZEOF( QUERY ( pv <* QUERY ( mi1 <* QUERY ( it1 <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it1 ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_IMAGE_3D_WITH_SCALE' ) IN TYPEOF( ci ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_MODEL_D3', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CAMERA_MODEL_D3_WITH_HLHSR', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( si\Styled_Item.item ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( pss <* psa. styles | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' ] * TYPEOF( pss ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psbc <* QUERY ( psa <* si\Styled_Item.styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( psa ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION' ] * TYPEOF( psbc\ Presentation_Style_By_Context.style_context ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ps <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_STYLE' IN TYPEOF( pss ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MARKER_TYPE' IN TYPEOF( ps\Point_Style.marker ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( ps\Point_Style. marker_size ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ps\ Point_Style.marker_colour ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( cs <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( pss ) ) ) | ( NOT ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( cs\ Curve_Style.curve_colour ) ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POSITIVE_LENGTH_MEASURE' IN TYPEOF( cs\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_SIDE_STYLE' IN TYPEOF( ssu\ Surface_Style_Usage.style ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style.styles | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_FILL_AREA', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_RENDERING'] * TYPEOF( sses ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( si <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( ssfa <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_FILL_AREA' IN TYPEOF( sses ) ) ) | ( NOT ( SIZEOF( QUERY ( fss <* ssfa\Surface_Style_Fill_Area.fill_area.fill_styles | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FILL_AREA_STYLE_COLOUR' ) IN TYPEOF( fss ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sspl <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_PARAMETER_LINE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sspl\ Surface_Style_Parameter_Line.style_of_parameter_lines ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sspl\ Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_colour ) ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sspl\ Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sspl\ Surface_Style_Parameter_Line.style_of_parameter_lines\Curve_Style.curve_font ) ) = 1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sspl\ Surface_Style_Parameter_Line.style_of_parameter_lines ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sscg <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_CONTROL_GRID' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sscg\ Surface_Style_Control_Grid.style_of_control_grid ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sscg\ Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_colour ) ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sscg\ Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sscg\ Surface_Style_Control_Grid.style_of_control_grid\Curve_Style.curve_font ) ) = 1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sscg\ Surface_Style_Control_Grid.style_of_control_grid ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sssh <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SILHOUETTE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sssh\ Surface_Style_Silhouette.style_of_silhouette ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssh\ Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_colour ) ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sssh\ Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sssh\ Surface_Style_Silhouette.style_of_silhouette\Curve_Style.curve_font ) ) = 1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sssh\ Surface_Style_Silhouette.style_of_silhouette ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( sssc <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_SEGMENTATION_CURVE' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( sssc\ Surface_Style_Segmentation_Curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( sssc\ Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_colour ) ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( sssc\ Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( sssc\ Surface_Style_Segmentation_Curve.style_of_segmentation_curve\Curve_Style.curve_font ) ) = 1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( sssc\ Surface_Style_Segmentation_Curve.style_of_segmentation_curve ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( ssbd <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_BOUNDARY' ) IN TYPEOF( sses ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE' IN TYPEOF( ssbd\ Surface_Style_Boundary.style_of_boundary ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_COLOUR'] * TYPEOF( ssbd\Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_colour ) ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIVE_LENGTH_MEASURE' IN TYPEOF( ssbd\ Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_width ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_STYLE_FONT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_PRE_DEFINED_CURVE_FONT'] * TYPEOF( ssbd\ Surface_Style_Boundary.style_of_boundary\Curve_Style.curve_font ) ) = 1 ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_STYLE_RENDERING' IN TYPEOF( ssbd\ Surface_Style_Boundary.style_of_boundary ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COLOUR_RGB' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( psa <* si\Styled_Item.styles | ( NOT ( SIZEOF( QUERY ( ssu <* QUERY ( pss <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( pss ) ) ) | ( NOT ( SIZEOF( QUERY ( ssre <* QUERY ( sses <* ssu\Surface_Style_Usage.style\Surface_Side_Style. styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_RENDERING' ) IN TYPEOF( sses ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COLOUR_RGB', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_STRUCTURE' IN TYPEOF( represented_topology ) ) AND ( represented_joints :=: represented_topology.items ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KINEMATIC_TOPOLOGY_DIRECTED_STRUCTURE' IN TYPEOF( represented_topology ) ) AND ( represented_joints :=: Get_Kinematic_Joints_From_Oriented_Joints( represented_topology.items ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Mesh ABSTRACT SUPERTYPE OF ( ONEOF ( Structured_Mesh, Unstructured_Mesh ) ANDOR Submesh ) SUBTYPE OF ( Topological_Representation_Item ); description : Text; index_count : INTEGER; END_ENTITY;
ENTITY Mesh_Connectivity ABSTRACT SUPERTYPE OF ( ONEOF ( Matched_Mesh_Connection, Mismatched_Mesh_Connection ) ); name : Label; description : Text; id : Identifier; current : Mesh; DERIVE index_count : INTEGER := current.index_count; END_ENTITY;
ENTITY Mesh_Derived_Maths_Space SUBTYPE OF ( Maths_Space ); description : Text; name : Label; id : Identifier; the_mesh : Mesh; kind : Mesh_Maths_Space_Type; END_ENTITY;
ENTITY Mesh_Function SUBTYPE OF ( Application_Defined_Function, Unary_Generic_Expression ); mesh : Mesh; basis : LIST OF Mesh_Function_Basis; uniform : BOOLEAN; vertex_values : BOOLEAN; DERIVE control_values : Maths_Function := SELF\Unary_Generic_Expression.operand; WHERE wr1: Function_Is_Table( control_values ); wr2: ( ( uniform AND ( SIZEOF( basis ) = 1 ) ) XOR ( NOT uniform ) ); END_ENTITY;
ENTITY Mesh_Function_Basis SUBTYPE OF ( Application_Defined_Function, Unary_Generic_Expression ); cell_topological_dimension : INTEGER; value_array_dimension : INTEGER; value_array_order : ARRAY [1 : value_array_dimension] OF INTEGER; DERIVE value_positions : Maths_Function := SELF\Unary_Generic_Expression.operand; WHERE value_positions_as_table: Function_Is_Table( value_positions ); END_ENTITY;
ENTITY Mesh_Overset_Hole SUBTYPE OF ( Mismatched_Mesh_Connection ); 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 Mismatched_Donor_Mesh ABSTRACT SUPERTYPE OF ( ONEOF ( Structured_Donor_Mesh, Unstructured_Donor_Mesh ) ); donor : Mesh; INVERSE connect : Mismatched_Mesh_Region FOR donor; END_ENTITY;
ENTITY Mismatched_Mesh_Connection ABSTRACT SUPERTYPE OF ( ONEOF ( Mismatched_Mesh_Region, Mesh_Overset_Hole ) ) SUBTYPE OF ( Mesh_Connectivity ); points : Indices_Group; gridloc : Mesh_Location; END_ENTITY;
ENTITY Mismatched_Mesh_Region SUBTYPE OF ( Mismatched_Mesh_Connection ); donor : Mismatched_Donor_Mesh; kind : Mismatched_Region_Type; WHERE wr1: ( donor.donor :<>: SELF\Mesh_Connectivity.current ); END_ENTITY;
ENTITY Mod_Expression SUBTYPE OF ( Binary_Numeric_Expression ); END_ENTITY;
ENTITY Model_Action_Domain SUBTYPE OF ( Numerical_Model ); initial : Model_State_Domain; final : Model_State_Domain; END_ENTITY;
ENTITY Model_Product_Domain SUBTYPE OF ( Numerical_Model ); temporal_parts : LIST [0 : ?] OF Model_Action_Domain; END_ENTITY;
ENTITY Model_Product_Domain_With_Mesh SUBTYPE OF ( Model_Product_Domain ); model_mesh : Mesh; END_ENTITY;
ENTITY Model_Property_Distribution; creating_software : Text; domain : Numerical_Model; range : General_Property; END_ENTITY;
ENTITY Model_State_Domain SUBTYPE OF ( Numerical_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPLICATE_FEATURE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( SIZEOF( QUERY ( msar <* USEDIN( sar.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATTERN_OFFSET_MEMBERSHIP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( i .name = 'moments of inertia matrix' ) ) ) ) = 1 ) ); wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 := SELF\Product_Definition_Relationship. related_product_definition; root : Product_Definition := SELF\Product_Definition_Relationship. relating_product_definition; 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 Multiple_Mesh_Block; name : Label; description : Text; id : Identifier; connectivities : LIST OF Mesh_Connectivity; 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN Value_Limit_Type( SELF\ Shape_Data_Quality_Criterion.assessment_specification\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold ) ) ); wr2: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_UPPER_VALUE_LIMIT' ) IN TYPEOF( assessment_specification_2\Shape_Data_Quality_Assessment_By_Numerical_Test.threshold ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_ANGLE_AND_LENGTH_PAIR' ); wr4: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( sdqr ) ) AND ( SIZEOF( QUERY ( sdqiir <* Bag_To_Set( USEDIN( sdqr, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'B_SPLINE_SURFACE_PATCH' ] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE_SELECT' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'BOUNDARY_CURVE_OF_B_SPLINE_OR_RECTANGULAR_COMPOSITE_SURFACE' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'B_SPLINE_SURFACE_PATCH' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); UNIQUE ur1 : SELF\Assembly_Component_Usage.reference_designator, SELF\Product_Definition_Relationship.relating_product_definition; END_ENTITY;
ENTITY Ngon_Closed_Profile SUBTYPE OF ( Shape_Aspect ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'corner radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); END_ENTITY;
ENTITY No_Symmetry_Control SUBTYPE OF ( Symmetry_Control ); END_ENTITY;
ENTITY Nodal_Dof_Reduction SUBTYPE OF ( Constraint_Element ); required_node : Node_Output_Reference; coordinate_system : Fea_Axis2_Placement_3d; freedoms : SET [1 : ?] OF Degree_Of_Freedom; description : Text; END_ENTITY;
ENTITY Nodal_Freedom_Action_Definition SUBTYPE OF ( Nodal_Freedom_And_Value_Definition ); action : Action_Type; END_ENTITY;
ENTITY Nodal_Freedom_And_Value_Definition SUPERTYPE OF ( ONEOF ( Nodal_Freedom_Values, Nodal_Freedom_Action_Definition ) ) SUBTYPE OF ( State_Definition ); node : Node_Output_Reference; coordinate_system : Fea_Axis2_Placement_3d; degrees_of_freedom : Freedoms_List; values : LIST [1 : ?] OF Measure_Or_Unspecified_Value; WHERE wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); END_ENTITY;
ENTITY Nodal_Freedom_Values SUBTYPE OF ( Nodal_Freedom_And_Value_Definition ); END_ENTITY;
ENTITY Node SUPERTYPE OF ( Node_With_Vector ANDOR Node_With_Solution_Coordinate_System ) SUBTYPE OF ( Node_Representation ); WHERE wr1: ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( item ) ) ) ) = 1 ); END_ENTITY;
ENTITY Node_Analysis_Message SUBTYPE OF ( Analysis_Message ); node : Node_Output_Reference; END_ENTITY;
ENTITY Node_Definition SUBTYPE OF ( Shape_Aspect ); END_ENTITY;
ENTITY Node_Geometric_Relationship; node_ref : Node_Or_Node_Group; item : Analysis_Item_Within_Representation; WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item.item ) ); END_ENTITY;
ENTITY Node_Group SUBTYPE OF ( Fea_Group ); nodes : SET [1 : ?] OF Node_Representation; END_ENTITY;
ENTITY Node_Representation SUPERTYPE OF ( ONEOF ( Node, Dummy_Node, Geometric_Node ) ) SUBTYPE OF ( Representation ); model_ref : Fea_Model; UNIQUE ur1 : model_ref, SELF\Representation.name; END_ENTITY;
ENTITY Node_Sequence; order_id : Identifier; control_ref : Control; purpose : Text; nodes : LIST [1 : ?] OF Node_Representation; UNIQUE ur1 : order_id, control_ref; END_ENTITY;
ENTITY Node_Set SUBTYPE OF ( Geometric_Representation_Item ); nodes : SET [1 : ?] OF Node_Representation; WHERE wr1: ( SIZEOF( QUERY ( tmp <* nodes | ( tmp\Representation.context_of_items :<>: nodes[1]\Representation.context_of_items ) ) ) = 0 ); END_ENTITY;
ENTITY Node_Topological_Relationship; item : Analysis_Item_Within_Representation; node_ref : Node_Representation; WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF( item.item ) ); END_ENTITY;
ENTITY Node_With_Solution_Coordinate_System SUBTYPE OF ( Node ); WHERE wr1: ( ( ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AXIS2_PLACEMENT_3D' ) IN TYPEOF( item ) ) ) ) = 1 ) AND ( SELF\Representation.context_of_items\ Geometric_Representation_Context.coordinate_space_dimension = 3 ) ) OR ( ( SIZEOF( QUERY ( item <* SELF\ Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AXIS2_PLACEMENT_2D' ) IN TYPEOF( item ) ) ) ) = 1 ) AND ( SELF\Representation.context_of_items\Geometric_Representation_Context. coordinate_space_dimension = 2 ) ) ); END_ENTITY;
ENTITY Node_With_Vector SUBTYPE OF ( Node ); WHERE wr1: ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION' IN TYPEOF( item ) ) ) ) = 1 ); END_ENTITY;
ENTITY Non_Agreed_Accuracy_Parameter_Usage SUBTYPE OF ( Externally_Conditioned_Data_Quality_Criterion ); WHERE wr1: Validate_Ecdq_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FACE_BASED_SURFACE_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) > 0 ); wr3 : ( SIZEOF( QUERY ( mi <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BASED_SURFACE_MODEL' IN TYPEOF( mr_it ) ) ) ) > 0 ) ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE' ] * TYPEOF( fa ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( fa ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_FACE' IN TYPEOF( fa ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( bnds <* fa.bounds | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' ] * TYPEOF( bnds.bound ) ) = 1 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\Path.edge_list | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe_cv <* QUERY ( oe <* elp_fbnds\Path.edge_list | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( oe.edge_element ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POLYLINE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\Path.edge_list | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_start ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( oe.edge_element.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( elp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( QUERY ( oe <* elp_fbnds\Path.edge_list | ( NOT ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' ] * TYPEOF( oe.edge_element.edge_start\ Vertex_Point.vertex_geometry ) ) = 1 ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CARTESIAN_POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vlp_fbnds\Vertex_Loop.loop_vertex ) ) ) ) ) = 0 ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr14: ( SIZEOF( QUERY ( fbsm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( fa ) ) OR ( SIZEOF( QUERY ( vlp_fbnds <* QUERY ( bnds <* fa.bounds | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( bnds.bound ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEGENERATE_PCURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF( SELF ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF( SELF ) ) ); END_ENTITY;
ENTITY Numerical_Model; id : Identifier; name : Label; description : Text; creating_software : Text; intended_analysis_code : SET [1 : ?] OF Text; analysis_type : Text; WHERE wr1: Temporal_Spatial_Domain_For_Model( 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE'] ); wr4: Validate_Accuracy_Types( SELF, [] ); END_ENTITY;
ENTITY Open_Path_Profile SUBTYPE OF ( Shape_Aspect ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PATH_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( day_component <= 365 ) ) OR ( Leap_Year( SELF.year_component ) AND ( 1 <= day_component ) AND ( 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_PATH' IN TYPEOF( SELF.path_element ) ) ); END_ENTITY;
ENTITY Oriented_Surface SUBTYPE OF ( Surface ); orientation : BOOLEAN; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 2 <= SIZEOF( pdr.used_representation.items ) ) AND ( SIZEOF( pdr. used_representation.items ) <= 3 ) ) ) ) = 1 ) ) ) = 1 ) ); wr3: ( SELF\Characterized_Object.description IN [ 'outer diameter', 'outer diameter to shoulder'] ); wr4: ( ( NOT ( SELF\Characterized_Object.description = 'outer diameter' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'v-shape boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'reduced size occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT'] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'feature length' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); END_ENTITY;
ENTITY Output_Request_State SUBTYPE OF ( State ); steps : SET [1 : ?] OF Control_Analysis_Step; END_ENTITY;
ENTITY Outside_Profile SUBTYPE OF ( Feature_Definition ); WHERE wr1 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = 'boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( NOT ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile floor usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROFILE_FLOOR' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = 'complex boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINEAR_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = 1 ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr7 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = 'partial circular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr. relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr8 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = 'closed circular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr. relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr9 : ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = 'open rectangular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr10: ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( sa_occ.description = 'closed rectangular boundary occurrence' ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' IN TYPEOF( sdr. relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ) ); wr11: ( ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' ) IN TYPEOF( SELF ) ) ); wr2: ( SIZEOF( QUERY ( cfr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP.' + 'RELATING_PRODUCT_CONCEPT_FEATURE' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' ) IN TYPEOF( cfr ) ) AND ( SIZEOF( QUERY ( ipcf <* USEDIN( cfr, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.' + 'CONDITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); 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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( q ) ) ) ) > 0 ) ) ); END_ENTITY;
ENTITY Parallelism_Tolerance SUBTYPE OF ( Geometric_Tolerance_With_Datum_Reference ); END_ENTITY;
ENTITY Parametric_Curve_3d_Element_Coordinate_Direction SUBTYPE OF ( Fea_Representation_Item ); orientation : Direction; WHERE wr1: ( SELF\Geometric_Representation_Item.dim = 3 ); END_ENTITY;
ENTITY Parametric_Curve_3d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); direction : Parametric_Curve_3d_Element_Coordinate_Direction; END_ENTITY;
ENTITY Parametric_Representation_Context SUBTYPE OF ( Representation_Context ); END_ENTITY;
ENTITY Parametric_Surface_2d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); END_ENTITY;
ENTITY Parametric_Surface_3d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); axis : INTEGER; angle : Plane_Angle_Measure; WHERE wr1: ( ( axis >= 1 ) AND ( axis <= 2 ) ); END_ENTITY;
ENTITY Parametric_Volume_2d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); axis : INTEGER; angle : Plane_Angle_Measure; WHERE wr1: ( ( axis >= 1 ) AND ( axis <= 2 ) ); END_ENTITY;
ENTITY Parametric_Volume_3d_Element_Coordinate_System SUBTYPE OF ( Fea_Representation_Item ); axis_1 : INTEGER; axis_2 : INTEGER; eu_angles : Euler_Angles; WHERE wr1: ( ( axis_1 >= 1 ) AND ( axis_1 <= 3 ) AND ( axis_2 >= 1 ) AND ( axis_2 <= 3 ) AND ( NOT ( axis_1 = axis_2 ) ) ); 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'sweep angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBEDGE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBEDGE' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBFACE' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' ] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_BOUNDED_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE'] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE'] ); END_ENTITY;
ENTITY Path SUPERTYPE OF ( ONEOF ( Edge_Loop, Oriented_Path ) ) SUBTYPE OF ( Topological_Representation_Item ); edge_list : LIST [1 : ?] OF UNIQUE Oriented_Edge; WHERE wr1: Path_Head_To_Tail( SELF ); END_ENTITY;
ENTITY Path_Area_With_Parameters SUBTYPE OF ( Complex_Area, Mapped_Item ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( SELF\Mapped_Item.mapping_target ) ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr13: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( SIZEOF( QUERY ( pdr <* QUERY ( pd <* USEDIN( fcr.related_shape_aspect.of_shape, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( pdr.definition ) ) = 1 ) ) ) = 0 ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( fcr.description = 'modified pattern' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); wr3 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr. relating_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( modfcr <* QUERY ( modsar <* USEDIN( fcr. relating_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 2 ) ) ) ) = 0 ) ); wr5 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 1 ) ) ) ) = 0 ) ); wr6 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr7 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COUNT_MEASURE' IN TYPEOF( it\Measure_With_Unit.value_component ) ) AND ( it.name = 'index number' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr8 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect .of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_ANGLE_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) AND ( it.name = 'offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr9 : ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( impl_rep. used_representation.items ) = 3 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr10: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COUNT_MEASURE' IN TYPEOF( it\Measure_With_Unit.value_component ) ) AND ( it.name = 'row index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr11: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COUNT_MEASURE' IN TYPEOF( it\Measure_With_Unit.value_component ) ) AND ( it.name = 'column index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr12: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'LENGTH_MEASURE_WITH_UNIT' IN TYPEOF( it ) ) AND ( it.name = 'offset distance' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr13: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( SIZEOF( QUERY ( pdr <* QUERY ( pd <* USEDIN( fcr.related_shape_aspect.of_shape, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' ] * TYPEOF( pdr.definition ) ) = 1 ) ) ) = 0 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( fcr.description = 'modified pattern' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr.relating_shape_aspect ) ) ) ) ) >= 1 ); wr3: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( sar :<>: SELF ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MODIFIED_PATTERN' IN TYPEOF( fcr. relating_shape_aspect ) ) AND ( NOT ( SIZEOF( QUERY ( modfcr <* QUERY ( modsar <* USEDIN( fcr.relating_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ) = 1 ) ) ) ) = 0 ); wr5: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr6: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_PATTERN' IN TYPEOF( SELF.relating_shape_aspect. of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COUNT_MEASURE' IN TYPEOF( it\Measure_With_Unit.value_component ) ) AND ( it.name = 'index number' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr7: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( pdr.used_representation.items ) = 2 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr8: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COUNT_MEASURE' IN TYPEOF( it\Measure_With_Unit.value_component ) ) AND ( it.name = 'row index' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr9: ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_PATTERN' IN TYPEOF( SELF. relating_shape_aspect.of_shape.definition ) ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF.related_shape_aspect, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' IN TYPEOF( q ) ) ) ) = 3 ) XOR ( SIZEOF( QUERY ( q <* SELF\Explicit_Constraint.constrained_elements | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' ] ) > 0 ) ) ) = 0 ); END_ENTITY;
ENTITY Physical_Action_Domain SUBTYPE OF ( Temporal_Spatial_Domain ); initial : Physical_State_Domain; final : Physical_State_Domain; 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 SUBTYPE OF ( 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 Physical_Product_Domain SUBTYPE OF ( Temporal_Spatial_Domain ); temporal_parts : SET [0 : ?] OF Physical_Action_Domain; END_ENTITY;
ENTITY Physical_State_Domain SUBTYPE OF ( Temporal_Spatial_Domain ); 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( item ) ) ) ) = 1 ); wr2: ( SIZEOF( QUERY ( se <* QUERY ( item <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( item ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( it ) ) ) ) = 1 ); END_ENTITY;
ENTITY Plane SUBTYPE OF ( Elementary_Surface ); END_ENTITY;
ENTITY Plane_2d_Element_Property SUPERTYPE OF ( Simple_Plane_2d_Element_Property ); depth : Context_Dependent_Measure; 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 0 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY;
ENTITY Plane_Curve_2d_Element_Descriptor SUBTYPE OF ( Element_Descriptor ); purpose : SET [1 : ?] OF SET [1 : ?] OF Curve_Element_Purpose; assumption : Plane_2d_Element_Purpose; END_ENTITY;
ENTITY Plane_Curve_2d_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model_2d; element_descriptor : Plane_Curve_2d_Element_Descriptor; property : Curve_2d_Element_Property; depth_property : Plane_2d_Element_Property; material : Element_Material; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( model_ref.type_of_2d_analysis = Planar ); wr2: ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\Property_Definition_Representation. used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) = 1 ) ) ) >= 1 ); wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ Representation.context_of_items ) ); fu1: Required_0d_Nodes( SELF\Element_Representation.node_list ); END_ENTITY;
ENTITY Plane_Surface_2d_Element_Descriptor SUBTYPE OF ( Element_Descriptor ); purpose : SET [1 : ?] OF SET [1 : ?] OF Surface_Element_Purpose; assumption : Plane_2d_Element_Purpose; END_ENTITY;
ENTITY Plane_Surface_2d_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model_2d; element_descriptor : Plane_Surface_2d_Element_Descriptor; property : Surface_Element_Property; depth_property : Plane_2d_Element_Property; material : Element_Material; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( model_ref.type_of_2d_analysis = Planar ); wr2: ( ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PARAMETRIC_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ALIGNED_SURFACE_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\Property_Definition_Representation. used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_BENDING_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF( item2 ) ) = 1 ) ) ) = 1 ) ) ) >= 1 ); wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ Representation.context_of_items ) ); fu1: Required_1d_Nodes( SELF\Element_Representation.node_list, Element_Descriptor\Element_Descriptor.topology_order ); END_ENTITY;
ENTITY Plane_Volume_2d_Element_Descriptor SUBTYPE OF ( Element_Descriptor ); purpose : SET [1 : ?] OF SET [1 : ?] OF Volume_Element_Purpose; shape : Element_2d_Shape; assumption : Plane_2d_Element_Purpose; END_ENTITY;
ENTITY Plane_Volume_2d_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model_2d; element_descriptor : Plane_Volume_2d_Element_Descriptor; depth_property : Plane_2d_Element_Property; material : Element_Material; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( model_ref.type_of_2d_analysis = Planar ); wr2: ( ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PARAMETRIC_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ARBITRARY_VOLUME_2D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); wr3: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\Property_Definition_Representation. used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) = 1 ) ) ) >= 1 ); wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ Representation.context_of_items ) ); fu1: Required_2d_Nodes( SELF\Element_Representation.node_list, Element_Descriptor.shape, Element_Descriptor\ Element_Descriptor.topology_order ); 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_Laminate_Sequence_Definition SUBTYPE OF ( Product_Definition ); WHERE wr1: ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATING_PRODUCT_DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NEXT_ASSEMBLY_USAGE_OCCURRENCE' ) IN TYPEOF( pdr ) ) ) ) > 0 ); END_ENTITY;
ENTITY Ply_Laminate_Table SUBTYPE OF ( Part_Laminate_Table ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'pocket depth occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( sar.name = 'pocket depth' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ); wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 1 <= SIZEOF( pdr. used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 2 ) ) ) ) = 1 ) ) ) = 1 ); wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_PATH_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'closed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'open boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SQUARE_U_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ); wr10: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'pocket bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar .description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'enclosed boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'pocket bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET_BOTTOM' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT.OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( csa.name = 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'change in boundary occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar .description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr10: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'pocket bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = 'bottom condition occurrence' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POCKET' IN TYPEOF( fcr.related_shape_aspect.of_shape. definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar .description = 'pocket bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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_Constraint SUBTYPE OF ( Constraint_Element ); required_point : Analysis_Item_Within_Representation; coordinate_system : Fea_Axis2_Placement_3d; freedoms_and_coefficients : SET [1 : ?] OF Freedom_And_Coefficient; description : Text; WHERE wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( required_point.item ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( required_point.item ) ) ); 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PDGC_WITH_DIMENSION' IN TYPEOF( SELF ) ) AND ( SIZEOF( SELF\ Explicit_Constraint.constrained_elements ) = 2 ) ) ); END_ENTITY;
ENTITY Point_Element_Matrix SUPERTYPE OF ( ONEOF ( Stationary_Mass, Grounded_Spring, Grounded_Damper ) ); END_ENTITY;
ENTITY Point_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model; matrix_set : SET [1 : ?] OF Point_Element_Matrix; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AXIS2_PLACEMENT_3D' ) IN TYPEOF( item ) ) ) ) = 1 ); fu1: Required_0d_Nodes( SELF\Element_Representation.node_list ); END_ENTITY;
ENTITY Point_Freedom_Action_Definition SUBTYPE OF ( Point_Freedom_And_Value_Definition ); action : Action_Type; END_ENTITY;
ENTITY Point_Freedom_And_Value_Definition SUPERTYPE OF ( ONEOF ( Point_Freedom_Values, Point_Freedom_Action_Definition ) ) SUBTYPE OF ( State_Definition ); required_point : Analysis_Item_Within_Representation; coordinate_system : Fea_Axis2_Placement_3d; degrees_of_freedom : Freedoms_List; values : LIST [1 : ?] OF Measure_Or_Unspecified_Value; WHERE wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' IN TYPEOF( required_point.item ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( required_point.item ) ) ); END_ENTITY;
ENTITY Point_Freedom_Values SUBTYPE OF ( Point_Freedom_And_Value_Definition ); 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOUND_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Representation SUBTYPE OF ( Shape_Representation ); WHERE wr1: ( SIZEOF( QUERY ( it <* SELF\Representation.items | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AXIS2_PLACEMENT_3D'] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( it <* SELF\Representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NODE_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) >= 1 ); END_ENTITY;
ENTITY Point_Style SUBTYPE OF ( Founded_Item ); name : Label; marker : Marker_Select; marker_size : Size_Select; marker_colour : 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_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 ) ); wr2: ( ( ( -PI ) <= direction_constraint.min ) AND ( direction_constraint.min < PI ) ); wr3: ( ( direction_constraint.max - direction_constraint.min ) <= ( 2 * PI ) ); wr4: ( ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.min_closure = Open ) ); wr5: ( ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.max_closure = Open ) OR ( direction_constraint.min = ( -PI ) ) ); wr6: ( ( Real_Min( distance_constraint ) > 0 ) OR Max_Exists( distance_constraint ) OR ( ( direction_constraint.max - direction_constraint.min ) < ( 2 * PI ) ) OR ( direction_constraint.max_closure = Open ) ); 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF( sketch_basis ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( sketch_basis\Curve_Bounded_Surface. basis_surface ) ) ) ) ); wr2: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( sketch_basis ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( sketch_basis\Face_Surface.face_geometry ) ) ) ) ); wr3: ( SIZEOF( QUERY ( q <* auxiliary_elements | ( SIZEOF( TYPEOF( q ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE' ] ) = 0 ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( q <* auxiliary_elements | ( q\Geometric_Representation_Item.dim <> 3 ) ) ) = 0 ); END_ENTITY;
ENTITY Power_Expression SUBTYPE OF ( Binary_Numeric_Expression ); END_ENTITY;
ENTITY Power_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AREA_IN_SET.AREA' ) | ( SIZEOF( USEDIN( ais, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_SIZE.UNIT' ) ) = 1 ) ) ) > 0 ) OR ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_AREA' IN TYPEOF( SELF ) ) OR ( SIZEOF( QUERY ( prr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF( prr\ Representation_Relationship.rep_1 ) ) ) ) > 0 ) OR ( SIZEOF( QUERY ( rm <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) | ( SIZEOF( QUERY ( mi <* USEDIN( rm, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM.' + 'MAPPING_SOURCE' ) | ( SIZEOF( QUERY ( rep <* Using_Representations( mi ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESENTATION_REPRESENTATION' IN TYPEOF( SELF.Unit ) ) AND Item_In_Context( SELF.size, SELF.Unit\Representation.context_of_items ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_IN_SET' IN TYPEOF( SELF.Unit ) ) AND ( SIZEOF( QUERY ( ais <* SELF.Unit\Area_In_Set.in_set.areas | ( NOT Item_In_Context( SELF.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 <* SELF.styles | ( NOT ( SIZEOF( QUERY ( style2 <* ( SELF.styles - style1 ) | ( NOT ( ( TYPEOF( style1 ) <> TYPEOF( style2 ) ) OR ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_STYLE_USAGE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EXTERNALLY_DEFINED_STYLE'] * TYPEOF( style1 ) ) = 1 ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( style1 ) ) ) ) <= 2 ); wr3: ( SIZEOF( QUERY ( style1 <* SELF.styles | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_STYLE_USAGE' IN TYPEOF( style1 ) ) AND ( SIZEOF( QUERY ( style2 <* ( SELF.styles - style1 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); (* Thurman: next line added for BZ#5056 *) SELF\compound_representation_item.item_element : Compound_Inner_Area_Boundary; DERIVE (* Thurman: next line replaced by the line thereafter for BZ#5056 inner_boundary : compound_inner_area_boundary := SELF\compound_representation_item.item_element; *) inner_boundary : Compound_Inner_Area_Boundary := item_element; WHERE wr1: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_AREA', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPTIC_AREA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_AREA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYGONAL_AREA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_WITH_OUTER_BOUNDARY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_AREA_WITH_PARAMETERS' ] * TYPEOF( SELF ) ) > 0 ); wr2: ( SIZEOF( QUERY ( inner <* inner_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Process_Operation SUBTYPE OF ( Action_Method ); WHERE wr1: ( SIZEOF( QUERY ( amr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACTION_METHOD_RELATIONSHIP.' + 'RELATING_METHOD' ) | ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_OPERATION' IN TYPEOF( amr\Action_Method_Relationship.related_method ) ) ) OR ( SELF :=: amr\Action_Method_Relationship. related_method ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( amr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACTION_METHOD_RELATIONSHIP.' + 'RELATED_METHOD' ) | ( ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_OPERATION' IN TYPEOF( amr\Action_Method_Relationship.relating_method ) ) ) OR ( SELF :=: amr\Action_Method_Relationship.relating_method ) ) ) ) = 0 ); END_ENTITY;
ENTITY Process_Plan SUBTYPE OF ( Action ); WHERE wr1: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.' + 'RELATED_ACTION' ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.relating_action ) ) <> 1 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.' + 'RELATING_ACTION' ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.related_action ) ) = 1 ) OR ( ( ar.name = 'process operation occurrence' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROCESS_OPERATION' IN TYPEOF( ar.related_action.chosen_method ) ) ) ) ) ) = SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_CONCEPT_FEATURE' ) IN TYPEOF( i ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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_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_Resource SUBTYPE OF ( Action_Resource, Product_Definition ); WHERE wr1: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REQUIREMENT_FOR_ACTION_RESOURCE.' + 'RESOURCES' ) ) > 0 ); wr2: ( SELF.frame_of_reference.name IN [ 'part definition', 'part occurrence', 'physical occurrence'] ); END_ENTITY;
ENTITY Product_Definition_Shape SUBTYPE OF ( Property_Definition ); UNIQUE ur1 : SELF\Property_Definition.definition; WHERE wr1: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_PRODUCT_DEFINITION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_OBJECT' ] * TYPEOF( SELF\Property_Definition. definition ) ) > 0 ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_USAGE' ); 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_Identification SUBTYPE OF ( Configuration_Item, Characterized_Object ); SELF\configuration_item.item_concept : Product_Class; WHERE wr1: ( SIZEOF( QUERY ( cd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONFIGURATION_DESIGN.' + 'CONFIGURATION' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) IN TYPEOF( cd.design ) ) AND ( SIZEOF( QUERY ( prpc <* USEDIN( cd.design\Product_Definition_Formation.of_product, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name IN [ 'part', 'raw material', 'tool'] ) ) ) > 0 ) ) ) ) <= 1 ); wr2: ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONFIGURABLE_ITEM' ) IN TYPEOF( SELF ) ) ) XOR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_SPECIFICATION' ) IN TYPEOF( SELF ) ) ); 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_Of_Mesh; operands : LIST [2 : 2] OF Mesh; product : Mesh; WHERE wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF' + '.STRUCTURED_MESH' ) IN TYPEOF( operands[1] ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF' + '.' + 'STRUCTURED_MESH' ) IN TYPEOF( operands[2] ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF' + '.STRUCTURED_MESH' ) IN TYPEOF( Product ) ) ); wr2: ( operands[1].index_count = 1 ); wr3: ( ( operands[1].index_count + operands[2].index_count ) = Product.index_count ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.' + 'RELATED_ACTION' ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.relating_action ) ) <> 1 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( ar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.' + 'RELATING_ACTION' ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCESS_PLAN', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_PROCESS_PLAN' ] * TYPEOF( ar.related_action ) ) = 1 ) OR ( ( ar.name = 'process operation occurrence' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROCESS_OPERATION' IN TYPEOF( ar.related_action.chosen_method ) ) ) ) ) ) = SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) ); wr3: ( SIZEOF( QUERY ( ppa <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROCESS_PRODUCT_ASSOCIATION.PROCESS' ) | ( ( ppa.name <> 'produced output' ) OR ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Specification SUBTYPE OF ( Product_Identification, Configurable_Item ); END_ENTITY;
ENTITY Product_View_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; discretised_model : Discretised_Product_Model_Select; idealised_product : Idealised_Product_Select; END_ENTITY;
ENTITY Profile_Floor SUBTYPE OF ( Shape_Aspect ); WHERE wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr7 : ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'profile floor usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OUTSIDE_PROFILE' IN TYPEOF( fcr.related_shape_aspect. of_shape.definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROFILE_FLOOR' IN TYPEOF( fcr. relating_shape_aspect ) ) ) ) ) >= 1 ); wr8 : ( ( NOT ( SELF.description IN [ 'planar', 'complex'] ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) ); 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM' ) ) <= 1 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'NAME_ATTRIBUTE.NAMED_ITEM' ) ) <= 1 ); END_ENTITY;
ENTITY Property_Distribution_Description; id : Identifier; name : Label; description : OPTIONAL Text; abstract_function : Maths_Function; domain_context : Maths_Space_Context; physical_function : Property_Distribution_Select; range_context : Maths_Space_Context; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'shape volume occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'volume shape usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ); END_ENTITY;
ENTITY Qualified_Representation_Item SUBTYPE OF ( Representation_Item ); qualifiers : SET [1 : ?] OF Value_Qualifier; WHERE wr1: ( SIZEOF( QUERY ( temp <* qualifiers | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.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 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 0 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY;
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_Representation_Item SUBTYPE OF ( Representation_Item, Slash_Expression ); WHERE wr1: ( SIZEOF( QUERY ( operand <* SELF\Binary_Generic_Expression.operands | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'length' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr. related_shape_aspect ) ) ) ) = 1 ) ) ) <= 5 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'row spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'column spacing' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( basis_surface ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( basis_surface ) ) ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_OF_REVOLUTION' IN TYPEOF( basis_surface ) ) OR ( usense = ( u2 > u1 ) ) ); wr4: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_SURFACE' IN TYPEOF( basis_surface ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'shape volume occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'volume shape usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_LAYER_ASSIGNMENT.' + 'ASSIGNED_ITEMS' ) ) > 0 ); wr2: ( SIZEOF( QUERY ( r <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION.' + 'ITEMS' ) | ( r.name = 'group representation' ) ) ) > 0 ); wr3: ( SIZEOF( QUERY ( ga <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GROUP_ASSIGNMENT.' + 'ASSIGNED_GROUP' ) | ( ga.role.name <> 'group membership' ) ) ) = 0 ); wr4: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRIC_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'TOPOLOGICAL_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPLICATE_FEATURE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INSTANCED_FEATURE' ] * TYPEOF( fcr.related_shape_aspect ) ) >= 1 ) AND ( fcr.name = 'pattern basis' ) ) ) ) = 1 ); wr3: ( ( SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATING_SHAPE_ASPECT' ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) ) + SIZEOF( QUERY ( sar <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' IN TYPEOF( map. mapped_representation ) ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF( map.mapping_origin ) ); wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_CURVE_SET', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_GEOMETRIC_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_POINT_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SURFACE_SET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SHELL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SOLID' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_WIRE' ] * TYPEOF( SELF ) ) = 0 ) ); END_ENTITY;
ENTITY Representation SUPERTYPE OF ( 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM' ) ) <= 1 ); wr2: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Item SUPERTYPE OF ( ONEOF ( Binary_Representation_Item, Compound_Representation_Item, Mapped_Item, Value_Representation_Item ) ANDOR ONEOF ( Mapped_Item, Styled_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 ) ); 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( SELF.mapping_origin, SELF.mapped_representation.context_of_items ); END_ENTITY;
ENTITY Representation_Proxy_Item SUBTYPE OF ( Representation_Item ); END_ENTITY;
ENTITY Representation_Relationship; name : Label; description : OPTIONAL Text; rep_1 : Representation; rep_2 : Representation; 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 ); 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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Result; result_id : Identifier; creating_software : Text; description : Text; END_ENTITY;
ENTITY Result_Analysis_Step SUPERTYPE OF ( ONEOF ( Result_Linear_Static_Analysis_Sub_Step, Result_Linear_Modes_And_Frequencies_Analysis_Sub_Step ) ) SUBTYPE OF ( Analysis_Step ); analysis_result : Result; UNIQUE ur1 : SELF\Analysis_Step.analysis_control, analysis_result; END_ENTITY;
ENTITY Result_Linear_Modes_And_Frequencies_Analysis_Sub_Step SUBTYPE OF ( Result_Analysis_Step ); states : SET [1 : ?] OF Calculated_State; END_ENTITY;
ENTITY Result_Linear_Static_Analysis_Sub_Step SUBTYPE OF ( Result_Analysis_Step ); state : Calculated_State; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_ASSIGNMENT.' + 'ASSIGNED_ACTION' ) | ( ( 'ACTIVITY.APPLIED_ACTION_ASSIGNMENT' IN TYPEOF( aa ) ) AND ( aa.role.name = 'retention' ) ) ) ) >= 1 ); wr2: ( ( SIZEOF( QUERY ( atia <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( atia.role.name = 'minimum retention period' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( atia <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( atia.role.name = 'maximum retention period' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( atia1 <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( ( atia1.role.name = 'minimum retention period' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_TIME_INTERVAL_ASSIGNMENT.ITEMS' ) | ( ( atia2.role.name = 'maximum retention period' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ACTION_RELATIONSHIP.RELATING_ACTION' ) ) + SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) ); 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 ) ); 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN TYPEOF( first_trim_condition ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' IN TYPEOF( second_trim_condition ) ) ) ); wr2: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' IN TYPEOF( first_trim_condition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'outer edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'flat edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'rounded edge shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'sweep occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'rib top condition occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'rib top usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP' IN TYPEOF( sdr.related_shape_aspect.of_shape. definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT' ) | ( ( sar.description = 'rib top usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = 'rib top condition occurrence' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP' IN TYPEOF( fcr.related_shape_aspect.of_shape. definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP_FLOOR' IN TYPEOF( fcr. relating_shape_aspect ) ) ) ) ) >= 1 ); wr4: ( ( NOT ( SELF.description = 'complex' ) ) OR ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NGON_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_CLOSED_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 <= 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 ); 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 Rind; index_count : INTEGER; planes : ARRAY [1 : 2 * index_count] OF INTEGER; 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: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'diameter occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CIRCULAR_CLOSED_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) AND ( sdr.name = 'diameter' ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'hole depth occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'bottom condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'hole bottom usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.HOLE_BOTTOM' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( fcr.related_shape_aspect.of_shape. definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'change in diameter occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'taper usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAPER' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE' IN TYPEOF( fcr.related_shape_aspect.of_shape. definition ) ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 0 ); wr5: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'partial circular boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PARTIAL_CIRCULAR_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF( SELF.reference_surface ) ) AND ( SELF.reference_surface\B_Spline_Surface.u_degree = 1 ) ); wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( SELF.directrix ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Discretised_Action_Model; id : Identifier; name : Label; description : OPTIONAL Text; equivalent_records : SET [2 : ?] OF Discretised_Action_Model_Select; END_ENTITY;
ENTITY Same_Discretised_Distribution_Model; id : Identifier; name : Label; description : OPTIONAL Text; equivalent_records : SET [1 : ?] OF Discretised_Distribution_Model_Select; END_ENTITY;
ENTITY Same_Discretised_State_Model; id : Identifier; name : Label; description : OPTIONAL Text; equivalent_records : SET [2 : ?] OF Discretised_State_Model_Select; END_ENTITY;
ENTITY Same_Idealised_Action; id : Identifier; name : Label; description : OPTIONAL Text; equivalent_records : SET [2 : ?] OF Idealised_Action_Select; END_ENTITY;
ENTITY Same_Idealised_Distribution; id : Identifier; name : Label; description : OPTIONAL Text; equivalent_records : LIST [2 : ?] OF Idealised_Distribution_Select; END_ENTITY;
ENTITY Same_Idealised_State; id : Identifier; name : Label; description : OPTIONAL Text; equivalent_records : SET [2 : ?] OF Idealised_State_Select; 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 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( SELF\Surface_Curve.associated_geometry[1] ) ); wr4: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( SELF\Surface_Curve.associated_geometry[2] ) ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' ] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE'] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_FACE_SURFACE'] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' ] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( Contacting_Feature, Datum, Datum_Feature, Datum_Target, Datum_System, General_Datum_Reference ) ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' IN TYPEOF( representing_representation_relationship\Representation_Relationship.rep_1 ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERION_ASSESSMENT_ASSOCIATION.' + 'CRITERION' ) ) = 0 ); wr2: ( SIZEOF( QUERY ( i1 <* Bag_To_Set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATED_REPRESENTATION_ITEM' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_CRITERION_MEASUREMENT_ASSOCIATION' ) IN TYPEOF( i1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( i1 <* Bag_To_Set( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_ITEM_RELATIONSHIP.' + 'RELATING_REPRESENTATION_ITEM' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT' ) IN TYPEOF( q ) ) ) ) > 0 ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\Representation .context_of_items ) ); wr3: ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) ) ) = 2 ) OR ( SIZEOF( QUERY ( i2 <* SELF\Compound_Representation_Item.item_element | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) AND ( SIZEOF( QUERY ( i2 <* SELF\Compound_Representation_Item.item_element | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) AND ( SIZEOF( QUERY ( i2 <* SELF\Compound_Representation_Item.item_element | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( definition ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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_Relationship SUBTYPE OF ( Representation_Relationship ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION' IN ( TYPEOF( SELF\ Representation_Relationship.rep_1 ) + TYPEOF( SELF\Representation_Relationship.rep_2 ) ) ); 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_3D' ] * TYPEOF( it ) ) = 1 ) ) ) ) = 0 ); wr2 : ( SIZEOF( QUERY ( it <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM'] * TYPEOF( it ) ) = 1 ) ) ) >= 1 ); wr3 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ Shell_Based_Wireframe_Model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\Wire_Shell.wire_shell_extent | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( QUERY ( el <* eloop\Path.edge_list | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN TYPEOF( el.edge_element ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ Shell_Based_Wireframe_Model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\Wire_Shell.wire_shell_extent | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( QUERY ( pline_el <* QUERY ( el <* eloop\Path.edge_list | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ Shell_Based_Wireframe_Model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\Wire_Shell.wire_shell_extent | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ Shell_Based_Wireframe_Model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\Wire_Shell.wire_shell_extent | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( SIZEOF( QUERY ( el <* eloop\Path.edge_list | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( el.edge_element.edge_start ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( el.edge_element.edge_end ) ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ Shell_Based_Wireframe_Model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( eloop <* QUERY ( wsb <* ws\Wire_Shell.wire_shell_extent | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ Shell_Based_Wireframe_Model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( vloop <* QUERY ( wsb <* ws\Wire_Shell.wire_shell_extent | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_LOOP' IN TYPEOF( wsb ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vloop\Vertex_Loop.loop_vertex ) ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( ws <* QUERY ( sb <* sbwm\ Shell_Based_Wireframe_Model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( SIZEOF( QUERY ( vloop <* QUERY ( wsb <* ws\Wire_Shell.wire_shell_extent | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( vs <* QUERY ( sb <* sbwm\ Shell_Based_Wireframe_Model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_SHELL' IN TYPEOF( sb ) ) ) | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX_POINT' IN TYPEOF( vs\ Vertex_Shell.vertex_shell_extent.loop_vertex ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr11: ( SIZEOF( QUERY ( sbwm <* QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF( it ) ) ) | ( NOT ( SIZEOF( QUERY ( vs <* QUERY ( sb <* sbwm\ Shell_Based_Wireframe_Model.sbwm_boundary | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'B_SPLINE_CURVE_SEGMENT' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MASS_UNIT' IN TYPEOF( SELF ) ) AND ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Plane_2d_Element_Property SUBTYPE OF ( Plane_2d_Element_Property ); END_ENTITY;
ENTITY Simple_String_Expression ABSTRACT SUPERTYPE OF ( ONEOF ( String_Literal, String_Variable ) ) SUBTYPE OF ( String_Expression, Simple_Generic_Expression ); END_ENTITY;
ENTITY Simulation_Run; id : Identifier; name : Label; description : Text; simulated : Numerical_Model; results : SET [0 : ?] OF Model_Property_Distribution; 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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( it ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( it <* SELF.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_PRIMITIVE_SOLID_2D' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' IN TYPEOF( it\Csg_Primitive_Solid_2d.tree_root_expression ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Single_Point_Constraint_Element SUBTYPE OF ( Constraint_Element ); required_node : Node_Output_Reference; coordinate_system : Fea_Axis2_Placement_3d; freedoms_and_values : SET [1 : ?] OF Freedom_And_Coefficient; description : Text; END_ENTITY;
ENTITY Single_Point_Constraint_Element_Values SUBTYPE OF ( State_Definition ); element : Single_Point_Constraint_Element; degrees_of_freedom : Freedoms_List; b : LIST [1 : ?] OF Measure_Or_Unspecified_Value; WHERE wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( b ) ); END_ENTITY;
ENTITY Single_Property_Is_Definition SUBTYPE OF ( Property_Definition ); SELF\property_definition.definition : Product_Definition; UNIQUE ur1 : SELF\Property_Definition.definition; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'swept shape occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARTIAL_CIRCULAR_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDED_U_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_PATH_PROFILE' ] * TYPEOF( sdr.relating_shape_aspect ) ) = 1 ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) AND ( sar.name = 'course of travel' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_FEATURE_COMPONENT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. relating_shape_aspect.description IN [ 'open', 'radiused', 'flat', 'woodruff'] ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 2 ) OR ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. relating_shape_aspect.description IN [ 'loop'] ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) ) = 0 ); wr5: ( ( NOT ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'end condition occurrence' ) AND ( SIZEOF( QUERY ( fcr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT_END' IN TYPEOF( fcr.relating_shape_aspect ) ) AND ( fcr. relating_shape_aspect.description IN [ 'loop'] ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape.definition ) ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ) ) OR ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + 'OF_SHAPE' ) | ( ( sa_occ.description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'path feature component usage' ) AND ( sar.name = 'course of travel' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( fcr.related_shape_aspect.description = 'end condition occurrence' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT' IN TYPEOF( fcr.related_shape_aspect.of_shape. definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AREA_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'B_SPLINE_SURFACE_PATCH' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VOLUME_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MANIFOLD_SOLID_BREP'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 0 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY;
ENTITY Solid_Constraint SUBTYPE OF ( Constraint_Element ); required_solid : Analysis_Item_Within_Representation; coordinate_system : Fea_Axis2_Placement_3d; freedoms_and_coefficients : SET [1 : ?] OF Freedom_And_Coefficient; description : Text; WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_MODEL' IN TYPEOF( required_solid.item ) ); END_ENTITY;
ENTITY Solid_Curve_Font SUBTYPE OF ( Pre_Defined_Curve_Font ); END_ENTITY;
ENTITY Solid_Freedom_Action_Definition SUBTYPE OF ( Solid_Freedom_And_Value_Definition ); action : Action_Type; END_ENTITY;
ENTITY Solid_Freedom_And_Value_Definition SUPERTYPE OF ( ONEOF ( Solid_Freedom_Values, Solid_Freedom_Action_Definition ) ) SUBTYPE OF ( State_Definition ); required_solid : Analysis_Item_Within_Representation; coordinate_system : Fea_Axis2_Placement_3d; degrees_of_freedom : Freedoms_List; values : LIST [1 : ?] OF Measure_Or_Unspecified_Value; WHERE wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_MODEL' IN TYPEOF( required_solid.item ) ); END_ENTITY;
ENTITY Solid_Freedom_Values SUBTYPE OF ( Solid_Freedom_And_Value_Definition ); 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_THROUGH_DEPRESSION' IN TYPEOF( SELF ) ) AND ( SIZEOF( TYPEOF( SELF ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_FLAT_BOTTOM_ROUND_HOLE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_SPHERICAL_BOTTOM_ROUND_HOLE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_HOLE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_POCKET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Spatial_Decomposition_Of_Numerical_Model; parts : SET [2 : ?] OF Numerical_Model; whole : Numerical_Model; END_ENTITY;
ENTITY Spatial_Decomposition_Of_Temporal_Spatial_Domain; parts : SET [2 : ?] OF Temporal_Spatial_Domain; whole : Temporal_Spatial_Domain; END_ENTITY;
ENTITY Specification_Definition SUBTYPE OF ( Product_Definition ); END_ENTITY;
ENTITY Specified_General_Property SUBTYPE OF ( General_Property ); name_specifier : Choose_General_Property_Identifier; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( pdr.relating_product_definition :=: next_usage.relating_product_definition ) ) ) = 1 ) ); wr5: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEXT_ASSEMBLY_USAGE_OCCURRENCE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPECIFIED_HIGHER_USAGE_OCCURRENCE' ] * TYPEOF( upper_usage ) ) = 1 ); END_ENTITY;
ENTITY Specified_Representation_Context SUBTYPE OF ( Representation_Context ); class_specifier : Choose_Representation_Context_Identifier; END_ENTITY;
ENTITY Specified_State SUBTYPE OF ( State ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'radius' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Surface SUBTYPE OF ( Elementary_Surface ); radius : Positive_Length_Measure; 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 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'first radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'second radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'first angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 SUPERTYPE OF ( ONEOF ( Specified_State, Calculated_State, Linearly_Superimposed_State, Output_Request_State ) ); state_id : Identifier; description : Text; END_ENTITY;
ENTITY State_Component SUBTYPE OF ( State ); state : Linearly_Superimposed_State; factor : Context_Dependent_Measure; END_ENTITY;
ENTITY State_Definition SUPERTYPE OF ( ONEOF ( Field_Variable_Definition, Nodal_Freedom_And_Value_Definition, Element_Nodal_Freedom_Actions, Point_Freedom_And_Value_Definition, Curve_Freedom_And_Value_Definition, Surface_Freedom_And_Value_Definition, Solid_Freedom_And_Value_Definition, Linear_Constraint_Equation_Element_Value, Single_Point_Constraint_Element_Values, Analysis_Message ) ); defined_state : State; END_ENTITY;
ENTITY State_Relationship; name : Label; description : Text; relating_state : State; related_state : State; 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 State_View_Relationship; id : Identifier; name : Label; description : OPTIONAL Text; discretised_model : Discretised_State_Model_Select; idealised_state : Idealised_State_Select; END_ENTITY;
ENTITY State_With_Harmonic SUBTYPE OF ( State ); symmetry : Cylindrical_Symmetry_Control; END_ENTITY;
ENTITY Stationary_Mass SUBTYPE OF ( Point_Element_Matrix ); mass : ARRAY [1 : 3] OF Context_Dependent_Measure; moments_of_inertia : Symmetric_Tensor2_3d; coordinate_system : Fea_Axis2_Placement_3d; offset_vector : ARRAY [1 : 3] OF Context_Dependent_Measure; 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_LOOP'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ORIENTED_EDGE'] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONNECTED_FACE_SET'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POINT_ON_EDGE_CURVE' ] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'course of travel occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'path feature component usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'removal boundary occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'profile usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VEE_PROFILE' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( SELF ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pds ) ) AND ( SIZEOF( QUERY ( csa <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.' + 'OF_SHAPE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_SHAPE_ASPECT' IN TYPEOF( csa ) ) AND ( csa.name = 'uncut volume' ) AND ( SIZEOF( QUERY ( sar <* csa.component_relationships | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_RELATIONSHIP' IN TYPEOF( sar ) ) AND ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION' ] * TYPEOF( sar.related_shape_aspect ) ) = 1 ) ) ) ) = 1 ) ) ) ) <= 1 ) ) ) ) = 1 ); END_ENTITY;
ENTITY Straightness_Tolerance SUBTYPE OF ( Geometric_Tolerance ); WHERE wr1: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Structural_Response_Property SUBTYPE OF ( Property_Definition ); END_ENTITY;
ENTITY Structural_Response_Property_Definition_Representation SUBTYPE OF ( Property_Definition_Representation ); WHERE wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'STRUCTURAL_RESPONSE_PROPERTY' ) IN TYPEOF( SELF\ Property_Definition_Representation.definition ) ); wr2: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_MODEL' IN TYPEOF( SELF\ Property_Definition_Representation.used_representation ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEA_MODEL_DEFINITION' IN TYPEOF( SELF\ Property_Definition_Representation.definition.definition ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENT_REPRESENTATION' IN TYPEOF( SELF\ Property_Definition_Representation.used_representation ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENT_DEFINITION' IN TYPEOF( SELF\ Property_Definition_Representation.definition.definition ) ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_REPRESENTATION' IN TYPEOF( SELF\ Property_Definition_Representation.used_representation ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_DEFINITION' IN TYPEOF( SELF\ Property_Definition_Representation.definition.definition ) ) ) ); END_ENTITY;
ENTITY Structured_Dimension_Callout SUBTYPE OF ( Draughting_Callout ); WHERE wr1: ( SIZEOF( TYPEOF( SELF ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_FEATURE_CALLOUT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DATUM_TARGET_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRICAL_TOLERANCE_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LEADER_DIRECTED_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROJECTION_DIRECTED_CALLOUT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSION_CURVE_DIRECTED_CALLOUT' ] ) = 0 ); wr2: ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'dimension value' ) ) ) >= 1 ); wr4: ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) AND ( dcr.name = 'prefix' ) ) ) ) <= 1 ); wr5: ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) AND ( dcr.name = 'suffix' ) ) ) ) <= 1 ); wr6: ( ( NOT ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'prefix text' ) ) ) > 0 ) ) OR ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) AND ( dcr.name = 'prefix' ) ) ) ) = 1 ) ); wr7: ( ( NOT ( SIZEOF( QUERY ( ato <* QUERY ( con <* SELF.contents | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_TEXT_OCCURRENCE' IN TYPEOF( con ) ) ) | ( ato.name = 'suffix text' ) ) ) > 0 ) ) OR ( SIZEOF( QUERY ( dcr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_CALLOUT_RELATIONSHIP.' + 'RELATING_DRAUGHTING_CALLOUT' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DIMENSION_CALLOUT_COMPONENT_RELATIONSHIP' ) IN TYPEOF( dcr ) ) AND ( dcr.name = 'suffix' ) ) ) ) = 1 ) ); END_ENTITY;
ENTITY Structured_Donor_Mesh SUBTYPE OF ( Mismatched_Donor_Mesh ); SELF\mismatched_donor_mesh.donor : Structured_Mesh; points : Listed_Real_Data; vsize : INTEGER; DERIVE index_count : INTEGER := donor.index_count; END_ENTITY;
ENTITY Structured_Mesh SUBTYPE OF ( Mesh ); vertex_counts : ARRAY [1 : SELF\Mesh.index_count] OF INTEGER; cell_counts : ARRAY [1 : SELF\Mesh.index_count] OF INTEGER; kind : Structured_Mesh_Type; END_ENTITY;
ENTITY Structured_Mesh_With_Rind SUBTYPE OF ( Structured_Mesh ); rind_planes : Rind; 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 [1 : ?] OF Presentation_Style_Assignment; item : Styled_Item_Target; WHERE wr1: ( ( SIZEOF( SELF.styles ) = 1 ) XOR ( SIZEOF( QUERY ( pres_style <* SELF.styles | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRESENTATION_STYLE_BY_CONTEXT' ) IN TYPEOF( pres_style ) ) ) ) ) = 0 ) ); wr2: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STYLED_ITEM' IN TYPEOF( item ) ) ); wr3: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM' IN TYPEOF( item ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONTEXT_DEPENDENT_OVER_RIDING_STYLED_ITEM' IN TYPEOF( SELF ) ) ); 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 Submesh SUBTYPE OF ( Mesh ); END_ENTITY;
ENTITY Subsketch SUBTYPE OF ( Geometric_Representation_Item ); subsketch_elements : SET [1 : ?] OF Sketch_Element_Select; owning_sketch : Sketch_Type_Select; WHERE wr1: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITIONED_SKETCH', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_EXPRESSION' IN TYPEOF( operand ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_EXPRESSION' IN TYPEOF( index1 ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Substructure_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model; substructure_model_ref : Fea_Model; UNIQUE ur1 : model_ref, SELF\Representation.name; END_ENTITY;
ENTITY Substructure_Node_Reference; substructure_element_ref : Substructure_Element_Representation; node_ref : Node_Representation; END_ENTITY;
ENTITY Substructure_Node_Relationship SUBTYPE OF ( Representation_Relationship ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_REPRESENTATION' IN TYPEOF( SELF\Representation_Relationship .rep_1 ) ); wr2: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NODE_REPRESENTATION' IN TYPEOF( SELF\Representation_Relationship .rep_2 ) ); END_ENTITY;
ENTITY Summary_Report_Request SUBTYPE OF ( Data_Quality_Report_Request ); summary_report_request_type : Summary_Report_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_2d_Element_Basis; descriptor : Surface_2d_Element_Descriptor; variable : Surface_Element_Variable; variable_order : Element_Order; variable_shape_function : Shape_Function; evaluation_points : LIST [1 : ?] OF Surface_Element_Location; END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Constant_Specified_Surface_Variable_Value SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Variable; element_face : Surface_2d_Face; coordinate_system : OPTIONAL Surface_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Constant_Specified_Variable_Value SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Aggregated_Variable; element_face : Surface_2d_Face; coordinate_system : OPTIONAL Surface_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Edge_Constant_Specified_Surface_Variable_Value SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Edge_Variable; element_edge : Surface_2d_Edge; coordinate_system : OPTIONAL Surface_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Edge_Constant_Specified_Variable_Value SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Edge_Variable; element_edge : Surface_2d_Edge; coordinate_system : OPTIONAL Surface_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Edge_Location_Point_Surface_Variable_Values SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Surface_2d_Element_Value_And_Volume_Location; variable : Boundary_Edge_Variable; element_edge : Surface_2d_Edge; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Edge_Location_Point_Variable_Values SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Surface_2d_Element_Value_And_Location; variable : Boundary_Edge_Variable; element_edge : Surface_2d_Edge; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Edge_Nodal_Specified_Variable_Values SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Boundary_Edge_Variable; element_edge : Surface_2d_Edge; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Edge_Whole_Edge_Variable_Value SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Aggregated_Variable; element_edge : Surface_2d_Edge; coordinate_system : OPTIONAL Surface_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Location_Point_Surface_Variable_Values SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Surface_2d_Element_Value_And_Location; variable : Boundary_Variable; element_face : Surface_2d_Face; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Nodal_Specified_Variable_Values SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Boundary_Variable; element_face : Surface_2d_Face; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Boundary_Whole_Face_Variable_Value SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Aggregated_Variable; element_face : Surface_2d_Face; coordinate_system : OPTIONAL Surface_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Constant_Specified_Variable_Value SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Surface_Element_Variable; coordinate_system : OPTIONAL Surface_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Constant_Specified_Volume_Variable_Value SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Variable; coordinate_system : OPTIONAL Surface_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Surface_2d_Element_Location_Point_Volume_Variable_Values, Surface_2d_Element_Location_Point_Variable_Values, Surface_2d_Whole_Element_Variable_Value, Surface_2d_Element_Constant_Specified_Variable_Value, Surface_2d_Element_Constant_Specified_Volume_Variable_Value, Surface_2d_Element_Nodal_Specified_Variable_Values, Surface_2d_Element_Boundary_Location_Point_Surface_Variable_Values, Surface_2d_Element_Boundary_Whole_Face_Variable_Value, Surface_2d_Element_Boundary_Constant_Specified_Variable_Value, Surface_2d_Element_Boundary_Constant_Specified_Surface_Variable_Value, Surface_2d_Element_Boundary_Nodal_Specified_Variable_Values, Surface_2d_Element_Boundary_Edge_Location_Point_Surface_Variable_Values, Surface_2d_Element_Boundary_Edge_Location_Point_Variable_Values, Surface_2d_Element_Boundary_Edge_Whole_Edge_Variable_Value, Surface_2d_Element_Boundary_Edge_Constant_Specified_Variable_Value, Surface_2d_Element_Boundary_Edge_Constant_Specified_Surface_Variable_Value, Surface_2d_Element_Boundary_Edge_Nodal_Specified_Variable_Values ) ) SUBTYPE OF ( Field_Variable_Element_Definition ); element : Surface_2d_Element_Output_Reference; END_ENTITY;
ENTITY Surface_2d_Element_Group SUBTYPE OF ( Element_Group ); WHERE wr1: ( SIZEOF( QUERY ( item <* elements | ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXISYMMETRIC_SURFACE_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_SURFACE_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Surface_2d_Element_Integrated_Matrix; descriptor : Surface_2d_Element_Descriptor; property_type : Surface_Matrix_Property_Type; integration_description : Text; END_ENTITY;
ENTITY Surface_2d_Element_Integrated_Matrix_With_Definition SUBTYPE OF ( Surface_2d_Element_Integrated_Matrix ); integration_definition : Surface_2d_Element_Integration; END_ENTITY;
ENTITY Surface_2d_Element_Integration; element_length : Surface_2d_Element_Length_Integration; section : Surface_Section_Integration; END_ENTITY;
ENTITY Surface_2d_Element_Length_Integration_Explicit; integration_positions_and_weights : SET [1 : ?] OF Surface_Position_Weight; END_ENTITY;
ENTITY Surface_2d_Element_Length_Integration_Rule; integration_method : Integration_Rule; integration_order : INTEGER; END_ENTITY;
ENTITY Surface_2d_Element_Location_Point_Variable_Values SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Surface_2d_Element_Value_And_Location; variable : Surface_Element_Variable; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Location_Point_Volume_Variable_Values SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Surface_2d_Element_Value_And_Volume_Location; variable : Volume_Variable; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Nodal_Specified_Variable_Values SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Surface_Element_Variable; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Element_Value_And_Location; simple_value : Field_Value; location : Surface_Element_Location; coordinate_system : OPTIONAL Surface_2d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); END_ENTITY;
ENTITY Surface_2d_Element_Value_And_Volume_Location; simple_value : Field_Value; location : Surface_Volume_Element_Location; coordinate_system : OPTIONAL Surface_2d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); END_ENTITY;
ENTITY Surface_2d_Node_Field_Aggregated_Variable_Values SUBTYPE OF ( Surface_2d_Node_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Surface_2d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Node_Field_Section_Variable_Values SUBTYPE OF ( Surface_2d_Node_Field_Variable_Definition ); simple_value : Field_Value; variable : Surface_Element_Variable; location : Surface_Section_Element_Location; coordinate_system : OPTIONAL Surface_2d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_2d_Node_Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Surface_2d_Node_Field_Section_Variable_Values, Surface_2d_Node_Field_Aggregated_Variable_Values ) ) SUBTYPE OF ( Field_Variable_Node_Definition ); END_ENTITY;
ENTITY Surface_2d_Substructure_Element_Reference; substructure_element_ref : Substructure_Element_Representation; element_ref : Surface_2d_Element_Representation; END_ENTITY;
ENTITY Surface_2d_Whole_Element_Variable_Value SUBTYPE OF ( Surface_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Surface_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Basis; descriptor : Surface_3d_Element_Descriptor; variable : Surface_Element_Variable; variable_order : Element_Order; variable_shape_function : Shape_Function; evaluation_points : LIST [1 : ?] OF Surface_Element_Location; END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Constant_Specified_Surface_Variable_Value SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Variable; element_face : Surface_3d_Face; coordinate_system : OPTIONAL Surface_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Constant_Specified_Variable_Value SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Aggregated_Variable; element_face : Surface_3d_Face; coordinate_system : OPTIONAL Surface_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Edge_Constant_Specified_Surface_Variable_Value SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Edge_Variable; element_edge : Surface_3d_Edge; coordinate_system : OPTIONAL Surface_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Edge_Constant_Specified_Variable_Value SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Edge_Variable; element_edge : Surface_3d_Edge; coordinate_system : OPTIONAL Surface_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Edge_Location_Point_Surface_Variable_Values SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Surface_3d_Element_Value_And_Volume_Location; variable : Boundary_Edge_Variable; element_edge : Surface_3d_Edge; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Edge_Location_Point_Variable_Values SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Surface_3d_Element_Value_And_Location; variable : Boundary_Edge_Variable; element_edge : Surface_3d_Edge; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Edge_Nodal_Specified_Variable_Values SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Boundary_Edge_Variable; element_edge : Surface_3d_Edge; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Edge_Whole_Edge_Variable_Value SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Aggregated_Variable; element_edge : Surface_3d_Edge; coordinate_system : OPTIONAL Surface_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Location_Point_Surface_Variable_Values SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Surface_3d_Element_Value_And_Location; variable : Boundary_Variable; element_face : Surface_3d_Face; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Nodal_Specified_Variable_Values SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Boundary_Variable; element_face : Surface_3d_Face; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Boundary_Whole_Face_Variable_Value SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Aggregated_Variable; element_face : Surface_3d_Face; coordinate_system : OPTIONAL Surface_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Constant_Specified_Variable_Value SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Surface_Element_Variable; coordinate_system : OPTIONAL Surface_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Constant_Specified_Volume_Variable_Value SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Variable; coordinate_system : OPTIONAL Surface_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Descriptor SUBTYPE OF ( Element_Descriptor ); purpose : SET [1 : ?] OF SET [1 : ?] OF Surface_Element_Purpose; shape : Element_2d_Shape; END_ENTITY;
ENTITY Surface_3d_Element_Field_Integration_Explicit; integration_positions_and_weights : SET [1 : ?] OF Surface_Position_Weight; END_ENTITY;
ENTITY Surface_3d_Element_Field_Integration_Rule; integration_method : Integration_Rule; integration_order : ARRAY [1 : 2] OF INTEGER; END_ENTITY;
ENTITY Surface_3d_Element_Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Surface_3d_Element_Location_Point_Volume_Variable_Values, Surface_3d_Element_Location_Point_Variable_Values, Surface_3d_Whole_Element_Variable_Value, Surface_3d_Element_Constant_Specified_Variable_Value, Surface_3d_Element_Constant_Specified_Volume_Variable_Value, Surface_3d_Element_Nodal_Specified_Variable_Values, Surface_3d_Element_Boundary_Location_Point_Surface_Variable_Values, Surface_3d_Element_Boundary_Whole_Face_Variable_Value, Surface_3d_Element_Boundary_Constant_Specified_Variable_Value, Surface_3d_Element_Boundary_Constant_Specified_Surface_Variable_Value, Surface_3d_Element_Boundary_Nodal_Specified_Variable_Values, Surface_3d_Element_Boundary_Edge_Location_Point_Surface_Variable_Values, Surface_3d_Element_Boundary_Edge_Location_Point_Variable_Values, Surface_3d_Element_Boundary_Edge_Whole_Edge_Variable_Value, Surface_3d_Element_Boundary_Edge_Constant_Specified_Variable_Value, Surface_3d_Element_Boundary_Edge_Constant_Specified_Surface_Variable_Value, Surface_3d_Element_Boundary_Edge_Nodal_Specified_Variable_Values ) ) SUBTYPE OF ( Field_Variable_Element_Definition ); element : Surface_3d_Element_Output_Reference; END_ENTITY;
ENTITY Surface_3d_Element_Group SUBTYPE OF ( Element_Group ); WHERE wr1: ( SIZEOF( QUERY ( item <* elements | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SURFACE_3D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Surface_3d_Element_Integrated_Matrix; descriptor : Surface_3d_Element_Descriptor; property_type : Surface_Matrix_Property_Type; integration_description : Text; END_ENTITY;
ENTITY Surface_3d_Element_Integrated_Matrix_With_Definition SUBTYPE OF ( Surface_3d_Element_Integrated_Matrix ); integration_definition : Surface_3d_Element_Integration; END_ENTITY;
ENTITY Surface_3d_Element_Integration; field : Surface_3d_Element_Field_Integration; section : Surface_Section_Integration; END_ENTITY;
ENTITY Surface_3d_Element_Location_Point_Variable_Values SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Surface_3d_Element_Value_And_Location; variable : Surface_Element_Variable; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Location_Point_Volume_Variable_Values SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Surface_3d_Element_Value_And_Volume_Location; variable : Volume_Variable; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Nodal_Specified_Variable_Values SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Surface_Element_Variable; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model_3d; element_descriptor : Surface_3d_Element_Descriptor; property : Surface_Element_Property; material : Element_Material; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONSTANT_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ALIGNED_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); wr2: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\Property_Definition_Representation. used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_AREA_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_BENDING_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_MEMBRANE_BENDING_COUPLING_STIFFNESS', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SHELL_SHEAR_STIFFNESS'] * TYPEOF( item2 ) ) = 1 ) ) ) = 1 ) ) ) >= 1 ); wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ Representation.context_of_items ) ); fu1: Required_2d_Nodes( SELF\Element_Representation.node_list, Element_Descriptor.shape, Element_Descriptor\ Element_Descriptor.topology_order ); END_ENTITY;
ENTITY Surface_3d_Element_Value_And_Location; simple_value : Field_Value; location : Surface_Element_Location; coordinate_system : OPTIONAL Surface_3d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); END_ENTITY;
ENTITY Surface_3d_Element_Value_And_Volume_Location; simple_value : Field_Value; location : Surface_Volume_Element_Location; coordinate_system : OPTIONAL Surface_3d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); END_ENTITY;
ENTITY Surface_3d_Node_Field_Aggregated_Variable_Values SUBTYPE OF ( Surface_3d_Node_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Surface_3d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Node_Field_Section_Variable_Values SUBTYPE OF ( Surface_3d_Node_Field_Variable_Definition ); simple_value : Field_Value; variable : Surface_Element_Variable; location : Surface_Section_Element_Location; coordinate_system : OPTIONAL Surface_3d_State_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_3d_Node_Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Surface_3d_Node_Field_Section_Variable_Values, Surface_3d_Node_Field_Aggregated_Variable_Values ) ) SUBTYPE OF ( Field_Variable_Node_Definition ); END_ENTITY;
ENTITY Surface_3d_Substructure_Element_Reference; substructure_element_ref : Substructure_Element_Representation; element_ref : Surface_3d_Element_Representation; END_ENTITY;
ENTITY Surface_3d_Whole_Element_Variable_Value SUBTYPE OF ( Surface_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Surface_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Surface_Condition_Callout SUBTYPE OF ( Draughting_Callout ); WHERE wr1: ( SIZEOF( QUERY ( c <* SELF.contents | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_CURVE_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_SYMBOL_OCCURRENCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_TEXT_OCCURRENCE' ] * TYPEOF( c ) ) <> 1 ) ) ) = 0 ); END_ENTITY;
ENTITY Surface_Constraint SUBTYPE OF ( Constraint_Element ); required_surface : Analysis_Item_Within_Representation; coordinate_system : Fea_Axis2_Placement_3d; freedoms_and_coefficients : SET [1 : ?] OF Freedom_And_Coefficient; description : Text; WHERE wr1: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF( required_surface.item ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( required_surface.item ) ) ); 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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( associated_geometry[1] ) ) OR ( master_representation <> Pcurve_S1 ) ); wr3: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( associated_geometry[2] ) ) OR ( master_representation <> Pcurve_S2 ) ); wr4: ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Element_Location; coordinates : Fea_Parametric_Point; END_ENTITY;
ENTITY Surface_Element_Property; property_id : Identifier; description : Text; section : Surface_Section_Field; END_ENTITY;
ENTITY Surface_Freedom_Action_Definition SUBTYPE OF ( Surface_Freedom_And_Value_Definition ); action : Action_Type; END_ENTITY;
ENTITY Surface_Freedom_And_Value_Definition SUPERTYPE OF ( ONEOF ( Surface_Freedom_Values, Surface_Freedom_Action_Definition ) ) SUBTYPE OF ( State_Definition ); required_surface : Analysis_Item_Within_Representation; coordinate_system : Fea_Axis2_Placement_3d; degrees_of_freedom : Freedoms_List; values : LIST [1 : ?] OF Measure_Or_Unspecified_Value; WHERE wr1: ( SIZEOF( degrees_of_freedom.freedoms ) = SIZEOF( values ) ); wr2: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF( required_surface.item ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( required_surface.item ) ) ); END_ENTITY;
ENTITY Surface_Freedom_Values SUBTYPE OF ( Surface_Freedom_And_Value_Definition ); 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 ) ); 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Position_Weight; integration_position : Surface_Element_Location; integration_weight : Context_Dependent_Measure; 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_Section SUPERTYPE OF ( ONEOF ( Uniform_Surface_Section, Uniform_Surface_Section_Layered ) ); offset : Measure_Or_Unspecified_Value; non_structural_mass : Measure_Or_Unspecified_Value; non_structural_mass_offset : Measure_Or_Unspecified_Value; END_ENTITY;
ENTITY Surface_Section_Element_Location SUPERTYPE OF ( ONEOF ( Surface_Section_Element_Location_Absolute, Surface_Section_Element_Location_Dimensionless ) ); above_material_discontinuity : LOGICAL; END_ENTITY;
ENTITY Surface_Section_Element_Location_Absolute SUBTYPE OF ( Surface_Section_Element_Location ); offset : Context_Dependent_Measure; END_ENTITY;
ENTITY Surface_Section_Element_Location_Dimensionless SUBTYPE OF ( Surface_Section_Element_Location ); coordinate : LIST [1 : 1] OF Parameter_Value; WHERE wr1: Valid_Parametric_Coordinate( coordinate ); END_ENTITY;
ENTITY Surface_Section_Field SUPERTYPE OF ( ONEOF ( Surface_Section_Field_Constant, Surface_Section_Field_Varying ) ); END_ENTITY;
ENTITY Surface_Section_Field_Constant SUBTYPE OF ( Surface_Section_Field ); definition : Surface_Section; END_ENTITY;
ENTITY Surface_Section_Field_Varying SUBTYPE OF ( Surface_Section_Field ); definitions : LIST [1 : ?] OF Surface_Section; additional_node_values : BOOLEAN; END_ENTITY;
ENTITY Surface_Section_Integration_Explicit; integration_positions_and_weights : SET [1 : ?] OF Surface_Section_Position_Weight; END_ENTITY;
ENTITY Surface_Section_Integration_Rule; integration_method : Integration_Rule; integration_order : INTEGER; END_ENTITY;
ENTITY Surface_Section_Position_Weight; integration_position : Surface_Section_Element_Location; integration_weight : Context_Dependent_Measure; 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 <* SELF.styles | ( SIZEOF( QUERY ( style2 <* ( SELF.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( SELF.direction_counts ) = 1 ) XOR ( TYPEOF( SELF.direction_counts[1] ) <> TYPEOF( SELF.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( SELF.properties ) = 1 ) XOR ( TYPEOF( SELF.properties[1] ) <> TYPEOF( SELF.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 <= transparency ) AND ( transparency <= 1 ) ); 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM'] * TYPEOF( i ) ) <> 1 ) ) ) = 0 ); wr2: ( ( SIZEOF( QUERY ( i <* SELF.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* SELF.items | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' ) IN TYPEOF( i ) ) AND ( i.name = 'measuring method' ) ) ) ) = 1 ) ); wr3: ( SIZEOF( QUERY ( i <* SELF.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) = 1 ) ) ) > 0 ); wr4: ( ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) ) <= 1 ) AND ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) ) = 0 ) AND ( SIZEOF( QUERY ( rr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) | ( rr.rep_2. name = 'measuring direction' ) ) ) = SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_1' ) ) ) ); wr5: ( ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Volume_Element_Location; field_location : Surface_Element_Location; section_location : Surface_Section_Element_Location; 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE'] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) ) 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Control SUPERTYPE OF ( ONEOF ( No_Symmetry_Control, Cylindrical_Symmetry_Control ) ); 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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' ] ) = 0 ); wr3: ( NOT ( ( SELF\Geometric_Representation_Item.dim = 2 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( mirror_element ) ) ) ); END_ENTITY;
ENTITY Symmetry_Tolerance SUBTYPE OF ( Geometric_Tolerance_With_Datum_Reference ); END_ENTITY;
ENTITY System_And_Freedom; matrix_coordinate_system : Directionally_Explicit_Element_Coordinate_System; freedom : Degree_Of_Freedom; END_ENTITY;
ENTITY Table_Representation_Item SUBTYPE OF ( Compound_Representation_Item ); WHERE wr1: ( SIZEOF( QUERY ( itet <* SELF\Compound_Representation_Item.item_element | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) <> 1 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( i <* SELF.items | ( name = 'depth' ) ) ) <= 1 ); wr3: ( ( SIZEOF( USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr4: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'cross bar width' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'cross bar depth' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'first offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr11: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'second offset' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'first angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr13: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'second angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'radius' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr. used_representation ) ) AND ( pdr.used_representation.name = 'profile limit' ) ) ) ) <= 1 ) ) ) ) = 0 ); END_ENTITY;
ENTITY Temporal_Decomposition_Of_Action_Domain; whole : Physical_Action_Domain; parts : LIST [2 : ?] OF Physical_Action_Domain; END_ENTITY;
ENTITY Temporal_Decomposition_Of_Model_Action; parts : LIST [2 : ?] OF Model_Action_Domain; whole : Model_Action_Domain; END_ENTITY;
ENTITY Temporal_Spatial_Domain; id : Identifier; name : Label; description : Text; WHERE wr1: Definition_For_Temporal_Spatial_Domain( SELF ); END_ENTITY;
ENTITY Tensor_Representation_Item SUBTYPE OF ( Representation_Item ); tensor_value : Tensor_Type; 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 ) ); 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 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 ) ) 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); SELF\representation.items : SET [1 : ?] OF Tessellated_Item; WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GLOBAL_UNIT_ASSIGNED_CONTEXT' IN TYPEOF( SELF\Representation. context_of_items ) ); 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 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT_CHARACTER' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DEFINED_CHARACTER_GLYPH' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' ] * TYPEOF( item ) ) = 0 ) ) ) ) >= 1 ); wr2: ( SIZEOF( QUERY ( a2p <* QUERY ( item <* SELF\Representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT' IN TYPEOF( item ) ) ) | ( NOT ( ( SIZEOF( QUERY ( at <* QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ANNOTATION_TEXT' ) IN TYPEOF( item ) ) ) | ( at\Mapped_Item.mapping_target :=: a2p ) ) ) >= 1 ) OR ( SIZEOF( QUERY ( atc <* QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 <* SELF.characteristics | ( SIZEOF( QUERY ( c2 <* ( SELF.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 Thermal_Component SUBTYPE OF ( Assembly_Component ); END_ENTITY;
ENTITY Thermal_Conductivity_Model SUBTYPE OF ( Mbna_Behaviour_Model ); model_type : Thermal_Conductivity_Model_Type; END_ENTITY;
ENTITY Thermal_Resistance_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, -1, -3, 0, 1, 0, 0 ) ); END_ENTITY;
ENTITY Thermodynamic_Temperature_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 0 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 1 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN TYPEOF( base_element ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'major diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'minor diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr4 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'pitch diameter' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RATIO_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'number of threads' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. name = 'fit class' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. name = 'form' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. name = 'qualifier' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr10: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'crest' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'applied area usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_AREA' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr13: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ); wr14: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it. name = 'fit class 2' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr15: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'thread runout' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'thread runout usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'THREAD_RUNOUT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) <= 1 ) ) ) ) = 1 ) ) ) ) = 0 ); END_ENTITY;
ENTITY Thread_Runout SUBTYPE OF ( Shape_Aspect ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( SELF.of_shape ) ); wr2: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'length of runout' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) <= 1 ); wr6: ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( SELF\Named_Unit.dimensions.mass_exponent = 0 ) AND ( SELF\ Named_Unit.dimensions.time_exponent = 1 ) AND ( SELF\Named_Unit.dimensions.electric_current_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.thermodynamic_temperature_exponent = 0 ) AND ( SELF\Named_Unit.dimensions. amount_of_substance_exponent = 0 ) AND ( SELF\Named_Unit.dimensions.luminous_intensity_exponent = 0 ) ); END_ENTITY;
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 Topological_Representation_Item SUPERTYPE OF ( ONEOF ( Vertex, Edge, Face_Bound, Face, Vertex_Shell, Wire_Shell, Connected_Edge_Set, Connected_Face_Set, Loop ANDOR Path ) ) SUBTYPE OF ( Representation_Item ); 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 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 ) * [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_CONSTANT_RADIUS_EDGE_BLEND', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_VARIABLE_RADIUS_EDGE_BLEND' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_WITH_CHAMFERED_EDGES' ] ) = 1 ); wr2: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF( end_conditions[1] ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF( end_conditions[2] ) ) ) ); wr3: ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOUND_FEATURE' ] * TYPEOF( SELF.of_shape.definition ) ) = 1 ); wr2: ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHAMFER', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_ROUND' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FILLET' ] * TYPEOF( SELF ) ) = 1 ); 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_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 Turbulence_Closure SUBTYPE OF ( Mbna_Behaviour_Model ); closure_type : Turbulence_Closure_Type; END_ENTITY;
ENTITY Turbulence_Model SUBTYPE OF ( Mbna_Behaviour_Model ); model_type : Turbulence_Model_Type; diffusion_model : OPTIONAL Fd_Diffusion_Model; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) AND ( 6 <= SIZEOF( pdr. used_representation.items ) ) AND ( SIZEOF( pdr.used_representation.items ) <= 9 ) ) ) ) = 1 ) ) ) = 1 ); wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'major diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr5 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'nominal diameter' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'tooth depth' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr7 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it. name = 'root fillet' ) ) ) ) <= 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( it.name = 'helix hand' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ); wr11: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( ( sa_occ.description = 'partial area occurrence' ) AND ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.RELATED_SHAPE_ASPECT' ) | ( ( sar. description = 'applied area usage' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_AREA' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) ) = 1 ) ) ) ) = 0 ); wr12: ( SIZEOF( QUERY ( pds <* QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_SHAPE' IN TYPEOF( pd ) ) ) | ( NOT ( SIZEOF( QUERY ( sa_occ <* USEDIN( pds, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT.OF_SHAPE' ) | ( SIZEOF( QUERY ( sdr <* QUERY ( sar <* USEDIN( sa_occ, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) | ( ( sar.description = 'applied shape' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINING_RELATIONSHIP' IN TYPEOF( sar ) ) ) ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( sdr.relating_shape_aspect ) ) ) ) = 1 ) ) ) = 1 ) ) ) ) = 0 ); 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 OF ( ONEOF ( Mesh_Function, Mesh_Function_Basis ) ) 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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF( SELF\Environment. syntactic_representation ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNBOUND_VARIATIONAL_PARAMETER_SEMANTICS' IN TYPEOF( SELF\Environment.semantics ) ) ); END_ENTITY;
ENTITY Unbound_Variational_Parameter SUBTYPE OF ( Variational_Parameter ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( SELF\Geometric_Tolerance_With_Defined_Unit.unit_size\Measure_With_Unit.value_component ) ) AND ( SELF\Geometric_Tolerance_With_Defined_Unit.unit_size\Measure_With_Unit.value_component > 0 ) ); 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_Surface_Section SUBTYPE OF ( Surface_Section ); thickness : Context_Dependent_Measure; bending_thickness : Measure_Or_Unspecified_Value; shear_thickness : Measure_Or_Unspecified_Value; END_ENTITY;
ENTITY Uniform_Surface_Section_Layered SUBTYPE OF ( Surface_Section ); 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 ); WHERE wr1: ( COS( Plane_Angle_For_Pair_In_Radian( SELF, skew_angle ) ) > 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 Unstructured_Donor_Mesh SUBTYPE OF ( Mismatched_Donor_Mesh ); SELF\mismatched_donor_mesh.donor : Unstructured_Mesh; cells : Indices_Group; interpolant : Property_Distribution_Description; vsize : INTEGER; DERIVE index_count : INTEGER := donor.index_count; END_ENTITY;
ENTITY Unstructured_Mesh ABSTRACT SUPERTYPE OF ( ONEOF ( Array_Based_Unstructured_Mesh, Explicit_Unstructured_Mesh ) ) SUBTYPE OF ( Mesh ); cell_count : INTEGER; 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COUNT_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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 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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VARIATIONAL_REPRESENTATION_ITEM' IN TYPEOF( q ) ) ) ) = 0 ); wr4: ( ( TYPEOF( SELF\Representation_Relationship.rep_1 ) - TYPEOF( SELF\Representation_Relationship.rep_2 ) ) = [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); END_ENTITY;
ENTITY Vector_Style SUBTYPE OF ( Curve_Style, Pre_Defined_Terminator_Symbol ); END_ENTITY;
ENTITY Vee_Profile SUBTYPE OF ( Shape_Aspect ); WHERE wr1 : ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FEATURE_COMPONENT_DEFINITION' IN TYPEOF( SELF.of_shape. definition ) ); wr2 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) = 1 ) ) ) ) = 0 ); wr3 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr6 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'profile angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr8 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE_WITH_UNIT' ] * TYPEOF( it ) ) = 2 ) AND ( it.name = 'tilt angle' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ); wr9 : ( SIZEOF( QUERY ( pd <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( it ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, -1, 0, 0, 0, 0 ) ); 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_Defined_Cell SUBTYPE OF ( Cell ); shape : Cell_Shape; order : Element_Order; vertices : ARRAY [1 : vn_count] OF OPTIONAL Vertex; DERIVE bound_count : INTEGER := Cell_Counts( SELF )[1]; edge_node_count : INTEGER := Cell_Counts( SELF )[2]; opt_node_count : INTEGER := Cell_Counts( SELF )[3]; required_count : INTEGER := bound_count + edge_node_count; vn_count : INTEGER := required_count + opt_node_count; required_vertices : ARRAY [1 : required_count] OF Vertex := Shorten_Array( Vertices, vn_count, required_count ); END_ENTITY;
ENTITY Vertex_Loop SUBTYPE OF ( Loop ); loop_vertex : Vertex; 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_Relationship; id : Identifier; name : Label; description : Text; viewed : Temporal_Spatial_Domain; view : Numerical_Model; 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: ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AXIS2_PLACEMENT_2D' IN TYPEOF( SELF\View_Volume.view_window. Placement ) ) OR ( Dot_Product( Representation_Item( ' ' ) || Geometric_Representation_Item( ) || Direction( [0, 0, 1] ), SELF.view_window\Planar_Box.Placement\Axis2_Placement_3d.p[3] ) = 1 ) ); wr2: ( view_plane_distance = view_window.Placement\Placement.location.coordinates[3] ); END_ENTITY;
ENTITY Viscosity_Model SUBTYPE OF ( Mbna_Behaviour_Model ); model_type : Viscosity_Model_Type; END_ENTITY;
ENTITY Visual_Appearance_Representation SUBTYPE OF ( Representation ); WHERE wr1 : ( ( 3 <= SIZEOF( SELF.items ) ) AND ( SIZEOF( SELF.items ) <= 9 ) AND ( ( SIZEOF( QUERY ( i <* items | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VALUE_RANGE'] * TYPEOF( i ) ) = 1 ) AND ( i.name IN [ 'refraction index', 'opacity'] ) ) ) ) + SIZEOF( QUERY ( i <* items | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) ) = 1 ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( SELF, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( SIZEOF( QUERY ( gpa <* USEDIN( pdr.definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GENERAL_PROPERTY_ASSOCIATION.' + 'DERIVED_DEFINITION' ) | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 SUBTYPE OF ( Geometric_Representation_Item ); WHERE wr1: ( SELF\Geometric_Representation_Item.dim = 3 ); END_ENTITY;
ENTITY Volume_2d_Element_Basis; descriptor : Volume_2d_Element_Descriptor; variable : Volume_Variable; variable_order : Element_Order; variable_shape_function : Shape_Function; evaluation_points : LIST [1 : ?] OF Volume_Element_Location; END_ENTITY;
ENTITY Volume_2d_Element_Boundary_Constant_Specified_Variable_Value SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Variable; element_face : Volume_2d_Face; coordinate_system : OPTIONAL Volume_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Boundary_Edge_Constant_Specified_Volume_Variable_Value SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Edge_Variable; element_edge : Volume_2d_Edge; coordinate_system : OPTIONAL Volume_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Boundary_Edge_Location_Point_Volume_Variable_Values SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Volume_2d_Element_Value_And_Location; variable : Boundary_Edge_Variable; element_edge : Volume_2d_Edge; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Boundary_Edge_Nodal_Specified_Variable_Values SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Boundary_Edge_Variable; element_edge : Volume_2d_Edge; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Boundary_Edge_Whole_Edge_Variable_Value SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Aggregated_Variable; element_edge : Volume_2d_Edge; coordinate_system : OPTIONAL Volume_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Boundary_Location_Point_Variable_Values SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Volume_2d_Element_Value_And_Location; variable : Boundary_Variable; element_face : Volume_2d_Face; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Boundary_Nodal_Specified_Variable_Values SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; variable : Boundary_Variable; additional_node_values : BOOLEAN; element_face : Volume_2d_Face; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Boundary_Whole_Face_Variable_Value SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Aggregated_Variable; element_face : Volume_2d_Face; coordinate_system : OPTIONAL Volume_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Constant_Specified_Variable_Value SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Variable; coordinate_system : OPTIONAL Volume_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Field_Integration_Explicit; integration_positions_and_weights : SET [1 : ?] OF Volume_Position_Weight; END_ENTITY;
ENTITY Volume_2d_Element_Field_Integration_Rule; integration_method : Integration_Rule; integration_order : ARRAY [1 : 2] OF INTEGER; END_ENTITY;
ENTITY Volume_2d_Element_Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Volume_2d_Element_Location_Point_Variable_Values, Volume_2d_Whole_Element_Variable_Value, Volume_2d_Element_Constant_Specified_Variable_Value, Volume_2d_Element_Nodal_Specified_Variable_Values, Volume_2d_Element_Boundary_Location_Point_Variable_Values, Volume_2d_Element_Boundary_Whole_Face_Variable_Value, Volume_2d_Element_Boundary_Constant_Specified_Variable_Value, Volume_2d_Element_Boundary_Nodal_Specified_Variable_Values, Volume_2d_Element_Boundary_Edge_Location_Point_Volume_Variable_Values, Volume_2d_Element_Boundary_Edge_Whole_Edge_Variable_Value, Volume_2d_Element_Boundary_Edge_Constant_Specified_Volume_Variable_Value, Volume_2d_Element_Boundary_Edge_Nodal_Specified_Variable_Values ) ) SUBTYPE OF ( Field_Variable_Element_Definition ); element : Volume_2d_Element_Output_Reference; END_ENTITY;
ENTITY Volume_2d_Element_Group SUBTYPE OF ( Element_Group ); WHERE wr1: ( SIZEOF( QUERY ( item <* elements | ( ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXISYMMETRIC_VOLUME_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE_VOLUME_2D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Volume_2d_Element_Integrated_Matrix; descriptor : Volume_2d_Element_Descriptor; property_type : Matrix_Property_Type; integration_description : Text; END_ENTITY;
ENTITY Volume_2d_Element_Integrated_Matrix_With_Definition SUBTYPE OF ( Volume_2d_Element_Integrated_Matrix ); integration_definition : Volume_2d_Element_Field_Integration; END_ENTITY;
ENTITY Volume_2d_Element_Location_Point_Variable_Values SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Volume_2d_Element_Value_And_Location; variable : Volume_Variable; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Nodal_Specified_Variable_Values SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Volume_Variable; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Element_Value_And_Location; simple_value : Field_Value; location : Volume_Element_Location; coordinate_system : OPTIONAL Volume_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); END_ENTITY;
ENTITY Volume_2d_Node_Field_Variable_Definition SUBTYPE OF ( Field_Variable_Node_Definition ); simple_value : Field_Value; variable : Volume_Variable; coordinate_system : OPTIONAL Volume_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_2d_Substructure_Element_Reference; substructure_element_ref : Substructure_Element_Representation; element_ref : Volume_2d_Element_Representation; END_ENTITY;
ENTITY Volume_2d_Whole_Element_Variable_Value SUBTYPE OF ( Volume_2d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Volume_2d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Basis; descriptor : Volume_3d_Element_Descriptor; variable : Volume_Variable; variable_order : Element_Order; variable_shape_function : Shape_Function; evaluation_points : LIST [1 : ?] OF Volume_Element_Location; END_ENTITY;
ENTITY Volume_3d_Element_Boundary_Constant_Specified_Variable_Value SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Variable; element_face : Volume_3d_Face; coordinate_system : OPTIONAL Volume_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Boundary_Edge_Constant_Specified_Volume_Variable_Value SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Edge_Variable; element_edge : Volume_3d_Edge; coordinate_system : OPTIONAL Volume_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Boundary_Edge_Location_Point_Volume_Variable_Values SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Volume_3d_Element_Value_And_Location; variable : Boundary_Edge_Variable; element_edge : Volume_3d_Edge; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Boundary_Edge_Nodal_Specified_Variable_Values SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Boundary_Edge_Variable; element_edge : Volume_3d_Edge; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Boundary_Edge_Whole_Edge_Variable_Value SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Aggregated_Variable; element_edge : Volume_3d_Edge; coordinate_system : OPTIONAL Volume_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Boundary_Location_Point_Variable_Values SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Volume_3d_Element_Value_And_Location; variable : Boundary_Variable; element_face : Volume_3d_Face; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Boundary_Nodal_Specified_Variable_Values SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Boundary_Variable; element_face : Volume_3d_Face; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Boundary_Whole_Face_Variable_Value SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Boundary_Aggregated_Variable; element_face : Volume_3d_Face; coordinate_system : OPTIONAL Volume_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Constant_Specified_Variable_Value SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Variable; coordinate_system : OPTIONAL Volume_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Descriptor SUBTYPE OF ( Element_Descriptor ); purpose : SET [1 : ?] OF Volume_Element_Purpose; shape : Volume_3d_Element_Shape; END_ENTITY;
ENTITY Volume_3d_Element_Field_Integration_Explicit; integration_positions_and_weights : SET [1 : ?] OF Volume_Position_Weight; END_ENTITY;
ENTITY Volume_3d_Element_Field_Integration_Rule; integration_method : Integration_Rule; integration_order : ARRAY [1 : 3] OF INTEGER; END_ENTITY;
ENTITY Volume_3d_Element_Field_Variable_Definition SUPERTYPE OF ( ONEOF ( Volume_3d_Element_Location_Point_Variable_Values, Volume_3d_Whole_Element_Variable_Value, Volume_3d_Element_Constant_Specified_Variable_Value, Volume_3d_Element_Nodal_Specified_Variable_Values, Volume_3d_Element_Boundary_Location_Point_Variable_Values, Volume_3d_Element_Boundary_Whole_Face_Variable_Value, Volume_3d_Element_Boundary_Constant_Specified_Variable_Value, Volume_3d_Element_Boundary_Nodal_Specified_Variable_Values, Volume_3d_Element_Boundary_Edge_Location_Point_Volume_Variable_Values, Volume_3d_Element_Boundary_Edge_Whole_Edge_Variable_Value, Volume_3d_Element_Boundary_Edge_Constant_Specified_Volume_Variable_Value, Volume_3d_Element_Boundary_Edge_Nodal_Specified_Variable_Values ) ) SUBTYPE OF ( Field_Variable_Element_Definition ); element : Volume_3d_Element_Output_Reference; END_ENTITY;
ENTITY Volume_3d_Element_Group SUBTYPE OF ( Element_Group ); WHERE wr1: ( SIZEOF( QUERY ( item <* elements | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'VOLUME_3D_ELEMENT_REPRESENTATION' ) IN TYPEOF( item ) ) ) ) ) = 0 ); END_ENTITY;
ENTITY Volume_3d_Element_Integrated_Matrix; descriptor : Volume_3d_Element_Descriptor; property_type : Matrix_Property_Type; integration_description : Text; END_ENTITY;
ENTITY Volume_3d_Element_Integrated_Matrix_With_Definition SUBTYPE OF ( Volume_3d_Element_Integrated_Matrix ); integration_definition : Volume_3d_Element_Field_Integration; END_ENTITY;
ENTITY Volume_3d_Element_Location_Point_Variable_Values SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); basis : BOOLEAN; values_and_locations : SET [1 : ?] OF Volume_3d_Element_Value_And_Location; variable : Volume_Variable; WHERE wr1: Consistent_Set_Values( values_and_locations, Variable ); wr2: Appropriate_Set_Value_Existence( values_and_locations, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Nodal_Specified_Variable_Values SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); values : LIST [1 : ?] OF Field_Value; additional_node_values : BOOLEAN; variable : Volume_Variable; WHERE wr1: Consistent_List_Values( values, Variable ); wr2: Appropriate_List_Value_Existence( values, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Element_Representation SUBTYPE OF ( Element_Representation ); model_ref : Fea_Model_3d; element_descriptor : Volume_3d_Element_Descriptor; material : Element_Material; UNIQUE ur1 : model_ref, SELF\Representation.name; WHERE wr1: ( ( SIZEOF( QUERY ( item <* SELF\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PARAMETRIC_VOLUME_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) + SIZEOF( QUERY ( item <* SELF\ Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ARBITRARY_VOLUME_3D_ELEMENT_COORDINATE_SYSTEM' ) IN TYPEOF( item ) ) ) ) ) = 1 ); wr2: ( SIZEOF( QUERY ( item1 <* material.properties | ( SIZEOF( QUERY ( item2 <* item1\Property_Definition_Representation. used_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_LINEAR_ELASTICITY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MASS_DENSITY', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_SECANT_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FEA_MOISTURE_ABSORPTION'] * TYPEOF( item2 ) ) = 1 ) ) ) = 1 ) ) ) >= 1 ); wr3: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF( SELF\ Representation.context_of_items ) ); fu1: Required_3d_Nodes( SELF\Element_Representation.node_list, Element_Descriptor.shape, Element_Descriptor\ Element_Descriptor.topology_order ); END_ENTITY;
ENTITY Volume_3d_Element_Value_And_Location; simple_value : Field_Value; location : Volume_Element_Location; coordinate_system : OPTIONAL Volume_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); END_ENTITY;
ENTITY Volume_3d_Node_Field_Variable_Definition SUBTYPE OF ( Field_Variable_Node_Definition ); simple_value : Field_Value; variable : Volume_Variable; coordinate_system : OPTIONAL Volume_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_3d_Substructure_Element_Reference; substructure_element_ref : Substructure_Element_Representation; element_ref : Volume_3d_Element_Representation; END_ENTITY;
ENTITY Volume_3d_Whole_Element_Variable_Value SUBTYPE OF ( Volume_3d_Element_Field_Variable_Definition ); simple_value : Field_Value; variable : Volume_Aggregated_Variable; coordinate_system : OPTIONAL Volume_3d_Element_Coordinate_System; WHERE wr1: Necessary_Value_Coordinate_System( simple_value, coordinate_system ); wr2: Consistent_Value( simple_value, Variable ); wr3: Appropriate_Value_Existence( simple_value, TYPEOF( SELF\State_Definition.defined_state ) ); END_ENTITY;
ENTITY Volume_Element_Location; coordinates : Fea_Parametric_Point; END_ENTITY;
ENTITY Volume_Measure_With_Unit SUBTYPE OF ( Measure_With_Unit ); WHERE wr1: ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VOLUME_UNIT' IN TYPEOF( SELF\Measure_With_Unit.unit_component ) ); END_ENTITY;
ENTITY Volume_Position_Weight; integration_position : Volume_Element_Location; integration_weight : Context_Dependent_Measure; END_ENTITY;
ENTITY Volume_Unit SUBTYPE OF ( Derived_Unit ); WHERE wr1: ( Derive_Dimensional_Exponents( SELF ) = Dimensional_Exponents( 3, 0, 0, 0, 0, 0, 0 ) ); 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 ) ) ) ) AND ( ( day_component + ( 7 * ( week_component - 1 ) ) ) <= 366 ) ) ); wr2: ( Leap_Year( SELF\Date.year_component ) OR ( ( 1 <= ( day_component + ( 7 * ( week_component - 1 ) ) ) ) AND ( ( day_component + ( 7 * ( week_component - 1 ) ) ) <= 365 ) ) ); END_ENTITY;
ENTITY Whole_Model_Analysis_Message SUPERTYPE OF ( Whole_Model_Modes_And_Frequencies_Analysis_Message ) SUBTYPE OF ( Analysis_Message ); END_ENTITY;
ENTITY Whole_Model_Modes_And_Frequencies_Analysis_Message SUBTYPE OF ( Whole_Model_Analysis_Message ); mode : Count_Measure; frequency : Context_Dependent_Measure; 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, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BOUND'] ); wr4: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_VALUE' ); wr2: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BREP_WITH_VOIDS'] ); wr3: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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: ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE' ); wr3: Validate_Inspected_Elements_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE'] ); wr4: Validate_Locations_Of_Extreme_Value_Type( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE'] ); wr5: Validate_Accuracy_Types( SELF, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_MEASURE'] ); 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;
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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'alternative solution' ) ) ) = 1 ) ); WHERE wr1: ( SIZEOF( QUERY ( pdf <* solution_versions | ( SIZEOF( QUERY ( pd <* USEDIN( pdf, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION.FORMATION' ) | ( pd.frame_of_reference. name = 'alternative definition' ) ) ) <> 1 ) ) ) = 0 ); END_RULE;
RULE Application_Protocol_Definition_Required FOR ( Application_Context ); WHERE wr1: SIZEOF( QUERY ( ac <* Application_Context | ( SIZEOF( QUERY ( apd <* USEDIN( ac, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.APPLICATION_PROTOCOL_DEFINITION.APPLICATION' ) | (( apd.application_interpreted_model_schema_name = 'ap242_managed_model_based_3d_engineering' ) OR ( apd.application_interpreted_model_schema_name = 'ap209_multidisciplinary_analysis_and_design')) ) ) > 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'functionality' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'conceptual design' ) ) ) = 1 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, Representation_Context, Geometric_Representation_Context ); WHERE wr1: ( SIZEOF( QUERY ( X <* Cartesian_Point | ( SIZEOF( QUERY ( y <* Geometric_Representation_Context | ( Item_In_Context( X, y ) AND ( HIINDEX( X.coordinates ) <> y.coordinate_space_dimension ) ) ) ) > 0 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( X <* Direction | ( SIZEOF( QUERY ( y <* Geometric_Representation_Context | ( Item_In_Context( X, y ) AND ( HIINDEX( X.direction_ratios ) <> y.coordinate_space_dimension ) ) ) ) > 0 ) ) ) = 0 ); END_RULE;
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 ) BY 1; nnauo := 0; REPEAT j := LOINDEX( Next_Assembly_Usage_Occurrence ) TO HIINDEX( Next_Assembly_Usage_Occurrence ) BY 1; 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 ) BY 1; 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 | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNCERTAINTY_QUALIFIER' ) IN TYPEOF( u1 ) ) AND ( SIZEOF( QUERY ( u2 <* qri.qualifiers | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_RELATED_PRODUCT_CATEGORY.PRODUCTS' ) | ( prpc.name = 'requirement' ) ) ) > 0 ) AND ( SIZEOF( QUERY ( pd <* USEDIN( pdf, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; pdpdca := pdpdca + pdca[i]\Product_Definition_Context_Association.definition; END_REPEAT; REPEAT i := 1 TO HIINDEX( adr ) BY 1; ra1 := Bag_To_Set( USEDIN( adr[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Draughting_Model_Items_Constraint FOR ( Draughting_Model ); WHERE wr1: ( SIZEOF( QUERY ( dm <* Draughting_Model | ( NOT ( SIZEOF( QUERY ( it1 <* dm\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_OCCURRENCE' IN TYPEOF( it1 ) ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DRAUGHTING_ANNOTATION_OCCURRENCE' ) IN TYPEOF( it1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( dm <* Draughting_Model | ( NOT ( SIZEOF( QUERY ( it1 <* dm\Representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_CALLOUT' IN TYPEOF( it1 ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DRAUGHTING_ELEMENTS' IN TYPEOF( it1 ) ) ) ) ) ) = 0 ) ) ) ) = 0 ); 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Machining_Feature_Definition_Constraints FOR ( Feature_Definition ); LOCAL mfds : SET OF Feature_Definition := []; END_LOCAL; mfds := QUERY ( temp <* Feature_Definition | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MACHINING_FEATURE_DEFINITION' IN TYPEOF( temp ) ) ); WHERE wr1: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( mfd ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr. used_representation ) ) ) ) <= 1 ) ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( SIZEOF( QUERY ( pd <* USEDIN( mfd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) | ( NOT ( SIZEOF( QUERY ( impl_rep <* QUERY ( pdr <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( pdr.used_representation ) ) ) | ( NOT ( SIZEOF( QUERY ( it <* impl_rep.used_representation.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLACEMENT' IN TYPEOF( it ) ) AND ( it.name = 'orientation' ) ) ) ) = 1 ) ) ) ) = 0 ) ) ) ) = 0 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( mfd <* mfds | ( NOT ( ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUND_HOLE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOSS' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'OUTSIDE_PROFILE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REMOVAL_VOLUME', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FLAT_FACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'POCKET' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROTRUSION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RIB_TOP' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ROUNDED_END' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLOT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STEP' ] * TYPEOF( mfds ) ) = 1 ) ) OR ( SIZEOF( QUERY ( pdr <* Get_Property_Definition_Representations( mfd ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANAR_SHAPE_REPRESENTATION' IN TYPEOF( pdr.used_representation ) ) AND ( pdr.used_representation.name = 'maximum feature limit' ) ) ) ) >= 0 ) ) ) ) ) = 0 ); END_RULE;
RULE Machining_Feature_Life_Cycle FOR ( Instanced_Feature ); WHERE wr1: ( SIZEOF( QUERY ( mf <* Instanced_Feature | ( NOT ( mf.of_shape.definition.frame_of_reference.life_cycle_stage = 'manufacturing planning' ) ) ) ) = 0 ); END_RULE;
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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MATERIAL_DESIGNATION.DEFINITIONS' ) ) <> 1 ) ) ) = 0 ); 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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF( edc.Source ) ) ); WHERE wr1: ( SIZEOF( QUERY ( edgp <* known_sourced_properties | ( SIZEOF( QUERY ( edir <* USEDIN( edgp, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_ITEM_RELATIONSHIP.RELATING_ITEM' ) | ( ( edir.name = 'name scope' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_CLASS' IN TYPEOF( edir.related_item ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KNOWN_SOURCE' IN TYPEOF( edgp.Source ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.KNOWN_SOURCE' + '.NAME' ) = 'ISO 13584 library' ) ) ); WHERE wr1: ( SIZEOF( QUERY ( edgp <* plib_properties | ( SIZEOF( QUERY ( edir <* USEDIN( edgp, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; nnauo := 0; REPEAT j := LOINDEX( Next_Assembly_Usage_Occurrence ) TO HIINDEX( Next_Assembly_Usage_Occurrence ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; nmfuo := 0; REPEAT j := LOINDEX( Make_From_Usage_Option ) TO HIINDEX( Make_From_Usage_Option ) BY 1; 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 ) BY 1; 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'INCLUSION_PRODUCT_CONCEPT_FEATURE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE' ] * TYPEOF( pcf ) ) = 0 ) AND ( SIZEOF( QUERY ( aga <* USEDIN( pcf, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'APPLIED_GROUP_ASSIGNMENT.' + 'ITEMS' ) | ( ( aga\ Group_Assignment.role\Object_Role.name = 'specification category member' ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.' + 'CONDITIONAL_OPERATOR' ) | ( SIZEOF( QUERY ( ccf <* USEDIN( cfrwc, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONDITIONAL_CONCEPT_FEATURE.CONDITION' ) | ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLASS' IN TYPEOF( gr\Group_Relationship.related_group ) ) ) OR ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF( gr.related_group ) ) ) OR ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | ( pdr.name = 'definition usage' ) ) ) <> 1 ) AND ( SIZEOF( QUERY ( cd <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONFIGURATION_DESIGN.DESIGN' ) | ( ( cd.name = 'occurrence usage definition' ) AND ( NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_IDENTIFICATION' ) IN TYPEOF( cd.configuration ) ) ) ) ) ) <> 1 ) ) ) ) = 0 ); wr3: ( SIZEOF( QUERY ( pd <* part_occurrences | ( ( SIZEOF( QUERY ( cd <* USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_USAGE' ) IN TYPEOF( cd ) ) ) ) = 0 ) AND ( SIZEOF( USEDIN( pd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( ( ppd.name = 'occurrence quantity' ) AND ( SIZEOF( QUERY ( pdr <* USEDIN( ppd, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_OCCURRENCE_RELATIONSHIP.OCCURRENCE' ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN TYPEOF( si.item ) ) AND ( SIZEOF( QUERY ( psa <* si.styles | ( SIZEOF( QUERY ( cs <* psa.styles | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANGULARITY_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_RUNOUT_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COAXIALITY_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONCENTRICITY_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CYLINDRICITY_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FLATNESS_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE_PROFILE_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARALLELISM_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PERPENDICULARITY_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POSITION_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ROUNDNESS_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRAIGHTNESS_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_PROFILE_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMMETRY_TOLERANCE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ADVANCED_BREP_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'FACETED_BREP_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SURFACE_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MANIFOLD_SUBSURFACE_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'BEVELED_SHEET_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOSITE_SHEET_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'COMPOUND_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_2D_SHAPE_REPRESENTATION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CSG_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_SWEPT_SOLID_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_BREP_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GEOMETRICALLY_BOUNDED_2D_WIREFRAME_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOCATION_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NEUTRAL_SKETCH_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NON_MANIFOLD_SURFACE_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROCEDURAL_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATIVE_SHAPE_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DIMENSION_REPRESENTATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_REPRESENTATION_WITH_PARAMETERS' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TESSELLATED_SHAPE_REPRESENTATION' ] * TYPEOF( sr ) ) = 1 ) OR ( SIZEOF( QUERY ( it <* sr\Representation.items | ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'AXIS2_PLACEMENT_3D' IN TYPEOF( it ) ) ) ) ) = 0 ) OR ( SIZEOF( QUERY ( sdr <* QUERY ( pdr <* USEDIN( sr, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION_REPRESENTATION.' + 'USED_REPRESENTATION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF( pdr ) ) ) | ( NOT ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TEXT_LITERAL.FONT' ) ) = 0 ) ) ) = 0 ); wr2: ( SIZEOF( QUERY ( edtf <* Externally_Defined_Text_Font | ( SIZEOF( USEDIN( edtf, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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', 'between two concentric circles', 'between two equidistant curves', 'within a cylinder' , 'between two coaxial cylinders', 'between two equidistant surfaces', 'non uniform', 'cylindrical or circular' , 'spherical', 'unknown']; pass : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 1 TO SIZEOF( Tolerance_Zone_Form ) BY 1 WHILE pass; pass := Tolerance_Zone_Form[i].name IN names; END_REPEAT; WHERE wr1: pass; END_RULE;
RULE Transition_Feature_Life_Cycle FOR ( Transition_Feature ); WHERE wr1: ( SIZEOF( QUERY ( tf <* Transition_Feature | ( NOT ( tf.of_shape.definition.frame_of_reference.life_cycle_stage = 'manufacturing planning' ) ) ) ) = 0 ); END_RULE;
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 ) BY 1; REPEAT j := 1 TO SIZEOF( Datum_System ) BY 1; 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 ) BY 1 WHILE pass; bss := []; ssa := Bag_To_Set( USEDIN( Product_Definition_Shape[ii], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT.' + 'OF_SHAPE' ) ); REPEAT i := 1 TO SIZEOF( ds ) BY 1; 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 ) BY 1; IF sa[i] IN ssa THEN bss := bss + sa[i]\Shape_Aspect.id; END_IF; END_REPEAT; REPEAT i := 1 TO SIZEOF( sar ) BY 1; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( Action_Method_Role, Action_Resource_Type, Attribute_Value_Role, Camera_Model_D2, Cartesian_Transformation_Operator, Concept_Feature_Relationship, Concept_Feature_Relationship_With_Condition, Document_Usage_Constraint, Edge_Blended_Solid, Effectivity_Context_Role, Event_Occurrence_Role, Explicit_Procedural_Representation_Item_Relationship, Indirectly_Selected_Elements, Maths_Space_Context, Modified_Solid_With_Placed_Configuration, One_Direction_Repeat_Factor, Oriented_Open_Shell, Oriented_Path, Procedural_Representation, Procedural_Representation_Sequence, Product_Definition_Effectivity, Property_Distribution_Description, Runout_Zone_Orientation, Solid_With_Depression, Solid_With_Hole, Solid_With_Pocket, Solid_With_Protrusion, Solid_With_Shape_Element_Pattern, Solid_With_Slot, State_Type_Role, Swept_Area_Solid, Symbol_Target, Two_Direction_Repeat_Factor, User_Selected_Elements, Volume ); 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 + Action_Method_Role; all_instances := all_instances + Action_Resource_Type; all_instances := all_instances + Attribute_Value_Role; all_instances := all_instances + Camera_Model_D2; all_instances := all_instances + Cartesian_Transformation_Operator; all_instances := all_instances + Concept_Feature_Relationship; all_instances := all_instances + Concept_Feature_Relationship_With_Condition; 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 + Indirectly_Selected_Elements; all_instances := all_instances + Maths_Space_Context; all_instances := all_instances + Modified_Solid_With_Placed_Configuration; all_instances := all_instances + One_Direction_Repeat_Factor; all_instances := all_instances + Oriented_Open_Shell; all_instances := all_instances + Oriented_Path; all_instances := all_instances + Procedural_Representation; all_instances := all_instances + Procedural_Representation_Sequence; all_instances := all_instances + Product_Definition_Effectivity; all_instances := all_instances + Property_Distribution_Description; 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 + State_Type_Role; 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; all_instances := all_instances + Volume; number_of_input_instances := SIZEOF( all_instances ); REPEAT i := 1 TO number_of_input_instances BY 1; 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;
(* The following two FUNCTIONs have been added to address Bug 5057 for the initial ed2 version until they can properly be added to the constituent modules. *) FUNCTION Above_Plane (p1 : Cartesian_Point; p2 : Cartesian_Point; p3 : Cartesian_Point; p4 : Cartesian_Point) : REAL; LOCAL dir2, dir3, dir4 : Direction := Dummy_Gri || Direction([1.0, 0.0, 0.0]); val, 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 Same_Side (plane_pts : LIST[3:3] OF Cartesian_Point; test_points : LIST[2:?] OF Cartesian_Point) : BOOLEAN; LOCAL val1, 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;
(* End of added FUNCTIONs. JH 2014-05-22 *) FUNCTION Acyclic( arg1 : Generic_Expression; arg2 : SET OF Generic_Expression ) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF( arg1 ) THEN RETURN( TRUE ); END_IF; IF arg1 IN arg2 THEN RETURN( FALSE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF( arg1 ) THEN RETURN( Acyclic( arg1\Unary_Generic_Expression.operand, arg2 + [arg1] ) ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF( arg1 ) THEN result := TRUE; REPEAT i := 1 TO SIZEOF( arg1\Multiple_Arity_Generic_Expression.operands ) BY 1; 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_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPOSITE_TEXT' IN TYPEOF( child ) ) ); IF SIZEOF( local_composite_text ) > 0 THEN REPEAT i := 1 TO HIINDEX( local_composite_text ) BY 1; 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 ) BY 1; local_children := local_children + local_composite_text[i].collected_text; END_REPEAT; END_IF; local_annotation_text := QUERY ( child <* child_text | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT' IN TYPEOF( child ) ) ); IF SIZEOF( local_annotation_text ) > 0 THEN REPEAT i := 1 TO HIINDEX( local_annotation_text ) BY 1; local_children := local_children + QUERY ( item <* local_annotation_text[i]\Mapped_Item.mapping_source. mapped_representation.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ANNOTATION_TEXT', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( parent ) ) THEN RETURN( TRUE ); END_IF; IF parent :=: rep THEN RETURN( FALSE ); ELSE RETURN( Acyclic_Curve_Replica( rep, parent\Curve_Replica.parent_curve ) ); END_IF; 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 ) BY 1; rms := Bag_To_Set( USEDIN( rs1[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) ); IF SIZEOF( rms ) > 0 THEN REPEAT j := 1 TO HIINDEX( rms ) BY 1; mis := Bag_To_Set( USEDIN( rms[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE' ) ); IF SIZEOF( mis ) > 0 THEN REPEAT j := 1 TO HIINDEX( mis ) BY 1; 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_REPLICA' IN TYPEOF( parent ) ) THEN RETURN( TRUE ); END_IF; 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 ) BY 1; IF relation.category :=: children[i] THEN RETURN( FALSE ); END_IF; END_REPEAT; x := Bag_To_Set( USEDIN( relation.category, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY' ) ); local_children := children + relation.category; IF SIZEOF( x ) > 0 THEN REPEAT i := 1 TO HIINDEX( x ) BY 1; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) ) | ( specific_relation IN TYPEOF( pd ) ) ); REPEAT i := 1 TO HIINDEX( x ) BY 1; IF NOT Acyclic_Product_Definition_Relationship( x[i], relatives + relation.relating_product_definition, specific_relation ) THEN RETURN( FALSE ); END_IF; END_REPEAT; RETURN( TRUE ); END_FUNCTION;
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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2' ) ) | ( specific_relation IN TYPEOF( r ) ) ); REPEAT i := 1 TO HIINDEX( x ) BY 1; 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_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_ASPECT_RELATIONSHIP.' + 'RELATED_SHAPE_ASPECT' ) ) | ( specific_relation IN TYPEOF( sa ) ) ); REPEAT i := 1 TO HIINDEX( x ) BY 1; 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_REPLICA' IN TYPEOF( parent ) ) THEN RETURN( TRUE ); END_IF; IF parent :=: rep THEN RETURN( FALSE ); ELSE RETURN( Acyclic_Solid_Replica( rep, parent\Solid_Replica.parent_solid ) ); END_IF; END_FUNCTION;
FUNCTION Acyclic_Surface_Replica( rep : Surface_Replica; parent : Surface ) : BOOLEAN; IF NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( parent ) ) THEN RETURN( TRUE ); END_IF; 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; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ADVANCED_FACE' IN TYPEOF( testface ) THEN RETURN( TRUE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; 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 All_Mesh_Vertices( arg : Array_Based_Unstructured_Mesh_And_Vertices ) : BOOLEAN; LOCAL vertex_set : SET OF Vertex := []; cell : Vertex_Defined_Cell; END_LOCAL; REPEAT i := 1 TO arg.cell_count BY 1; cell := arg.Cells[i]; REPEAT j := 1 TO cell.vn_count BY 1; vertex_set := vertex_set + cell.Vertices[j]; END_REPEAT; END_REPEAT; IF SIZEOF( vertex_set ) <> arg.index_count THEN RETURN( FALSE ); END_IF; REPEAT i := 1 TO arg.index_count BY 1; IF NOT ( arg.Vertices[i] IN vertex_set ) THEN RETURN( FALSE ); END_IF; END_REPEAT; RETURN( TRUE ); 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 Appropriate_List_Value_Existence( values : LIST [1 : ?] OF GENERIC; type_self : SET [1 : ?] OF STRING ) : BOOLEAN; LOCAL i : INTEGER; END_LOCAL; REPEAT i := 1 TO HIINDEX( values ) BY 1; IF NOT Appropriate_Value_Existence( values[i], type_self ) THEN RETURN( FALSE ); END_IF; END_REPEAT; RETURN( TRUE ); END_FUNCTION;
FUNCTION Appropriate_Set_Value_Existence( values_and_locations : SET [1 : ?] OF GENERIC; type_self : SET [1 : ?] OF STRING ) : BOOLEAN; LOCAL i : INTEGER; END_LOCAL; REPEAT i := 1 TO HIINDEX( values_and_locations ) BY 1; IF NOT Appropriate_Value_Existence( values_and_locations[i].simple_value, type_self ) THEN RETURN( FALSE ); END_IF; END_REPEAT; RETURN( TRUE ); END_FUNCTION;
FUNCTION Appropriate_Value_Existence( a_value_e : GENERIC; type_self : SET [1 : ?] OF STRING ) : BOOLEAN; LOCAL feacr : STRING; value_typeof : SET [1 : ?] OF STRING; END_LOCAL; feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; value_typeof := TYPEOF( a_value_e ); IF ( ( feacr + 'OUTPUT_REQUEST_STATE' ) IN type_self ) AND ( NOT ( ( feacr + 'UNSPECIFIED_VALUE' ) IN value_typeof ) ) THEN RETURN( FALSE ); END_IF; RETURN( TRUE ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_RELATIONSHIP.RELATING_PRODUCT_DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; IF SIZEOF( QUERY ( pdr <* USEDIN( item, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASSEMBLY_COMPONENT_USAGE' IN TYPEOF( pdr ) ) ) ) = 0 THEN RETURN( TRUE ); ELSE RETURN( FALSE ); END_IF; END_FUNCTION;
FUNCTION Assoc_Product_Space( ts1, 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 : 0, up2.base : 0]; tspace := Make_Listed_Product_Space( factors ); END_IF; ELSE IF use_lp2 THEN factors := [up1.base : 0]; 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 : 0]; 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 ) BY 1; 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( arg ) THEN surf := arg\Pcurve.basis_surface; ELSE surf := arg; END_IF; RETURN( surf ); END_FUNCTION;
FUNCTION Atan2( y, x : REAL ) : REAL; LOCAL r : REAL; END_LOCAL; IF ( y = 0 ) AND ( x = 0 ) THEN RETURN( ? ); END_IF; r := ATAN( y, x ); IF x < 0 THEN IF y < 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 ) BY 1; the_set := the_set + the_bag[i]; END_REPEAT; END_IF; RETURN( the_set ); END_FUNCTION;
FUNCTION Base_Axis( dim : INTEGER; axis1, axis2, 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, 1] ) ); d2 := First_Proj_Axis( d1, axis1 ); u := [d2, Second_Proj_Axis( d1, d2, axis2 ), d1]; ELSE IF EXISTS( axis1 ) THEN d1 := Normalise( axis1 ); u := [d1, Orthogonal_Complement( d1 )]; IF EXISTS( axis2 ) THEN factor := Dot_Product( axis2, u[2] ); IF factor < 0 THEN u[2].direction_ratios[1] := -u[2].direction_ratios[1]; u[2].direction_ratios[2] := -u[2].direction_ratios[2]; END_IF; END_IF; ELSE IF EXISTS( axis2 ) THEN d1 := Normalise( axis2 ); u := [Orthogonal_Complement( d1 ), d1]; u[1].direction_ratios[1] := -u[1].direction_ratios[1]; u[1].direction_ratios[2] := -u[1].direction_ratios[2]; ELSE u := [Dummy_Gri || Direction( [1, 0] ), Dummy_Gri || Direction( [0, 1] )]; END_IF; END_IF; END_IF; RETURN( u ); END_FUNCTION;
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, 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] ) ); END_LOCAL; RETURN( [d, Orthogonal_Complement( d )] ); END_FUNCTION;
FUNCTION Build_Axes( axis, ref_direction : Direction ) : LIST [3 : 3] OF Direction; LOCAL d1 : Direction; d2 : Direction; END_LOCAL; d1 := NVL( Normalise( axis ), Dummy_Gri || Direction( [0, 0, 1] ) ); d2 := First_Proj_Axis( d1, ref_direction ); RETURN( [d2, Normalise( Cross_Product( d1, d2 ) )\Vector.Orientation, d1] ); END_FUNCTION;
FUNCTION Build_Direction_Node( node_1, node_2 : Node_Representation ) : LIST [2 : 3] OF REAL; LOCAL nodal_direction_ratios : LIST [2 : 3] OF REAL; u : Direction; i : INTEGER; ndim : INTEGER; rep_items : SET [1 : ?] OF Representation_Item; node_1_point : Cartesian_Point; node_2_point : Cartesian_Point; END_LOCAL; rep_items := node_1.items; REPEAT i := 1 TO SIZEOF( rep_items ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( rep_items[i] ) THEN node_1_point := rep_items[i]; ESCAPE; END_IF; END_REPEAT; rep_items := node_2.items; REPEAT i := 1 TO SIZEOF( rep_items ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( rep_items[i] ) THEN node_2_point := rep_items[i]; ESCAPE; END_IF; END_REPEAT; ndim := HIINDEX( node_2_point.coordinates ); REPEAT i := 1 TO ndim BY 1; u.direction_ratios[i] := node_2_point.coordinates[i] - node_1_point.coordinates[i]; END_REPEAT; u := Normalise( u ); REPEAT i := 1 TO ndim BY 1; nodal_direction_ratios[i] := u.direction_ratios[i]; END_REPEAT; RETURN( nodal_direction_ratios ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CHANGE_REQUEST', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'START_REQUEST'] * TYPEOF( X ) ) = 1 ) ) ) THEN RETURN( FALSE ); END_IF; 'initiator' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( X <* e.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CHANGE_REQUEST', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'START_REQUEST', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'START_WORK', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CHANGE'] * TYPEOF( X ) ) = 1 ) ) ) THEN RETURN( FALSE ); END_IF; 'creator' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( X <* e.items | ( SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION'] * TYPEOF( X ) ) = 1 ) ) ) THEN RETURN( FALSE ); END_IF; 'part_supplier' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( X <* e.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) IN TYPEOF( X ) ) ) ) THEN RETURN( FALSE ); END_IF; 'design_supplier' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( X <* e.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' ) IN TYPEOF( X ) ) ) ) THEN RETURN( FALSE ); END_IF; 'design_owner' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( X <* e.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT' IN TYPEOF( X ) ) ) ) THEN RETURN( FALSE ); END_IF; 'configuration_manager' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( X <* e.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONFIGURATION_ITEM' ) IN TYPEOF( X ) ) ) ) THEN RETURN( FALSE ); END_IF; 'contractor' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( X <* e.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONTRACT' IN TYPEOF( X ) ) ) ) THEN RETURN( FALSE ); END_IF; 'classification_officer' : IF SIZEOF( e.items ) <> SIZEOF( QUERY ( X <* e.items | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SECURITY_CLASSIFICATION' ) IN TYPEOF( X ) ) ) ) THEN RETURN( FALSE ); END_IF; OTHERWISE : RETURN( TRUE ); END_CASE; RETURN( TRUE ); END_FUNCTION;
FUNCTION Cell_Counts( arg : Vertex_Defined_Cell ) : ARRAY [1 : 3] OF INTEGER; LOCAL om1 : INTEGER := 0; om1sq : INTEGER := om1 ** 2; vts : INTEGER; eds : INTEGER; qf : INTEGER := 0; tf : INTEGER := 0; result : ARRAY [1 : 3] OF INTEGER := [0, 0, 0]; END_LOCAL; CASE arg.order OF Linear_Order : om1 := 0; Quadratic_Order : om1 := 1; Cubic_Order : om1 := 2; OTHERWISE : RETURN( result ); END_CASE; om1sq := om1 ** 2; CASE arg.shape OF Cell_Shape_0d.Single : BEGIN vts := 1; eds := 0; qf := 0; tf := 0; result[1] := vts; result[2] := om1 * eds; result[3] := 0; END; Cell_Shape_1d.Line : BEGIN vts := 2; eds := 1; qf := 0; tf := 0; result[1] := vts; result[2] := om1 * eds; result[3] := 0; END; Cell_Shape_2d.Quadrilateral : BEGIN vts := 4; eds := 4; qf := 1; tf := 0; result[1] := vts; result[2] := om1 * eds; result[3] := om1sq * qf; END; Cell_Shape_2d.Triangle : BEGIN vts := 3; eds := 3; qf := 0; tf := 1; result[1] := vts; result[2] := om1 * eds; result[3] := ( om1 - 1 ) * tf; CASE arg.order OF Linear_Order : result[3] := 0; END_CASE; END; Cell_Shape_3d.Hexahedron : BEGIN vts := 8; eds := 12; qf := 6; tf := 0; result[1] := vts; result[2] := om1 * eds; result[3] := om1sq * ( qf + om1 ); END; Cell_Shape_3d.Wedge : BEGIN vts := 6; eds := 9; qf := 3; tf := 2; result[1] := vts; result[2] := om1 * eds; result[3] := ( om1sq * qf ) + ( om1 * tf ); END; Cell_Shape_3d.Tetrahedron : BEGIN vts := 4; eds := 6; qf := 0; tf := 4; result[1] := vts; result[2] := om1 * eds; result[3] := ( om1 - 1 ) * tf; CASE arg.order OF Linear_Order : result[3] := 0; END_CASE; END; Cell_Shape_3d.Pyramid : BEGIN vts := 5; eds := 8; qf := 1; tf := 4; result[1] := vts; result[2] := om1 * eds; result[3] := ( om1sq * qf ) + ( ( om1 - 1 ) * tf ); CASE arg.order OF Linear_Order : result[3] := 0; END_CASE; END; END_CASE; RETURN( result ); 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 ) BY 1; 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'LINE' ] * TYPEOF( crv ) ) > 0 THEN result := TRUE; ELSE IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) ) AND Check_Curve_Planarity( crv\ Trimmed_Curve.basis_curve ) THEN result := TRUE; ELSE IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( crv ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( crv\Pcurve.basis_surface ) ) THEN result := TRUE; ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( crv ) THEN BEGIN REPEAT j := 1 TO HIINDEX( crv\Surface_Curve.basis_surface ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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, 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 ) BY 1; 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 ) BY 1; 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; item := aia\Applied_Classification_Assignment.items[i]; IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CHARACTERIZED_CLASS'] * TYPEOF( item ) ) = 0 THEN RETURN( FALSE ); END_IF; END_REPEAT; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; item := aia\Applied_Classification_Assignment.items[i]; IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DEFINITION_FORMATION' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; 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 ) BY 1; 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, 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 * 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 * 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, 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, 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, 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 ) BY 1; 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 ) BY 1; 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 BY 1; 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 BY 1; 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 BY 1; 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 BY 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 BY 1; 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_Element_Or_Group_Reference( aspect, element : GENERIC ) : BOOLEAN; LOCAL srrs : STRING; i : INTEGER; END_LOCAL; srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; IF ( srrs + 'ELEMENT_REPRESENTATION' ) IN TYPEOF( element ) THEN RETURN( Consistent_Element_Reference( aspect, element ) ); END_IF; IF ( srrs + 'ELEMENT_GROUP' ) IN TYPEOF( element ) THEN REPEAT i := 1 TO HIINDEX( element.elements ) BY 1; IF NOT Consistent_Element_Reference( aspect, element.elements[i] ) THEN RETURN( FALSE ); END_IF; END_REPEAT; RETURN( TRUE ); END_IF; RETURN( FALSE ); END_FUNCTION;
FUNCTION Consistent_Element_Reference( aspect : GENERIC; element : Element_Representation ) : BOOLEAN; LOCAL srrs : STRING; feacr : STRING; aspect_type : SET [1 : ?] OF STRING; element_type : SET [1 : ?] OF STRING; END_LOCAL; srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; aspect_type := TYPEOF( aspect ); element_type := TYPEOF( element ); IF ( srrs + 'ELEMENT_REPRESENTATION' ) IN element_type THEN IF ( srrs + 'ELEMENT_VOLUME' ) IN aspect_type THEN RETURN( TRUE ); END_IF; END_IF; IF ( srrs + 'VOLUME_3D_ELEMENT_REPRESENTATION' ) IN element_type THEN IF ( ( feacr + 'VOLUME_3D_FACE' ) IN aspect_type ) OR ( ( feacr + 'VOLUME_3D_EDGE' ) IN aspect_type ) THEN RETURN( TRUE ); END_IF; END_IF; IF ( ( srrs + 'AXISYMMETRIC_VOLUME_2D_ELEMENT_REPRESENTATION' ) IN element_type ) OR ( ( srrs + 'PLANE_VOLUME_2D_ELEMENT_REPRESENTATION' ) IN element_type ) THEN IF ( ( feacr + 'VOLUME_2D_FACE' ) IN aspect_type ) OR ( ( feacr + 'VOLUME_2D_EDGE' ) IN aspect_type ) THEN RETURN( TRUE ); END_IF; END_IF; IF ( srrs + 'SURFACE_3D_ELEMENT_REPRESENTATION' ) IN element_type THEN IF ( ( feacr + 'SURFACE_3D_FACE' ) IN aspect_type ) OR ( ( feacr + 'SURFACE_3D_EDGE' ) IN aspect_type ) THEN RETURN( TRUE ); END_IF; END_IF; IF ( ( srrs + 'AXISYMMETRIC_SURFACE_2D_ELEMENT_REPRESENTATION' ) IN element_type ) OR ( ( srrs + 'PLANE_SURFACE_2D_ELEMENT_REPRESENTATION' ) IN element_type ) THEN IF ( ( feacr + 'SURFACE_2D_FACE' ) IN aspect_type ) OR ( ( feacr + 'SURFACE_2D_EDGE' ) IN aspect_type ) THEN RETURN( TRUE ); END_IF; END_IF; IF ( ( srrs + 'CURVE_3D_ELEMENT_REPRESENTATION' ) IN element_type ) OR ( ( srrs + 'AXISYMMETRIC_CURVE_2D_ELEMENT_REPRESENTATION' ) IN element_type ) OR ( ( srrs + 'PLANE_CURVE_2D_ELEMENT_REPRESENTATION' ) IN element_type ) THEN IF ( srrs + 'CURVE_EDGE' ) IN aspect_type THEN RETURN( TRUE ); END_IF; END_IF; RETURN( FALSE ); END_FUNCTION;
FUNCTION Consistent_Geometric_Reference( aspect : GENERIC; item : Geometric_Representation_Item ) : BOOLEAN; LOCAL srrs : STRING; feacr : STRING; aspect_type : SET [1 : ?] OF STRING; item_type : SET [1 : ?] OF STRING; END_LOCAL; srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; aspect_type := TYPEOF( aspect ); item_type := TYPEOF( item ); IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SOLID_MODEL' IN item_type THEN IF ( srrs + 'ELEMENT_VOLUME' ) IN aspect_type THEN RETURN( TRUE ); END_IF; END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE' IN item_type ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN item_type ) THEN IF SIZEOF( [feacr + 'VOLUME_3D_FACE', feacr + 'VOLUME_2D_FACE', feacr + 'SURFACE_3D_FACE', feacr + 'SURFACE_2D_FACE'] * aspect_type ) = 1 THEN RETURN( TRUE ); END_IF; END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE' IN item_type ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE_CURVE' IN item_type ) THEN IF SIZEOF( [feacr + 'VOLUME_3D_EDGE', feacr + 'VOLUME_2D_EDGE', feacr + 'SURFACE_3D_EDGE', feacr + 'SURFACE_2D_EDGE', srrs + 'CURVE_EDGE'] * aspect_type ) = 1 THEN RETURN( TRUE ); END_IF; END_IF; RETURN( FALSE ); END_FUNCTION;
FUNCTION Consistent_List_Values( values : LIST [1 : ?] OF Field_Value; variable : GENERIC ) : BOOLEAN; LOCAL vv_type : STRING; fv_type : SET [1 : ?] OF STRING; i : INTEGER; END_LOCAL; vv_type := Variable_Value_Type( variable ); REPEAT i := 1 TO HIINDEX( values ) BY 1; fv_type := TYPEOF( values[i] ); IF NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNSPECIFIED_VALUE' ) IN fv_type ) THEN IF NOT ( vv_type IN fv_type ) THEN RETURN( FALSE ); END_IF; END_IF; END_REPEAT; RETURN( TRUE ); END_FUNCTION;
FUNCTION Consistent_Set_Values( values_and_locations : SET [1 : ?] OF GENERIC; variable : GENERIC ) : BOOLEAN; LOCAL vv_type : STRING; fv_type : SET [1 : ?] OF STRING; i : INTEGER; END_LOCAL; vv_type := Variable_Value_Type( variable ); REPEAT i := 1 TO HIINDEX( values_and_locations ) BY 1; fv_type := TYPEOF( values_and_locations[i].simple_value ); IF NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNSPECIFIED_VALUE' ) IN fv_type ) THEN IF NOT ( vv_type IN fv_type ) THEN RETURN( FALSE ); END_IF; END_IF; END_REPEAT; RETURN( TRUE ); END_FUNCTION;
FUNCTION Consistent_Topological_Reference( aspect : GENERIC; item : Topological_Representation_Item ) : BOOLEAN; LOCAL status : BOOLEAN; srrs : STRING; END_LOCAL; status := FALSE; srrs := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; IF ( srrs + 'ELEMENT_VOLUME' ) IN TYPEOF( aspect ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF( item ) THEN status := TRUE; END_IF; END_IF; IF ( srrs + 'VOLUME_3D_FACE' ) IN TYPEOF( aspect ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE' IN TYPEOF( item ) THEN status := TRUE; END_IF; END_IF; IF ( srrs + 'VOLUME_2D_FACE' ) IN TYPEOF( aspect ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( item ) THEN status := TRUE; END_IF; END_IF; IF ( srrs + 'SURFACE_3D_FACE' ) IN TYPEOF( aspect ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE' IN TYPEOF( item ) THEN status := TRUE; END_IF; END_IF; IF ( srrs + 'SURFACE_2D_FACE' ) IN TYPEOF( aspect ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( item ) THEN status := TRUE; END_IF; END_IF; IF ( srrs + 'VOLUME_3D_EDGE' ) IN TYPEOF( aspect ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( item ) THEN status := TRUE; END_IF; END_IF; IF ( srrs + 'VOLUME_2D_EDGE' ) IN TYPEOF( aspect ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF( item ) THEN status := TRUE; END_IF; END_IF; IF ( srrs + 'SURFACE_3D_EDGE' ) IN TYPEOF( aspect ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( item ) THEN status := TRUE; END_IF; END_IF; IF ( srrs + 'SURFACE_2D_EDGE' ) IN TYPEOF( aspect ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VERTEX' IN TYPEOF( item ) THEN status := TRUE; END_IF; END_IF; IF ( srrs + 'CURVE_EDGE' ) IN TYPEOF( aspect ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( item ) THEN status := TRUE; END_IF; END_IF; IF 'TOPOLOGICAL_DEFINITION_AND_MESH_SCHEMA.TOPOLOGICAL_REGION' IN TYPEOF( item ) THEN status := TRUE; END_IF; RETURN( status ); END_FUNCTION;
FUNCTION Consistent_Value( c_value : Field_Value; variable : GENERIC ) : BOOLEAN; LOCAL vv_type : STRING; fv_type : SET [1 : ?] OF STRING; END_LOCAL; vv_type := Variable_Value_Type( variable ); fv_type := TYPEOF( c_value ); IF NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'UNSPECIFIED_VALUE' ) IN fv_type ) THEN IF NOT ( vv_type IN fv_type ) THEN RETURN( FALSE ); END_IF; END_IF; RETURN( TRUE ); 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 BY 1; IF ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( c\Composite_Curve.segments[k]. parent_curve ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( c\ Composite_Curve.segments[k].parent_curve ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; IF ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF( m.sbsm_boundary[j] ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; IF ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.WIRE_SHELL' IN TYPEOF( m.sbwm_boundary[j] ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; sum := knot_mult[1]; REPEAT i := 2 TO up_knots BY 1; sum := sum + knot_mult[i]; END_REPEAT; IF ( degree < 1 ) OR ( up_knots < 2 ) OR ( up_cp < degree ) OR ( sum <> ( degree + up_cp + 2 ) ) THEN result := FALSE; RETURN( result ); END_IF; k := knot_mult[1]; IF ( k < 1 ) OR ( k > ( degree + 1 ) ) THEN result := FALSE; RETURN( result ); END_IF; REPEAT i := 2 TO up_knots BY 1; IF ( knot_mult[i] < 1 ) OR ( knots[i] <= knots[i - 1] ) THEN result := FALSE; RETURN( result ); END_IF; k := knot_mult[i]; IF ( i < up_knots ) AND ( k > degree ) THEN result := FALSE; RETURN( result ); END_IF; IF ( i = up_knots ) AND ( k > ( degree + 1 ) ) THEN result := FALSE; RETURN( result ); END_IF; END_REPEAT; RETURN( result ); END_FUNCTION;
FUNCTION Constraints_Rectangular_Composite_Surface( s : Rectangular_Composite_Surface ) : BOOLEAN; REPEAT i := 1 TO s.n_u BY 1; REPEAT j := 1 TO s.n_v BY 1; IF NOT ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_SURFACE' IN TYPEOF( s.segments[i][j]. parent_surface ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF( s. segments[i][j].parent_surface ) ) ) THEN RETURN( FALSE ); END_IF; END_REPEAT; END_REPEAT; REPEAT i := 1 TO s.n_u - 1 BY 1; REPEAT j := 1 TO s.n_v BY 1; IF s.segments[i][j].u_transition = Discontinuous THEN RETURN( FALSE ); END_IF; END_REPEAT; END_REPEAT; REPEAT i := 1 TO s.n_u BY 1; REPEAT j := 1 TO s.n_v - 1 BY 1; IF s.segments[i][j].v_transition = Discontinuous THEN RETURN( FALSE ); END_IF; END_REPEAT; END_REPEAT; RETURN( TRUE ); END_FUNCTION;
FUNCTION Control_Characters_Free( s : STRING ) : BOOLEAN; LOCAL ch : STRING; END_LOCAL; REPEAT i := 1 TO LENGTH( s ) BY 1; 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 THEN RETURN( [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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( ( dx * dz ) = 0 ) THEN REPEAT WHILE conv_angle <= ( -PI ); conv_angle := conv_angle + ( 2 * PI ); END_REPEAT; REPEAT WHILE conv_angle > PI; conv_angle := conv_angle - ( 2 * PI ); END_REPEAT; ya := ucf * conv_angle; IF conv_angle <> PI THEN ra := -ya; ELSE ra := ya; END_IF; IF dx <> 0 THEN IF dx > 0 THEN RETURN( [0, 0, ya] ); ELSE RETURN( [0, 0, ra] ); END_IF; ELSE IF dz > 0 THEN RETURN( [ya, 0, 0] ); ELSE RETURN( [ra, 0, 0] ); END_IF; END_IF; END_IF; IF ( dy <> 0 ) AND ( dx = 0 ) AND ( dz = 0 ) THEN IF c_a >= 0 THEN ya := 0; ra := 0; ELSE ya := ucf * PI; ra := ya; END_IF; pa := ucf * ATAN( s_a, ABS( c_a ) ); IF dy < 0 THEN pa := -pa; END_IF; RETURN( [ya, pa, ra] ); END_IF; cm1 := 1 - 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 THEN BEGIN IF rotmat[1][3] = 1 THEN pa := 0.5 * PI; ELSE pa := ( -0.5 ) * PI; END_IF; ra := 0; ya := ATAN( rotmat[2][1], rotmat[2][2] ); IF rotmat[2][2] < 0 THEN IF ya <= 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 THEN IF ya <= 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 THEN IF ra <= 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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, 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; REPEAT i := 1 TO 3 BY 1; mag := mag + ( res.direction_ratios[i] * res.direction_ratios[i] ); END_REPEAT; IF mag > 0 THEN result := Dummy_Gri || Vector( res, SQRT( mag ) ); ELSE result := Dummy_Gri || Vector( arg1, 0 ); END_IF; RETURN( result ); END; END_IF; END_FUNCTION;
FUNCTION Curve_Weights_Positive( b : Rational_B_Spline_Curve ) : BOOLEAN; LOCAL result : BOOLEAN := TRUE; END_LOCAL; REPEAT i := 0 TO b.upper_index_on_control_points BY 1; IF b.weights[i] <= 0 THEN result := FALSE; RETURN( result ); END_IF; END_REPEAT; RETURN( result ); END_FUNCTION;
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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\Representation_Item.name = 'significant number of digits' ) ) ) ) = 1 ) OR ( ( SIZEOF( QUERY ( i <* agg | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\Representation_Item.name = 'lower limit' ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\Representation_Item.name = 'plus minus tolerance value' ) ) ) ) = 1 ) OR ( ( SIZEOF( QUERY ( i <* agg | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) AND ( i\ Representation_Item.name = 'lower tolerance value' ) ) ) ) = 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) <= 1 ) AND ( SIZEOF( QUERY ( i <* agg | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DESCRIPTIVE_REPRESENTATION_ITEM' IN TYPEOF( i ) ) ) ) = SIZEOF( QUERY ( i <* agg | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Definition_For_Temporal_Spatial_Domain( domain : Temporal_Spatial_Domain ) : BOOLEAN; LOCAL spatial_set : SET OF Spatial_Decomposition_Of_Temporal_Spatial_Domain; behavioural_set : SET OF Behavioural_Decomposition_Of_Temporal_Spatial_Domain; domains : SET OF Temporal_Spatial_Domain := []; idealising : BAG OF Idealisation_Relationship; spatial_bag : BAG OF Spatial_Decomposition_Of_Temporal_Spatial_Domain; behavioural_bag : BAG OF Behavioural_Decomposition_Of_Temporal_Spatial_Domain; END_LOCAL; idealising := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.IDEALISATION_RELATIONSHIP.IDEALISATION' ); IF SIZEOF( idealising ) > 0 THEN RETURN( TRUE ); END_IF; spatial_bag := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SPATIAL_DECOMPOSITION_OF_TEMPORAL_SPATIAL_DOMAIN.PARTS' ); IF SIZEOF( spatial_bag ) > 0 THEN spatial_set := Bag_To_Set( spatial_bag ); REPEAT i := 1 TO HIINDEX( spatial_set ) BY 1; domains := domains + spatial_set[i].whole; END_REPEAT; END_IF; behavioural_bag := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'BEHAVIOURAL_DECOMPOSITION_OF_TEMPORAL_SPATIAL_DOMAIN.PARTS' ); IF SIZEOF( behavioural_bag ) > 0 THEN behavioural_set := Bag_To_Set( behavioural_bag ); REPEAT i := 1 TO HIINDEX( behavioural_set ) BY 1; domains := domains + behavioural_set[i].whole; END_REPEAT; END_IF; IF SIZEOF( domains ) > 0 THEN REPEAT i := 1 TO HIINDEX( domains ) BY 1; IF Definition_For_Temporal_Spatial_Domain( domains[i] ) THEN RETURN( TRUE ); END_IF; END_REPEAT; END_IF; RETURN( FALSE ); 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; 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 BY 1; 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 BY 1; 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, 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; FUNCTION process_product_space( spc : Product_Space; idx, 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 ); END_LOCAL; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DERIVED_UNIT' IN TYPEOF( x ) THEN REPEAT i := LOINDEX( x\Derived_Unit.elements ) TO HIINDEX( x\Derived_Unit.elements ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( item ) THEN dim := SIZEOF( item\Cartesian_Point.coordinates ); RETURN( dim ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIRECTION' IN TYPEOF( item ) THEN dim := SIZEOF( item\Direction.direction_ratios ); RETURN( dim ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) ); Gram : RETURN( Dimensional_Exponents( 0, 1, 0, 0, 0, 0, 0 ) ); Second : RETURN( Dimensional_Exponents( 0, 0, 1, 0, 0, 0, 0 ) ); Ampere : RETURN( Dimensional_Exponents( 0, 0, 0, 1, 0, 0, 0 ) ); Kelvin : RETURN( Dimensional_Exponents( 0, 0, 0, 0, 1, 0, 0 ) ); Mole : RETURN( Dimensional_Exponents( 0, 0, 0, 0, 0, 1, 0 ) ); Candela : RETURN( Dimensional_Exponents( 0, 0, 0, 0, 0, 0, 1 ) ); Radian : RETURN( Dimensional_Exponents( 0, 0, 0, 0, 0, 0, 0 ) ); Steradian : RETURN( Dimensional_Exponents( 0, 0, 0, 0, 0, 0, 0 ) ); Hertz : RETURN( Dimensional_Exponents( 0, 0, -1, 0, 0, 0, 0 ) ); Newton : RETURN( Dimensional_Exponents( 1, 1, -2, 0, 0, 0, 0 ) ); Pascal : RETURN( Dimensional_Exponents( -1, 1, -2, 0, 0, 0, 0 ) ); Joule : RETURN( Dimensional_Exponents( 2, 1, -2, 0, 0, 0, 0 ) ); Watt : RETURN( Dimensional_Exponents( 2, 1, -3, 0, 0, 0, 0 ) ); Coulomb : RETURN( Dimensional_Exponents( 0, 0, 1, 1, 0, 0, 0 ) ); Volt : RETURN( Dimensional_Exponents( 2, 1, -3, -1, 0, 0, 0 ) ); Farad : RETURN( Dimensional_Exponents( -2, -1, 4, 2, 0, 0, 0 ) ); Ohm : RETURN( Dimensional_Exponents( 2, 1, -3, -2, 0, 0, 0 ) ); Siemens : RETURN( Dimensional_Exponents( -2, -1, 3, 2, 0, 0, 0 ) ); Weber : RETURN( Dimensional_Exponents( 2, 1, -2, -1, 0, 0, 0 ) ); Tesla : RETURN( Dimensional_Exponents( 0, 1, -2, -1, 0, 0, 0 ) ); Henry : RETURN( Dimensional_Exponents( 2, 1, -2, -2, 0, 0, 0 ) ); Degree_Celsius : RETURN( Dimensional_Exponents( 0, 0, 0, 0, 1, 0, 0 ) ); Lumen : RETURN( Dimensional_Exponents( 0, 0, 0, 0, 0, 0, 1 ) ); Lux : RETURN( Dimensional_Exponents( -2, 0, 0, 0, 0, 0, 1 ) ); Becquerel : RETURN( Dimensional_Exponents( 0, 0, -1, 0, 0, 0, 0 ) ); Gray : RETURN( Dimensional_Exponents( 2, 0, -2, 0, 0, 0, 0 ) ); Sievert : RETURN( Dimensional_Exponents( 2, 0, -2, 0, 0, 0, 0 ) ); 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 ) BY 1; IF str[i] = '.' THEN n := n + 1; END_IF; END_REPEAT; RETURN( n ); END_FUNCTION;
FUNCTION Dot_Product( arg1, 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; REPEAT i := 1 TO ndim BY 1; scalar := scalar + ( vec1.direction_ratios[i] * vec2.direction_ratios[i] ); END_REPEAT; END; END_IF; END_IF; RETURN( scalar ); END_FUNCTION;
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 ) BY 1; 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 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 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; FUNCTION angle( a : REAL ) : REAL; REPEAT WHILE a > PI; a := a - ( 2 * PI ); END_REPEAT; REPEAT WHILE a <= ( -PI ); a := a + ( 2 * 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, a : REAL; a_in : BOOLEAN; VAR amin, amax : REAL; VAR amin_in, 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 ) 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; xmax : REAL := 0; ymin : REAL := 0; ymax : REAL := 0; xc : REAL := 0; yc : REAL := 0; xmin_in : BOOLEAN := FALSE; xmax_in : BOOLEAN := FALSE; ymin_in : BOOLEAN := FALSE; ymax_in : BOOLEAN := FALSE; rmin : REAL := -1; rmax : REAL := -1; amin : REAL := 4; amax : REAL := -4; 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; a : REAL := 0; r : REAL := 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; 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 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; rmin_in := xmin_in AND ymin_in; amin := angle( 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 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; 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, ( 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 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; 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 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; 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, ( 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 * 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 * PI ) ) < aitv.max THEN RETURN; END_IF; IF ( a + ( 2 * 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; yc : REAL := 0; xmin : REAL := 0; xmax : REAL := 0; ymin : REAL := 0; ymax : REAL := 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; r : REAL := 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 THEN xmin_exists := TRUE; xmin := xc + ( Real_Min( ritv ) * COS( a ) ); xmin_in := a_in AND ( Min_Included( ritv ) OR ( COS( a ) = 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, aitv, a, a_in ); IF COS( a ) <= 0 THEN xmax_exists := TRUE; xmax := xc + ( Real_Min( ritv ) * COS( a ) ); xmax_in := a_in AND ( Min_Included( ritv ) OR ( COS( a ) = 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 THEN ymin_exists := TRUE; ymin := yc + ( Real_Min( ritv ) * SIN( a ) ); ymin_in := a_in AND ( Min_Included( ritv ) OR ( SIN( a ) = 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 THEN ymax_exists := TRUE; ymax := yc + ( Real_Min( ritv ) * SIN( a ) ); ymax_in := a_in AND ( Min_Included( ritv ) OR ( SIN( a ) = 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; FUNCTION angle( a : REAL ) : REAL; REPEAT WHILE a > PI; a := a - ( 2 * PI ); END_REPEAT; REPEAT WHILE a <= ( -PI ); a := a + ( 2 * PI ); END_REPEAT; RETURN( a ); END_FUNCTION; FUNCTION strictly_in( a : REAL; aitv : Finite_Real_Interval ) : LOGICAL; a := angle( a ); RETURN( ( ( aitv.min < a ) AND ( a < aitv.max ) ) OR ( ( aitv.min < ( a + ( 2 * PI ) ) ) AND ( ( a + ( 2 * PI ) ) < aitv. max ) ) ); END_FUNCTION; PROCEDURE angle_range( VAR amin, amax : REAL ); amin := angle( amin ); IF amin = PI THEN amin := -PI; END_IF; amax := angle( amax ); IF amax <= amin THEN amax := amax + ( 2 * PI ); END_IF; END_PROCEDURE; PROCEDURE find_aminmax( ab, a0, a1, a2, a3 : REAL; in0, in1, in2, in3 : BOOLEAN; VAR amin, amax : REAL; VAR amin_in, 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; yp : REAL := 0; xc : REAL := 0; yc : REAL := 0; rmax : REAL := 0; rmin : REAL := 0; amin : REAL := 0; amax : REAL := 0; rc : REAL := 0; acp : REAL := 0; apc : REAL := 0; rmax_in : BOOLEAN := FALSE; rmin_in : BOOLEAN := FALSE; amin_in : BOOLEAN := FALSE; amax_in : BOOLEAN := FALSE; rmxp : REAL := 0; rmnp : REAL := 0; x : REAL := 0; y : REAL := 0; r : REAL := 0; a : REAL := 0; ab : REAL := 0; r0 : REAL := 0; a0 : REAL := 0; r1 : REAL := 0; a1 : REAL := 0; r2 : REAL := 0; a2 : REAL := 0; r3 : REAL := 0; a3 : REAL := 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 * 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 * 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 * PI ); END_IF; rmin := 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; rmin_in := FALSE; amin := aitp.min; amin_in := FALSE; amax := aitp.max; amax_in := FALSE; ELSE rmin := 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 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 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 THEN a2 := Atan2( y, x ); ELSE a2 := a1; in2 := in1; END_IF; IF r1 = 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 THEN a3 := Atan2( y, x ); ELSE a3 := a0; in3 := in0; END_IF; IF r0 = 0 THEN a0 := a3; in0 := in3; END_IF; IF rmnp = 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; rmin_in := TRUE; END_IF; END_IF; ELSE rmin := r0; rmin_in := in0; a := apc - aitp.min; r := rc * COS( a ); IF ( rmnp < r ) AND ( 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 ) AND ( 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 * PI ); END_IF; IF a0 > a1 THEN a0 := a0 + ( 2 * 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 * PI ) ) OR ( ( ( amax - amin ) = ( 2 * 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 * PI ) THEN a := angle( aitp.min ); IF rc > rmnp THEN IF Max_Included( aitp ) THEN RETURN( ? ); END_IF; rmin := 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 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 THEN a3 := Atan2( y, x ); ELSE a3 := a0; in3 := in0; END_IF; IF rmnp = 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 * PI ); END_IF; IF a0 > a1 THEN a0 := a0 + ( 2 * 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 * PI ) ) OR ( ( ( amax - amin ) = ( 2 * PI ) ) AND ( amin_in OR amax_in ) ) THEN amin := -PI; amin_in := FALSE; amax := PI; amax_in := TRUE; IF ( rmin = 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 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 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 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, 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, 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 ) BY 1; 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 ) BY 1; 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 BY 1; 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 BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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, val2 : Maths_Value ) : LOGICAL; FUNCTION mem_of_vs( val1, 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 ) BY 1; 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, 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 ) BY 1; item := aia\Applied_External_Identification_Assignment.items[i]; IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, n : INTEGER ) : Tuple_Space; LOCAL tsp : Tuple_Space := The_Zero_Tuple_Space; END_LOCAL; REPEAT i := m TO n BY 1; 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 ) BY 1; index := index * shape[j]; END_REPEAT; index := ( fun.first + index ) - 1; RETURN( Bool( ( source_interval.min <= index ) AND ( 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 BY 1; 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 ) AND ( 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 ) AND ( 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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 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 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 ) BY 1; local_relation2 := local_relation2 + QUERY ( pdr <* USEDIN( constituent[j], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; REPEAT j := 1 TO HIINDEX( constituent ) BY 1; 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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; local_s_d_r2 := local_s_d_r2 + QUERY ( pdr <* USEDIN( local_p_d_s[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.DEFINITION' ) ); REPEAT i := 1 TO HIINDEX( local_p_d ) BY 1; local_s_d_r2 := local_s_d_r2 + QUERY ( pdr <* USEDIN( local_p_d[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 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] ) AND ( z.direction_ratios <> [-1, 0, 0] ) THEN v := Dummy_Gri || Direction( [1, 0, 0] ); ELSE v := Dummy_Gri || Direction( [0, 1, 0] ); END_IF; ELSE IF arg.dim <> 3 THEN RETURN( ? ); END_IF; IF Cross_Product( arg, z ).magnitude = 0 THEN RETURN( ? ); ELSE v := Normalise( arg ); END_IF; END_IF; x_vec := Scalar_Times_Vector( Dot_Product( v, z ), z ); x_axis := Vector_Difference( v, x_vec ).Orientation; x_axis := Normalise( x_axis ); END_IF; RETURN( x_axis ); END_FUNCTION;
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 ) BY 1; result := result + Free_Variables_Of( exprs[i] ); END_REPEAT; REPEAT i := 1 TO SIZEOF( expr\Quantifier_Expression.variables ) BY 1; 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 ) BY 1; 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 BY 1; 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 ) BY 1; 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 ) BY 1; 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' ] * TYPEOF( cv ) ) > 1 THEN RETURN( FALSE ); END_IF; IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ELLIPSE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE'] * TYPEOF( cv ) ) = 1 THEN RETURN( TRUE ); ELSE IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( cv ) THEN RETURN( Gbsf_Check_Curve( cv\Curve_Replica.parent_curve ) ); ELSE IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv\Offset_Curve_3d.basis_curve ) ) ) THEN RETURN( Gbsf_Check_Curve( cv\Offset_Curve_3d.basis_curve ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv ) THEN IF SIZEOF( cv\Polyline.points ) >= 3 THEN RETURN( TRUE ); END_IF; ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( pnt ) THEN RETURN( TRUE ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' IN TYPEOF( pnt ) THEN RETURN( Gbsf_Check_Curve( pnt\Point_On_Curve.basis_curve ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_SURFACE' IN TYPEOF( pnt ) THEN RETURN( Gbsf_Check_Surface( pnt\Point_On_Surface.basis_surface ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPHERICAL_SURFACE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TOROIDAL_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_TRIMMED_SURFACE' ] * TYPEOF( sf ) ) = 1 THEN RETURN( TRUE ); ELSE IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_COMPOSITE_SURFACE' IN TYPEOF( sf ) THEN REPEAT i := 1 TO SIZEOF( sf\Rectangular_Composite_Surface.segments ) BY 1; REPEAT j := 1 TO SIZEOF( sf\Rectangular_Composite_Surface.segments[i] ) BY 1; 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( sf ) THEN RETURN( Gbsf_Check_Surface( sf\Surface_Replica.parent_surface ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; 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 ) BY 1; dpas := Bag_To_Set( USEDIN( adrs_filtered[i]\Document_Reference.assigned_document, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DOCUMENT_PRODUCT_ASSOCIATION.RELATING_DOCUMENT' ) ); REPEAT j := 1 TO HIINDEX( dpas ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DOCUMENT_PRODUCT_EQUIVALENCE' IN TYPEOF( dpas[j] ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( c ) THEN surfs := [c\Pcurve.basis_surface]; ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( c ) THEN n := SIZEOF( c\Surface_Curve.associated_geometry ); REPEAT i := 1 TO n BY 1; surfs := surfs + Associated_Surface( c\Surface_Curve.associated_geometry[i] ); END_REPEAT; END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 BY 1; surfs := surfs * Get_Basis_Surface( c\Composite_Curve.segments[i].parent_curve ); END_REPEAT; END_IF; END_IF; RETURN( surfs ); END_FUNCTION;
FUNCTION Get_Description_Value( obj : Description_Attribute_Select ) : Text; LOCAL description_bag : BAG OF Description_Attribute := USEDIN( obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; CASE TRUE OF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; 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 ) BY 1; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_SURFACE' IN TYPEOF( sb ) THEN result := sb\Face_Surface.face_geometry; ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_BOUNDED_SURFACE' IN TYPEOF( sb ) THEN result := sb\Curve_Bounded_Surface.basis_surface; ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANAR_CURVE_SELECT' IN TYPEOF( sb ) THEN BEGIN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' IN TYPEOF( sb ) THEN result := Dummy_Gri || Surface( ) || Elementary_Surface( sb\Conic.Position ) || Plane( ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PCURVE' IN TYPEOF( sb ) THEN result := sb\Pcurve.basis_surface; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_CURVE' IN TYPEOF( sb ) THEN BEGIN IF ( SIZEOF( sb\Surface_Curve.basis_surface ) = 1 ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PLANE' IN TYPEOF( sb\Surface_Curve.basis_surface[1] ) ) THEN result := sb\Surface_Curve.basis_surface[1]; ELSE IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( sb\Surface_Curve.basis_surface[1] ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE' IN TYPEOF( sb\Surface_Curve.basis_surface[2] ) ) THEN result := ?; ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) ); IF SIZEOF( pd_set ) < 1 THEN RETURN( pdr_set ); END_IF; REPEAT i := 1 TO HIINDEX( pd_set ) BY 1; pdr_set := pdr_set + Bag_To_Set( USEDIN( pd_set[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION' ) ); END_REPEAT; RETURN( pdr_set ); END_FUNCTION;
FUNCTION Get_Relative_Direction_2points( cp1, 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_Role( obj : Role_Select ) : Object_Role; LOCAL role_bag : BAG OF Role_Association := USEDIN( obj, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION.' + 'DEFINITION' ) ); IF SIZEOF( pd_set ) < 1 THEN RETURN( pdr_set ); END_IF; REPEAT i := 1 TO HIINDEX( pd_set ) BY 1; pdr_set := pdr_set + QUERY ( pdr <* USEDIN( pd_set[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.' + 'DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION.DEFINITION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; pdr_set := pdr_set + Bag_To_Set( USEDIN( pd_set[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_DEFINITION_REPRESENTATION_RELATIONSHIP.' + 'USED_REPRESENTATION' ); REPEAT i := 1 TO SIZEOF( dqdr ) BY 1; pdqdr := USEDIN( dqdr[i].definition, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PRODUCT_DATA_AND_DATA_QUALITY_RELATIONSHIP.' + 'DATA_QUALITY' ); REPEAT j := 1 TO SIZEOF( pdqdr ) BY 1; 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUND_VARIATIONAL_PARAMETER' IN TYPEOF( item ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNBOUND_VARIATIONAL_PARAMETER' IN TYPEOF( item ) THEN BEGIN REPEAT i := 1 TO n BY 1; svri := QUERY ( q <* reps[i]\Representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FIXED_INSTANCE_ATTRIBUTE_SET' IN TYPEOF( item ) THEN REPEAT i := 1 TO SIZEOF( item\Fixed_Instance_Attribute_Set.fixed_attributes ) BY 1; 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AUXILIARY_GEOMETRIC_REPRESENTATION_ITEM' IN TYPEOF( item ) THEN BEGIN REPEAT i := 1 TO n BY 1; svri := QUERY ( q <* reps[i]\Representation.items | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Coordinate_Property( arg : Specified_General_Property ) : BOOLEAN; (* this line IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_ITEM' IN TYPEOF( arg ) THEN is replaced by the following two lines as patch for BZ#5019 *) IF ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXTERNALLY_DEFINED_ITEM' IN TYPEOF(arg\Specified_General_Property.name_specifier) ) THEN RETURN( TRUE ); END_IF; (* this line RETURN( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COORDINATE_DATA_NAME' IN TYPEOF( arg ) ); is replaced by the following section as patch for BZ#5019 and BZ#5054 RETURN ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COORDINATE_DATA_NAME' IN TYPEOF(arg\specified_general_property.name_specifier)); *) IF (arg\Specified_General_Property.name_specifier = Property_3d_Data_Name.Position) OR ('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COORDINATE_DATA_NAME' IN TYPEOF(arg\Specified_General_Property.name_specifier)) THEN RETURN ( TRUE ); ELSE RETURN( FALSE ); END_IF; END_FUNCTION;
FUNCTION Is_Int_Expr( arg : Numeric_Expression ) : BOOLEAN; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_LITERAL' IN TYPEOF( arg ) THEN RETURN( TRUE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_LITERAL' IN TYPEOF( arg ) THEN RETURN( FALSE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF( arg ) THEN RETURN( TRUE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF( arg ) THEN RETURN( FALSE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ABS_FUNCTION' IN TYPEOF( arg ) THEN RETURN( Is_Int_Expr( arg\Unary_Numeric_Expression.operand ) ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_FUNCTION' IN TYPEOF( arg ) THEN RETURN( Is_Int_Expr( arg\Unary_Numeric_Expression.operand ) ); END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIN_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COS_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAN_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASIN_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACOS_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ATAN_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXP_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG2_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG10_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULT_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF( arg ) ) THEN REPEAT i := 1 TO SIZEOF( arg\Multiple_Arity_Numeric_Expression.operands ) BY 1; IF NOT Is_Int_Expr( arg\Multiple_Arity_Numeric_Expression.operands[i] ) THEN RETURN( FALSE ); END_IF; END_REPEAT; RETURN( TRUE ); END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIV_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MOD_EXPRESSION' IN TYPEOF( arg ) ) THEN RETURN( TRUE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SLASH_EXPRESSION' IN TYPEOF( arg ) THEN RETURN( FALSE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_FUNCTION' IN TYPEOF( arg ) THEN RETURN( TRUE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_FUNCTION' IN TYPEOF( arg ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INT_VALUE_FUNCTION' IN TYPEOF( arg ) THEN RETURN( TRUE ); ELSE RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INTEGER_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN RETURN( TRUE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN RETURN( FALSE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN RETURN( FALSE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF( arg ) THEN RETURN( TRUE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF( arg ) THEN RETURN( TRUE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_FUNCTION' IN TYPEOF( arg ) THEN RETURN( Is_Sql_Mappable( arg\Unary_Numeric_Expression.operand ) ); END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ABS_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIN_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COS_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TAN_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ASIN_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACOS_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ATAN_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EXP_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG2_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LOG10_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VALUE_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_FUNCTION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULT_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAXIMUM_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINIMUM_FUNCTION' IN TYPEOF( arg ) ) THEN REPEAT i := 1 TO SIZEOF( arg\Multiple_Arity_Numeric_Expression.operands ) BY 1; IF NOT Is_Sql_Mappable( arg\Multiple_Arity_Numeric_Expression.operands[i] ) THEN RETURN( FALSE ); END_IF; END_REPEAT; RETURN( TRUE ); END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MINUS_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIV_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MOD_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POWER_EXPRESSION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF( arg ) THEN RETURN( TRUE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NOT_EXPRESSION' IN TYPEOF( arg ) THEN RETURN( Is_Sql_Mappable( arg\Unary_Generic_Expression.operand ) ); END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ODD_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.XOR_EXPRESSION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.AND_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OR_EXPRESSION' IN TYPEOF( arg ) ) THEN REPEAT i := 1 TO SIZEOF( arg\Multiple_Arity_Boolean_Expression.operands ) BY 1; IF NOT Is_Sql_Mappable( arg\Multiple_Arity_Boolean_Expression.operands[i] ) THEN RETURN( FALSE ); END_IF; END_REPEAT; RETURN( TRUE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_EQUAL' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_GREATER' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_GREATER_EQUAL' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_LESS' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_LESS_EQUAL' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPARISON_NOT_EQUAL' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.NUMERIC_DEFINED_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF( arg ) ) THEN RETURN( FALSE ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SIMPLE_STRING_EXPRESSION' IN TYPEOF( arg ) THEN RETURN( TRUE ); END_IF; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INDEX_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SUBSTRING_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONCAT_EXPRESSION' IN TYPEOF( arg ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ) * cntxt. representations_in_context ) > 0 THEN RETURN( TRUE ); ELSE y := QUERY ( z <* USEDIN( item, '' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_ITEM' IN TYPEOF( z ) ) ); IF SIZEOF( y ) > 0 THEN REPEAT i := 1 TO HIINDEX( y ) BY 1; IF Item_In_Context( y[i], cntxt ) THEN RETURN( TRUE ); END_IF; END_REPEAT; END_IF; END_IF; RETURN( FALSE ); END_FUNCTION;
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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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] : 0]; REPEAT i := 2 TO n BY 1; 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 ) BY 1; 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; IF ( ( u1 - low1 ) + 1 ) <> SIZEOF( lis ) THEN RETURN( ? ); END_IF; IF ( ( u2 - low2 ) + 1 ) <> SIZEOF( lis[1] ) THEN RETURN( ? ); END_IF; res := [List_To_Array( lis[1], low2, u2 ) : 0]; REPEAT i := 2 TO HIINDEX( lis ) BY 1; IF ( ( u2 - low2 ) + 1 ) <> SIZEOF( lis[i] ) THEN RETURN( ? ); END_IF; res[( low1 + i ) - 1] := List_To_Array( lis[i], low2, u2 ); END_REPEAT; RETURN( res ); END_FUNCTION;
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, 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, 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( (* next line replaced by the line thereafter as patch for BZ#5052 base : product_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, 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 BY 1; 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 Member_Of( val : GENERIC:g; spc : Maths_Space ) : LOGICAL; 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 ) AND ( 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 ) AND ( tmp_real <= s\Finite_Real_Interval.max ) ); ELSE RETURN( ( s\Finite_Real_Interval.min <= tmp_real ) AND ( 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 ) AND ( tmp_real <= s\Finite_Real_Interval.max ) ); ELSE RETURN( ( s\Finite_Real_Interval.min < tmp_real ) AND ( 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 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 * 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 BY 1; 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 ) BY 1; 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 := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLY_LOOP' IN TYPEOF( l[1] ); REPEAT i := 2 TO SIZEOF( l ) BY 1; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' ] * TYPEOF( cv ) ) > 1 THEN RETURN( FALSE ); END_IF; IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' ] * TYPEOF( cv ) ) = 1 THEN RETURN( TRUE ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( cv ) THEN RETURN( Msf_Curve_Check( cv\Curve_Replica.parent_curve ) ); ELSE IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv\Offset_Curve_3d.basis_curve ) ) ) THEN RETURN( Msf_Curve_Check( cv\Offset_Curve_3d.basis_curve ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; RETURN( FALSE ); END_FUNCTION;
FUNCTION Msf_Surface_Check( surf : Surface ) : BOOLEAN; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( surf ) THEN RETURN( TRUE ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( surf ) THEN RETURN( Msf_Curve_Check( surf\Swept_Surface.swept_curve ) ); ELSE IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( surf ) THEN RETURN( Msf_Surface_Check( surf\Surface_Replica.parent_surface ) ); ELSE IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Necessary_Value_Coordinate_System( cs_value : Field_Value; coordinate_system : GENERIC ) : BOOLEAN; IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TENSOR1_2D', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TENSOR1_3D' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SYMMETRIC_TENSOR2_2D' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SYMMETRIC_TENSOR2_3D'] * TYPEOF( cs_value ) ) = 1 THEN IF NOT EXISTS( coordinate_system ) THEN RETURN( FALSE ); END_IF; END_IF; RETURN( TRUE ); END_FUNCTION;
FUNCTION Nmsf_Curve_Check( cv : Representation_Item ) : BOOLEAN; IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.BOUNDED_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CURVE_REPLICA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' ] * TYPEOF( cv ) ) > 1 THEN RETURN( FALSE ); ELSE IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONIC', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE' ] * TYPEOF( cv ) ) = 1 THEN RETURN( TRUE ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( cv ) THEN RETURN( Nmsf_Curve_Check( cv\Curve_Replica.parent_curve ) ); ELSE IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' IN TYPEOF( cv\Offset_Curve_3d.basis_curve ) ) ) THEN RETURN( Nmsf_Curve_Check( cv\Offset_Curve_3d.basis_curve ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; RETURN( FALSE ); END_FUNCTION;
FUNCTION Nmsf_Surface_Check( surf : Surface ) : BOOLEAN; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELEMENTARY_SURFACE' IN TYPEOF( surf ) THEN RETURN( TRUE ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SWEPT_SURFACE' IN TYPEOF( surf ) THEN RETURN( Nmsf_Curve_Check( surf\Swept_Surface.swept_curve ) ); ELSE IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SURFACE_REPLICA' IN TYPEOF( surf ) THEN RETURN( Nmsf_Surface_Check( surf\Surface_Replica.parent_surface ) ); ELSE IF ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; 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] ); result : Vector_Or_Direction; vec : Vector := Dummy_Gri || Vector( v, 1 ); mag : REAL; END_LOCAL; IF NOT EXISTS( arg ) THEN result := ?; ELSE ndim := arg.dim; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF( arg ) THEN BEGIN v := Dummy_Gri || Direction( arg\Vector.Orientation.direction_ratios ); IF arg\Vector.magnitude = 0 THEN RETURN( ? ); ELSE vec := Dummy_Gri || Vector( v, 1 ); END_IF; END; ELSE v := Dummy_Gri || Direction( arg.direction_ratios ); END_IF; mag := 0; REPEAT i := 1 TO ndim BY 1; mag := mag + ( v.direction_ratios[i] * v.direction_ratios[i] ); END_REPEAT; IF mag > 0 THEN mag := SQRT( mag ); REPEAT i := 1 TO ndim BY 1; v.direction_ratios[i] := v.direction_ratios[i] / mag; END_REPEAT; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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_Of_Terms( node_dof_list : LIST [1 : ?] OF LIST [1 : ?] OF Degree_Of_Freedom; matrix_type : Matrix_Symmetry ) : INTEGER; LOCAL num_terms : INTEGER; number_of_freedoms : INTEGER; END_LOCAL; number_of_freedoms := 0; REPEAT i := 1 TO SIZEOF( node_dof_list ) BY 1; number_of_freedoms := number_of_freedoms + SIZEOF( node_dof_list[i] ); END_REPEAT; IF matrix_type = Symmetric THEN num_terms := ( number_of_freedoms * ( number_of_freedoms + 1 ) ) DIV 2; END_IF; IF matrix_type = Diagonal THEN num_terms := number_of_freedoms; END_IF; RETURN( num_terms ); 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 ) BY 1; 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 ) BY 1; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH_AREA_WITH_PARAMETERS' IN TYPEOF( input[i] ) ) AND ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE' IN TYPEOF( input[i]\Mapped_Item.mapping_source\ Representation_Map.mapping_origin ) ) OR ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 BY 1; p := p AND ( a_path.edge_list[i - 1].edge_end :=: a_path.edge_list[i].edge_start ); END_REPEAT; RETURN( p ); END_FUNCTION;
FUNCTION Path_Reversed( a_path : Path ) : Oriented_Path; LOCAL the_reverse : Oriented_Path; END_LOCAL; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PLANE_ANGLE_UNIT' IN TYPEOF( Unit ) ) ); IF SIZEOF( pa_units ) <> 1 THEN RETURN( ? ); END_IF; pau := pa_units[1]; IF ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SI_UNIT' IN TYPEOF( pau ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ) ) ) THEN RETURN( ? ); END_IF; REPEAT WHILE 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SI_UNIT' IN TYPEOF( pau ) ) ) AND ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONVERSION_BASED_UNIT' IN TYPEOF( pau ) ) ) ) OR ( NOT ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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.e+18 * converted_angle ); Si_Prefix.Peta : RETURN( 1.e+15 * converted_angle ); Si_Prefix.Tera : RETURN( 1.e+12 * converted_angle ); Si_Prefix.Giga : RETURN( 1000000000 * converted_angle ); Si_Prefix.Mega : RETURN( 1000000 * converted_angle ); Si_Prefix.Kilo : RETURN( 1000 * converted_angle ); Si_Prefix.Hecto : RETURN( 100 * converted_angle ); Si_Prefix.Deca : RETURN( 10 * converted_angle ); Si_Prefix.Deci : RETURN( 0.1 * converted_angle ); Si_Prefix.Centi : RETURN( 0.01 * converted_angle ); Si_Prefix.Milli : RETURN( 0.001 * converted_angle ); Si_Prefix.Micro : RETURN( 1.e-06 * converted_angle ); Si_Prefix.Nano : RETURN( 1.e-09 * 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 ) BY 1; IF ( NOT EXISTS( sub[j] ) ) OR ( NOT EXISTS( inc[j] ) ) THEN RETURN( ? ); END_IF; k := sub[j] - base; IF NOT ( ( 0 <= k ) AND ( 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'EXTREME_INSTANCE.' + 'LOCATIONS_OF_EXTREME_VALUE' ) ); REPEAT i := 1 TO HIINDEX( exti ) BY 1; ii_ei := ii_ei + Bag_To_Set( USEDIN( exti[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES.' + 'EXTREME_INSTANCES' ) ); END_REPEAT; REPEAT i := 1 TO HIINDEX( ii_ei ) BY 1; sdiir := sdiir + Bag_To_Set( USEDIN( ii_ei[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT.' + 'INSPECTED_INSTANCES' ) ); END_REPEAT; REPEAT i := 1 TO HIINDEX( sdiir ) BY 1; sdqr := sdqr + QUERY ( i1 <* Bag_To_Set( USEDIN( sdiir[i].inspection_result, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_RESULT_REPRESENTATION' ) IN TYPEOF( i1 ) ) ); END_REPEAT; REPEAT i := 1 TO HIINDEX( sdqr ) BY 1; sdisr := sdisr + Bag_To_Set( USEDIN( sdqr[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTED_SHAPE_AND_RESULT_RELATIONSHIP.' + 'REP_2' ) ); END_REPEAT; REPEAT i := 1 TO HIINDEX( sdisr ) BY 1; 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; RETURN( ? ); END_FUNCTION;
FUNCTION Required_0d_Nodes( node_list : LIST [1 : ?] OF Node_Representation ) : BOOLEAN; RETURN( SIZEOF( node_list ) = 1 ); END_FUNCTION;
FUNCTION Required_1d_Nodes( node_list : LIST [1 : ?] OF Node_Representation; order : Element_Order ) : BOOLEAN; LOCAL end_nodes : INTEGER; additional_nodes : INTEGER; END_LOCAL; end_nodes := 2; IF order = Linear_Order THEN additional_nodes := 0; END_IF; IF order = Quadratic_Order THEN additional_nodes := 1; END_IF; IF order = Cubic_Order THEN additional_nodes := 2; END_IF; RETURN( SIZEOF( node_list ) = ( end_nodes + additional_nodes ) ); END_FUNCTION;
FUNCTION Required_2d_Nodes( node_list : LIST [1 : ?] OF Node_Representation; element_shape : Element_2d_Shape; order : Element_Order ) : BOOLEAN; LOCAL vertex_nodes : INTEGER; edge_nodes : INTEGER; edge_face_body_nodes : INTEGER; END_LOCAL; IF element_shape = Element_2d_Shape.Triangle THEN vertex_nodes := 3; IF order = Linear_Order THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF order = Quadratic_Order THEN edge_nodes := 3; edge_face_body_nodes := 3; END_IF; IF order = Cubic_Order THEN edge_nodes := 6; edge_face_body_nodes := 7; END_IF; END_IF; IF element_shape = Element_2d_Shape.Quadrilateral THEN vertex_nodes := 4; IF order = Linear_Order THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF order = Quadratic_Order THEN edge_nodes := 4; edge_face_body_nodes := 5; END_IF; IF order = Cubic_Order THEN edge_nodes := 8; edge_face_body_nodes := 12; END_IF; END_IF; RETURN( ( SIZEOF( node_list ) = ( vertex_nodes + edge_nodes ) ) OR ( SIZEOF( node_list ) = ( vertex_nodes + edge_face_body_nodes ) ) ); END_FUNCTION;
FUNCTION Required_3d_Nodes( node_list : LIST [1 : ?] OF Node_Representation; element_shape : Volume_3d_Element_Shape; order : Element_Order ) : BOOLEAN; LOCAL vertex_nodes : INTEGER; edge_nodes : INTEGER; edge_face_body_nodes : INTEGER; END_LOCAL; IF element_shape = Volume_3d_Element_Shape.Hexahedron THEN vertex_nodes := 8; IF order = Linear_Order THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF order = Quadratic_Order THEN edge_nodes := 12; edge_face_body_nodes := 19; END_IF; IF order = Cubic_Order THEN edge_nodes := 24; edge_face_body_nodes := 56; END_IF; END_IF; IF element_shape = Volume_3d_Element_Shape.Wedge THEN vertex_nodes := 6; IF order = Linear_Order THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF order = Quadratic_Order THEN edge_nodes := 9; edge_face_body_nodes := 12; END_IF; IF order = Cubic_Order THEN edge_nodes := 18; edge_face_body_nodes := 34; END_IF; END_IF; IF element_shape = Volume_3d_Element_Shape.Tetrahedron THEN vertex_nodes := 4; IF order = Linear_Order THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF order = Quadratic_Order THEN edge_nodes := 6; edge_face_body_nodes := 6; END_IF; IF order = Cubic_Order THEN edge_nodes := 12; edge_face_body_nodes := 16; END_IF; END_IF; IF element_shape = Volume_3d_Element_Shape.Pyramid THEN vertex_nodes := 5; IF order = Linear_Order THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF order = Quadratic_Order THEN edge_nodes := 8; edge_face_body_nodes := 9; END_IF; IF order = Cubic_Order THEN edge_nodes := 16; edge_face_body_nodes := 25; END_IF; END_IF; RETURN( ( SIZEOF( node_list ) = ( vertex_nodes + edge_nodes ) ) OR ( SIZEOF( node_list ) = ( vertex_nodes + edge_face_body_nodes ) ) ); 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 THEN REPEAT i := 1 TO SIZEOF( v.direction_ratios ) BY 1; v.direction_ratios[i] := -v.direction_ratios[i]; END_REPEAT; mag := -mag; END_IF; result := Dummy_Gri || Vector( Normalise( v ), mag ); END_IF; RETURN( result ); END_FUNCTION;
FUNCTION Second_Proj_Axis( z_axis, x_axis, arg : Direction ) : Direction; LOCAL y_axis : Vector; v : Direction; temp : Vector; END_LOCAL; IF NOT EXISTS( arg ) THEN v := Dummy_Gri || Direction( [0, 1, 0] ); ELSE v := arg; END_IF; temp := Scalar_Times_Vector( Dot_Product( v, z_axis ), z_axis ); y_axis := Vector_Difference( v, temp ); temp := Scalar_Times_Vector( Dot_Product( v, x_axis ), x_axis ); y_axis := Vector_Difference( y_axis, temp ); y_axis := Normalise( y_axis ); RETURN( y_axis.Orientation ); END_FUNCTION;
FUNCTION Set_Of_Topology_Reversed( a_set : Set_Of_Reversible_Topology_Item ) : Set_Of_Reversible_Topology_Item; LOCAL the_reverse : Set_Of_Reversible_Topology_Item; END_LOCAL; the_reverse := []; REPEAT i := 1 TO SIZEOF( a_set ) BY 1; the_reverse := the_reverse + Topology_Reversed( a_set[i] ); END_REPEAT; RETURN( the_reverse ); END_FUNCTION;
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 ) BY 1; 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OPEN_SHELL' IN TYPEOF( a_shell ) THEN RETURN( Open_Shell_Reversed( a_shell ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CLOSED_SHELL' IN TYPEOF( a_shell ) THEN RETURN( Closed_Shell_Reversed( a_shell ) ); ELSE RETURN( ? ); END_IF; END_IF; END_FUNCTION;
FUNCTION Shorten_Array( longa : ARRAY OF GENERIC:t; oldl, newl : INTEGER ) : ARRAY OF GENERIC:t; LOCAL shorta : ARRAY [1 : newl] OF GENERIC:t; END_LOCAL; IF newl > oldl THEN RETURN( ? ); ELSE REPEAT i := 1 TO newl BY 1; shorta[i] := longa[i]; END_REPEAT; RETURN( shorta ); 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; 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 ) BY 1; IF NOT ( tn IN TYPEOF( tpl[i] ) ) THEN RETURN( FALSE ); END_IF; END_REPEAT; RETURN( TRUE ); END_IF; RETURN( FALSE ); END_FUNCTION; FUNCTION makec( X, y : REAL ) : Complex_Number_Literal; RETURN( Make_Complex_Number_Literal( X, y ) ); END_FUNCTION; PROCEDURE parts( c : Complex_Number_Literal; VAR X, y : REAL ); X := c.real_part; y := c.imag_part; END_PROCEDURE; 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 ) BY 1; 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 ) BY 1; 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 / r ) ); END_IF; Ef_Add_R : BEGIN r := 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 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; 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 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 ) 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; REPEAT i := 1 TO ABS( k ) BY 1; t := t * r; END_REPEAT; IF k < 0 THEN t := 1 / 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; q := 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 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; q := 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 ) OR ( q <> 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; s := 0; REPEAT i := 1 TO ABS( k ) BY 1; 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 * q ) + EXP( ( -2 ) * q ) + ( 2 * COS( 2 * p ) ); RETURN( makec( ( 2 * SIN( 2 * p ) ) / t, ( EXP( ( -2 ) * q ) - EXP( 2 * 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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; REPEAT i := 1 TO SIZEOF( tpl ) BY 1; r := r + tpl[i]; END_REPEAT; RETURN( ctmv( r ) ); END_IF; Ef_Product_Rt : IF good_t( v1, 'REAL' ) THEN tpl := v1; r := 1; REPEAT i := 1 TO SIZEOF( tpl ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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; REPEAT i := 1 TO SIZEOF( tpl ) BY 1; 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; q := 0; REPEAT i := 1 TO SIZEOF( tpl ) BY 1; 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; q := 0; REPEAT i := 1 TO SIZEOF( tpl ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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; u := 0; IF SIZEOF( tpl ) <> SIZEOF( tp2 ) THEN RETURN( ? ); END_IF; REPEAT i := 1 TO SIZEOF( tpl ) BY 1; 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; REPEAT i := 1 TO SIZEOF( tpl ) BY 1; parts( tpl[i], p, q ); r := r + ( p * p ) + ( q * q ); END_REPEAT; RETURN( ctmv( SQRT( r ) ) ); END_IF; Ef_If : IF 'LOGICAL' IN TYPEOF( v1 ) THEN lgc := v1; IF lgc THEN RETURN( v2 ); ELSE RETURN( v3 ); END_IF; END_IF; Ef_If_I : IF 'LOGICAL' IN TYPEOF( v1 ) THEN lgc := v1; IF lgc THEN RETURN( v2 ); ELSE RETURN( v3 ); END_IF; END_IF; Ef_If_R : IF 'LOGICAL' IN TYPEOF( v1 ) THEN lgc := v1; IF lgc THEN RETURN( v2 ); ELSE RETURN( v3 ); END_IF; END_IF; Ef_If_C : IF 'LOGICAL' IN TYPEOF( v1 ) THEN lgc := v1; IF lgc THEN RETURN( v2 ); ELSE RETURN( v3 ); END_IF; END_IF; Ef_If_S : IF 'LOGICAL' IN TYPEOF( v1 ) THEN lgc := v1; IF lgc THEN RETURN( v2 ); ELSE RETURN( v3 ); END_IF; END_IF; Ef_If_B : IF 'LOGICAL' IN TYPEOF( v1 ) THEN lgc := v1; IF lgc THEN RETURN( v2 ); ELSE RETURN( v3 ); END_IF; END_IF; 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 ) BY 1; 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 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; FUNCTION restore_binary( expr : Binary_Generic_Expression; opd1, 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 restore_unary( expr : Unary_Generic_Expression; opnd : Generic_Expression ) : Generic_Expression; expr.operand := opnd; RETURN( expr ); 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 ) BY 1; 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] ) AND ( 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; result := result + aprr[i].rep_1; END_REPEAT; ELSE REPEAT i := 1 TO HIINDEX( aprr ) BY 1; 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 ) BY 1; 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 ) BY 1; (* this line IF types[i][1 : n] = schema_prefix THEN replaced by the following one as patch for BZ#5018 *) 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSIONAL_LOCATION' IN TYPEOF( input ) : RETURN( input\ Shape_Aspect_Relationship.relating_shape_aspect\Shape_Aspect.of_shape ); 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DIMENSIONAL_SIZE' IN TYPEOF( input ) : RETURN( input\ Dimensional_Size.applies_to\Shape_Aspect.of_shape ); 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_SHAPE' IN TYPEOF( input ) : RETURN( input ); 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SHAPE_ASPECT' IN TYPEOF( input ) : RETURN( input\Shape_Aspect. of_shape ); OTHERWISE : RETURN( ? ); END_CASE; END_FUNCTION;
FUNCTION Subspace_Of( space1, 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 BY 1; 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 * 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 ) BY 1; 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 ) BY 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; 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 ) BY 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; 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 BY 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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 ) BY 1; 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' : RETURN( pd.name = rep.name ); 'tactile appearance' : RETURN( pd.name = rep.name ); 'contact ratio' : RETURN( pd.name = rep.name ); 'hardness' : RETURN( pd.name = rep.name ); 'treatment result' : RETURN( pd.name = rep.name ); '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 BY 1; REPEAT j := 0 TO b.v_upper BY 1; IF b.weights[i][j] <= 0 THEN result := FALSE; RETURN( result ); END_IF; END_REPEAT; END_REPEAT; RETURN( result ); END_FUNCTION;
FUNCTION Temporal_Spatial_Domain_For_Model( domain : Numerical_Model ) : BOOLEAN; LOCAL spatial_set : SET OF Spatial_Decomposition_Of_Numerical_Model; behavioural_set : SET OF Behavioural_Decomposition_Of_Numerical_Model; domains : SET OF Numerical_Model := []; viewing : BAG OF View_Relationship; spatial_bag : BAG OF Spatial_Decomposition_Of_Numerical_Model; behavioural_bag : BAG OF Behavioural_Decomposition_Of_Numerical_Model; END_LOCAL; viewing := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VIEW_RELATIONSHIP.VIEW' ); IF SIZEOF( viewing ) > 0 THEN RETURN( TRUE ); END_IF; spatial_bag := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.SPATIAL_DECOMPOSITION_OF_NUMERICAL_MODEL.' + 'PARTS' ); IF SIZEOF( spatial_bag ) > 0 THEN spatial_set := Bag_To_Set( spatial_bag ); REPEAT i := 1 TO HIINDEX( spatial_set ) BY 1; domains := domains + spatial_set[i].whole; END_REPEAT; END_IF; behavioural_bag := USEDIN( domain, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'BEHAVIOURAL_DECOMPOSITION_OF_NUMERICAL_MODEL.PARTS' ); IF SIZEOF( behavioural_bag ) > 0 THEN behavioural_set := Bag_To_Set( behavioural_bag ); REPEAT i := 1 TO HIINDEX( behavioural_set ) BY 1; domains := domains + behavioural_set[i].whole; END_REPEAT; END_IF; IF SIZEOF( domains ) > 0 THEN REPEAT i := 1 TO HIINDEX( domains ) BY 1; IF Temporal_Spatial_Domain_For_Model( domains[i] ) THEN RETURN( TRUE ); END_IF; END_REPEAT; END_IF; RETURN( FALSE ); END_FUNCTION;
FUNCTION Topology_Reversed( an_item : Reversible_Topology ) : Reversible_Topology; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.EDGE' IN TYPEOF( an_item ) THEN RETURN( Edge_Reversed( an_item ) ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PATH' IN TYPEOF( an_item ) THEN RETURN( Path_Reversed( an_item ) ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE_BOUND' IN TYPEOF( an_item ) THEN RETURN( Face_Bound_Reversed( an_item ) ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FACE' IN TYPEOF( an_item ) THEN RETURN( Face_Reversed( an_item ) ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 BY 1; CASE TRUE OF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i]\ Product_Definition_Relationship.relating_product_definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION' IN TYPEOF( links[i]\ Product_Definition_Relationship.related_product_definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i]\ Product_Definition_Relationship.related_product_definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRODUCT_DEFINITION_REFERENCE' IN TYPEOF( links[i]\ Product_Definition_Relationship.relating_product_definition ) ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; local_s_r := Find_Shape_Representation_Of_Product_Definition( local_p_d[i] ); REPEAT j := 1 TO HIINDEX( local_s_r ) BY 1; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; local_s_r := Find_Shape_Representation_Of_Shape_Aspect( local_s_a[i] ); REPEAT j := 1 TO HIINDEX( local_s_r ) BY 1; IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.GENERIC_VARIABLE' IN TYPEOF( arg ) THEN RETURN( [arg] ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF( arg ) THEN RETURN( Used_Variables( arg\Unary_Generic_Expression.operand ) ); END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF( arg ) THEN REPEAT i := 1 TO SIZEOF( arg\Multiple_Arity_Generic_Expression.operands ) BY 1; 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, '' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'REPRESENTATION_ITEM' IN TYPEOF( z ) ) OR ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FOUNDED_ITEM' IN TYPEOF( z ) ) ) ); IF SIZEOF( next_items ) > 0 THEN REPEAT i := 1 TO HIINDEX( next_items ) BY 1; IF NOT ( next_items[i] IN new_check_items ) THEN result_items := result_items + next_items[i] + Using_Items( next_items[i], new_check_items ); END_IF; END_REPEAT; END_IF; RETURN( result_items ); END_FUNCTION;
FUNCTION Using_Product_Definition_Of_Shape_Aspect( item : Shape_Aspect ) : Product_Definition; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DEFINITION_REPRESENTATION' ) IN TYPEOF( i1 ) ) ); REPEAT i := 1 TO HIINDEX( local_s_d_r ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PROPERTY_DEFINITION' IN TYPEOF( local_s_d_r[i]\ Property_Definition_Representation.definition ) THEN IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_MAP.' + 'MAPPED_REPRESENTATION' ) ) > 0 ) ); IF SIZEOF( local_results ) = 0 THEN RETURN( [] ); ELSE REPEAT i := 1 TO HIINDEX( local_results ) BY 1; local_representation_map := local_representation_map + Bag_To_Set( USEDIN( local_results[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION_MAP.MAPPED_REPRESENTATION' ) ); END_REPEAT; REPEAT i := 1 TO HIINDEX( local_representation_map ) BY 1; intermediate_items := intermediate_items + Bag_To_Set( USEDIN( local_representation_map[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAPPED_ITEM.MAPPING_SOURCE' ) ); END_REPEAT; REPEAT j := 1 TO HIINDEX( intermediate_items ) BY 1; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ); IF SIZEOF( result_bag ) > 0 THEN REPEAT i := 1 TO HIINDEX( result_bag ) BY 1; results := results + result_bag[i]; END_REPEAT; END_IF; intermediate_items := Using_Items( item, [] ); IF SIZEOF( intermediate_items ) > 0 THEN REPEAT i := 1 TO HIINDEX( intermediate_items ) BY 1; result_bag := USEDIN( intermediate_items[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.REPRESENTATION.ITEMS' ); IF SIZEOF( result_bag ) > 0 THEN REPEAT j := 1 TO HIINDEX( result_bag ) BY 1; results := results + result_bag[j]; END_REPEAT; END_IF; END_REPEAT; END_IF; RETURN( results ); END_FUNCTION;
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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION' ) | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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; IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ELLIPSE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE'] * TYPEOF( crv ) ) = 1 THEN RETURN( TRUE ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) THEN IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARABOLA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_2D' IN TYPEOF( crv ) THEN RETURN( Valid_Basis_Curve_In_2d_Wireframe( crv\Offset_Curve_2d.basis_curve ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( crv ) THEN RETURN( Valid_Basis_Curve_In_2d_Wireframe( crv\Curve_Replica.parent_curve ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) AND ( date.day_component <= 31 ) ); 2 : BEGIN IF Leap_Year( date.year_component ) THEN RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 29 ) ); ELSE RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 28 ) ); END_IF; END; 3 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); 4 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); 5 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); 6 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); 7 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); 8 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); 9 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); 10 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); 11 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 30 ) ); 12 : RETURN( ( 1 <= date.day_component ) AND ( date.day_component <= 31 ) ); END_CASE; RETURN( FALSE ); END_FUNCTION;
FUNCTION Valid_Csg_2d_Primitives( input : Csg_Solid_2d ) : BOOLEAN; CASE TRUE OF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D' IN TYPEOF( input\Csg_Solid_2d.tree_root_expression ) : BEGIN IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCULAR_AREA', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.COMPLEX_AREA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELLIPTIC_AREA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYGONAL_AREA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRIMITIVE_2D_WITH_INNER_BOUNDARY' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RECTANGULAR_AREA' ] * TYPEOF( input\Csg_Solid_2d. tree_root_expression ) ) > 0 THEN RETURN( TRUE ); ELSE RETURN( FALSE ); END_IF; END; 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) ); 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.HALF_SPACE_2D' IN TYPEOF( input\Csg_Solid_2d.tree_root_expression ) : RETURN ( TRUE ); 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 ) BY 1; rep_set := rep_set + pdf.representation_associations[i].used_representation; END_REPEAT; parameter_representations := QUERY ( rep <* rep_set | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_REPRESENTATION_WITH_PARAMETERS' IN TYPEOF( rep ) ) ); IF SIZEOF( QUERY ( srwp <* parameter_representations | ( SIZEOF( QUERY ( i <* srwp.items | ( ( i.name = 'orientation' ) AND ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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' : 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LENGTH_MEASURE_WITH_UNIT' ] * TYPEOF( i ) ) = 2 ) ) ) ) = 1 ) ) ) = 1 ) ); '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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'ELLIPSE' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CIRCLE'] * TYPEOF( crv ) ) = 1 THEN RETURN( TRUE ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TRIMMED_CURVE' IN TYPEOF( crv ) THEN IF SIZEOF( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PARABOLA' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.OFFSET_CURVE_3D' IN TYPEOF( crv ) THEN RETURN( Valid_Geometrically_Bounded_Wf_Curve( crv\Offset_Curve_3d.basis_curve ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( crv ) THEN RETURN( Valid_Geometrically_Bounded_Wf_Curve( crv\Curve_Replica.parent_curve ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( pnt ) THEN RETURN( TRUE ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POINT_ON_CURVE' IN TYPEOF( pnt ) THEN RETURN( Valid_Geometrically_Bounded_Wf_Curve( pnt\Point_On_Curve.basis_curve ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ); ELSE IF 'INTEGER' IN TYPEOF( m ) THEN RETURN( m > 0 ); ELSE RETURN( TRUE ); END_IF; END_IF; END_FUNCTION;
FUNCTION Valid_Parametric_Coordinate( coordinates : LIST [1 : 3] OF Parameter_Value ) : BOOLEAN; LOCAL i : INTEGER; END_LOCAL; REPEAT i := 1 TO HIINDEX( coordinates ) BY 1; IF ( 1 < coordinates[i] ) OR ( coordinates[i] < ( -1 ) ) THEN RETURN( FALSE ); END_IF; END_REPEAT; RETURN( TRUE ); 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.QUALIFIED_REPRESENTATION_ITEM', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MASS_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 0, 1, 0, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.TIME_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 0, 0, 1, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELECTRIC_CURRENT_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 0, 0, 0, 1, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 0, 0, 0, 0, 1, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CELSIUS_TEMPERATURE_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 0, 0, 0, 0, 1, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 1, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 1 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ACCELERATION_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 1, 0, -2, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CAPACITANCE_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( -2, -1, 4, 2, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELECTRIC_CHARGE_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 0, 0, 1, 1, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CONDUCTANCE_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( -2, -1, 3, 2, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ELECTRIC_POTENTIAL_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 2, 1, -3, -1, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ENERGY_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 2, 1, -2, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FORCE_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 1, 1, -2, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.FREQUENCY_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 0, 0, -1, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 1 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.INDUCTANCE_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 2, 1, -2, -2, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 1 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAGNETIC_FLUX_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 2, 1, -2, -1, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MAGNETIC_FLUX_DENSITY_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 0, 1, -2, -1, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POWER_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 2, 1, -3, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.PRESSURE_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( -1, 1, -2, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RESISTANCE_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 2, 1, -3, -2, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VELOCITY_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 1, 0, -1, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.RADIOACTIVITY_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 0, 0, -1, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.ABSORBED_DOSE_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 2, 0, -2, 0, 0, 0, 0 ) THEN RETURN( FALSE ); END_IF; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.DOSE_EQUIVALENT_MEASURE' IN TYPEOF( m.value_component ) THEN IF Derive_Dimensional_Exponents( m.unit_component ) <> Dimensional_Exponents( 2, 0, -2, 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( [ 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.LINE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'CONIC' , 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.B_SPLINE_CURVE', 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.POLYLINE' ] * TYPEOF( crv ) ) = 1 THEN RETURN( TRUE ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CURVE_REPLICA' IN TYPEOF( crv ) THEN RETURN( Valid_Wireframe_Edge_Curve( crv\Curve_Replica.parent_curve ) ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.CARTESIAN_POINT' IN TYPEOF( pnt ) THEN RETURN( TRUE ); ELSE IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_CRITERION' ); IF SIZEOF( sdqca ) <> 0 THEN REPEAT i := 1 TO SIZEOF( sdqca ) BY 1; 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 ) BY 1; t_logic := FALSE; REPEAT j := 1 TO SIZEOF( type_list ) BY 1; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; scraa := USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION.' + 'SHAPE_DATA_QUALITY_RESULT' ); IF SIZEOF( scraa ) <> 0 THEN sma := []; REPEAT j := 1 TO SIZEOF( scraa ) BY 1; 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 ) BY 1; t_logic := FALSE; REPEAT k := 1 TO SIZEOF( type_list ) BY 1; 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 BY 1 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 ) BY 1; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; dir := dir + QUERY ( q <* Bag_To_Set( USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; sdiri := sdiri + QUERY ( q <* dir[i].inspected_instances | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; 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 ) BY 1; REPEAT k := 1 TO SIZEOF( t_type_list ) BY 1; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; sdir := sdir + QUERY ( q <* Bag_To_Set( USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; sdiri := sdiri + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; 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 ) BY 1; REPEAT k := 1 TO SIZEOF( t_type_list ) BY 1; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; sdir := sdir + QUERY ( q <* Bag_To_Set( USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT' ) IN TYPEOF( q ) ) ); END_REPEAT; REPEAT i := 1 TO SIZEOF( sdir ) BY 1; sdei := sdei + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; REPEAT j := 1 TO SIZEOF( sdei[i].extreme_instances ) BY 1; 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 ) BY 1; REPEAT l := 1 TO SIZEOF( t_type_list ) BY 1; 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, 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_RESULT.' + 'CRITERION_INSPECTED' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; sdcr := sdcr + QUERY ( q <* Bag_To_Set( USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT' ) IN TYPEOF( q ) ) ); END_REPEAT; REPEAT i := 1 TO SIZEOF( sdqir ) BY 1; sdir := sdir + QUERY ( q <* Bag_To_Set( USEDIN( sdqir[i], 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'DATA_QUALITY_INSPECTION_REPORT.' + 'INSPECTION_RESULT' ) ) | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ) BY 1; sdii := sdii + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM' ) IN TYPEOF( q ) ) ); END_REPEAT; REPEAT i := 1 TO SIZEOF( sdir ) BY 1; sdei := sdei + QUERY ( q <* sdir[i].inspected_instances | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES' ) IN TYPEOF( q ) ) ); END_REPEAT; REPEAT i := 1 TO SIZEOF( sdcr ) BY 1; IF NOT ( type_string IN TYPEOF( sdcr[i].representative_measured_value ) ) THEN RETURN( FALSE ); END_IF; END_REPEAT; REPEAT i := 1 TO SIZEOF( sdii ) BY 1; IF NOT ( type_string IN TYPEOF( sdii[i].measured_value ) ) THEN RETURN( FALSE ); END_IF; END_REPEAT; REPEAT i := 1 TO SIZEOF( sdei ) BY 1; REPEAT j := 1 TO SIZEOF( sdei[i].extreme_instances ) BY 1; 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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'SHAPE_DATA_QUALITY_VALUE_LIMIT' ) IN TYPEOF( iv ) THEN IF ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.' + 'MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) ) ) = 2 ) OR ( SIZEOF( QUERY ( i2 <* agg | ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.MEASURE_REPRESENTATION_ITEM' IN TYPEOF( i1 ) ) AND ( SIZEOF( QUERY ( i2 <* agg | ( ( 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_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 Variable_Value_Type( variable : GENERIC ) : STRING; LOCAL svt : STRING; feacr : STRING; variable_typeof : SET [1 : ?] OF STRING; END_LOCAL; svt := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; feacr := 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.'; variable_typeof := TYPEOF( variable ); IF SIZEOF( [feacr + 'CURVE_SCALAR_VARIABLE', feacr + 'SURFACE_SCALAR_VARIABLE', feacr + 'VOLUME_SCALAR_VARIABLE', feacr + 'BOUNDARY_CURVE_SCALAR_VARIABLE' , feacr + 'BOUNDARY_SURFACE_SCALAR_VARIABLE', feacr + 'AGGREGATED_SCALAR_VARIABLE', feacr + 'VOLUME_ANGULAR_VARIABLE', feacr + 'AGGREGATED_ANGULAR_VARIABLE', feacr + 'APPLICATION_DEFINED_SCALAR_VARIABLE'] * variable_typeof ) = 1 THEN RETURN( svt + 'SCALAR' ); END_IF; IF SIZEOF( [feacr + 'CURVE_VECTOR_2D_VARIABLE', feacr + 'SURFACE_VECTOR_2D_VARIABLE', feacr + 'APPLICATION_DEFINED_VECTOR_2D_VARIABLE' ] * variable_typeof ) = 1 THEN RETURN( svt + 'TENSOR1_2D' ); END_IF; IF SIZEOF( [feacr + 'CURVE_VECTOR_3D_VARIABLE', feacr + 'SURFACE_VECTOR_3D_VARIABLE', feacr + 'VOLUME_VECTOR_3D_VARIABLE', feacr + 'BOUNDARY_CURVE_VECTOR_3D_VARIABLE', feacr + 'BOUNDARY_SURFACE_VECTOR_3D_VARIABLE', feacr + 'AGGREGATED_VECTOR_3D_VARIABLE' , feacr + 'APPLICATION_DEFINED_VECTOR_3D_VARIABLE'] * variable_typeof ) = 1 THEN RETURN( svt + 'TENSOR1_3D' ); END_IF; IF SIZEOF( [feacr + 'SURFACE_TENSOR2_2D_VARIABLE', feacr + 'APPLICATION_DEFINED_TENSOR2_2D_VARIABLE'] * variable_typeof ) = 1 THEN RETURN( svt + 'SYMMETRIC_TENSOR2_2D' ); END_IF; IF SIZEOF( [feacr + 'VOLUME_TENSOR2_3D_VARIABLE', feacr + 'AGGREGATED_TENSOR2_3D_VARIABLE', feacr + 'APPLICATION_DEFINED_TENSOR2_3D_VARIABLE' ] * variable_typeof ) = 1 THEN RETURN( svt + 'SYMMETRIC_TENSOR2_3D' ); END_IF; RETURN( 'NO_MATCH' ); END_FUNCTION;
FUNCTION Vector_Difference( arg1, 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 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF( arg1 ) THEN mag1 := arg1\Vector.magnitude; vec1 := arg1\Vector.Orientation; ELSE mag1 := 1; vec1 := arg1; END_IF; IF 'AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF.VECTOR' IN TYPEOF( arg2 ) THEN mag2 := arg2\Vector.magnitude; vec2 := arg2\Vector.Orientation; ELSE mag2 := 1; vec2 := arg2; END_IF; vec1 := Normalise( vec1 ); vec2 := Normalise( vec2 ); ndim := SIZEOF( vec1.direction_ratios ); mag := 0; res := Dummy_Gri || Direction( vec1.direction_ratios ); REPEAT i := 1 TO ndim BY 1; res.direction_ratios[i] := ( mag1 * vec1.direction_ratios[i] ) - ( mag2 * vec2.direction_ratios[i] ); mag := mag + ( res.direction_ratios[i] * res.direction_ratios[i] ); END_REPEAT; IF mag > 0 THEN result := Dummy_Gri || Vector( res, SQRT( mag ) ); ELSE result := Dummy_Gri || Vector( vec1, 0 ); END_IF; END; END_IF; RETURN( result ); END_FUNCTION;
FUNCTION Ypr_Index( ypr : Ypr_Enumeration ) : INTEGER; CASE ypr OF Yaw : RETURN( 1 ); Pitch : RETURN( 2 ); Roll : RETURN( 3 ); END_CASE; RETURN( ? ); END_FUNCTION; END_SCHEMA;