Appendix A

Back Home Up Next

 

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 :