CIS/2
LPM/5 Express Schema (Long Form) Formal Issue
Dated January 27th 2000

(* Schema Declaration *)
SCHEMA Structural_Frame_Schema;
(* Object identifier *)
(*
{cimsteel logical product model version (5) object (1) structural-frame-schema(1)}
*)

(* Type Declarations *)
TYPE Action_Source_Accidential
= ENUMERATION OF
(FIRE, IMPULSE, IMPACT, UNDEFINED);
END_TYPE;

TYPE Action_Source_Permanent
= ENUMERATION OF
(DEAD,
SELF_WEIGHT,
PRESTRESS,
LACK_OF_FIT,
UNDEFINED);
END_TYPE;

TYPE Action_Source_Variable_Long_Term
= ENUMERATION OF
(LIVE,
SYSTEM_IMPERFECTION,
SETTLEMENT,
TEMPERATURE_EFFECT,
UNDEFINED);
END_TYPE;

TYPE Action_Source_Variable_Short_Term
= ENUMERATION OF
(BUOYANCY,
WIND,
SNOW,
ICE,
CURRENT,
WAVE,
RAIN,
UNDEFINED);
END_TYPE;

TYPE Action_Source_Variable_Transient
= ENUMERATION OF
(TRANSPORT, ERECTION, PROPPING, UNDEFINED);
END_TYPE;

TYPE Ahead_Or_Behind
= ENUMERATION OF
(AHEAD, BEHIND);
END_TYPE; -- STEP Part 41

TYPE Area_Measure
= REAL;
END_TYPE; -- STEP Part 41

TYPE Assembly_Component_Select
= SELECT
(Located_Assembly_Child,
Located_Part,
Located_Feature,
Located_Joint_System);
END_TYPE;

TYPE Axis2_Placement
= SELECT (Axis2_Placement_2d, Axis2_Placement_3d);
END_TYPE; -- STEP Part 42

TYPE B_Spline_Curve_Form
= ENUMERATION OF
(POLYLINE_FORM,
CIRCULAR_ARC,
ELLIPTIC_ARC,
PARABOLIC_ARC,
HYPERBOLIC_ARC,
UNSPECIFIED);
END_TYPE; -- STEP Part 42

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; -- STEP Part 42

TYPE Bending_Method
= ENUMERATION OF
(HOT_BEND, COLD_BEND, UNDEFINED);
END_TYPE;

TYPE Boolean_Operand
= SELECT
(Solid_Model,
Half_Space_Solid,
Csg_Primitive,
Boolean_Result);
END_TYPE; -- STEP Part 42

TYPE Boolean_Operator
= ENUMERATION OF
(UNION, INTERSECTION, DIFFERENCE);
END_TYPE; -- STEP Part 42

TYPE Buckling_Direction
= ENUMERATION OF
(X_DIR, Y_DIR, Z_DIR);
END_TYPE;

TYPE Cardinal_Point_Ref
= INTEGER;
WHERE
WRTC1 : {0 < SELF < 20};
END_TYPE;

TYPE Castellation_Type
= ENUMERATION OF
(CIRCULAR, HEXAGONAL, OCTAGONAL, UNDEFINED);
END_TYPE;

TYPE Chemical_Mechanism_Type
= ENUMERATION OF
(ADHESIVE, GROUT, FILLER, SEALANT, UNDEFINED);
END_TYPE;

TYPE Cleaning_Method
= ENUMERATION OF
(CHEMICAL_WASH, BLAST_CLEAN, UNDEFINED);
END_TYPE;

TYPE Coating_Method
= ENUMERATION OF
(SPRAYED, BRUSHED, DIPPED, ELECTROPLATED, UNDEFINED);
END_TYPE;

TYPE Coating_Purpose
= ENUMERATION OF
(CORROSION_PROTECTION,
FIRE_PROTECTION,
AESTHETIC,
UNDEFINED);
END_TYPE;

TYPE Complexity_Level
= ENUMERATION OF
(LOW, MEDIUM, HIGH);
END_TYPE;

TYPE Connection_Type
= ENUMERATION OF
(PINNED,
SEMI_RIGID_FULL_STR,
SEMI_RIGID_PARTIAL_STR,
RIGID_FULL_STR,
RIGID_PARTIAL_STR);
END_TYPE;

TYPE Context_Dependent_Measure
= REAL;
END_TYPE; -- STEP Part 41

TYPE Count_Measure
= NUMBER;
END_TYPE; -- STEP Part 41

TYPE Csg_Primitive
= SELECT
(Sphere,
Block,
Right_Angular_Wedge,
Torus,
Right_Circular_Cone,
Right_Circular_Cylinder);
END_TYPE; -- STEP Part 42

TYPE Csg_Select
= SELECT
(Boolean_Result, Csg_Primitive);
END_TYPE; -- STEP Part 42

TYPE Curve_On_Surface
= SELECT
(Pcurve, Surface_Curve, Composite_Curve_On_Surface);
END_TYPE; -- STEP Part 42

TYPE Cutting_Type
= ENUMERATION OF
(SAWN,
FLAME_CUT,
SHEARED,
PUNCHED,
DRILLED,
LASER,
ABRASION,
UNDEFINED);
END_TYPE;

TYPE Data_Status_Type
= ENUMERATION OF
(DELETED, SUPERSEDED, ARCHIVED, ERRONEOUS, UNDEFINED);
END_TYPE;

TYPE Day_In_Month_Number
= INTEGER;
WHERE
WRTD1 : { 1 <= SELF <= 31 };
END_TYPE; -- STEP Part 41

TYPE Degrees_Rotation
= INTEGER;
WHERE
WRTD2 : {-180 < SELF <= 180};
END_TYPE;

TYPE Derived_Measure
= SELECT
(Force_Per_Length_Measure,
Inertia_Measure,
Linear_Acceleration_Measure,
Linear_Stiffness_Measure,
Linear_Velocity_Measure,
Mass_Per_Length_Measure,
Modulus_Measure,
Moment_Measure,
Rotational_Acceleration_Measure,
Rotational_Stiffness_Measure,
Rotational_Velocity_Measure);
END_TYPE;

TYPE Descriptive_Measure
= STRING;
END_TYPE; -- STEP Part 41

TYPE Dimension_Count
= INTEGER;
WHERE
WRTD3 : SELF > 0;
END_TYPE; -- STEP Part 42

TYPE Direct_Or_Indirect_Action
= ENUMERATION OF
(DIRECT_ACTION, INDIRECT_ACTION);
END_TYPE;

TYPE Dynamic_Analysis_Type
= ENUMERATION OF
(FREE_VIBRATION,
STRESSED_FREE_VIBRATION,
DAMPED_VIBRATION,
LINEAR_DYNAMIC,
RESPONSE_SPECTRUM,
UNDEFINED);
END_TYPE;

TYPE Elastic_Or_Plastic_Resistance
= ENUMERATION OF
(ELASTIC_RESISTANCE, PLASTIC_RESISTANCE);
END_TYPE;

TYPE Element_Surface_Shape
= ENUMERATION OF
(QUADRILATERAL, TRIANGLE);
END_TYPE;

TYPE Element_Volume_Shape
= ENUMERATION OF
(HEXAHEDRON,
WEDGE,
TETRAHEDRON,
PYRAMID);
END_TYPE;

TYPE Fabrication_Type
= ENUMERATION OF
(ROLLED,
WELDED,
COLD_FORMED,
CAST,
FORGED,
EXTRUDED,
UNDEFINED);
END_TYPE;

TYPE Force_Measure
= REAL;
END_TYPE;

TYPE Force_Per_Length_Measure
= REAL;
END_TYPE;

TYPE Frame_Continuity
= ENUMERATION OF
(SIMPLE, CONTINUOUS, SEMI_CONTINUOUS);
END_TYPE;

TYPE Frame_Type
= ENUMERATION OF
(SPACE_FRAME,
SPACE_TRUSS,
PLANE_FRAME,
PLANE_TRUSS,
GRILLAGE,
UNDEFINED);
END_TYPE;

TYPE Frequency_Measure
= REAL;
END_TYPE;

TYPE Geometric_Set_Select
= SELECT
(Point, Curve, Surface);
END_TYPE; -- STEP Part 42

TYPE Global_Or_Local_Load
= ENUMERATION OF
(GLOBAL_LOAD, LOCAL_LOAD);
END_TYPE;

TYPE Global_Or_Local_Resistance
= ENUMERATION OF
(GLOBAL_RESISTANCE, LOCAL_RESISTANCE);
END_TYPE;

TYPE Hour_In_Day
= INTEGER;
WHERE
WRTH1 : { 0 <= SELF < 24 };
END_TYPE; -- STEP Part 41

TYPE Identifier
= STRING;
END_TYPE; -- STEP Part 41

TYPE Inertia_Measure
= REAL;
WHERE
WRTI1 : (SELF > 0.0);
END_TYPE;

TYPE Knot_Type
= ENUMERATION OF
(UNIFORM_KNOTS,
UNSPECIFIED,
QUASI_UNIFORM_KNOTS,
PIECEWISE_BEZIER_KNOTS);
END_TYPE; -- STEP Part 42

TYPE Label
= STRING;
END_TYPE; -- STEP Part 41

TYPE Left_Or_Right
= ENUMERATION OF
(LEFT_HAND, RIGHT_HAND);
END_TYPE;

TYPE Length_Measure
= REAL;
END_TYPE; -- STEP Part 41

TYPE Linear_Acceleration_Measure
= REAL;
END_TYPE;

TYPE Linear_Stiffness_Measure
= REAL;
WHERE
WRTL1 : (SELF >= 0.0);
END_TYPE;

TYPE Linear_Velocity_Measure
= REAL;
END_TYPE;

TYPE List_Of_Reversible_Topology_Item
= LIST [0:?] OF Reversible_Topology_Item;
END_TYPE; -- STEP Part 42

TYPE Loading_Status
= ENUMERATION OF
(LOAD_INCREASING,
LOAD_DECREASING,
LOAD_CONSTANT,
UNLOADED);
END_TYPE;

TYPE Mass_Measure
= REAL;
END_TYPE; -- STEP Part 41

TYPE Mass_Per_Length_Measure
= REAL;
WHERE
WRTM1 : (SELF > 0.0);
END_TYPE;

TYPE Maximum_Or_Minimum
= ENUMERATION OF
(MAXIMUM, MINIMUM);
END_TYPE;

TYPE Measure_Value
= SELECT
(Length_Measure,
Mass_Measure,
Time_Measure,
Thermodynamic_Temperature_Measure,
Plane_Angle_Measure,
Solid_Angle_Measure,
Area_Measure,
Volume_Measure,
Ratio_Measure,
Parameter_Value,
Numeric_Measure,
Force_Measure,
Frequency_Measure,
Pressure_Measure,
Context_Dependent_Measure,
Descriptive_Measure,
Positive_Length_Measure,
Positive_Plane_Angle_Measure,
Positive_Ratio_Measure,
Count_Measure,
Derived_Measure);
END_TYPE; -- STEP Part 41 expanded

TYPE Member_Class
= ENUMERATION OF
(PRIMARY_MEMBER,
SECONDARY_MEMBER,
TERTIARY_MEMBER,
UNDEFINED_CLASS);
END_TYPE;

TYPE Member_Cubic_Type
= ENUMERATION OF
(FLOOR,
STAIR,
RAMP,
STRUCTURAL_CORE,
STRUCTURAL_SHELL,
UNDEFINED);
END_TYPE;

TYPE Member_Linear_Type
= ENUMERATION OF
(BEAM,
COLUMN,
TRUSS_ELEMENT,
BRACE,
SPRING_ELEMENT,
CABLE,
PIPE,
WIRE,
TIE,
UNDEFINED);
END_TYPE;

TYPE Member_Planar_Type
= ENUMERATION OF
(WALL,
SLAB,
STAIR_ELEMENT,
RAMP_ELEMENT,
UNDEFINED);
END_TYPE;

TYPE Member_Role
= ENUMERATION OF
(COMPRESSION_MEMBER,
TENSION_MEMBER,
BENDING_MEMBER,
COMBINED_MEMBER,
UNDEFINED_ROLE);
END_TYPE;

TYPE Minute_In_Hour
= INTEGER;
WHERE
WRTM2 : { 0 <= SELF <= 59 };
END_TYPE; -- STEP Part 41

TYPE Minutes_Rotation
= INTEGER;
WHERE
WRTM3 : {0 <= SELF < 60};
END_TYPE;

TYPE Modulus_Measure
= REAL;
WHERE
WRTM4 : (SELF > 0.0);
END_TYPE;

TYPE Moment_Measure
= REAL;
END_TYPE;

TYPE Month_In_Year_Number
= INTEGER;
WHERE
WRTM5 : { 1 <= SELF <= 12 };
END_TYPE; -- STEP Part 41

TYPE Numeric_Measure
= NUMBER;
END_TYPE; -- STEP Part 41

TYPE Orientation_Select
= SELECT
(Plane_Angle_Measure_With_Unit, Direction);
END_TYPE;

TYPE Parameter_Value
= REAL;
END_TYPE; -- STEP Part 41

TYPE Part_Select
= SELECT
(Part, Design_Part, Located_Part);
END_TYPE;

TYPE Pcurve_Or_Surface
= SELECT
(Pcurve, Surface);
END_TYPE; -- STEP Part 42

TYPE Plane_Angle_Measure
= REAL;
END_TYPE;

TYPE Plane_Stress_Or_Strain
= ENUMERATION OF
(PLANE_STRESS, PLANE_STRAIN, UNDEFINED);
END_TYPE;

TYPE Positive_Length_Measure
= Length_Measure;
WHERE
WRTP1 : SELF > 0.0;
END_TYPE; -- STEP Part 41

TYPE Positive_Plane_Angle_Measure
= Plane_Angle_Measure;
WHERE
WRTP2 : SELF > 0.0;
END_TYPE; -- STEP Part 41

TYPE Positive_Ratio_Measure
= Ratio_Measure;
WHERE
WRTP3 : SELF > 0.0;
END_TYPE; -- STEP Part 41

TYPE Preferred_Surface_Curve_Representation
= ENUMERATION OF
(CURVE_3D, PCURVE_S1, PCURVE_S2);
END_TYPE; -- STEP Part 42

TYPE Pressure_Measure
= REAL;
END_TYPE;

TYPE Project_Select
= SELECT
(Project, Zone_Of_Project);
END_TYPE;

TYPE Projected_Or_True
= ENUMERATION OF
(PROJECTED_LENGTH, TRUE_LENGTH);
END_TYPE;

TYPE Ratio_Measure
= REAL;
END_TYPE; -- STEP Part 41

TYPE Reversible_Topology
= SELECT
(Reversible_Topology_Item,
List_Of_Reversible_Topology_Item,
Set_Of_Reversible_Topology_Item);
END_TYPE; -- STEP Part 42

TYPE Reversible_Topology_Item
= SELECT
(Edge,
Path,
Face,
Face_Bound,
Closed_Shell,
Open_Shell);
END_TYPE; -- STEP Part 42

TYPE Rotational_Acceleration_Measure
= REAL;
END_TYPE;

TYPE Rotational_Stiffness_Measure
= REAL;
WHERE
WRTR1 : (SELF >= 0.0);
END_TYPE;

TYPE Rotational_Velocity_Measure
= REAL;
END_TYPE;

TYPE Second_In_Minute
= REAL;
WHERE
WRTS1 : { 0 <= SELF < 60 };
END_TYPE; -- STEP Part 41

TYPE Seconds_Rotation
= REAL;
WHERE
WRTS2 : {0.0 <= SELF < 60.0};
END_TYPE;

TYPE Select_Analysis_Item
= SELECT
(Select_Analysis_Model_Item,
Select_Loading_Item,
Select_Response_Item);
END_TYPE;

TYPE Select_Analysis_Model_Item
= SELECT
(Analysis_Method,
Boundary_Condition,
Element_Eccentricity,
Element_Node_Connectivity,
Analysis_Model,
Analysis_Model_Mapping,
Analysis_Model_Relationship,
Element,
Element_Mapping,
Node,
Node_Dependency,
Release);
END_TYPE;

TYPE Select_Data_Item
= SELECT
(Managed_Data_Deleted,
Select_Generic_Item,
Select_Analysis_Item,
Select_Design_Item,
Select_Physical_Item,
Select_Project_Definition_Item,
Select_Structural_Item);
END_TYPE;

TYPE Select_Data_Source
= SELECT
(Managed_Application_Installation, Step_File);
END_TYPE;

TYPE Select_Design_Item
= SELECT
(Assembly_Design,
Assembly_Map,
Assembly_Relationship,
Design_Criterion,
Design_Joint_System,
Design_Part,
Design_Result ,
Effective_Buckling_Length,
Functional_Role,
Resistance,
Restraint);
END_TYPE;

TYPE Select_Generic_Item
= SELECT
(Action,
Action_Directive,
Action_Method,
Address,
Approval,
Approval_Status,
Box_Domain,
Certification,
Certification_Type,
Composite_Curve_Segment,
Contract,
Contract_Type,
Coordinated_Universal_Time_Offset,
Date,
Date_And_Time,
Derived_Unit,
Derived_Unit_Element,
Dimensional_Exponents,
Document,
Document_Type,
Document_Relationship,
Document_Usage_Constraint,
Functionally_Defined_Transformation,
Group,
Group_Assignment,
Group_Relationship,
Item_Defined_Transformation,
Local_Time,
Measure_Qualification,
Measure_With_Unit,
Named_Unit,
Organization,
Organization_Relationship,
Person,
Person_And_Organization,
Person_And_Organization_Role,
Representation,
Representation_Context,
Representation_Item,
Representation_Map,
Representation_Relationship,
Surface_Patch,
Value_Qualifier,
Versioned_Action_Request);
END_TYPE;

TYPE Select_Loading_Item
= SELECT (
Applied_Load,
Load_Case,
Load,
Loaded_Product,
Loading_Combination,
Load_Combination_Occurrence,
Physical_Action);
END_TYPE;

TYPE Select_Physical_Item
= SELECT
(Located_Item, Located_Part_Joint);
END_TYPE;

TYPE Select_Project_Definition_Item
= SELECT
(Assembly,
Building,
Building_Complex,
Currency_Measure_With_Unit,
Project,
Project_Plan,
Project_Plan_Item,
Project_Plan_Item_Relationship,
Project_Organization,
Site,
Structure);
END_TYPE;

TYPE Select_Response_Item
= SELECT (
Analysis_Result,
Analysis_Results_Set,
Design_Result,
Reaction);
END_TYPE;

TYPE Select_Structural_Item
= SELECT
(Coord_System,
Grid,
Grid_Intersection,
Grid_Offset,
Geographical_Location,
Item_Property,
Item_Property_Assigned,
Item_Reference,
Item_Reference_Assigned,
Item_Ref_Source,
Item_Ref_Source_Documented,
Section_Properties,
Setting_Out_Point,
Structural_Frame_Item,
Structural_Frame_Item_Approved,
Structural_Frame_Item_Certified,
Structural_Frame_Item_Documented,
Structural_Frame_Item_Priced,
Structural_Frame_Item_Relationship,
Zone);
END_TYPE;

TYPE Set_Of_Reversible_Topology_Item
= SET [1:?] OF Reversible_Topology_Item;
END_TYPE; -- STEP Part 42

TYPE Shell
= SELECT
(Vertex_Shell,
Wire_Shell,
Open_Shell,
Closed_Shell);
END_TYPE; -- STEP Part 42

TYPE Shop_Or_Site
= ENUMERATION OF
(SHOP_PROCESS, SITE_PROCESS, UNDEFINED);
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; -- STEP Part 41

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; -- STEP Part 41

TYPE Site_Select
= SELECT
(Site,
Located_Site,
Zone_Of_Site,
Zone_Of_Building,
Building_Complex);
END_TYPE;

TYPE Solid_Angle_Measure
= REAL;
END_TYPE; -- STEP Part 41

TYPE Spatial_Variation
= ENUMERATION OF
(FREE_ACTION, FIXED_ACTION);
END_TYPE;

TYPE Start_Or_End_Face
= ENUMERATION OF
(START_FACE, END_FACE);
END_TYPE;

TYPE Static_Analysis_Type
= ENUMERATION OF
(ELASTIC_1ST_ORDER,
ELASTIC_2ND_ORDER,
RIGID_PLASTIC,
ELASTO_PLASTIC,
ELASTIC_PERFECTLY_PLASTIC,
UNDEFINED);
END_TYPE;

TYPE Static_Or_Dynamic
= ENUMERATION OF
(STATIC, DYNAMIC, QUASI_DYNAMIC);
END_TYPE;

TYPE Structure_Select
= SELECT
(Structure,
Located_Structure,
Zone_Of_Structure,
Zone_Of_Building,
Located_Assembly);
END_TYPE;

TYPE Surface_Model
= SELECT
(Shell_Based_Surface_Model, Face_Based_Surface_Model);
END_TYPE; -- STEP Part 42

TYPE Text
= STRING;
END_TYPE; -- STEP Part 41

TYPE Thermodynamic_Temperature_Measure
= REAL;
END_TYPE; -- STEP Part 41

TYPE Time_Measure
= REAL;
END_TYPE; -- STEP Part 41

TYPE Top_Or_Bottom
= ENUMERATION OF
(TOP_EDGE, BOTTOM_EDGE);
END_TYPE;

TYPE Transformation
= SELECT
(Item_Defined_Transformation, Functionally_Defined_Transformation);
END_TYPE; -- STEP Part 43

TYPE Transition_Code
= ENUMERATION OF
(DISCONTINUOUS,
CONTINUOUS,
CONT_SAME_GRADIENT,
CONT_SAME_GRADIENT_SAME_CURVATURE);
END_TYPE; -- STEP Part 42

TYPE Trimming_Preference
= ENUMERATION OF
(CARTESIAN, PARAMETER, UNSPECIFIED);
END_TYPE; -- STEP Part 42

TYPE Trimming_Select
= SELECT
(Cartesian_Point, Parameter_Value);
END_TYPE; -- STEP Part 42

TYPE Unit
= SELECT
(Named_Unit, Derived_Unit);
END_TYPE; -- STEP Part 41

TYPE Value_Qualifier
= SELECT
(Precision_Qualifier, Type_Qualifier, Uncertainty_Qualifier);
END_TYPE; -- STEP Part 45

TYPE Vector_Or_Direction
= SELECT
(Direction, Vector);
END_TYPE; -- STEP Part 42

TYPE Volume_Measure
= REAL;
END_TYPE; -- STEP Part 41

TYPE Weld_Penetration
= ENUMERATION OF
(FULL_PENETRATION,
DEEP_PENETRATION,
PARTIAL_PENETRATION,
UNDEFINED);
END_TYPE;

TYPE Weld_Type
= ENUMERATION OF
(BUTT_WELD,
FILLET_WELD,
SPOT_WELD,
PLUG_WELD,
UNDEFINED);
END_TYPE;

TYPE Welding_Type
= ENUMERATION OF
(FUSION_WELD,
FRICTION_WELD,
FLASH_WELD,
LASER_WELD,
FORGE_WELD,
UNDEFINED);
END_TYPE;

TYPE Wireframe_Model
= SELECT (Shell_Based_Wireframe_Model, Edge_Based_Wireframe_Model);
END_TYPE; -- STEP Part 42

TYPE Year_Number
= INTEGER;
WHERE
WRTY1 : SELF > 1000;
END_TYPE; -- STEP Part 41

(* Entity Declarations *)
ENTITY Action
SUPERTYPE OF (Executed_Action);
name : Label;
description : Text;
chosen_method : Action_Method;
END_ENTITY; -- STEP Part 41

ENTITY Action_Directive;
name : Label;
description : Text;
analysis: Text;
comment : Text;
requests: SET [1:?] OF Versioned_Action_Request;
END_ENTITY; -- STEP Part 41

ENTITY Action_Method;
name : Label;
description : Text;
consequence : Text;
purpose : Text;
END_ENTITY; -- STEP Part 41

ENTITY Address
SUPERTYPE OF (Personal_Address ANDOR Organizational_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;
WHERE
WRA1 : EXISTS (INTERNAL_LOCATION) OR
EXISTS (STREET_NUMBER) 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; -- STEP Part 41

ENTITY Analysis_Method
SUPERTYPE OF (ONEOF
(Analysis_Method_Dynamic,
Analysis_Method_Pseudo_Dynamic,
Analysis_Method_Static) ANDOR
Analysis_Method_Documented);
analysis_name : Label;
analysis_assumptions : OPTIONAL Text;
END_ENTITY;

ENTITY Analysis_Method_Documented
SUBTYPE OF (Analysis_Method);
documented_constraints : SET [1:?] OF Document_Usage_Constraint;
END_ENTITY;

ENTITY Analysis_Method_Dynamic
SUBTYPE OF (Analysis_Method);
analysis_type : Dynamic_Analysis_Type;
END_ENTITY;

ENTITY Analysis_Method_Pseudo_Dynamic
SUBTYPE OF (Analysis_Method);
analysis_type : Label;
END_ENTITY;

ENTITY Analysis_Method_Static
SUBTYPE OF (Analysis_Method);
analysis_type : Static_Analysis_Type;
END_ENTITY;

ENTITY Analysis_Model
SUPERTYPE OF (ONEOF
(Analysis_Model_2d,
Analysis_Model_3d) ANDOR
Analysis_Model_Located ANDOR
Analysis_Model_Child);
model_name : Label;
model_description : OPTIONAL Text;
model_type : Frame_Type;
method_of_analysis : OPTIONAL Analysis_Method;
coordinate_space_dimension : Dimension_Count;
INVERSE
component_elements : SET [1:?] OF Element
FOR PARENT_MODEL;
component_nodes : SET [2:?] OF Node
FOR PARENT_MODEL;
END_ENTITY;

ENTITY Analysis_Model_2d
SUBTYPE OF (Analysis_Model);
WHERE
WRA2 : SELF\Analysis_Model.COORDINATE_SPACE_DIMENSION = 2;
WRA3 : (SELF\Analysis_Model.MODEL_TYPE = PLANE_FRAME) OR
(SELF\Analysis_Model.MODEL_TYPE = PLANE_TRUSS) OR
(SELF\Analysis_Model.MODEL_TYPE = GRILLAGE);
END_ENTITY;

ENTITY Analysis_Model_3d
SUBTYPE OF (Analysis_Model);
WHERE
WRA4 : SELF\Analysis_Model.COORDINATE_SPACE_DIMENSION = 3;
WRA5 : (SELF\Analysis_Model.MODEL_TYPE = SPACE_FRAME) OR
(SELF\Analysis_Model.MODEL_TYPE = SPACE_TRUSS);
END_ENTITY;

ENTITY Analysis_Model_Child
SUBTYPE OF (Analysis_Model);
parent_model : Analysis_Model;
WHERE
WRA6 : PARENT_MODEL :<>: (SELF);
WRA7 : SELF\Analysis_Model.COORDINATE_SPACE_DIMENSION <=
PARENT_MODEL.COORDINATE_SPACE_DIMENSION;
END_ENTITY;

ENTITY Analysis_Model_Located
SUBTYPE OF (Analysis_Model);
model_coord_sys : Coord_System;
WHERE
WRA8 : SELF\Analysis_Model.COORDINATE_SPACE_DIMENSION <=
MODEL_COORD_SYS.COORD_SYSTEM_DIMENSIONALITY;
END_ENTITY;

ENTITY Analysis_Model_Mapping;
mapped_analysis_model : Analysis_Model;
represented_assemblies : SET [1:?] OF Assembly;
END_ENTITY;

ENTITY Analysis_Model_Relationship;
relationship_name : Label;
relationship_description : OPTIONAL Text;
relating_model : Analysis_Model;
related_model : Analysis_Model;
WHERE
WRA9 : RELATING_MODEL :<>: RELATED_MODEL;
END_ENTITY;

ENTITY Analysis_Result
ABSTRACT SUPERTYPE OF (ONEOF
(Analysis_Result_Node,
Analysis_Result_Element_Node,
Analysis_Result_Element));
analysis_result_name : Label;
sign_convention : OPTIONAL Text;
results_for_analysis : Analysis_Method;
UNIQUE
URA1 : ANALYSIS_RESULT_NAME;
END_ENTITY;

ENTITY Analysis_Result_Element
ABSTRACT SUPERTYPE OF (ONEOF
(Analysis_Result_Element_Curve,
Analysis_Result_Element_Surface,
Analysis_Result_Element_Point,
Analysis_Result_Element_Volume))
SUBTYPE OF (Analysis_Result);
END_ENTITY;

ENTITY Analysis_Result_Element_Curve
SUBTYPE OF (Analysis_Result_Element);
result_for_element_curve : Element_Curve;
x_increasing : BOOLEAN;
result_values : Reaction;
result_position : Length_Measure_With_Unit;
position_label : OPTIONAL Label;
END_ENTITY;

ENTITY Analysis_Result_Element_Node
SUBTYPE OF (Analysis_Result);
result_for_element_node : Element_Node_Connectivity;
result_values : Reaction;
END_ENTITY;

ENTITY Analysis_Result_Element_Point
SUBTYPE OF (Analysis_Result_Element);
result_for_element_point : Element_Point;
result_values : Reaction;
END_ENTITY;

ENTITY Analysis_Result_Element_Surface
ABSTRACT SUPERTYPE OF (ONEOF
(Analysis_Result_Element_Surface_Stresses,
Analysis_Result_Element_Surface_Tractions))
SUBTYPE OF (Analysis_Result_Element);
result_for_element_surface : Element_Surface;
result_position : Point;
position_label : OPTIONAL Label;
END_ENTITY;

ENTITY Analysis_Result_Element_Surface_Stresses
SUBTYPE OF (Analysis_Result_Element_Surface);
direct_stress_sigma_y : Pressure_Measure_With_Unit;
membrane_stress_tau_yz : Pressure_Measure_With_Unit;
direct_stress_sigma_z : Pressure_Measure_With_Unit;
END_ENTITY;

ENTITY Analysis_Result_Element_Surface_Tractions
SUBTYPE OF (Analysis_Result_Element_Surface);
thrust_tz : OPTIONAL Force_Per_Length_Measure_With_Unit;
bending_traction_my : Force_Measure_With_Unit;
thrust_ty : OPTIONAL Force_Per_Length_Measure_With_Unit;
torsional_traction_mzy : Force_Measure_With_Unit;
torsional_traction_myz : Force_Measure_With_Unit;
shear_traction_qz : Force_Per_Length_Measure_With_Unit;
shear_traction_qy : Force_Per_Length_Measure_With_Unit;
bending_traction_mz : Force_Measure_With_Unit;
END_ENTITY;

ENTITY Analysis_Result_Element_Volume
ABSTRACT SUPERTYPE OF (Analysis_Result_Element_Volume_Stress_Tensor)
SUBTYPE OF (Analysis_Result_Element);
result_for_element_volume : Element_Volume;
result_position : Point;
position_label : OPTIONAL Label;
END_ENTITY;

ENTITY Analysis_Result_Element_Volume_Stress_Tensor
SUBTYPE OF (Analysis_Result_Element_Volume);
shear_stress_tau_zy : Pressure_Measure_With_Unit;
shear_stress_tau_xz : Pressure_Measure_With_Unit;
normal_stress_sigma_z : Pressure_Measure_With_Unit;
normal_stress_sigma_y : Pressure_Measure_With_Unit;
normal_stress_sigma_x : Pressure_Measure_With_Unit;
shear_stress_tau_zx : Pressure_Measure_With_Unit;
shear_stress_tau_yz : Pressure_Measure_With_Unit;
shear_stress_tau_yx : Pressure_Measure_With_Unit;
shear_stress_tau_xy : Pressure_Measure_With_Unit;
END_ENTITY;

ENTITY Analysis_Result_Node
SUBTYPE OF (Analysis_Result);
result_for_node : Node;
result_values : Reaction;
END_ENTITY;

ENTITY Analysis_Results_Set
SUPERTYPE OF (ONEOF
(Analysis_Results_Set_Basic,
Analysis_Results_Set_Combined,
Analysis_Results_Set_Envelope,
Analysis_Results_Set_Redistributed));
results_set_name : Label;
component_results : SET [1:?] OF Analysis_Result;
END_ENTITY;

ENTITY Analysis_Results_Set_Basic
SUBTYPE OF (Analysis_Results_Set);
basic_load_case : Load_Case;
END_ENTITY;

ENTITY Analysis_Results_Set_Combined
SUBTYPE OF (Analysis_Results_Set);
loading_combination_ref : Loading_Combination;
END_ENTITY;

ENTITY Analysis_Results_Set_Envelope
SUBTYPE OF (Analysis_Results_Set);
max_or_min : Maximum_Or_Minimum;
component_combinations : SET [1:?] OF Analysis_Results_Set_Combined;
END_ENTITY;

ENTITY Analysis_Results_Set_Redistributed
SUBTYPE OF (Analysis_Results_Set);
redistribution_factors : LIST [1:?] OF Ratio_Measure_With_Unit;
END_ENTITY;

ENTITY Applied_Load
ABSTRACT SUPERTYPE OF (ONEOF(Applied_Load_Static, Applied_Load_Dynamic));
applied_load_name : Label;
END_ENTITY;

ENTITY Applied_Load_Dynamic
SUPERTYPE OF (ONEOF
(Applied_Load_Dynamic_Acceleration,
Applied_Load_Dynamic_Velocity))
SUBTYPE OF (Applied_Load);
initial_value : OPTIONAL Applied_Load_Static;
final_value : OPTIONAL Applied_Load_Static;
maximum_value : OPTIONAL Applied_Load_Static;
minimum_value : OPTIONAL Applied_Load_Static;
number_of_cycles : OPTIONAL Count_Measure;
load_duration : OPTIONAL Time_Measure_With_Unit;
load_frequency : OPTIONAL Frequency_Measure_With_Unit;
WHERE
WRA10 : EXISTS (INITIAL_VALUE) OR EXISTS (FINAL_VALUE) OR
EXISTS (MAXIMUM_VALUE) OR EXISTS (MINIMUM_VALUE) OR
EXISTS (NUMBER_OF_CYCLES) OR EXISTS (LOAD_DURATION) OR EXISTS (LOAD_FREQUENCY) OR
('STRUCTURAL_FRAME_SCHEMA.APPLIED_LOAD_DYNAMIC_ACCELERATION' IN TYPEOF (SELF)) OR
('STRUCTURAL_FRAME_SCHEMA.APPLIED_LOAD_DYNAMIC_VELOCITY' IN TYPEOF (SELF));
END_ENTITY;

ENTITY Applied_Load_Dynamic_Acceleration
SUBTYPE OF (Applied_Load_Dynamic);
preset_acceleration_ax : OPTIONAL Linear_Acceleration_Measure_With_Unit;
preset_acceleration_ay : OPTIONAL Linear_Acceleration_Measure_With_Unit;
preset_acceleration_az : OPTIONAL Linear_Acceleration_Measure_With_Unit;
preset_acceleration_arx : OPTIONAL Rotational_Acceleration_Measure_With_Unit;
preset_acceleration_ary : OPTIONAL Rotational_Acceleration_Measure_With_Unit;
preset_acceleration_arz : OPTIONAL Rotational_Acceleration_Measure_With_Unit;
WHERE
WRA11 : EXISTS (PRESET_ACCELERATION_AX) OR
EXISTS (PRESET_ACCELERATION_AY) OR
EXISTS (PRESET_ACCELERATION_AZ) OR
EXISTS (PRESET_ACCELERATION_ARX) OR
EXISTS (PRESET_ACCELERATION_ARY) OR
EXISTS (PRESET_ACCELERATION_ARZ);
END_ENTITY;

ENTITY Applied_Load_Dynamic_Velocity
SUBTYPE OF (Applied_Load_Dynamic);
preset_velocity_vx : OPTIONAL Linear_Velocity_Measure_With_Unit;
preset_velocity_vy : OPTIONAL Linear_Velocity_Measure_With_Unit;
preset_velocity_vz : OPTIONAL Linear_Velocity_Measure_With_Unit;
preset_velocity_vrx : OPTIONAL Rotational_Velocity_Measure_With_Unit;
preset_velocity_vry : OPTIONAL Rotational_Velocity_Measure_With_Unit;
preset_velocity_vrz : OPTIONAL Rotational_Velocity_Measure_With_Unit;
WHERE
WRA12 : EXISTS (PRESET_VELOCITY_VX) OR
EXISTS (PRESET_VELOCITY_VY) OR
EXISTS (PRESET_VELOCITY_VZ) OR
EXISTS (PRESET_VELOCITY_VRX) OR
EXISTS (PRESET_VELOCITY_VRY) OR
EXISTS (PRESET_VELOCITY_VRZ);
END_ENTITY;

ENTITY Applied_Load_Static
ABSTRACT SUPERTYPE OF (ONEOF
(Applied_Load_Static_Displacement,
Applied_Load_Static_Force,
Applied_Load_Static_Pressure))
SUBTYPE OF (Applied_Load);
END_ENTITY;

ENTITY Applied_Load_Static_Displacement
SUBTYPE OF (Applied_Load_Static);
preset_displacement_dx : OPTIONAL Length_Measure_With_Unit;
preset_displacement_dy : OPTIONAL Length_Measure_With_Unit;
preset_displacement_dz : OPTIONAL Length_Measure_With_Unit;
preset_displacement_rx : OPTIONAL Plane_Angle_Measure_With_Unit;
preset_displacement_ry : OPTIONAL Plane_Angle_Measure_With_Unit;
preset_displacement_rz : OPTIONAL Plane_Angle_Measure_With_Unit;
WHERE
WRA13 : EXISTS (PRESET_DISPLACEMENT_DX) OR
EXISTS (PRESET_DISPLACEMENT_DY) OR
EXISTS (PRESET_DISPLACEMENT_DZ) OR
EXISTS (PRESET_DISPLACEMENT_RX) OR
EXISTS (PRESET_DISPLACEMENT_RY) OR
EXISTS (PRESET_DISPLACEMENT_RZ);
END_ENTITY;

ENTITY Applied_Load_Static_Force
SUBTYPE OF (Applied_Load_Static);
applied_force_fx : OPTIONAL Force_Measure_With_Unit;
applied_force_fy : OPTIONAL Force_Measure_With_Unit;
applied_force_fz : OPTIONAL Force_Measure_With_Unit;
applied_moment_mx : OPTIONAL Moment_Measure_With_Unit;
applied_moment_my : OPTIONAL Moment_Measure_With_Unit;
applied_moment_mz : OPTIONAL Moment_Measure_With_Unit;
WHERE
WRA14 : EXISTS (APPLIED_FORCE_FX) OR
EXISTS (APPLIED_FORCE_FY) OR
EXISTS (APPLIED_FORCE_FZ) OR
EXISTS (APPLIED_MOMENT_MX) OR
EXISTS (APPLIED_MOMENT_MY) OR
EXISTS (APPLIED_MOMENT_MZ);
END_ENTITY;

ENTITY Applied_Load_Static_Pressure
SUBTYPE OF (Applied_Load_Static);
applied_pressure_px : OPTIONAL Pressure_Measure_With_Unit;
applied_pressure_py : OPTIONAL Pressure_Measure_With_Unit;
applied_pressure_pz : OPTIONAL Pressure_Measure_With_Unit;
WHERE
WRA15 : EXISTS (APPLIED_PRESSURE_PX) OR
EXISTS (APPLIED_PRESSURE_PY) OR
EXISTS (APPLIED_PRESSURE_PZ);
END_ENTITY;

ENTITY Approval;
status : Approval_Status;
level : Label;
END_ENTITY; -- STEP Part 41

ENTITY Approval_Status;
name : Label;
END_ENTITY; -- STEP Part 41

ENTITY Area_Measure_With_Unit
SUBTYPE OF (Measure_With_Unit);
WHERE
WRA16 : 'STRUCTURAL_FRAME_SCHEMA.AREA_UNIT' IN
TYPEOF (SELF\Measure_With_Unit.UNIT_COMPONENT);
WRA17 : 'STRUCTURAL_FRAME_SCHEMA.AREA_MEASURE' IN
TYPEOF (SELF\Measure_With_Unit.VALUE_COMPONENT);
END_ENTITY; -- STEP Part 41

ENTITY Area_Unit
SUBTYPE OF (Named_Unit);
WHERE
WRA18 : (SELF\Named_Unit.DIMENSIONS.LENGTH_EXPONENT = 2.0) AND
(SELF\Named_Unit.DIMENSIONS.MASS_EXPONENT = 0.0) AND
(SELF\Named_Unit.DIMENSIONS.TIME_EXPONENT = 0.0) AND
(SELF\Named_Unit.DIMENSIONS.ELECTRIC_CURRENT_EXPONENT = 0.0) AND
(SELF\Named_Unit.DIMENSIONS.THERMODYNAMIC_TEMPERATURE_EXPONENT = 0.0) AND
(SELF\Named_Unit.DIMENSIONS.AMOUNT_OF_SUBSTANCE_EXPONENT = 0.0) AND
(SELF\Named_Unit.DIMENSIONS.LUMINOUS_INTENSITY_EXPONENT = 0.0);
END_ENTITY; -- STEP Part 41

ENTITY Assemble
SUBTYPE OF (Structural_Frame_Process);
resulting_assembly : Located_Assembly;
components : SET [1:?] OF Assembly_Component_Select;
required_processes : SET [1:?] OF Structural_Frame_Process;
WHERE
WRA29 : 'STRUCTURAL_FRAME_SCHEMA.ASSEMBLY_MANUFACTURING' IN
TYPEOF (RESULTING_ASSEMBLY.DESCRIPTIVE_ASSEMBLY);
WRA30 : SIZEOF(QUERY(COMPONENT <* COMPONENTS | COMPONENT :=: RESULTING_ASSEMBLY)) = 0;
WRA31 : SIZEOF(QUERY(PROCESS <* REQUIRED_PROCESSES | PROCESS :=: (SELF))) = 0;
END_ENTITY;

ENTITY Assembly
ABSTRACT SUPERTYPE OF (ONEOF
(Assembly_Design,
Assembly_Manufacturing) ANDOR
Assembly_With_Shape)
SUBTYPE OF (Structural_Frame_Product);
assembly_sequence_number : OPTIONAL INTEGER;
complexity : OPTIONAL Complexity_Level;
END_ENTITY;

ENTITY Assembly_Design
SUPERTYPE OF (ONEOF
(Assembly_Design_Structural_Frame,
Assembly_Design_Structural_Member,
Assembly_Design_Structural_Connection) ANDOR
Assembly_Design_Child)
SUBTYPE OF (Assembly);
designed : BOOLEAN;
checked : BOOLEAN;
roles : SET [0:?] OF Functional_Role;
governing_criteria : SET [0:?] OF Design_Criterion;
END_ENTITY;

ENTITY Assembly_Design_Child
SUBTYPE OF (Assembly_Design);
parent_assemblies : SET [1:?] OF Assembly_Design;
WHERE
WRA27 : SIZEOF(QUERY(Assembly <* PARENT_ASSEMBLIES | Assembly :=: (SELF)) ) = 0;
END_ENTITY;

ENTITY Assembly_Design_Structural_Connection
SUPERTYPE OF (ONEOF
(Assembly_Design_Structural_Connection_Internal,
Assembly_Design_Structural_Connection_External))
SUBTYPE OF (Assembly_Design);
struc_connection_type : OPTIONAL Connection_Type;
END_ENTITY;

ENTITY Assembly_Design_Structural_Connection_External
SUBTYPE OF (Assembly_Design_Structural_Connection);
connected_member : Assembly_Design_Structural_Member;
END_ENTITY;

ENTITY Assembly_Design_Structural_Connection_Internal
SUBTYPE OF (Assembly_Design_Structural_Connection);
connected_members : SET [2:?] OF Assembly_Design_Structural_Member;
END_ENTITY;

ENTITY Assembly_Design_Structural_Frame
SUBTYPE OF (Assembly_Design);
type_of_frame : Frame_Type;
continuity : OPTIONAL Frame_Continuity;
sway_frame : OPTIONAL BOOLEAN;
braced_frame : OPTIONAL BOOLEAN;
bracing_frame : OPTIONAL BOOLEAN;
frame_members : SET [0:?] OF Assembly_Design_Structural_Member;
frame_connections : SET [0:?] OF Assembly_Design_Structural_Connection;
END_ENTITY;

ENTITY Assembly_Design_Structural_Member
SUPERTYPE OF (ONEOF
(Assembly_Design_Structural_Member_Cubic,
Assembly_Design_Structural_Member_Linear,
Assembly_Design_Structural_Member_Planar))
SUBTYPE OF (Assembly_Design);
key_member : OPTIONAL BOOLEAN;
structural_member_use : Member_Role;
structural_member_class : Member_Class;
END_ENTITY;

ENTITY Assembly_Design_Structural_Member_Cubic
SUBTYPE OF (Assembly_Design_Structural_Member);
cubic_member_type : Member_Cubic_Type;
cubic_member_components : SET [0:?] OF Assembly_Design_Structural_Member;
WHERE
WRA28 : SIZEOF(QUERY(MEMBER <* CUBIC_MEMBER_COMPONENTS | MEMBER :=: (SELF)) ) = 0;
END_ENTITY;

ENTITY Assembly_Design_Structural_Member_Linear
SUBTYPE OF (Assembly_Design_Structural_Member);
linear_member_type : Member_Linear_Type;
END_ENTITY;

ENTITY Assembly_Design_Structural_Member_Planar
SUBTYPE OF (Assembly_Design_Structural_Member);
planar_member_type : Member_Planar_Type;
planar_member_components : SET [0:?] OF Assembly_Design_Structural_Member_Linear;
END_ENTITY;

ENTITY Assembly_Manufacturing
SUPERTYPE OF (Assembly_Manufacturing_Child)
SUBTYPE OF (Assembly);
surface_treatment : OPTIONAL Text;
assembly_sequence : OPTIONAL Text;
assembly_use : OPTIONAL Text;
place_of_assembly : OPTIONAL Shop_Or_Site;
END_ENTITY;

ENTITY Assembly_Manufacturing_Child
SUBTYPE OF (Assembly_Manufacturing);
parent_assembly : Assembly_Manufacturing;
WHERE
WRA19 : PARENT_ASSEMBLY :<>: (SELF);
END_ENTITY;

ENTITY Assembly_Map;
represented_assembly : Assembly;
representing_elements : SET [1:?] OF Element;
END_ENTITY;

ENTITY Assembly_Relationship;
relationship_name : Label;
relationship_description : OPTIONAL Text;
related_assembly : Assembly;
relating_assembly : Assembly;
WHERE
WRA20 : RELATED_ASSEMBLY :<>: RELATING_ASSEMBLY;
END_ENTITY;

ENTITY Assembly_With_Shape
SUBTYPE OF (Assembly);
shape : Shape_Representation_With_Units;
END_ENTITY;

ENTITY Axis1_Placement
SUBTYPE OF (Placement);
axis : OPTIONAL Direction;
DERIVE
z: Direction := NVL(Normalise(AXIS),Direction([0.0,0.0,1.0])
|| Geometric_Representation_Item()
|| Representation_Item('a_name'));
WHERE
WRA21 : SELF\Geometric_Representation_Item.DIM = 3;
END_ENTITY; -- STEP Part 42

ENTITY Axis2_Placement_2d
SUBTYPE OF (Placement);
ref_direction : OPTIONAL Direction;
DERIVE
p : LIST [2:2] OF Direction := Build_2axes(REF_DIRECTION);
WHERE
WRA22 : SELF\Geometric_Representation_Item.DIM = 2;
END_ENTITY; -- STEP Part 42

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
WRA23 : SELF\Placement.LOCATION.DIM = 3;
WRA24 : (NOT (EXISTS (AXIS))) OR (AXIS.DIM = 3);
WRA25 : (NOT (EXISTS (REF_DIRECTION))) OR (REF_DIRECTION.DIM = 3);
WRA26 : (NOT (EXISTS (AXIS))) OR (NOT (EXISTS (REF_DIRECTION))) OR
(Cross_Product(AXIS,REF_DIRECTION).MAGNITUDE > 0.0);
END_ENTITY; -- STEP Part 42

ENTITY B_Spline_Curve
SUPERTYPE OF ((ONEOF
(B_Spline_Curve_With_Knots,
Uniform_Curve,
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 : |