

//



//
// $Id: SdaiCONFIG_CONTROL_DESIGN.h,v 1.2 1999/05/21 20:20:35 japost Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
#ifndef  SDAICONFIG_CONTROL_DESIGN_H
#define  SDAICONFIG_CONTROL_DESIGN_H
// This file was generated by fedex_plus.  You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// regenerate it.
/*   */ 
#ifdef __O3DB__
#include <OpenOODB.h>
#endif

#ifndef  SCHEMA_H 
#include <schema.h> 
#endif 

/*	**************  TYPES  	*/

//	***** Describe the Entities  	

class SdaiRepresentation_item;
typedef SdaiRepresentation_item * 	SdaiRepresentation_itemH;
extern EntityDescriptor 	*config_control_designe_representation_item;

class SdaiGeometric_representation_item;
typedef SdaiGeometric_representation_item * 	SdaiGeometric_representation_itemH;
extern EntityDescriptor 	*config_control_designe_geometric_representation_item;

class SdaiFunctionally_defined_transformation;
typedef SdaiFunctionally_defined_transformation * 	SdaiFunctionally_defined_transformationH;
extern EntityDescriptor 	*config_control_designe_functionally_defined_transformation;

class SdaiCartesian_transformation_operator;
typedef SdaiCartesian_transformation_operator * 	SdaiCartesian_transformation_operatorH;
extern EntityDescriptor 	*config_control_designe_cartesian_transformation_operator;

class SdaiCartesian_transformation_operator_3d;
typedef SdaiCartesian_transformation_operator_3d * 	SdaiCartesian_transformation_operator_3dH;
extern EntityDescriptor 	*config_control_designe_cartesian_transformation_operator_3d;

class SdaiVersioned_action_request;
typedef SdaiVersioned_action_request * 	SdaiVersioned_action_requestH;
extern EntityDescriptor 	*config_control_designe_versioned_action_request;

class SdaiRepresentation;
typedef SdaiRepresentation * 	SdaiRepresentationH;
extern EntityDescriptor 	*config_control_designe_representation;

class SdaiShape_representation;
typedef SdaiShape_representation * 	SdaiShape_representationH;
extern EntityDescriptor 	*config_control_designe_shape_representation;

class SdaiManifold_surface_shape_representation;
typedef SdaiManifold_surface_shape_representation * 	SdaiManifold_surface_shape_representationH;
extern EntityDescriptor 	*config_control_designe_manifold_surface_shape_representation;

class SdaiCertification;
typedef SdaiCertification * 	SdaiCertificationH;
extern EntityDescriptor 	*config_control_designe_certification;

class SdaiProduct_definition_relationship;
typedef SdaiProduct_definition_relationship * 	SdaiProduct_definition_relationshipH;
extern EntityDescriptor 	*config_control_designe_product_definition_relationship;

class SdaiProduct_definition_usage;
typedef SdaiProduct_definition_usage * 	SdaiProduct_definition_usageH;
extern EntityDescriptor 	*config_control_designe_product_definition_usage;

class SdaiAssembly_component_usage;
typedef SdaiAssembly_component_usage * 	SdaiAssembly_component_usageH;
extern EntityDescriptor 	*config_control_designe_assembly_component_usage;

class SdaiQuantified_assembly_component_usage;
typedef SdaiQuantified_assembly_component_usage * 	SdaiQuantified_assembly_component_usageH;
extern EntityDescriptor 	*config_control_designe_quantified_assembly_component_usage;

class SdaiSolid_model;
typedef SdaiSolid_model * 	SdaiSolid_modelH;
extern EntityDescriptor 	*config_control_designe_solid_model;

class SdaiManifold_solid_brep;
typedef SdaiManifold_solid_brep * 	SdaiManifold_solid_brepH;
extern EntityDescriptor 	*config_control_designe_manifold_solid_brep;

class SdaiFaceted_brep;
typedef SdaiFaceted_brep * 	SdaiFaceted_brepH;
extern EntityDescriptor 	*config_control_designe_faceted_brep;

class SdaiAction_directive;
typedef SdaiAction_directive * 	SdaiAction_directiveH;
extern EntityDescriptor 	*config_control_designe_action_directive;

class SdaiNamed_unit;
typedef SdaiNamed_unit * 	SdaiNamed_unitH;
extern EntityDescriptor 	*config_control_designe_named_unit;

class SdaiPlane_angle_unit;
typedef SdaiPlane_angle_unit * 	SdaiPlane_angle_unitH;
extern EntityDescriptor 	*config_control_designe_plane_angle_unit;

class SdaiMeasure_with_unit;
typedef SdaiMeasure_with_unit * 	SdaiMeasure_with_unitH;
extern EntityDescriptor 	*config_control_designe_measure_with_unit;

class SdaiArea_measure_with_unit;
typedef SdaiArea_measure_with_unit * 	SdaiArea_measure_with_unitH;
extern EntityDescriptor 	*config_control_designe_area_measure_with_unit;

class SdaiEffectivity;
typedef SdaiEffectivity * 	SdaiEffectivityH;
extern EntityDescriptor 	*config_control_designe_effectivity;

class SdaiSerial_numbered_effectivity;
typedef SdaiSerial_numbered_effectivity * 	SdaiSerial_numbered_effectivityH;
extern EntityDescriptor 	*config_control_designe_serial_numbered_effectivity;

class SdaiSurface;
typedef SdaiSurface * 	SdaiSurfaceH;
extern EntityDescriptor 	*config_control_designe_surface;

class SdaiOffset_surface;
typedef SdaiOffset_surface * 	SdaiOffset_surfaceH;
extern EntityDescriptor 	*config_control_designe_offset_surface;

class SdaiPlacement;
typedef SdaiPlacement * 	SdaiPlacementH;
extern EntityDescriptor 	*config_control_designe_placement;

class SdaiAxis2_placement_2d;
typedef SdaiAxis2_placement_2d * 	SdaiAxis2_placement_2dH;
extern EntityDescriptor 	*config_control_designe_axis2_placement_2d;

class SdaiProduct_category;
typedef SdaiProduct_category * 	SdaiProduct_categoryH;
extern EntityDescriptor 	*config_control_designe_product_category;

class SdaiProduct_related_product_category;
typedef SdaiProduct_related_product_category * 	SdaiProduct_related_product_categoryH;
extern EntityDescriptor 	*config_control_designe_product_related_product_category;

class SdaiCurve;
typedef SdaiCurve * 	SdaiCurveH;
extern EntityDescriptor 	*config_control_designe_curve;

class SdaiConic;
typedef SdaiConic * 	SdaiConicH;
extern EntityDescriptor 	*config_control_designe_conic;

class SdaiHyperbola;
typedef SdaiHyperbola * 	SdaiHyperbolaH;
extern EntityDescriptor 	*config_control_designe_hyperbola;

class SdaiAddress;
typedef SdaiAddress * 	SdaiAddressH;
extern EntityDescriptor 	*config_control_designe_address;

class SdaiOrganizational_address;
typedef SdaiOrganizational_address * 	SdaiOrganizational_addressH;
extern EntityDescriptor 	*config_control_designe_organizational_address;

class SdaiBounded_surface;
typedef SdaiBounded_surface * 	SdaiBounded_surfaceH;
extern EntityDescriptor 	*config_control_designe_bounded_surface;

class SdaiB_spline_surface;
typedef SdaiB_spline_surface * 	SdaiB_spline_surfaceH;
extern EntityDescriptor 	*config_control_designe_b_spline_surface;

class SdaiUniform_surface;
typedef SdaiUniform_surface * 	SdaiUniform_surfaceH;
extern EntityDescriptor 	*config_control_designe_uniform_surface;

class SdaiGeometrically_bounded_surface_shape_representation;
typedef SdaiGeometrically_bounded_surface_shape_representation * 	SdaiGeometrically_bounded_surface_shape_representationH;
extern EntityDescriptor 	*config_control_designe_geometrically_bounded_surface_shape_representation;

class SdaiAxis1_placement;
typedef SdaiAxis1_placement * 	SdaiAxis1_placementH;
extern EntityDescriptor 	*config_control_designe_axis1_placement;

class SdaiBounded_curve;
typedef SdaiBounded_curve * 	SdaiBounded_curveH;
extern EntityDescriptor 	*config_control_designe_bounded_curve;

class SdaiB_spline_curve;
typedef SdaiB_spline_curve * 	SdaiB_spline_curveH;
extern EntityDescriptor 	*config_control_designe_b_spline_curve;

class SdaiRational_b_spline_curve;
typedef SdaiRational_b_spline_curve * 	SdaiRational_b_spline_curveH;
extern EntityDescriptor 	*config_control_designe_rational_b_spline_curve;

class SdaiAction_request_assignment;
typedef SdaiAction_request_assignment * 	SdaiAction_request_assignmentH;
extern EntityDescriptor 	*config_control_designe_action_request_assignment;

class SdaiTopological_representation_item;
typedef SdaiTopological_representation_item * 	SdaiTopological_representation_itemH;
extern EntityDescriptor 	*config_control_designe_topological_representation_item;

class SdaiFace_bound;
typedef SdaiFace_bound * 	SdaiFace_boundH;
extern EntityDescriptor 	*config_control_designe_face_bound;

class SdaiLength_measure_with_unit;
typedef SdaiLength_measure_with_unit * 	SdaiLength_measure_with_unitH;
extern EntityDescriptor 	*config_control_designe_length_measure_with_unit;

class SdaiDated_effectivity;
typedef SdaiDated_effectivity * 	SdaiDated_effectivityH;
extern EntityDescriptor 	*config_control_designe_dated_effectivity;

class SdaiDirection;
typedef SdaiDirection * 	SdaiDirectionH;
extern EntityDescriptor 	*config_control_designe_direction;

class SdaiNext_assembly_usage_occurrence;
typedef SdaiNext_assembly_usage_occurrence * 	SdaiNext_assembly_usage_occurrenceH;
extern EntityDescriptor 	*config_control_designe_next_assembly_usage_occurrence;

class SdaiEdge;
typedef SdaiEdge * 	SdaiEdgeH;
extern EntityDescriptor 	*config_control_designe_edge;

class SdaiOriented_edge;
typedef SdaiOriented_edge * 	SdaiOriented_edgeH;
extern EntityDescriptor 	*config_control_designe_oriented_edge;

class SdaiPerson;
typedef SdaiPerson * 	SdaiPersonH;
extern EntityDescriptor 	*config_control_designe_person;

class SdaiDocument;
typedef SdaiDocument * 	SdaiDocumentH;
extern EntityDescriptor 	*config_control_designe_document;

class SdaiDocument_with_class;
typedef SdaiDocument_with_class * 	SdaiDocument_with_classH;
extern EntityDescriptor 	*config_control_designe_document_with_class;

class SdaiConversion_based_unit;
typedef SdaiConversion_based_unit * 	SdaiConversion_based_unitH;
extern EntityDescriptor 	*config_control_designe_conversion_based_unit;

class SdaiPoint;
typedef SdaiPoint * 	SdaiPointH;
extern EntityDescriptor 	*config_control_designe_point;

class SdaiPoint_on_surface;
typedef SdaiPoint_on_surface * 	SdaiPoint_on_surfaceH;
extern EntityDescriptor 	*config_control_designe_point_on_surface;

class SdaiProduct_definition_formation;
typedef SdaiProduct_definition_formation * 	SdaiProduct_definition_formationH;
extern EntityDescriptor 	*config_control_designe_product_definition_formation;

class SdaiPerson_and_organization_assignment;
typedef SdaiPerson_and_organization_assignment * 	SdaiPerson_and_organization_assignmentH;
extern EntityDescriptor 	*config_control_designe_person_and_organization_assignment;

class SdaiCc_design_person_and_organization_assignment;
typedef SdaiCc_design_person_and_organization_assignment * 	SdaiCc_design_person_and_organization_assignmentH;
extern EntityDescriptor 	*config_control_designe_cc_design_person_and_organization_assignment;

class SdaiOffset_curve_3d;
typedef SdaiOffset_curve_3d * 	SdaiOffset_curve_3dH;
extern EntityDescriptor 	*config_control_designe_offset_curve_3d;

class SdaiApproval;
typedef SdaiApproval * 	SdaiApprovalH;
extern EntityDescriptor 	*config_control_designe_approval;

class SdaiComposite_curve;
typedef SdaiComposite_curve * 	SdaiComposite_curveH;
extern EntityDescriptor 	*config_control_designe_composite_curve;

class SdaiComposite_curve_on_surface;
typedef SdaiComposite_curve_on_surface * 	SdaiComposite_curve_on_surfaceH;
extern EntityDescriptor 	*config_control_designe_composite_curve_on_surface;

class SdaiBoundary_curve;
typedef SdaiBoundary_curve * 	SdaiBoundary_curveH;
extern EntityDescriptor 	*config_control_designe_boundary_curve;

class SdaiRepresentation_context;
typedef SdaiRepresentation_context * 	SdaiRepresentation_contextH;
extern EntityDescriptor 	*config_control_designe_representation_context;

class SdaiGeometric_representation_context;
typedef SdaiGeometric_representation_context * 	SdaiGeometric_representation_contextH;
extern EntityDescriptor 	*config_control_designe_geometric_representation_context;

class SdaiAction_status;
typedef SdaiAction_status * 	SdaiAction_statusH;
extern EntityDescriptor 	*config_control_designe_action_status;

class SdaiApplication_context;
typedef SdaiApplication_context * 	SdaiApplication_contextH;
extern EntityDescriptor 	*config_control_designe_application_context;

class SdaiChange_request;
typedef SdaiChange_request * 	SdaiChange_requestH;
extern EntityDescriptor 	*config_control_designe_change_request;

class SdaiDate_and_time;
typedef SdaiDate_and_time * 	SdaiDate_and_timeH;
extern EntityDescriptor 	*config_control_designe_date_and_time;

class SdaiApproval_date_time;
typedef SdaiApproval_date_time * 	SdaiApproval_date_timeH;
extern EntityDescriptor 	*config_control_designe_approval_date_time;

class SdaiApproval_role;
typedef SdaiApproval_role * 	SdaiApproval_roleH;
extern EntityDescriptor 	*config_control_designe_approval_role;

class SdaiApplication_context_element;
typedef SdaiApplication_context_element * 	SdaiApplication_context_elementH;
extern EntityDescriptor 	*config_control_designe_application_context_element;

class SdaiProduct_context;
typedef SdaiProduct_context * 	SdaiProduct_contextH;
extern EntityDescriptor 	*config_control_designe_product_context;

class SdaiElementary_surface;
typedef SdaiElementary_surface * 	SdaiElementary_surfaceH;
extern EntityDescriptor 	*config_control_designe_elementary_surface;

class SdaiSpherical_surface;
typedef SdaiSpherical_surface * 	SdaiSpherical_surfaceH;
extern EntityDescriptor 	*config_control_designe_spherical_surface;

class SdaiApplication_protocol_definition;
typedef SdaiApplication_protocol_definition * 	SdaiApplication_protocol_definitionH;
extern EntityDescriptor 	*config_control_designe_application_protocol_definition;

class SdaiSpecified_higher_usage_occurrence;
typedef SdaiSpecified_higher_usage_occurrence * 	SdaiSpecified_higher_usage_occurrenceH;
extern EntityDescriptor 	*config_control_designe_specified_higher_usage_occurrence;

class SdaiProduct_definition_formation_with_specified_source;
typedef SdaiProduct_definition_formation_with_specified_source * 	SdaiProduct_definition_formation_with_specified_sourceH;
extern EntityDescriptor 	*config_control_designe_product_definition_formation_with_specified_source;

class SdaiAction_request_solution;
typedef SdaiAction_request_solution * 	SdaiAction_request_solutionH;
extern EntityDescriptor 	*config_control_designe_action_request_solution;

class SdaiUncertainty_measure_with_unit;
typedef SdaiUncertainty_measure_with_unit * 	SdaiUncertainty_measure_with_unitH;
extern EntityDescriptor 	*config_control_designe_uncertainty_measure_with_unit;

class SdaiEdge_based_wireframe_model;
typedef SdaiEdge_based_wireframe_model * 	SdaiEdge_based_wireframe_modelH;
extern EntityDescriptor 	*config_control_designe_edge_based_wireframe_model;

class SdaiPath;
typedef SdaiPath * 	SdaiPathH;
extern EntityDescriptor 	*config_control_designe_path;

class SdaiConnected_face_set;
typedef SdaiConnected_face_set * 	SdaiConnected_face_setH;
extern EntityDescriptor 	*config_control_designe_connected_face_set;

class SdaiOpen_shell;
typedef SdaiOpen_shell * 	SdaiOpen_shellH;
extern EntityDescriptor 	*config_control_designe_open_shell;

class SdaiOriented_open_shell;
typedef SdaiOriented_open_shell * 	SdaiOriented_open_shellH;
extern EntityDescriptor 	*config_control_designe_oriented_open_shell;

class SdaiSolid_angle_unit;
typedef SdaiSolid_angle_unit * 	SdaiSolid_angle_unitH;
extern EntityDescriptor 	*config_control_designe_solid_angle_unit;

class SdaiCoordinated_universal_time_offset;
typedef SdaiCoordinated_universal_time_offset * 	SdaiCoordinated_universal_time_offsetH;
extern EntityDescriptor 	*config_control_designe_coordinated_universal_time_offset;

class SdaiCurve_replica;
typedef SdaiCurve_replica * 	SdaiCurve_replicaH;
extern EntityDescriptor 	*config_control_designe_curve_replica;

class SdaiQuasi_uniform_surface;
typedef SdaiQuasi_uniform_surface * 	SdaiQuasi_uniform_surfaceH;
extern EntityDescriptor 	*config_control_designe_quasi_uniform_surface;

class SdaiSurface_curve;
typedef SdaiSurface_curve * 	SdaiSurface_curveH;
extern EntityDescriptor 	*config_control_designe_surface_curve;

class SdaiAction_request_status;
typedef SdaiAction_request_status * 	SdaiAction_request_statusH;
extern EntityDescriptor 	*config_control_designe_action_request_status;

class SdaiComposite_curve_segment;
typedef SdaiComposite_curve_segment * 	SdaiComposite_curve_segmentH;
extern EntityDescriptor 	*config_control_designe_composite_curve_segment;

class SdaiReparametrised_composite_curve_segment;
typedef SdaiReparametrised_composite_curve_segment * 	SdaiReparametrised_composite_curve_segmentH;
extern EntityDescriptor 	*config_control_designe_reparametrised_composite_curve_segment;

class SdaiRepresentation_relationship;
typedef SdaiRepresentation_relationship * 	SdaiRepresentation_relationshipH;
extern EntityDescriptor 	*config_control_designe_representation_relationship;

class SdaiRepresentation_relationship_with_transformation;
typedef SdaiRepresentation_relationship_with_transformation * 	SdaiRepresentation_relationship_with_transformationH;
extern EntityDescriptor 	*config_control_designe_representation_relationship_with_transformation;

class SdaiPerson_and_organization_role;
typedef SdaiPerson_and_organization_role * 	SdaiPerson_and_organization_roleH;
extern EntityDescriptor 	*config_control_designe_person_and_organization_role;

class SdaiQuasi_uniform_curve;
typedef SdaiQuasi_uniform_curve * 	SdaiQuasi_uniform_curveH;
extern EntityDescriptor 	*config_control_designe_quasi_uniform_curve;

class SdaiSwept_surface;
typedef SdaiSwept_surface * 	SdaiSwept_surfaceH;
extern EntityDescriptor 	*config_control_designe_swept_surface;

class SdaiProperty_definition;
typedef SdaiProperty_definition * 	SdaiProperty_definitionH;
extern EntityDescriptor 	*config_control_designe_property_definition;

class SdaiGlobal_uncertainty_assigned_context;
typedef SdaiGlobal_uncertainty_assigned_context * 	SdaiGlobal_uncertainty_assigned_contextH;
extern EntityDescriptor 	*config_control_designe_global_uncertainty_assigned_context;

class SdaiOrganization_relationship;
typedef SdaiOrganization_relationship * 	SdaiOrganization_relationshipH;
extern EntityDescriptor 	*config_control_designe_organization_relationship;

class SdaiParabola;
typedef SdaiParabola * 	SdaiParabolaH;
extern EntityDescriptor 	*config_control_designe_parabola;

class SdaiRectangular_composite_surface;
typedef SdaiRectangular_composite_surface * 	SdaiRectangular_composite_surfaceH;
extern EntityDescriptor 	*config_control_designe_rectangular_composite_surface;

class SdaiLot_effectivity;
typedef SdaiLot_effectivity * 	SdaiLot_effectivityH;
extern EntityDescriptor 	*config_control_designe_lot_effectivity;

class SdaiSurface_of_linear_extrusion;
typedef SdaiSurface_of_linear_extrusion * 	SdaiSurface_of_linear_extrusionH;
extern EntityDescriptor 	*config_control_designe_surface_of_linear_extrusion;

class SdaiShell_based_surface_model;
typedef SdaiShell_based_surface_model * 	SdaiShell_based_surface_modelH;
extern EntityDescriptor 	*config_control_designe_shell_based_surface_model;

class SdaiUniform_curve;
typedef SdaiUniform_curve * 	SdaiUniform_curveH;
extern EntityDescriptor 	*config_control_designe_uniform_curve;

class SdaiBezier_curve;
typedef SdaiBezier_curve * 	SdaiBezier_curveH;
extern EntityDescriptor 	*config_control_designe_bezier_curve;

class SdaiLoop;
typedef SdaiLoop * 	SdaiLoopH;
extern EntityDescriptor 	*config_control_designe_loop;

class SdaiEdge_loop;
typedef SdaiEdge_loop * 	SdaiEdge_loopH;
extern EntityDescriptor 	*config_control_designe_edge_loop;

class SdaiDate;
typedef SdaiDate * 	SdaiDateH;
extern EntityDescriptor 	*config_control_designe_date;

class SdaiCalendar_date;
typedef SdaiCalendar_date * 	SdaiCalendar_dateH;
extern EntityDescriptor 	*config_control_designe_calendar_date;

class SdaiToroidal_surface;
typedef SdaiToroidal_surface * 	SdaiToroidal_surfaceH;
extern EntityDescriptor 	*config_control_designe_toroidal_surface;

class SdaiPromissory_usage_occurrence;
typedef SdaiPromissory_usage_occurrence * 	SdaiPromissory_usage_occurrenceH;
extern EntityDescriptor 	*config_control_designe_promissory_usage_occurrence;

class SdaiApproval_assignment;
typedef SdaiApproval_assignment * 	SdaiApproval_assignmentH;
extern EntityDescriptor 	*config_control_designe_approval_assignment;

class SdaiConfiguration_item;
typedef SdaiConfiguration_item * 	SdaiConfiguration_itemH;
extern EntityDescriptor 	*config_control_designe_configuration_item;

class SdaiContract_assignment;
typedef SdaiContract_assignment * 	SdaiContract_assignmentH;
extern EntityDescriptor 	*config_control_designe_contract_assignment;

class SdaiVector;
typedef SdaiVector * 	SdaiVectorH;
extern EntityDescriptor 	*config_control_designe_vector;

class SdaiIntersection_curve;
typedef SdaiIntersection_curve * 	SdaiIntersection_curveH;
extern EntityDescriptor 	*config_control_designe_intersection_curve;

class SdaiTrimmed_curve;
typedef SdaiTrimmed_curve * 	SdaiTrimmed_curveH;
extern EntityDescriptor 	*config_control_designe_trimmed_curve;

class SdaiProduct_definition_context;
typedef SdaiProduct_definition_context * 	SdaiProduct_definition_contextH;
extern EntityDescriptor 	*config_control_designe_product_definition_context;

class SdaiItem_defined_transformation;
typedef SdaiItem_defined_transformation * 	SdaiItem_defined_transformationH;
extern EntityDescriptor 	*config_control_designe_item_defined_transformation;

class SdaiAction_method;
typedef SdaiAction_method * 	SdaiAction_methodH;
extern EntityDescriptor 	*config_control_designe_action_method;

class SdaiProduct_category_relationship;
typedef SdaiProduct_category_relationship * 	SdaiProduct_category_relationshipH;
extern EntityDescriptor 	*config_control_designe_product_category_relationship;

class SdaiPlane_angle_measure_with_unit;
typedef SdaiPlane_angle_measure_with_unit * 	SdaiPlane_angle_measure_with_unitH;
extern EntityDescriptor 	*config_control_designe_plane_angle_measure_with_unit;

class SdaiVertex;
typedef SdaiVertex * 	SdaiVertexH;
extern EntityDescriptor 	*config_control_designe_vertex;

class SdaiRepresentation_map;
typedef SdaiRepresentation_map * 	SdaiRepresentation_mapH;
extern EntityDescriptor 	*config_control_designe_representation_map;

class SdaiProduct_definition_effectivity;
typedef SdaiProduct_definition_effectivity * 	SdaiProduct_definition_effectivityH;
extern EntityDescriptor 	*config_control_designe_product_definition_effectivity;

class SdaiConfiguration_effectivity;
typedef SdaiConfiguration_effectivity * 	SdaiConfiguration_effectivityH;
extern EntityDescriptor 	*config_control_designe_configuration_effectivity;

class SdaiEllipse;
typedef SdaiEllipse * 	SdaiEllipseH;
extern EntityDescriptor 	*config_control_designe_ellipse;

class SdaiContext_dependent_unit;
typedef SdaiContext_dependent_unit * 	SdaiContext_dependent_unitH;
extern EntityDescriptor 	*config_control_designe_context_dependent_unit;

class SdaiAlternate_product_relationship;
typedef SdaiAlternate_product_relationship * 	SdaiAlternate_product_relationshipH;
extern EntityDescriptor 	*config_control_designe_alternate_product_relationship;

class SdaiDocument_type;
typedef SdaiDocument_type * 	SdaiDocument_typeH;
extern EntityDescriptor 	*config_control_designe_document_type;

class SdaiDocument_reference;
typedef SdaiDocument_reference * 	SdaiDocument_referenceH;
extern EntityDescriptor 	*config_control_designe_document_reference;

class SdaiMechanical_context;
typedef SdaiMechanical_context * 	SdaiMechanical_contextH;
extern EntityDescriptor 	*config_control_designe_mechanical_context;

class SdaiShell_based_wireframe_model;
typedef SdaiShell_based_wireframe_model * 	SdaiShell_based_wireframe_modelH;
extern EntityDescriptor 	*config_control_designe_shell_based_wireframe_model;

class SdaiContract;
typedef SdaiContract * 	SdaiContractH;
extern EntityDescriptor 	*config_control_designe_contract;

class SdaiDimensional_exponents;
typedef SdaiDimensional_exponents * 	SdaiDimensional_exponentsH;
extern EntityDescriptor 	*config_control_designe_dimensional_exponents;

class SdaiStart_request;
typedef SdaiStart_request * 	SdaiStart_requestH;
extern EntityDescriptor 	*config_control_designe_start_request;

class SdaiCc_design_specification_reference;
typedef SdaiCc_design_specification_reference * 	SdaiCc_design_specification_referenceH;
extern EntityDescriptor 	*config_control_designe_cc_design_specification_reference;

class SdaiSupplied_part_relationship;
typedef SdaiSupplied_part_relationship * 	SdaiSupplied_part_relationshipH;
extern EntityDescriptor 	*config_control_designe_supplied_part_relationship;

class SdaiContext_dependent_shape_representation;
typedef SdaiContext_dependent_shape_representation * 	SdaiContext_dependent_shape_representationH;
extern EntityDescriptor 	*config_control_designe_context_dependent_shape_representation;

class SdaiOrdinal_date;
typedef SdaiOrdinal_date * 	SdaiOrdinal_dateH;
extern EntityDescriptor 	*config_control_designe_ordinal_date;

class SdaiFace_outer_bound;
typedef SdaiFace_outer_bound * 	SdaiFace_outer_boundH;
extern EntityDescriptor 	*config_control_designe_face_outer_bound;

class SdaiMass_measure_with_unit;
typedef SdaiMass_measure_with_unit * 	SdaiMass_measure_with_unitH;
extern EntityDescriptor 	*config_control_designe_mass_measure_with_unit;

class SdaiBrep_with_voids;
typedef SdaiBrep_with_voids * 	SdaiBrep_with_voidsH;
extern EntityDescriptor 	*config_control_designe_brep_with_voids;

class SdaiWeek_of_year_and_day_date;
typedef SdaiWeek_of_year_and_day_date * 	SdaiWeek_of_year_and_day_dateH;
extern EntityDescriptor 	*config_control_designe_week_of_year_and_day_date;

class SdaiPoint_on_curve;
typedef SdaiPoint_on_curve * 	SdaiPoint_on_curveH;
extern EntityDescriptor 	*config_control_designe_point_on_curve;

class SdaiShell_based_wireframe_shape_representation;
typedef SdaiShell_based_wireframe_shape_representation * 	SdaiShell_based_wireframe_shape_representationH;
extern EntityDescriptor 	*config_control_designe_shell_based_wireframe_shape_representation;

class SdaiFace;
typedef SdaiFace * 	SdaiFaceH;
extern EntityDescriptor 	*config_control_designe_face;

class SdaiFace_surface;
typedef SdaiFace_surface * 	SdaiFace_surfaceH;
extern EntityDescriptor 	*config_control_designe_face_surface;

class SdaiOriented_face;
typedef SdaiOriented_face * 	SdaiOriented_faceH;
extern EntityDescriptor 	*config_control_designe_oriented_face;

class SdaiSurface_of_revolution;
typedef SdaiSurface_of_revolution * 	SdaiSurface_of_revolutionH;
extern EntityDescriptor 	*config_control_designe_surface_of_revolution;

class SdaiAdvanced_brep_shape_representation;
typedef SdaiAdvanced_brep_shape_representation * 	SdaiAdvanced_brep_shape_representationH;
extern EntityDescriptor 	*config_control_designe_advanced_brep_shape_representation;

class SdaiEdge_curve;
typedef SdaiEdge_curve * 	SdaiEdge_curveH;
extern EntityDescriptor 	*config_control_designe_edge_curve;

class SdaiPoint_replica;
typedef SdaiPoint_replica * 	SdaiPoint_replicaH;
extern EntityDescriptor 	*config_control_designe_point_replica;

class SdaiProduct;
typedef SdaiProduct * 	SdaiProductH;
extern EntityDescriptor 	*config_control_designe_product;

class SdaiShape_aspect_relationship;
typedef SdaiShape_aspect_relationship * 	SdaiShape_aspect_relationshipH;
extern EntityDescriptor 	*config_control_designe_shape_aspect_relationship;

class SdaiRectangular_trimmed_surface;
typedef SdaiRectangular_trimmed_surface * 	SdaiRectangular_trimmed_surfaceH;
extern EntityDescriptor 	*config_control_designe_rectangular_trimmed_surface;

class SdaiPlane;
typedef SdaiPlane * 	SdaiPlaneH;
extern EntityDescriptor 	*config_control_designe_plane;

class SdaiAction_assignment;
typedef SdaiAction_assignment * 	SdaiAction_assignmentH;
extern EntityDescriptor 	*config_control_designe_action_assignment;

class SdaiChange;
typedef SdaiChange * 	SdaiChangeH;
extern EntityDescriptor 	*config_control_designe_change;

class SdaiCircle;
typedef SdaiCircle * 	SdaiCircleH;
extern EntityDescriptor 	*config_control_designe_circle;

class SdaiLine;
typedef SdaiLine * 	SdaiLineH;
extern EntityDescriptor 	*config_control_designe_line;

class SdaiProperty_definition_representation;
typedef SdaiProperty_definition_representation * 	SdaiProperty_definition_representationH;
extern EntityDescriptor 	*config_control_designe_property_definition_representation;

class SdaiGeometric_set;
typedef SdaiGeometric_set * 	SdaiGeometric_setH;
extern EntityDescriptor 	*config_control_designe_geometric_set;

class SdaiGeometric_curve_set;
typedef SdaiGeometric_curve_set * 	SdaiGeometric_curve_setH;
extern EntityDescriptor 	*config_control_designe_geometric_curve_set;

class SdaiPersonal_address;
typedef SdaiPersonal_address * 	SdaiPersonal_addressH;
extern EntityDescriptor 	*config_control_designe_personal_address;

class SdaiDocument_relationship;
typedef SdaiDocument_relationship * 	SdaiDocument_relationshipH;
extern EntityDescriptor 	*config_control_designe_document_relationship;

class SdaiPcurve;
typedef SdaiPcurve * 	SdaiPcurveH;
extern EntityDescriptor 	*config_control_designe_pcurve;

class SdaiOuter_boundary_curve;
typedef SdaiOuter_boundary_curve * 	SdaiOuter_boundary_curveH;
extern EntityDescriptor 	*config_control_designe_outer_boundary_curve;

class SdaiShape_representation_relationship;
typedef SdaiShape_representation_relationship * 	SdaiShape_representation_relationshipH;
extern EntityDescriptor 	*config_control_designe_shape_representation_relationship;

class SdaiAssembly_component_usage_substitute;
typedef SdaiAssembly_component_usage_substitute * 	SdaiAssembly_component_usage_substituteH;
extern EntityDescriptor 	*config_control_designe_assembly_component_usage_substitute;

class SdaiDegenerate_pcurve;
typedef SdaiDegenerate_pcurve * 	SdaiDegenerate_pcurveH;
extern EntityDescriptor 	*config_control_designe_degenerate_pcurve;

class SdaiEvaluated_degenerate_pcurve;
typedef SdaiEvaluated_degenerate_pcurve * 	SdaiEvaluated_degenerate_pcurveH;
extern EntityDescriptor 	*config_control_designe_evaluated_degenerate_pcurve;

class SdaiSolid_angle_measure_with_unit;
typedef SdaiSolid_angle_measure_with_unit * 	SdaiSolid_angle_measure_with_unitH;
extern EntityDescriptor 	*config_control_designe_solid_angle_measure_with_unit;

class SdaiConnected_edge_set;
typedef SdaiConnected_edge_set * 	SdaiConnected_edge_setH;
extern EntityDescriptor 	*config_control_designe_connected_edge_set;

class SdaiAction;
typedef SdaiAction * 	SdaiActionH;
extern EntityDescriptor 	*config_control_designe_action;

class SdaiExecuted_action;
typedef SdaiExecuted_action * 	SdaiExecuted_actionH;
extern EntityDescriptor 	*config_control_designe_executed_action;

class SdaiDirected_action;
typedef SdaiDirected_action * 	SdaiDirected_actionH;
extern EntityDescriptor 	*config_control_designe_directed_action;

class SdaiOrganizational_project;
typedef SdaiOrganizational_project * 	SdaiOrganizational_projectH;
extern EntityDescriptor 	*config_control_designe_organizational_project;

class SdaiDate_time_role;
typedef SdaiDate_time_role * 	SdaiDate_time_roleH;
extern EntityDescriptor 	*config_control_designe_date_time_role;

class SdaiCurve_bounded_surface;
typedef SdaiCurve_bounded_surface * 	SdaiCurve_bounded_surfaceH;
extern EntityDescriptor 	*config_control_designe_curve_bounded_surface;

class SdaiClosed_shell;
typedef SdaiClosed_shell * 	SdaiClosed_shellH;
extern EntityDescriptor 	*config_control_designe_closed_shell;

class SdaiDesign_make_from_relationship;
typedef SdaiDesign_make_from_relationship * 	SdaiDesign_make_from_relationshipH;
extern EntityDescriptor 	*config_control_designe_design_make_from_relationship;

class SdaiDefinitional_representation;
typedef SdaiDefinitional_representation * 	SdaiDefinitional_representationH;
extern EntityDescriptor 	*config_control_designe_definitional_representation;

class SdaiProduct_definition_shape;
typedef SdaiProduct_definition_shape * 	SdaiProduct_definition_shapeH;
extern EntityDescriptor 	*config_control_designe_product_definition_shape;

class SdaiSi_unit;
typedef SdaiSi_unit * 	SdaiSi_unitH;
extern EntityDescriptor 	*config_control_designe_si_unit;

class SdaiBezier_surface;
typedef SdaiBezier_surface * 	SdaiBezier_surfaceH;
extern EntityDescriptor 	*config_control_designe_bezier_surface;

class SdaiCertification_assignment;
typedef SdaiCertification_assignment * 	SdaiCertification_assignmentH;
extern EntityDescriptor 	*config_control_designe_certification_assignment;

class SdaiStart_work;
typedef SdaiStart_work * 	SdaiStart_workH;
extern EntityDescriptor 	*config_control_designe_start_work;

class SdaiContract_type;
typedef SdaiContract_type * 	SdaiContract_typeH;
extern EntityDescriptor 	*config_control_designe_contract_type;

class SdaiB_spline_curve_with_knots;
typedef SdaiB_spline_curve_with_knots * 	SdaiB_spline_curve_with_knotsH;
extern EntityDescriptor 	*config_control_designe_b_spline_curve_with_knots;

class SdaiCc_design_approval;
typedef SdaiCc_design_approval * 	SdaiCc_design_approvalH;
extern EntityDescriptor 	*config_control_designe_cc_design_approval;

class SdaiEdge_based_wireframe_shape_representation;
typedef SdaiEdge_based_wireframe_shape_representation * 	SdaiEdge_based_wireframe_shape_representationH;
extern EntityDescriptor 	*config_control_designe_edge_based_wireframe_shape_representation;

class SdaiGeometrically_bounded_wireframe_shape_representation;
typedef SdaiGeometrically_bounded_wireframe_shape_representation * 	SdaiGeometrically_bounded_wireframe_shape_representationH;
extern EntityDescriptor 	*config_control_designe_geometrically_bounded_wireframe_shape_representation;

class SdaiProduct_concept;
typedef SdaiProduct_concept * 	SdaiProduct_conceptH;
extern EntityDescriptor 	*config_control_designe_product_concept;

class SdaiCc_design_contract;
typedef SdaiCc_design_contract * 	SdaiCc_design_contractH;
extern EntityDescriptor 	*config_control_designe_cc_design_contract;

class SdaiSeam_curve;
typedef SdaiSeam_curve * 	SdaiSeam_curveH;
extern EntityDescriptor 	*config_control_designe_seam_curve;

class SdaiAxis2_placement_3d;
typedef SdaiAxis2_placement_3d * 	SdaiAxis2_placement_3dH;
extern EntityDescriptor 	*config_control_designe_axis2_placement_3d;

class SdaiRational_b_spline_surface;
typedef SdaiRational_b_spline_surface * 	SdaiRational_b_spline_surfaceH;
extern EntityDescriptor 	*config_control_designe_rational_b_spline_surface;

class SdaiConfiguration_design;
typedef SdaiConfiguration_design * 	SdaiConfiguration_designH;
extern EntityDescriptor 	*config_control_designe_configuration_design;

class SdaiDesign_context;
typedef SdaiDesign_context * 	SdaiDesign_contextH;
extern EntityDescriptor 	*config_control_designe_design_context;

class SdaiProduct_definition;
typedef SdaiProduct_definition * 	SdaiProduct_definitionH;
extern EntityDescriptor 	*config_control_designe_product_definition;

class SdaiProduct_definition_with_associated_documents;
typedef SdaiProduct_definition_with_associated_documents * 	SdaiProduct_definition_with_associated_documentsH;
extern EntityDescriptor 	*config_control_designe_product_definition_with_associated_documents;

class SdaiOrganization;
typedef SdaiOrganization * 	SdaiOrganizationH;
extern EntityDescriptor 	*config_control_designe_organization;

class SdaiCc_design_certification;
typedef SdaiCc_design_certification * 	SdaiCc_design_certificationH;
extern EntityDescriptor 	*config_control_designe_cc_design_certification;

class SdaiB_spline_surface_with_knots;
typedef SdaiB_spline_surface_with_knots * 	SdaiB_spline_surface_with_knotsH;
extern EntityDescriptor 	*config_control_designe_b_spline_surface_with_knots;

class SdaiCertification_type;
typedef SdaiCertification_type * 	SdaiCertification_typeH;
extern EntityDescriptor 	*config_control_designe_certification_type;

class SdaiOriented_path;
typedef SdaiOriented_path * 	SdaiOriented_pathH;
extern EntityDescriptor 	*config_control_designe_oriented_path;

class SdaiSecurity_classification;
typedef SdaiSecurity_classification * 	SdaiSecurity_classificationH;
extern EntityDescriptor 	*config_control_designe_security_classification;

class SdaiVertex_loop;
typedef SdaiVertex_loop * 	SdaiVertex_loopH;
extern EntityDescriptor 	*config_control_designe_vertex_loop;

class SdaiApproval_status;
typedef SdaiApproval_status * 	SdaiApproval_statusH;
extern EntityDescriptor 	*config_control_designe_approval_status;

class SdaiCartesian_point;
typedef SdaiCartesian_point * 	SdaiCartesian_pointH;
extern EntityDescriptor 	*config_control_designe_cartesian_point;

class SdaiDate_and_time_assignment;
typedef SdaiDate_and_time_assignment * 	SdaiDate_and_time_assignmentH;
extern EntityDescriptor 	*config_control_designe_date_and_time_assignment;

class SdaiParametric_representation_context;
typedef SdaiParametric_representation_context * 	SdaiParametric_representation_contextH;
extern EntityDescriptor 	*config_control_designe_parametric_representation_context;

class SdaiProduct_concept_context;
typedef SdaiProduct_concept_context * 	SdaiProduct_concept_contextH;
extern EntityDescriptor 	*config_control_designe_product_concept_context;

class SdaiCartesian_transformation_operator_2d;
typedef SdaiCartesian_transformation_operator_2d * 	SdaiCartesian_transformation_operator_2dH;
extern EntityDescriptor 	*config_control_designe_cartesian_transformation_operator_2d;

class SdaiSurface_patch;
typedef SdaiSurface_patch * 	SdaiSurface_patchH;
extern EntityDescriptor 	*config_control_designe_surface_patch;

class SdaiLength_unit;
typedef SdaiLength_unit * 	SdaiLength_unitH;
extern EntityDescriptor 	*config_control_designe_length_unit;

class SdaiShape_aspect;
typedef SdaiShape_aspect * 	SdaiShape_aspectH;
extern EntityDescriptor 	*config_control_designe_shape_aspect;

class SdaiVolume_measure_with_unit;
typedef SdaiVolume_measure_with_unit * 	SdaiVolume_measure_with_unitH;
extern EntityDescriptor 	*config_control_designe_volume_measure_with_unit;

class SdaiAdvanced_face;
typedef SdaiAdvanced_face * 	SdaiAdvanced_faceH;
extern EntityDescriptor 	*config_control_designe_advanced_face;

class SdaiSecurity_classification_level;
typedef SdaiSecurity_classification_level * 	SdaiSecurity_classification_levelH;
extern EntityDescriptor 	*config_control_designe_security_classification_level;

class SdaiApproval_relationship;
typedef SdaiApproval_relationship * 	SdaiApproval_relationshipH;
extern EntityDescriptor 	*config_control_designe_approval_relationship;

class SdaiPolyline;
typedef SdaiPolyline * 	SdaiPolylineH;
extern EntityDescriptor 	*config_control_designe_polyline;

class SdaiApproval_person_organization;
typedef SdaiApproval_person_organization * 	SdaiApproval_person_organizationH;
extern EntityDescriptor 	*config_control_designe_approval_person_organization;

class SdaiSurface_replica;
typedef SdaiSurface_replica * 	SdaiSurface_replicaH;
extern EntityDescriptor 	*config_control_designe_surface_replica;

class SdaiSecurity_classification_assignment;
typedef SdaiSecurity_classification_assignment * 	SdaiSecurity_classification_assignmentH;
extern EntityDescriptor 	*config_control_designe_security_classification_assignment;

class SdaiCc_design_security_classification;
typedef SdaiCc_design_security_classification * 	SdaiCc_design_security_classificationH;
extern EntityDescriptor 	*config_control_designe_cc_design_security_classification;

class SdaiFaceted_brep_shape_representation;
typedef SdaiFaceted_brep_shape_representation * 	SdaiFaceted_brep_shape_representationH;
extern EntityDescriptor 	*config_control_designe_faceted_brep_shape_representation;

class SdaiDocument_usage_constraint;
typedef SdaiDocument_usage_constraint * 	SdaiDocument_usage_constraintH;
extern EntityDescriptor 	*config_control_designe_document_usage_constraint;

class SdaiVertex_point;
typedef SdaiVertex_point * 	SdaiVertex_pointH;
extern EntityDescriptor 	*config_control_designe_vertex_point;

class SdaiCc_design_date_and_time_assignment;
typedef SdaiCc_design_date_and_time_assignment * 	SdaiCc_design_date_and_time_assignmentH;
extern EntityDescriptor 	*config_control_designe_cc_design_date_and_time_assignment;

class SdaiOriented_closed_shell;
typedef SdaiOriented_closed_shell * 	SdaiOriented_closed_shellH;
extern EntityDescriptor 	*config_control_designe_oriented_closed_shell;

class SdaiPerson_and_organization;
typedef SdaiPerson_and_organization * 	SdaiPerson_and_organizationH;
extern EntityDescriptor 	*config_control_designe_person_and_organization;

class SdaiCylindrical_surface;
typedef SdaiCylindrical_surface * 	SdaiCylindrical_surfaceH;
extern EntityDescriptor 	*config_control_designe_cylindrical_surface;

class SdaiLocal_time;
typedef SdaiLocal_time * 	SdaiLocal_timeH;
extern EntityDescriptor 	*config_control_designe_local_time;

class SdaiMass_unit;
typedef SdaiMass_unit * 	SdaiMass_unitH;
extern EntityDescriptor 	*config_control_designe_mass_unit;

class SdaiVertex_shell;
typedef SdaiVertex_shell * 	SdaiVertex_shellH;
extern EntityDescriptor 	*config_control_designe_vertex_shell;

class SdaiPoly_loop;
typedef SdaiPoly_loop * 	SdaiPoly_loopH;
extern EntityDescriptor 	*config_control_designe_poly_loop;

class SdaiWire_shell;
typedef SdaiWire_shell * 	SdaiWire_shellH;
extern EntityDescriptor 	*config_control_designe_wire_shell;

class SdaiArea_unit;
typedef SdaiArea_unit * 	SdaiArea_unitH;
extern EntityDescriptor 	*config_control_designe_area_unit;

class SdaiMapped_item;
typedef SdaiMapped_item * 	SdaiMapped_itemH;
extern EntityDescriptor 	*config_control_designe_mapped_item;

class SdaiOffset_curve_2d;
typedef SdaiOffset_curve_2d * 	SdaiOffset_curve_2dH;
extern EntityDescriptor 	*config_control_designe_offset_curve_2d;

class SdaiShape_definition_representation;
typedef SdaiShape_definition_representation * 	SdaiShape_definition_representationH;
extern EntityDescriptor 	*config_control_designe_shape_definition_representation;

class SdaiVolume_unit;
typedef SdaiVolume_unit * 	SdaiVolume_unitH;
extern EntityDescriptor 	*config_control_designe_volume_unit;

class SdaiConical_surface;
typedef SdaiConical_surface * 	SdaiConical_surfaceH;
extern EntityDescriptor 	*config_control_designe_conical_surface;

class SdaiGlobal_unit_assigned_context;
typedef SdaiGlobal_unit_assigned_context * 	SdaiGlobal_unit_assigned_contextH;
extern EntityDescriptor 	*config_control_designe_global_unit_assigned_context;

//	***** Describe the Other Types  	
extern SelectTypeDescriptor 	*config_control_designt_characterized_definition;
class SdaiCharacterized_definition;
typedef SdaiCharacterized_definition * SdaiCharacterized_definitionH;

class SdaiCharacterized_definitions;
typedef SdaiCharacterized_definitions * SdaiCharacterized_definitionsH;
extern TypeDescriptor 	*config_control_designt_parameter_value;
extern TypeDescriptor 	*config_control_designt_plane_angle_measure;
extern SelectTypeDescriptor 	*config_control_designt_change_request_item;
class SdaiChange_request_item;
typedef SdaiChange_request_item * SdaiChange_request_itemH;

class SdaiChange_request_items;
typedef SdaiChange_request_items * SdaiChange_request_itemsH;
extern TypeDescriptor 	*config_control_designt_text;
extern TypeDescriptor 	*config_control_designt_year_number;
extern SelectTypeDescriptor 	*config_control_designt_characterized_product_definition;
class SdaiCharacterized_product_definition;
typedef SdaiCharacterized_product_definition * SdaiCharacterized_product_definitionH;

class SdaiCharacterized_product_definitions;
typedef SdaiCharacterized_product_definitions * SdaiCharacterized_product_definitionsH;
extern SelectTypeDescriptor 	*config_control_designt_reversible_topology_item;
class SdaiReversible_topology_item;
typedef SdaiReversible_topology_item * SdaiReversible_topology_itemH;

class SdaiReversible_topology_items;
typedef SdaiReversible_topology_items * SdaiReversible_topology_itemsH;
extern SelectTypeDescriptor 	*config_control_designt_axis2_placement;
class SdaiAxis2_placement;
typedef SdaiAxis2_placement * SdaiAxis2_placementH;

class SdaiAxis2_placements;
typedef SdaiAxis2_placements * SdaiAxis2_placementsH;
extern SetTypeDescriptor 	*config_control_designt_set_of_reversible_topology_item;
STEPaggregate * create_SdaiSet_of_reversible_topology_item ();

extern TypeDescriptor 	*config_control_designt_week_in_year_number;
extern EnumTypeDescriptor 	*config_control_designt_knot_type;

//////////  ENUMERATION TYPE knot_type
enum  sdaiKnot_type  {
	knot_type_UNIFORM_KNOTS,
	knot_type_QUASI_UNIFORM_KNOTS,
	knot_type_PIECEWISE_BEZIER_KNOTS,
	knot_type_UNSPECIFIED
 } ;

class SdaiKnot_type  :  public STEPenumeration  {
  public:
	SdaiKnot_type (const char * n =0);
	SdaiKnot_type (sdaiKnot_type e) {  set_value (e);  }
	~SdaiKnot_type ()  {  }
	SdaiKnot_type& operator= (const sdaiKnot_type& e)
		{  set_value (e);  return *this;  }
	operator sdaiKnot_type () const;

	inline virtual const char * Name () const
		{  return "SdaiKnot_type" ;  }
	inline virtual int no_elements () const  {  return 4;  }
	virtual const char * element_at (int n) const;
};

inline STEPenumeration * 
create_SdaiKnot_type () { return new SdaiKnot_type ; }


class SdaiKnot_types  :  public  EnumAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new EnumNode (new SdaiKnot_type);	}
};

typedef SdaiKnot_types * SdaiKnot_typesH;

inline STEPaggregate * 
create_SdaiKnot_types () { return new SdaiKnot_types ; }

//////////  END ENUMERATION knot_type

extern SelectTypeDescriptor 	*config_control_designt_specified_item;
class SdaiSpecified_item;
typedef SdaiSpecified_item * SdaiSpecified_itemH;

class SdaiSpecified_items;
typedef SdaiSpecified_items * SdaiSpecified_itemsH;
extern TypeDescriptor 	*config_control_designt_minute_in_hour;
extern EnumTypeDescriptor 	*config_control_designt_transition_code;

//////////  ENUMERATION TYPE transition_code
enum  sdaiTransition_code  {
	transition_code_DISCONTINUOUS,
	transition_code_CONT_SAME_GRADIENT_SAME_CURVATURE,
	transition_code_CONT_SAME_GRADIENT,
	transition_code_CONTINUOUS
 } ;

class SdaiTransition_code  :  public STEPenumeration  {
  public:
	SdaiTransition_code (const char * n =0);
	SdaiTransition_code (sdaiTransition_code e) {  set_value (e);  }
	~SdaiTransition_code ()  {  }
	SdaiTransition_code& operator= (const sdaiTransition_code& e)
		{  set_value (e);  return *this;  }
	operator sdaiTransition_code () const;

	inline virtual const char * Name () const
		{  return "SdaiTransition_code" ;  }
	inline virtual int no_elements () const  {  return 4;  }
	virtual const char * element_at (int n) const;
};

inline STEPenumeration * 
create_SdaiTransition_code () { return new SdaiTransition_code ; }


class SdaiTransition_codes  :  public  EnumAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new EnumNode (new SdaiTransition_code);	}
};

typedef SdaiTransition_codes * SdaiTransition_codesH;

inline STEPaggregate * 
create_SdaiTransition_codes () { return new SdaiTransition_codes ; }

//////////  END ENUMERATION transition_code

extern TypeDescriptor 	*config_control_designt_identifier;
extern SelectTypeDescriptor 	*config_control_designt_measure_value;
class SdaiMeasure_value;
typedef SdaiMeasure_value * SdaiMeasure_valueH;

class SdaiMeasure_values;
typedef SdaiMeasure_values * SdaiMeasure_valuesH;
extern SelectTypeDescriptor 	*config_control_designt_person_organization_select;
class SdaiPerson_organization_select;
typedef SdaiPerson_organization_select * SdaiPerson_organization_selectH;

class SdaiPerson_organization_selects;
typedef SdaiPerson_organization_selects * SdaiPerson_organization_selectsH;
extern EnumTypeDescriptor 	*config_control_designt_preferred_surface_curve_representation;

//////////  ENUMERATION TYPE preferred_surface_curve_representation
enum  sdaiPreferred_surface_curve_representation  {
	preferred_surface_curve_representation_PCURVE_S2,
	preferred_surface_curve_representation_PCURVE_S1,
	preferred_surface_curve_representation_CURVE_3D
 } ;

class SdaiPreferred_surface_curve_representation  :  public STEPenumeration  {
  public:
	SdaiPreferred_surface_curve_representation (const char * n =0);
	SdaiPreferred_surface_curve_representation (sdaiPreferred_surface_curve_representation e) {  set_value (e);  }
	~SdaiPreferred_surface_curve_representation ()  {  }
	SdaiPreferred_surface_curve_representation& operator= (const sdaiPreferred_surface_curve_representation& e)
		{  set_value (e);  return *this;  }
	operator sdaiPreferred_surface_curve_representation () const;

	inline virtual const char * Name () const
		{  return "SdaiPreferred_surface_curve_representation" ;  }
	inline virtual int no_elements () const  {  return 3;  }
	virtual const char * element_at (int n) const;
};

inline STEPenumeration * 
create_SdaiPreferred_surface_curve_representation () { return new SdaiPreferred_surface_curve_representation ; }


class SdaiPreferred_surface_curve_representations  :  public  EnumAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new EnumNode (new SdaiPreferred_surface_curve_representation);	}
};

typedef SdaiPreferred_surface_curve_representations * SdaiPreferred_surface_curve_representationsH;

inline STEPaggregate * 
create_SdaiPreferred_surface_curve_representations () { return new SdaiPreferred_surface_curve_representations ; }

//////////  END ENUMERATION preferred_surface_curve_representation

extern TypeDescriptor 	*config_control_designt_dimension_count;
extern SelectTypeDescriptor 	*config_control_designt_pcurve_or_surface;
class SdaiPcurve_or_surface;
typedef SdaiPcurve_or_surface * SdaiPcurve_or_surfaceH;

class SdaiPcurve_or_surfaces;
typedef SdaiPcurve_or_surfaces * SdaiPcurve_or_surfacesH;
extern TypeDescriptor 	*config_control_designt_positive_length_measure;
extern EnumTypeDescriptor 	*config_control_designt_b_spline_curve_form;

//////////  ENUMERATION TYPE b_spline_curve_form
enum  sdaiB_spline_curve_form  {
	b_spline_curve_form_ELLIPTIC_ARC,
	b_spline_curve_form_POLYLINE_FORM,
	b_spline_curve_form_PARABOLIC_ARC,
	b_spline_curve_form_CIRCULAR_ARC,
	b_spline_curve_form_UNSPECIFIED,
	b_spline_curve_form_HYPERBOLIC_ARC
 } ;

class SdaiB_spline_curve_form  :  public STEPenumeration  {
  public:
	SdaiB_spline_curve_form (const char * n =0);
	SdaiB_spline_curve_form (sdaiB_spline_curve_form e) {  set_value (e);  }
	~SdaiB_spline_curve_form ()  {  }
	SdaiB_spline_curve_form& operator= (const sdaiB_spline_curve_form& e)
		{  set_value (e);  return *this;  }
	operator sdaiB_spline_curve_form () const;

	inline virtual const char * Name () const
		{  return "SdaiB_spline_curve_form" ;  }
	inline virtual int no_elements () const  {  return 6;  }
	virtual const char * element_at (int n) const;
};

inline STEPenumeration * 
create_SdaiB_spline_curve_form () { return new SdaiB_spline_curve_form ; }


class SdaiB_spline_curve_forms  :  public  EnumAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new EnumNode (new SdaiB_spline_curve_form);	}
};

typedef SdaiB_spline_curve_forms * SdaiB_spline_curve_formsH;

inline STEPaggregate * 
create_SdaiB_spline_curve_forms () { return new SdaiB_spline_curve_forms ; }

//////////  END ENUMERATION b_spline_curve_form

extern TypeDescriptor 	*config_control_designt_hour_in_day;
extern SelectTypeDescriptor 	*config_control_designt_classified_item;
class SdaiClassified_item;
typedef SdaiClassified_item * SdaiClassified_itemH;

class SdaiClassified_items;
typedef SdaiClassified_items * SdaiClassified_itemsH;
extern EnumTypeDescriptor 	*config_control_designt_si_unit_name;

//////////  ENUMERATION TYPE si_unit_name
enum  sdaiSi_unit_name  {
	si_unit_name_HERTZ,
	si_unit_name_DEGREE_CELSIUS,
	si_unit_name_SIEMENS,
	si_unit_name_SIEVERT,
	si_unit_name_LUX,
	si_unit_name_WATT,
	si_unit_name_OHM,
	si_unit_name_SECOND,
	si_unit_name_BECQUEREL,
	si_unit_name_PASCAL,
	si_unit_name_HENRY,
	si_unit_name_TESLA,
	si_unit_name_VOLT,
	si_unit_name_JOULE,
	si_unit_name_KELVIN,
	si_unit_name_AMPERE,
	si_unit_name_GRAM,
	si_unit_name_STERADIAN,
	si_unit_name_MOLE,
	si_unit_name_LUMEN,
	si_unit_name_GRAY,
	si_unit_name_CANDELA,
	si_unit_name_FARAD,
	si_unit_name_RADIAN,
	si_unit_name_NEWTON,
	si_unit_name_METRE,
	si_unit_name_WEBER,
	si_unit_name_COULOMB
 } ;

class SdaiSi_unit_name  :  public STEPenumeration  {
  public:
	SdaiSi_unit_name (const char * n =0);
	SdaiSi_unit_name (sdaiSi_unit_name e) {  set_value (e);  }
	~SdaiSi_unit_name ()  {  }
	SdaiSi_unit_name& operator= (const sdaiSi_unit_name& e)
		{  set_value (e);  return *this;  }
	operator sdaiSi_unit_name () const;

	inline virtual const char * Name () const
		{  return "SdaiSi_unit_name" ;  }
	inline virtual int no_elements () const  {  return 28;  }
	virtual const char * element_at (int n) const;
};

inline STEPenumeration * 
create_SdaiSi_unit_name () { return new SdaiSi_unit_name ; }


class SdaiSi_unit_names  :  public  EnumAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new EnumNode (new SdaiSi_unit_name);	}
};

typedef SdaiSi_unit_names * SdaiSi_unit_namesH;

inline STEPaggregate * 
create_SdaiSi_unit_names () { return new SdaiSi_unit_names ; }

//////////  END ENUMERATION si_unit_name

extern TypeDescriptor 	*config_control_designt_day_in_month_number;
extern EnumTypeDescriptor 	*config_control_designt_trimming_preference;

//////////  ENUMERATION TYPE trimming_preference
enum  sdaiTrimming_preference  {
	trimming_preference_PARAMETER,
	trimming_preference_UNSPECIFIED,
	trimming_preference_CARTESIAN
 } ;

class SdaiTrimming_preference  :  public STEPenumeration  {
  public:
	SdaiTrimming_preference (const char * n =0);
	SdaiTrimming_preference (sdaiTrimming_preference e) {  set_value (e);  }
	~SdaiTrimming_preference ()  {  }
	SdaiTrimming_preference& operator= (const sdaiTrimming_preference& e)
		{  set_value (e);  return *this;  }
	operator sdaiTrimming_preference () const;

	inline virtual const char * Name () const
		{  return "SdaiTrimming_preference" ;  }
	inline virtual int no_elements () const  {  return 3;  }
	virtual const char * element_at (int n) const;
};

inline STEPenumeration * 
create_SdaiTrimming_preference () { return new SdaiTrimming_preference ; }


class SdaiTrimming_preferences  :  public  EnumAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new EnumNode (new SdaiTrimming_preference);	}
};

typedef SdaiTrimming_preferences * SdaiTrimming_preferencesH;

inline STEPaggregate * 
create_SdaiTrimming_preferences () { return new SdaiTrimming_preferences ; }

//////////  END ENUMERATION trimming_preference

extern SelectTypeDescriptor 	*config_control_designt_vector_or_direction;
class SdaiVector_or_direction;
typedef SdaiVector_or_direction * SdaiVector_or_directionH;

class SdaiVector_or_directions;
typedef SdaiVector_or_directions * SdaiVector_or_directionsH;
extern SelectTypeDescriptor 	*config_control_designt_wireframe_model;
class SdaiWireframe_model;
typedef SdaiWireframe_model * SdaiWireframe_modelH;

class SdaiWireframe_models;
typedef SdaiWireframe_models * SdaiWireframe_modelsH;
extern TypeDescriptor 	*config_control_designt_volume_measure;
extern SelectTypeDescriptor 	*config_control_designt_geometric_set_select;
class SdaiGeometric_set_select;
typedef SdaiGeometric_set_select * SdaiGeometric_set_selectH;

class SdaiGeometric_set_selects;
typedef SdaiGeometric_set_selects * SdaiGeometric_set_selectsH;
extern TypeDescriptor 	*config_control_designt_positive_plane_angle_measure;
extern SelectTypeDescriptor 	*config_control_designt_start_request_item;
class SdaiStart_request_item;
typedef SdaiStart_request_item * SdaiStart_request_itemH;

class SdaiStart_request_items;
typedef SdaiStart_request_items * SdaiStart_request_itemsH;
extern EnumTypeDescriptor 	*config_control_designt_b_spline_surface_form;

//////////  ENUMERATION TYPE b_spline_surface_form
enum  sdaiB_spline_surface_form  {
	b_spline_surface_form_SURF_OF_LINEAR_EXTRUSION,
	b_spline_surface_form_PLANE_SURF,
	b_spline_surface_form_GENERALISED_CONE,
	b_spline_surface_form_TOROIDAL_SURF,
	b_spline_surface_form_CONICAL_SURF,
	b_spline_surface_form_SPHERICAL_SURF,
	b_spline_surface_form_UNSPECIFIED,
	b_spline_surface_form_RULED_SURF,
	b_spline_surface_form_SURF_OF_REVOLUTION,
	b_spline_surface_form_CYLINDRICAL_SURF,
	b_spline_surface_form_QUADRIC_SURF
 } ;

class SdaiB_spline_surface_form  :  public STEPenumeration  {
  public:
	SdaiB_spline_surface_form (const char * n =0);
	SdaiB_spline_surface_form (sdaiB_spline_surface_form e) {  set_value (e);  }
	~SdaiB_spline_surface_form ()  {  }
	SdaiB_spline_surface_form& operator= (const sdaiB_spline_surface_form& e)
		{  set_value (e);  return *this;  }
	operator sdaiB_spline_surface_form () const;

	inline virtual const char * Name () const
		{  return "SdaiB_spline_surface_form" ;  }
	inline virtual int no_elements () const  {  return 11;  }
	virtual const char * element_at (int n) const;
};

inline STEPenumeration * 
create_SdaiB_spline_surface_form () { return new SdaiB_spline_surface_form ; }


class SdaiB_spline_surface_forms  :  public  EnumAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new EnumNode (new SdaiB_spline_surface_form);	}
};

typedef SdaiB_spline_surface_forms * SdaiB_spline_surface_formsH;

inline STEPaggregate * 
create_SdaiB_spline_surface_forms () { return new SdaiB_spline_surface_forms ; }

//////////  END ENUMERATION b_spline_surface_form

extern SelectTypeDescriptor 	*config_control_designt_person_organization_item;
class SdaiPerson_organization_item;
typedef SdaiPerson_organization_item * SdaiPerson_organization_itemH;

class SdaiPerson_organization_items;
typedef SdaiPerson_organization_items * SdaiPerson_organization_itemsH;
extern SelectTypeDescriptor 	*config_control_designt_date_time_item;
class SdaiDate_time_item;
typedef SdaiDate_time_item * SdaiDate_time_itemH;

class SdaiDate_time_items;
typedef SdaiDate_time_items * SdaiDate_time_itemsH;
extern SelectTypeDescriptor 	*config_control_designt_shell;
class SdaiShell;
typedef SdaiShell * SdaiShellH;

class SdaiShells;
typedef SdaiShells * SdaiShellsH;
extern SelectTypeDescriptor 	*config_control_designt_transformation;
class SdaiTransformation;
typedef SdaiTransformation * SdaiTransformationH;

class SdaiTransformations;
typedef SdaiTransformations * SdaiTransformationsH;
extern TypeDescriptor 	*config_control_designt_day_in_week_number;
extern SelectTypeDescriptor 	*config_control_designt_boolean_operand;
class SdaiBoolean_operand;
typedef SdaiBoolean_operand * SdaiBoolean_operandH;

class SdaiBoolean_operands;
typedef SdaiBoolean_operands * SdaiBoolean_operandsH;
extern SelectTypeDescriptor 	*config_control_designt_certified_item;
class SdaiCertified_item;
typedef SdaiCertified_item * SdaiCertified_itemH;

class SdaiCertified_items;
typedef SdaiCertified_items * SdaiCertified_itemsH;
extern SelectTypeDescriptor 	*config_control_designt_date_time_select;
class SdaiDate_time_select;
typedef SdaiDate_time_select * SdaiDate_time_selectH;

class SdaiDate_time_selects;
typedef SdaiDate_time_selects * SdaiDate_time_selectsH;
extern TypeDescriptor 	*config_control_designt_solid_angle_measure;
extern SelectTypeDescriptor 	*config_control_designt_curve_on_surface;
class SdaiCurve_on_surface;
typedef SdaiCurve_on_surface * SdaiCurve_on_surfaceH;

class SdaiCurve_on_surfaces;
typedef SdaiCurve_on_surfaces * SdaiCurve_on_surfacesH;
extern SelectTypeDescriptor 	*config_control_designt_trimming_select;
class SdaiTrimming_select;
typedef SdaiTrimming_select * SdaiTrimming_selectH;

class SdaiTrimming_selects;
typedef SdaiTrimming_selects * SdaiTrimming_selectsH;
extern EnumTypeDescriptor 	*config_control_designt_ahead_or_behind;

//////////  ENUMERATION TYPE ahead_or_behind
enum  sdaiAhead_or_behind  {
	ahead_or_behind_AHEAD,
	ahead_or_behind_BEHIND
 } ;

class SdaiAhead_or_behind  :  public STEPenumeration  {
  public:
	SdaiAhead_or_behind (const char * n =0);
	SdaiAhead_or_behind (sdaiAhead_or_behind e) {  set_value (e);  }
	~SdaiAhead_or_behind ()  {  }
	SdaiAhead_or_behind& operator= (const sdaiAhead_or_behind& e)
		{  set_value (e);  return *this;  }
	operator sdaiAhead_or_behind () const;

	inline virtual const char * Name () const
		{  return "SdaiAhead_or_behind" ;  }
	inline virtual int no_elements () const  {  return 2;  }
	virtual const char * element_at (int n) const;
};

inline STEPenumeration * 
create_SdaiAhead_or_behind () { return new SdaiAhead_or_behind ; }


class SdaiAhead_or_behinds  :  public  EnumAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new EnumNode (new SdaiAhead_or_behind);	}
};

typedef SdaiAhead_or_behinds * SdaiAhead_or_behindsH;

inline STEPaggregate * 
create_SdaiAhead_or_behinds () { return new SdaiAhead_or_behinds ; }

//////////  END ENUMERATION ahead_or_behind

extern SelectTypeDescriptor 	*config_control_designt_contracted_item;
class SdaiContracted_item;
typedef SdaiContracted_item * SdaiContracted_itemH;

class SdaiContracted_items;
typedef SdaiContracted_items * SdaiContracted_itemsH;
extern TypeDescriptor 	*config_control_designt_day_in_year_number;
extern TypeDescriptor 	*config_control_designt_mass_measure;
extern TypeDescriptor 	*config_control_designt_descriptive_measure;
extern TypeDescriptor 	*config_control_designt_area_measure;
extern TypeDescriptor 	*config_control_designt_month_in_year_number;
extern EnumTypeDescriptor 	*config_control_designt_source;

//////////  ENUMERATION TYPE source
enum  sdaiSource  {
	source_BOUGHT,
	source_NOT_KNOWN,
	source_MADE
 } ;

class SdaiSource  :  public STEPenumeration  {
  public:
	SdaiSource (const char * n =0);
	SdaiSource (sdaiSource e) {  set_value (e);  }
	~SdaiSource ()  {  }
	SdaiSource& operator= (const sdaiSource& e)
		{  set_value (e);  return *this;  }
	operator sdaiSource () const;

	inline virtual const char * Name () const
		{  return "SdaiSource" ;  }
	inline virtual int no_elements () const  {  return 3;  }
	virtual const char * element_at (int n) const;
};

inline STEPenumeration * 
create_SdaiSource () { return new SdaiSource ; }


class SdaiSources  :  public  EnumAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new EnumNode (new SdaiSource);	}
};

typedef SdaiSources * SdaiSourcesH;

inline STEPaggregate * 
create_SdaiSources () { return new SdaiSources ; }

//////////  END ENUMERATION source

extern SelectTypeDescriptor 	*config_control_designt_unit;
class SdaiUnit;
typedef SdaiUnit * SdaiUnitH;

class SdaiUnits;
typedef SdaiUnits * SdaiUnitsH;
extern SelectTypeDescriptor 	*config_control_designt_reversible_topology;
class SdaiReversible_topology;
typedef SdaiReversible_topology * SdaiReversible_topologyH;

class SdaiReversible_topologys;
typedef SdaiReversible_topologys * SdaiReversible_topologysH;
extern SelectTypeDescriptor 	*config_control_designt_work_item;
class SdaiWork_item;
typedef SdaiWork_item * SdaiWork_itemH;

class SdaiWork_items;
typedef SdaiWork_items * SdaiWork_itemsH;
extern SelectTypeDescriptor 	*config_control_designt_shape_definition;
class SdaiShape_definition;
typedef SdaiShape_definition * SdaiShape_definitionH;

class SdaiShape_definitions;
typedef SdaiShape_definitions * SdaiShape_definitionsH;
extern TypeDescriptor 	*config_control_designt_second_in_minute;
extern TypeDescriptor 	*config_control_designt_label;
extern TypeDescriptor 	*config_control_designt_context_dependent_measure;
extern SelectTypeDescriptor 	*config_control_designt_supported_item;
class SdaiSupported_item;
typedef SdaiSupported_item * SdaiSupported_itemH;

class SdaiSupported_items;
typedef SdaiSupported_items * SdaiSupported_itemsH;
extern EnumTypeDescriptor 	*config_control_designt_si_prefix;

//////////  ENUMERATION TYPE si_prefix
enum  sdaiSi_prefix  {
	si_prefix_EXA,
	si_prefix_PICO,
	si_prefix_MEGA,
	si_prefix_FEMTO,
	si_prefix_ATTO,
	si_prefix_CENTI,
	si_prefix_NANO,
	si_prefix_HECTO,
	si_prefix_MICRO,
	si_prefix_TERA,
	si_prefix_GIGA,
	si_prefix_MILLI,
	si_prefix_PETA,
	si_prefix_DECI,
	si_prefix_KILO,
	si_prefix_DECA
 } ;

class SdaiSi_prefix  :  public STEPenumeration  {
  public:
	SdaiSi_prefix (const char * n =0);
	SdaiSi_prefix (sdaiSi_prefix e) {  set_value (e);  }
	~SdaiSi_prefix ()  {  }
	SdaiSi_prefix& operator= (const sdaiSi_prefix& e)
		{  set_value (e);  return *this;  }
	operator sdaiSi_prefix () const;

	inline virtual const char * Name () const
		{  return "SdaiSi_prefix" ;  }
	inline virtual int no_elements () const  {  return 16;  }
	virtual const char * element_at (int n) const;
};

inline STEPenumeration * 
create_SdaiSi_prefix () { return new SdaiSi_prefix ; }


class SdaiSi_prefixs  :  public  EnumAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new EnumNode (new SdaiSi_prefix);	}
};

typedef SdaiSi_prefixs * SdaiSi_prefixsH;

inline STEPaggregate * 
create_SdaiSi_prefixs () { return new SdaiSi_prefixs ; }

//////////  END ENUMERATION si_prefix

extern TypeDescriptor 	*config_control_designt_length_measure;
extern SelectTypeDescriptor 	*config_control_designt_approved_item;
class SdaiApproved_item;
typedef SdaiApproved_item * SdaiApproved_itemH;

class SdaiApproved_items;
typedef SdaiApproved_items * SdaiApproved_itemsH;
extern TypeDescriptor 	*config_control_designt_count_measure;
extern SelectTypeDescriptor 	*config_control_designt_surface_model;
class SdaiSurface_model;
typedef SdaiSurface_model * SdaiSurface_modelH;

class SdaiSurface_models;
typedef SdaiSurface_models * SdaiSurface_modelsH;
extern ListTypeDescriptor 	*config_control_designt_list_of_reversible_topology_item;
STEPaggregate * create_SdaiList_of_reversible_topology_item ();

typedef SdaiReal 	SdaiParameter_value;
typedef SdaiReal 	SdaiPlane_angle_measure;
typedef SdaiString 	SdaiText;
typedef SdaiInteger 	SdaiYear_number;
typedef SdaiReversible_topology_items 	SdaiSet_of_reversible_topology_item;
typedef SdaiSet_of_reversible_topology_item * 	SdaiSet_of_reversible_topology_itemH;
typedef SdaiInteger 	SdaiWeek_in_year_number;
typedef SdaiInteger 	SdaiMinute_in_hour;
typedef SdaiString 	SdaiIdentifier;
typedef SdaiInteger 	SdaiDimension_count;
typedef SdaiReal 	SdaiPositive_length_measure;
typedef SdaiInteger 	SdaiHour_in_day;
typedef SdaiInteger 	SdaiDay_in_month_number;
typedef SdaiReal 	SdaiVolume_measure;
typedef SdaiReal 	SdaiPositive_plane_angle_measure;
typedef SdaiInteger 	SdaiDay_in_week_number;
typedef SdaiReal 	SdaiSolid_angle_measure;
typedef SdaiInteger 	SdaiDay_in_year_number;
typedef SdaiReal 	SdaiMass_measure;
typedef SdaiString 	SdaiDescriptive_measure;
typedef SdaiReal 	SdaiArea_measure;
typedef SdaiInteger 	SdaiMonth_in_year_number;
typedef SdaiReal 	SdaiSecond_in_minute;
typedef SdaiString 	SdaiLabel;
typedef SdaiReal 	SdaiContext_dependent_measure;
typedef SdaiReal 	SdaiLength_measure;
typedef SdaiReal 	SdaiCount_measure;
typedef SdaiReversible_topology_items 	SdaiList_of_reversible_topology_item;
typedef SdaiList_of_reversible_topology_item * 	SdaiList_of_reversible_topology_itemH;

//	***** Build the SELECT Types  	

//////////  SELECT TYPE characterized_product_definition
class SdaiCharacterized_product_definition  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION	--  ENTITY_TYPE
	//   PRODUCT_DEFINITION_RELATIONSHIP	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiCharacterized_product_definition();
	//  part 1
	SdaiCharacterized_product_definition( const SdaiProduct_definitionH& );
	SdaiCharacterized_product_definition( const SdaiProduct_definition_relationshipH& );
	virtual ~SdaiCharacterized_product_definition();

	//  part 2
	operator SdaiProduct_definitionH();
	operator SdaiProduct_definition_relationshipH();

	//  part 3
	SdaiProduct_definitionH Related_product_definition() const;
	void Related_product_definition (SdaiProduct_definitionH x);
	SdaiProduct_definitionH Relating_product_definition() const;
	void Relating_product_definition (SdaiProduct_definitionH x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	SdaiProduct_definition_contextH Frame_of_reference() const;
	void Frame_of_reference (SdaiProduct_definition_contextH x);
	SdaiProduct_definition_formationH Formation() const;
	void Formation (SdaiProduct_definition_formationH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);

	//  part 4
	SdaiCharacterized_product_definition& operator =( const SdaiProduct_definitionH& );
	SdaiCharacterized_product_definition& operator =( const SdaiProduct_definition_relationshipH& );
	// not in SDAI
	SdaiCharacterized_product_definition& ShallowCopy ( const SdaiCharacterized_product_definition& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiCharacterized_product_definition& operator =( const SdaiCharacterized_product_definitionH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsProduct_definition() const;
	SdaiLogical IsProduct_definition_relationship() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiCharacterized_product_definition () { return new SdaiCharacterized_product_definition ; }


class SdaiCharacterized_product_definitions  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiCharacterized_product_definition);	}
};

inline STEPaggregate * create_SdaiCharacterized_product_definitions () { return new SdaiCharacterized_product_definitions ; }

/////  END SELECT TYPE characterized_product_definition 


//////////  SELECT TYPE shape_definition
class SdaiShape_definition  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_SHAPE	--  ENTITY_TYPE
	//   SHAPE_ASPECT	--  ENTITY_TYPE
	//   SHAPE_ASPECT_RELATIONSHIP	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiShape_definition();
	//  part 1
	SdaiShape_definition( const SdaiProduct_definition_shapeH& );
	SdaiShape_definition( const SdaiShape_aspectH& );
	SdaiShape_definition( const SdaiShape_aspect_relationshipH& );
	virtual ~SdaiShape_definition();

	//  part 2
	operator SdaiProduct_definition_shapeH();
	operator SdaiShape_aspectH();
	operator SdaiShape_aspect_relationshipH();

	//  part 3
	SdaiShape_aspectH Related_shape_aspect() const;
	void Related_shape_aspect (SdaiShape_aspectH x);
	SdaiShape_aspectH Relating_shape_aspect() const;
	void Relating_shape_aspect (SdaiShape_aspectH x);
	const LOGICAL Product_definitional() const;
	void Product_definitional (LOGICAL x);
	SdaiProduct_definition_shapeH Of_shape() const;
	void Of_shape (SdaiProduct_definition_shapeH x);
	const SdaiCharacterized_definitionH Definition() const;
	void Definition (SdaiCharacterized_definitionH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiShape_definition& operator =( const SdaiProduct_definition_shapeH& );
	SdaiShape_definition& operator =( const SdaiShape_aspectH& );
	SdaiShape_definition& operator =( const SdaiShape_aspect_relationshipH& );
	// not in SDAI
	SdaiShape_definition& ShallowCopy ( const SdaiShape_definition& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiShape_definition& operator =( const SdaiShape_definitionH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsProduct_definition_shape() const;
	SdaiLogical IsShape_aspect() const;
	SdaiLogical IsShape_aspect_relationship() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiShape_definition () { return new SdaiShape_definition ; }


class SdaiShape_definitions  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiShape_definition);	}
};

inline STEPaggregate * create_SdaiShape_definitions () { return new SdaiShape_definitions ; }

/////  END SELECT TYPE shape_definition 


//////////  SELECT TYPE characterized_definition
class SdaiCharacterized_definition  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   CHARACTERIZED_PRODUCT_DEFINITION	--  SELECT_TYPE
	//   SHAPE_DEFINITION	--  SELECT_TYPE
	   SdaiShape_definition _sdaishape_definition;
	   SdaiCharacterized_product_definition _sdaicharacterized_product_definition;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiCharacterized_definition();
	//  part 1
	SdaiCharacterized_definition( const SdaiCharacterized_product_definitionH& );
	SdaiCharacterized_definition( const SdaiShape_definitionH& );
	virtual ~SdaiCharacterized_definition();

	//  part 2
	operator SdaiCharacterized_product_definitionH();
	operator SdaiShape_definitionH();

	//  part 3

	//  part 4
	SdaiCharacterized_definition& operator =( const SdaiCharacterized_product_definitionH& );
	SdaiCharacterized_definition& operator =( const SdaiShape_definitionH& );
	// not in SDAI
	SdaiCharacterized_definition& ShallowCopy ( const SdaiCharacterized_definition& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiCharacterized_definition& operator =( const SdaiCharacterized_definitionH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsCharacterized_product_definition() const;
	SdaiLogical IsShape_definition() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiCharacterized_definition () { return new SdaiCharacterized_definition ; }


class SdaiCharacterized_definitions  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiCharacterized_definition);	}
};

inline STEPaggregate * create_SdaiCharacterized_definitions () { return new SdaiCharacterized_definitions ; }

/////  END SELECT TYPE characterized_definition 


//////////  SELECT TYPE change_request_item
class SdaiChange_request_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiChange_request_item();
	//  part 1
	SdaiChange_request_item( const SdaiProduct_definition_formationH& );
	virtual ~SdaiChange_request_item();

	//  part 2
	operator SdaiProduct_definition_formationH();

	//  part 3
	SdaiProductH Of_product() const;
	void Of_product (SdaiProductH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);

	//  part 4
	SdaiChange_request_item& operator =( const SdaiProduct_definition_formationH& );
	// not in SDAI
	SdaiChange_request_item& ShallowCopy ( const SdaiChange_request_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiChange_request_item& operator =( const SdaiChange_request_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsProduct_definition_formation() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiChange_request_item () { return new SdaiChange_request_item ; }


class SdaiChange_request_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiChange_request_item);	}
};

inline STEPaggregate * create_SdaiChange_request_items () { return new SdaiChange_request_items ; }

/////  END SELECT TYPE change_request_item 


//////////  SELECT TYPE reversible_topology_item
class SdaiReversible_topology_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   EDGE	--  ENTITY_TYPE
	//   PATH	--  ENTITY_TYPE
	//   FACE	--  ENTITY_TYPE
	//   FACE_BOUND	--  ENTITY_TYPE
	//   CLOSED_SHELL	--  ENTITY_TYPE
	//   OPEN_SHELL	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiReversible_topology_item();
	//  part 1
	SdaiReversible_topology_item( const SdaiEdgeH& );
	SdaiReversible_topology_item( const SdaiPathH& );
	SdaiReversible_topology_item( const SdaiFaceH& );
	SdaiReversible_topology_item( const SdaiFace_boundH& );
	SdaiReversible_topology_item( const SdaiClosed_shellH& );
	SdaiReversible_topology_item( const SdaiOpen_shellH& );
	virtual ~SdaiReversible_topology_item();

	//  part 2
	operator SdaiEdgeH();
	operator SdaiPathH();
	operator SdaiFaceH();
	operator SdaiFace_boundH();
	operator SdaiClosed_shellH();
	operator SdaiOpen_shellH();

	//  part 3
	const EntityAggregateH Cfs_faces() const;
	void Cfs_faces (EntityAggregateH x);
	const BOOLEAN Orientation() const;
	void Orientation (BOOLEAN x);
	SdaiLoopH Bound() const;
	void Bound (SdaiLoopH x);
	const EntityAggregateH Bounds() const;
	void Bounds (EntityAggregateH x);
	const EntityAggregateH Edge_list() const;
	void Edge_list (EntityAggregateH x);
	SdaiVertexH Edge_end() const;
	void Edge_end (SdaiVertexH x);
	SdaiVertexH Edge_start() const;
	void Edge_start (SdaiVertexH x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiReversible_topology_item& operator =( const SdaiEdgeH& );
	SdaiReversible_topology_item& operator =( const SdaiPathH& );
	SdaiReversible_topology_item& operator =( const SdaiFaceH& );
	SdaiReversible_topology_item& operator =( const SdaiFace_boundH& );
	SdaiReversible_topology_item& operator =( const SdaiClosed_shellH& );
	SdaiReversible_topology_item& operator =( const SdaiOpen_shellH& );
	// not in SDAI
	SdaiReversible_topology_item& ShallowCopy ( const SdaiReversible_topology_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiReversible_topology_item& operator =( const SdaiReversible_topology_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsEdge() const;
	SdaiLogical IsPath() const;
	SdaiLogical IsFace() const;
	SdaiLogical IsFace_bound() const;
	SdaiLogical IsClosed_shell() const;
	SdaiLogical IsOpen_shell() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiReversible_topology_item () { return new SdaiReversible_topology_item ; }


class SdaiReversible_topology_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiReversible_topology_item);	}
};

inline STEPaggregate * create_SdaiReversible_topology_items () { return new SdaiReversible_topology_items ; }

/////  END SELECT TYPE reversible_topology_item 


//////////  SELECT TYPE axis2_placement
class SdaiAxis2_placement  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   AXIS2_PLACEMENT_2D	--  ENTITY_TYPE
	//   AXIS2_PLACEMENT_3D	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiAxis2_placement();
	//  part 1
	SdaiAxis2_placement( const SdaiAxis2_placement_2dH& );
	SdaiAxis2_placement( const SdaiAxis2_placement_3dH& );
	virtual ~SdaiAxis2_placement();

	//  part 2
	operator SdaiAxis2_placement_2dH();
	operator SdaiAxis2_placement_3dH();

	//  part 3
	SdaiDirectionH Axis() const;
	void Axis (SdaiDirectionH x);
	SdaiDirectionH Ref_direction() const;
	void Ref_direction (SdaiDirectionH x);
	SdaiCartesian_pointH Location() const;
	void Location (SdaiCartesian_pointH x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiAxis2_placement& operator =( const SdaiAxis2_placement_2dH& );
	SdaiAxis2_placement& operator =( const SdaiAxis2_placement_3dH& );
	// not in SDAI
	SdaiAxis2_placement& ShallowCopy ( const SdaiAxis2_placement& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiAxis2_placement& operator =( const SdaiAxis2_placementH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsAxis2_placement_2d() const;
	SdaiLogical IsAxis2_placement_3d() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiAxis2_placement () { return new SdaiAxis2_placement ; }


class SdaiAxis2_placements  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiAxis2_placement);	}
};

inline STEPaggregate * create_SdaiAxis2_placements () { return new SdaiAxis2_placements ; }

/////  END SELECT TYPE axis2_placement 


//////////  SELECT TYPE specified_item
class SdaiSpecified_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION	--  ENTITY_TYPE
	//   SHAPE_ASPECT	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiSpecified_item();
	//  part 1
	SdaiSpecified_item( const SdaiProduct_definitionH& );
	SdaiSpecified_item( const SdaiShape_aspectH& );
	virtual ~SdaiSpecified_item();

	//  part 2
	operator SdaiProduct_definitionH();
	operator SdaiShape_aspectH();

	//  part 3
	const LOGICAL Product_definitional() const;
	void Product_definitional (LOGICAL x);
	SdaiProduct_definition_shapeH Of_shape() const;
	void Of_shape (SdaiProduct_definition_shapeH x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	SdaiProduct_definition_contextH Frame_of_reference() const;
	void Frame_of_reference (SdaiProduct_definition_contextH x);
	SdaiProduct_definition_formationH Formation() const;
	void Formation (SdaiProduct_definition_formationH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);

	//  part 4
	SdaiSpecified_item& operator =( const SdaiProduct_definitionH& );
	SdaiSpecified_item& operator =( const SdaiShape_aspectH& );
	// not in SDAI
	SdaiSpecified_item& ShallowCopy ( const SdaiSpecified_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiSpecified_item& operator =( const SdaiSpecified_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsProduct_definition() const;
	SdaiLogical IsShape_aspect() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiSpecified_item () { return new SdaiSpecified_item ; }


class SdaiSpecified_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiSpecified_item);	}
};

inline STEPaggregate * create_SdaiSpecified_items () { return new SdaiSpecified_items ; }

/////  END SELECT TYPE specified_item 


//////////  SELECT TYPE measure_value
class SdaiMeasure_value  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   AREA_MEASURE	--  REAL_TYPE
	//   CONTEXT_DEPENDENT_MEASURE	--  REAL_TYPE
	//   COUNT_MEASURE	--  NUMBER_TYPE
	//   DESCRIPTIVE_MEASURE	--  STRING_TYPE
	//   LENGTH_MEASURE	--  REAL_TYPE
	//   MASS_MEASURE	--  REAL_TYPE
	//   PLANE_ANGLE_MEASURE	--  REAL_TYPE
	//   PARAMETER_VALUE	--  REAL_TYPE
	//   POSITIVE_LENGTH_MEASURE	--  REAL_TYPE
	//   POSITIVE_PLANE_ANGLE_MEASURE	--  REAL_TYPE
	//   SOLID_ANGLE_MEASURE	--  REAL_TYPE
	//   VOLUME_MEASURE	--  REAL_TYPE
	   SdaiString _sdaistring;
	   SdaiReal _sdaireal;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiMeasure_value();
	//  part 1
	SdaiMeasure_value( const SdaiDescriptive_measure& );
	SdaiMeasure_value( const SdaiReal& );
	virtual ~SdaiMeasure_value();

	//  part 2
	operator SdaiDescriptive_measure();
	operator SdaiReal ();

	//  part 3

	//  part 4
	SdaiMeasure_value& operator =( const SdaiDescriptive_measure& );
	SdaiMeasure_value& operator =( const SdaiReal& );
	// not in SDAI
	SdaiMeasure_value& ShallowCopy ( const SdaiMeasure_value& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiMeasure_value& operator =( const SdaiMeasure_valueH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsArea_measure() const;
	SdaiLogical IsContext_dependent_measure() const;
	SdaiLogical IsCount_measure() const;
	SdaiLogical IsDescriptive_measure() const;
	SdaiLogical IsLength_measure() const;
	SdaiLogical IsMass_measure() const;
	SdaiLogical IsPlane_angle_measure() const;
	SdaiLogical IsParameter_value() const;
	SdaiLogical IsPositive_length_measure() const;
	SdaiLogical IsPositive_plane_angle_measure() const;
	SdaiLogical IsSolid_angle_measure() const;
	SdaiLogical IsVolume_measure() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7
	const TypeDescriptor *SetUnderlyingType ( const TypeDescriptor * td );
};

inline SdaiSelect * create_SdaiMeasure_value () { return new SdaiMeasure_value ; }


class SdaiMeasure_values  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiMeasure_value);	}
};

inline STEPaggregate * create_SdaiMeasure_values () { return new SdaiMeasure_values ; }

/////  END SELECT TYPE measure_value 


//////////  SELECT TYPE person_organization_select
class SdaiPerson_organization_select  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PERSON_AND_ORGANIZATION	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiPerson_organization_select();
	//  part 1
	SdaiPerson_organization_select( const SdaiPerson_and_organizationH& );
	virtual ~SdaiPerson_organization_select();

	//  part 2
	operator SdaiPerson_and_organizationH();

	//  part 3
	SdaiOrganizationH The_organization() const;
	void The_organization (SdaiOrganizationH x);
	SdaiPersonH The_person() const;
	void The_person (SdaiPersonH x);

	//  part 4
	SdaiPerson_organization_select& operator =( const SdaiPerson_and_organizationH& );
	// not in SDAI
	SdaiPerson_organization_select& ShallowCopy ( const SdaiPerson_organization_select& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiPerson_organization_select& operator =( const SdaiPerson_organization_selectH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsPerson_and_organization() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiPerson_organization_select () { return new SdaiPerson_organization_select ; }


class SdaiPerson_organization_selects  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiPerson_organization_select);	}
};

inline STEPaggregate * create_SdaiPerson_organization_selects () { return new SdaiPerson_organization_selects ; }

/////  END SELECT TYPE person_organization_select 


//////////  SELECT TYPE pcurve_or_surface
class SdaiPcurve_or_surface  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PCURVE	--  ENTITY_TYPE
	//   SURFACE	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiPcurve_or_surface();
	//  part 1
	SdaiPcurve_or_surface( const SdaiPcurveH& );
	SdaiPcurve_or_surface( const SdaiSurfaceH& );
	virtual ~SdaiPcurve_or_surface();

	//  part 2
	operator SdaiPcurveH();
	operator SdaiSurfaceH();

	//  part 3
	SdaiDefinitional_representationH Reference_to_curve() const;
	void Reference_to_curve (SdaiDefinitional_representationH x);
	SdaiSurfaceH Basis_surface() const;
	void Basis_surface (SdaiSurfaceH x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiPcurve_or_surface& operator =( const SdaiPcurveH& );
	SdaiPcurve_or_surface& operator =( const SdaiSurfaceH& );
	// not in SDAI
	SdaiPcurve_or_surface& ShallowCopy ( const SdaiPcurve_or_surface& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiPcurve_or_surface& operator =( const SdaiPcurve_or_surfaceH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsPcurve() const;
	SdaiLogical IsSurface() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiPcurve_or_surface () { return new SdaiPcurve_or_surface ; }


class SdaiPcurve_or_surfaces  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiPcurve_or_surface);	}
};

inline STEPaggregate * create_SdaiPcurve_or_surfaces () { return new SdaiPcurve_or_surfaces ; }

/////  END SELECT TYPE pcurve_or_surface 


//////////  SELECT TYPE classified_item
class SdaiClassified_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  ENTITY_TYPE
	//   ASSEMBLY_COMPONENT_USAGE	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiClassified_item();
	//  part 1
	SdaiClassified_item( const SdaiProduct_definition_formationH& );
	SdaiClassified_item( const SdaiAssembly_component_usageH& );
	virtual ~SdaiClassified_item();

	//  part 2
	operator SdaiProduct_definition_formationH();
	operator SdaiAssembly_component_usageH();

	//  part 3
	const SdaiIdentifier Reference_designator() const;
	void Reference_designator (const char * x);
	SdaiProduct_definitionH Related_product_definition() const;
	void Related_product_definition (SdaiProduct_definitionH x);
	SdaiProduct_definitionH Relating_product_definition() const;
	void Relating_product_definition (SdaiProduct_definitionH x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	SdaiProductH Of_product() const;
	void Of_product (SdaiProductH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);

	//  part 4
	SdaiClassified_item& operator =( const SdaiProduct_definition_formationH& );
	SdaiClassified_item& operator =( const SdaiAssembly_component_usageH& );
	// not in SDAI
	SdaiClassified_item& ShallowCopy ( const SdaiClassified_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiClassified_item& operator =( const SdaiClassified_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsProduct_definition_formation() const;
	SdaiLogical IsAssembly_component_usage() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiClassified_item () { return new SdaiClassified_item ; }


class SdaiClassified_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiClassified_item);	}
};

inline STEPaggregate * create_SdaiClassified_items () { return new SdaiClassified_items ; }

/////  END SELECT TYPE classified_item 


//////////  SELECT TYPE vector_or_direction
class SdaiVector_or_direction  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   VECTOR	--  ENTITY_TYPE
	//   DIRECTION	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiVector_or_direction();
	//  part 1
	SdaiVector_or_direction( const SdaiVectorH& );
	SdaiVector_or_direction( const SdaiDirectionH& );
	virtual ~SdaiVector_or_direction();

	//  part 2
	operator SdaiVectorH();
	operator SdaiDirectionH();

	//  part 3
	const RealAggregateH Direction_ratios() const;
	void Direction_ratios (RealAggregateH x);
	const SdaiLength_measure Magnitude() const;
	void Magnitude (SdaiLength_measure x);
	SdaiDirectionH Orientation() const;
	void Orientation (SdaiDirectionH x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiVector_or_direction& operator =( const SdaiVectorH& );
	SdaiVector_or_direction& operator =( const SdaiDirectionH& );
	// not in SDAI
	SdaiVector_or_direction& ShallowCopy ( const SdaiVector_or_direction& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiVector_or_direction& operator =( const SdaiVector_or_directionH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsVector() const;
	SdaiLogical IsDirection() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiVector_or_direction () { return new SdaiVector_or_direction ; }


class SdaiVector_or_directions  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiVector_or_direction);	}
};

inline STEPaggregate * create_SdaiVector_or_directions () { return new SdaiVector_or_directions ; }

/////  END SELECT TYPE vector_or_direction 


//////////  SELECT TYPE wireframe_model
class SdaiWireframe_model  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   SHELL_BASED_WIREFRAME_MODEL	--  ENTITY_TYPE
	//   EDGE_BASED_WIREFRAME_MODEL	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiWireframe_model();
	//  part 1
	SdaiWireframe_model( const SdaiShell_based_wireframe_modelH& );
	SdaiWireframe_model( const SdaiEdge_based_wireframe_modelH& );
	virtual ~SdaiWireframe_model();

	//  part 2
	operator SdaiShell_based_wireframe_modelH();
	operator SdaiEdge_based_wireframe_modelH();

	//  part 3
	const EntityAggregateH Ebwm_boundary() const;
	void Ebwm_boundary (EntityAggregateH x);
	const SdaiShellsH Sbwm_boundary() const;
	void Sbwm_boundary (SdaiShellsH x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiWireframe_model& operator =( const SdaiShell_based_wireframe_modelH& );
	SdaiWireframe_model& operator =( const SdaiEdge_based_wireframe_modelH& );
	// not in SDAI
	SdaiWireframe_model& ShallowCopy ( const SdaiWireframe_model& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiWireframe_model& operator =( const SdaiWireframe_modelH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsShell_based_wireframe_model() const;
	SdaiLogical IsEdge_based_wireframe_model() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiWireframe_model () { return new SdaiWireframe_model ; }


class SdaiWireframe_models  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiWireframe_model);	}
};

inline STEPaggregate * create_SdaiWireframe_models () { return new SdaiWireframe_models ; }

/////  END SELECT TYPE wireframe_model 


//////////  SELECT TYPE geometric_set_select
class SdaiGeometric_set_select  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   POINT	--  ENTITY_TYPE
	//   CURVE	--  ENTITY_TYPE
	//   SURFACE	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiGeometric_set_select();
	//  part 1
	SdaiGeometric_set_select( const SdaiPointH& );
	SdaiGeometric_set_select( const SdaiCurveH& );
	SdaiGeometric_set_select( const SdaiSurfaceH& );
	virtual ~SdaiGeometric_set_select();

	//  part 2
	operator SdaiPointH();
	operator SdaiCurveH();
	operator SdaiSurfaceH();

	//  part 3
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiGeometric_set_select& operator =( const SdaiPointH& );
	SdaiGeometric_set_select& operator =( const SdaiCurveH& );
	SdaiGeometric_set_select& operator =( const SdaiSurfaceH& );
	// not in SDAI
	SdaiGeometric_set_select& ShallowCopy ( const SdaiGeometric_set_select& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiGeometric_set_select& operator =( const SdaiGeometric_set_selectH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsPoint() const;
	SdaiLogical IsCurve() const;
	SdaiLogical IsSurface() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiGeometric_set_select () { return new SdaiGeometric_set_select ; }


class SdaiGeometric_set_selects  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiGeometric_set_select);	}
};

inline STEPaggregate * create_SdaiGeometric_set_selects () { return new SdaiGeometric_set_selects ; }

/////  END SELECT TYPE geometric_set_select 


//////////  SELECT TYPE start_request_item
class SdaiStart_request_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiStart_request_item();
	//  part 1
	SdaiStart_request_item( const SdaiProduct_definition_formationH& );
	virtual ~SdaiStart_request_item();

	//  part 2
	operator SdaiProduct_definition_formationH();

	//  part 3
	SdaiProductH Of_product() const;
	void Of_product (SdaiProductH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);

	//  part 4
	SdaiStart_request_item& operator =( const SdaiProduct_definition_formationH& );
	// not in SDAI
	SdaiStart_request_item& ShallowCopy ( const SdaiStart_request_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiStart_request_item& operator =( const SdaiStart_request_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsProduct_definition_formation() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiStart_request_item () { return new SdaiStart_request_item ; }


class SdaiStart_request_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiStart_request_item);	}
};

inline STEPaggregate * create_SdaiStart_request_items () { return new SdaiStart_request_items ; }

/////  END SELECT TYPE start_request_item 


//////////  SELECT TYPE person_organization_item
class SdaiPerson_organization_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   CHANGE	--  ENTITY_TYPE
	//   START_WORK	--  ENTITY_TYPE
	//   CHANGE_REQUEST	--  ENTITY_TYPE
	//   START_REQUEST	--  ENTITY_TYPE
	//   CONFIGURATION_ITEM	--  ENTITY_TYPE
	//   PRODUCT	--  ENTITY_TYPE
	//   PRODUCT_DEFINITION_FORMATION	--  ENTITY_TYPE
	//   PRODUCT_DEFINITION	--  ENTITY_TYPE
	//   CONTRACT	--  ENTITY_TYPE
	//   SECURITY_CLASSIFICATION	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiPerson_organization_item();
	//  part 1
	SdaiPerson_organization_item( const SdaiChangeH& );
	SdaiPerson_organization_item( const SdaiStart_workH& );
	SdaiPerson_organization_item( const SdaiChange_requestH& );
	SdaiPerson_organization_item( const SdaiStart_requestH& );
	SdaiPerson_organization_item( const SdaiConfiguration_itemH& );
	SdaiPerson_organization_item( const SdaiProductH& );
	SdaiPerson_organization_item( const SdaiProduct_definition_formationH& );
	SdaiPerson_organization_item( const SdaiProduct_definitionH& );
	SdaiPerson_organization_item( const SdaiContractH& );
	SdaiPerson_organization_item( const SdaiSecurity_classificationH& );
	virtual ~SdaiPerson_organization_item();

	//  part 2
	operator SdaiChangeH();
	operator SdaiStart_workH();
	operator SdaiChange_requestH();
	operator SdaiStart_requestH();
	operator SdaiConfiguration_itemH();
	operator SdaiProductH();
	operator SdaiProduct_definition_formationH();
	operator SdaiProduct_definitionH();
	operator SdaiContractH();
	operator SdaiSecurity_classificationH();

	//  part 3
	SdaiSecurity_classification_levelH Security_level() const;
	void Security_level (SdaiSecurity_classification_levelH x);
	SdaiContract_typeH Kind() const;
	void Kind (SdaiContract_typeH x);
	SdaiProduct_definition_formationH Formation() const;
	void Formation (SdaiProduct_definition_formationH x);
	SdaiProductH Of_product() const;
	void Of_product (SdaiProductH x);
	const EntityAggregateH Frame_of_reference() const;
	void Frame_of_reference (EntityAggregateH x);
	const SdaiLabel Purpose() const;
	void Purpose (const char * x);
	SdaiProduct_conceptH Item_concept() const;
	void Item_concept (SdaiProduct_conceptH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	SdaiVersioned_action_requestH Assigned_action_request() const;
	void Assigned_action_request (SdaiVersioned_action_requestH x);
	const SdaiWork_itemsH Items() const;
	void Items (SdaiWork_itemsH x);
	SdaiActionH Assigned_action() const;
	void Assigned_action (SdaiActionH x);

	//  part 4
	SdaiPerson_organization_item& operator =( const SdaiChangeH& );
	SdaiPerson_organization_item& operator =( const SdaiStart_workH& );
	SdaiPerson_organization_item& operator =( const SdaiChange_requestH& );
	SdaiPerson_organization_item& operator =( const SdaiStart_requestH& );
	SdaiPerson_organization_item& operator =( const SdaiConfiguration_itemH& );
	SdaiPerson_organization_item& operator =( const SdaiProductH& );
	SdaiPerson_organization_item& operator =( const SdaiProduct_definition_formationH& );
	SdaiPerson_organization_item& operator =( const SdaiProduct_definitionH& );
	SdaiPerson_organization_item& operator =( const SdaiContractH& );
	SdaiPerson_organization_item& operator =( const SdaiSecurity_classificationH& );
	// not in SDAI
	SdaiPerson_organization_item& ShallowCopy ( const SdaiPerson_organization_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiPerson_organization_item& operator =( const SdaiPerson_organization_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsChange() const;
	SdaiLogical IsStart_work() const;
	SdaiLogical IsChange_request() const;
	SdaiLogical IsStart_request() const;
	SdaiLogical IsConfiguration_item() const;
	SdaiLogical IsProduct() const;
	SdaiLogical IsProduct_definition_formation() const;
	SdaiLogical IsProduct_definition() const;
	SdaiLogical IsContract() const;
	SdaiLogical IsSecurity_classification() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiPerson_organization_item () { return new SdaiPerson_organization_item ; }


class SdaiPerson_organization_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiPerson_organization_item);	}
};

inline STEPaggregate * create_SdaiPerson_organization_items () { return new SdaiPerson_organization_items ; }

/////  END SELECT TYPE person_organization_item 


//////////  SELECT TYPE date_time_item
class SdaiDate_time_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION	--  ENTITY_TYPE
	//   CHANGE_REQUEST	--  ENTITY_TYPE
	//   START_REQUEST	--  ENTITY_TYPE
	//   CHANGE	--  ENTITY_TYPE
	//   START_WORK	--  ENTITY_TYPE
	//   APPROVAL_PERSON_ORGANIZATION	--  ENTITY_TYPE
	//   CONTRACT	--  ENTITY_TYPE
	//   SECURITY_CLASSIFICATION	--  ENTITY_TYPE
	//   CERTIFICATION	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiDate_time_item();
	//  part 1
	SdaiDate_time_item( const SdaiProduct_definitionH& );
	SdaiDate_time_item( const SdaiChange_requestH& );
	SdaiDate_time_item( const SdaiStart_requestH& );
	SdaiDate_time_item( const SdaiChangeH& );
	SdaiDate_time_item( const SdaiStart_workH& );
	SdaiDate_time_item( const SdaiApproval_person_organizationH& );
	SdaiDate_time_item( const SdaiContractH& );
	SdaiDate_time_item( const SdaiSecurity_classificationH& );
	SdaiDate_time_item( const SdaiCertificationH& );
	virtual ~SdaiDate_time_item();

	//  part 2
	operator SdaiProduct_definitionH();
	operator SdaiChange_requestH();
	operator SdaiStart_requestH();
	operator SdaiChangeH();
	operator SdaiStart_workH();
	operator SdaiApproval_person_organizationH();
	operator SdaiContractH();
	operator SdaiSecurity_classificationH();
	operator SdaiCertificationH();

	//  part 3
	SdaiSecurity_classification_levelH Security_level() const;
	void Security_level (SdaiSecurity_classification_levelH x);
	SdaiContract_typeH Kind() const;
	void Kind (SdaiContract_typeH x);
	const SdaiText Purpose() const;
	void Purpose (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	SdaiApproval_roleH Role() const;
	void Role (SdaiApproval_roleH x);
	SdaiApprovalH Authorized_approval() const;
	void Authorized_approval (SdaiApprovalH x);
	const SdaiPerson_organization_selectH Person_organization() const;
	void Person_organization (SdaiPerson_organization_selectH x);
	SdaiActionH Assigned_action() const;
	void Assigned_action (SdaiActionH x);
	const SdaiChange_request_itemsH Items() const;
	void Items (SdaiChange_request_itemsH x);
	SdaiVersioned_action_requestH Assigned_action_request() const;
	void Assigned_action_request (SdaiVersioned_action_requestH x);
	SdaiProduct_definition_contextH Frame_of_reference() const;
	void Frame_of_reference (SdaiProduct_definition_contextH x);
	SdaiProduct_definition_formationH Formation() const;
	void Formation (SdaiProduct_definition_formationH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);

	//  part 4
	SdaiDate_time_item& operator =( const SdaiProduct_definitionH& );
	SdaiDate_time_item& operator =( const SdaiChange_requestH& );
	SdaiDate_time_item& operator =( const SdaiStart_requestH& );
	SdaiDate_time_item& operator =( const SdaiChangeH& );
	SdaiDate_time_item& operator =( const SdaiStart_workH& );
	SdaiDate_time_item& operator =( const SdaiApproval_person_organizationH& );
	SdaiDate_time_item& operator =( const SdaiContractH& );
	SdaiDate_time_item& operator =( const SdaiSecurity_classificationH& );
	SdaiDate_time_item& operator =( const SdaiCertificationH& );
	// not in SDAI
	SdaiDate_time_item& ShallowCopy ( const SdaiDate_time_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiDate_time_item& operator =( const SdaiDate_time_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsProduct_definition() const;
	SdaiLogical IsChange_request() const;
	SdaiLogical IsStart_request() const;
	SdaiLogical IsChange() const;
	SdaiLogical IsStart_work() const;
	SdaiLogical IsApproval_person_organization() const;
	SdaiLogical IsContract() const;
	SdaiLogical IsSecurity_classification() const;
	SdaiLogical IsCertification() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiDate_time_item () { return new SdaiDate_time_item ; }


class SdaiDate_time_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiDate_time_item);	}
};

inline STEPaggregate * create_SdaiDate_time_items () { return new SdaiDate_time_items ; }

/////  END SELECT TYPE date_time_item 


//////////  SELECT TYPE shell
class SdaiShell  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   OPEN_SHELL	--  ENTITY_TYPE
	//   CLOSED_SHELL	--  ENTITY_TYPE
	//   VERTEX_SHELL	--  ENTITY_TYPE
	//   WIRE_SHELL	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiShell();
	//  part 1
	SdaiShell( const SdaiOpen_shellH& );
	SdaiShell( const SdaiClosed_shellH& );
	SdaiShell( const SdaiVertex_shellH& );
	SdaiShell( const SdaiWire_shellH& );
	virtual ~SdaiShell();

	//  part 2
	operator SdaiOpen_shellH();
	operator SdaiClosed_shellH();
	operator SdaiVertex_shellH();
	operator SdaiWire_shellH();

	//  part 3
	const EntityAggregateH Wire_shell_extent() const;
	void Wire_shell_extent (EntityAggregateH x);
	SdaiVertex_loopH Vertex_shell_extent() const;
	void Vertex_shell_extent (SdaiVertex_loopH x);
	const EntityAggregateH Cfs_faces() const;
	void Cfs_faces (EntityAggregateH x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiShell& operator =( const SdaiOpen_shellH& );
	SdaiShell& operator =( const SdaiClosed_shellH& );
	SdaiShell& operator =( const SdaiVertex_shellH& );
	SdaiShell& operator =( const SdaiWire_shellH& );
	// not in SDAI
	SdaiShell& ShallowCopy ( const SdaiShell& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiShell& operator =( const SdaiShellH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsOpen_shell() const;
	SdaiLogical IsClosed_shell() const;
	SdaiLogical IsVertex_shell() const;
	SdaiLogical IsWire_shell() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiShell () { return new SdaiShell ; }


class SdaiShells  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiShell);	}
};

inline STEPaggregate * create_SdaiShells () { return new SdaiShells ; }

/////  END SELECT TYPE shell 


//////////  SELECT TYPE transformation
class SdaiTransformation  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   ITEM_DEFINED_TRANSFORMATION	--  ENTITY_TYPE
	//   FUNCTIONALLY_DEFINED_TRANSFORMATION	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiTransformation();
	//  part 1
	SdaiTransformation( const SdaiItem_defined_transformationH& );
	SdaiTransformation( const SdaiFunctionally_defined_transformationH& );
	virtual ~SdaiTransformation();

	//  part 2
	operator SdaiItem_defined_transformationH();
	operator SdaiFunctionally_defined_transformationH();

	//  part 3
	SdaiRepresentation_itemH Transform_item_2() const;
	void Transform_item_2 (SdaiRepresentation_itemH x);
	SdaiRepresentation_itemH Transform_item_1() const;
	void Transform_item_1 (SdaiRepresentation_itemH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiTransformation& operator =( const SdaiItem_defined_transformationH& );
	SdaiTransformation& operator =( const SdaiFunctionally_defined_transformationH& );
	// not in SDAI
	SdaiTransformation& ShallowCopy ( const SdaiTransformation& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiTransformation& operator =( const SdaiTransformationH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsItem_defined_transformation() const;
	SdaiLogical IsFunctionally_defined_transformation() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiTransformation () { return new SdaiTransformation ; }


class SdaiTransformations  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiTransformation);	}
};

inline STEPaggregate * create_SdaiTransformations () { return new SdaiTransformations ; }

/////  END SELECT TYPE transformation 


//////////  SELECT TYPE boolean_operand
class SdaiBoolean_operand  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   SOLID_MODEL	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiBoolean_operand();
	//  part 1
	SdaiBoolean_operand( const SdaiSolid_modelH& );
	virtual ~SdaiBoolean_operand();

	//  part 2
	operator SdaiSolid_modelH();

	//  part 3
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiBoolean_operand& operator =( const SdaiSolid_modelH& );
	// not in SDAI
	SdaiBoolean_operand& ShallowCopy ( const SdaiBoolean_operand& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiBoolean_operand& operator =( const SdaiBoolean_operandH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsSolid_model() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiBoolean_operand () { return new SdaiBoolean_operand ; }


class SdaiBoolean_operands  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiBoolean_operand);	}
};

inline STEPaggregate * create_SdaiBoolean_operands () { return new SdaiBoolean_operands ; }

/////  END SELECT TYPE boolean_operand 


//////////  SELECT TYPE certified_item
class SdaiCertified_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   SUPPLIED_PART_RELATIONSHIP	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiCertified_item();
	//  part 1
	SdaiCertified_item( const SdaiSupplied_part_relationshipH& );
	virtual ~SdaiCertified_item();

	//  part 2
	operator SdaiSupplied_part_relationshipH();

	//  part 3
	SdaiProduct_definitionH Related_product_definition() const;
	void Related_product_definition (SdaiProduct_definitionH x);
	SdaiProduct_definitionH Relating_product_definition() const;
	void Relating_product_definition (SdaiProduct_definitionH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);

	//  part 4
	SdaiCertified_item& operator =( const SdaiSupplied_part_relationshipH& );
	// not in SDAI
	SdaiCertified_item& ShallowCopy ( const SdaiCertified_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiCertified_item& operator =( const SdaiCertified_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsSupplied_part_relationship() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiCertified_item () { return new SdaiCertified_item ; }


class SdaiCertified_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiCertified_item);	}
};

inline STEPaggregate * create_SdaiCertified_items () { return new SdaiCertified_items ; }

/////  END SELECT TYPE certified_item 


//////////  SELECT TYPE date_time_select
class SdaiDate_time_select  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   DATE_AND_TIME	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiDate_time_select();
	//  part 1
	SdaiDate_time_select( const SdaiDate_and_timeH& );
	virtual ~SdaiDate_time_select();

	//  part 2
	operator SdaiDate_and_timeH();

	//  part 3
	SdaiLocal_timeH Time_component() const;
	void Time_component (SdaiLocal_timeH x);
	SdaiDateH Date_component() const;
	void Date_component (SdaiDateH x);

	//  part 4
	SdaiDate_time_select& operator =( const SdaiDate_and_timeH& );
	// not in SDAI
	SdaiDate_time_select& ShallowCopy ( const SdaiDate_time_select& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiDate_time_select& operator =( const SdaiDate_time_selectH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsDate_and_time() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiDate_time_select () { return new SdaiDate_time_select ; }


class SdaiDate_time_selects  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiDate_time_select);	}
};

inline STEPaggregate * create_SdaiDate_time_selects () { return new SdaiDate_time_selects ; }

/////  END SELECT TYPE date_time_select 


//////////  SELECT TYPE curve_on_surface
class SdaiCurve_on_surface  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PCURVE	--  ENTITY_TYPE
	//   SURFACE_CURVE	--  ENTITY_TYPE
	//   COMPOSITE_CURVE_ON_SURFACE	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiCurve_on_surface();
	//  part 1
	SdaiCurve_on_surface( const SdaiPcurveH& );
	SdaiCurve_on_surface( const SdaiSurface_curveH& );
	SdaiCurve_on_surface( const SdaiComposite_curve_on_surfaceH& );
	virtual ~SdaiCurve_on_surface();

	//  part 2
	operator SdaiPcurveH();
	operator SdaiSurface_curveH();
	operator SdaiComposite_curve_on_surfaceH();

	//  part 3
	const LOGICAL Self_intersect() const;
	void Self_intersect (LOGICAL x);
	const EntityAggregateH Segments() const;
	void Segments (EntityAggregateH x);
	const sdaiPreferred_surface_curve_representation Master_representation() const;
	void Master_representation (sdaiPreferred_surface_curve_representation x);
	const SdaiPcurve_or_surfacesH Associated_geometry() const;
	void Associated_geometry (SdaiPcurve_or_surfacesH x);
	SdaiCurveH Curve_3d() const;
	void Curve_3d (SdaiCurveH x);
	SdaiDefinitional_representationH Reference_to_curve() const;
	void Reference_to_curve (SdaiDefinitional_representationH x);
	SdaiSurfaceH Basis_surface() const;
	void Basis_surface (SdaiSurfaceH x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiCurve_on_surface& operator =( const SdaiPcurveH& );
	SdaiCurve_on_surface& operator =( const SdaiSurface_curveH& );
	SdaiCurve_on_surface& operator =( const SdaiComposite_curve_on_surfaceH& );
	// not in SDAI
	SdaiCurve_on_surface& ShallowCopy ( const SdaiCurve_on_surface& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiCurve_on_surface& operator =( const SdaiCurve_on_surfaceH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsPcurve() const;
	SdaiLogical IsSurface_curve() const;
	SdaiLogical IsComposite_curve_on_surface() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiCurve_on_surface () { return new SdaiCurve_on_surface ; }


class SdaiCurve_on_surfaces  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiCurve_on_surface);	}
};

inline STEPaggregate * create_SdaiCurve_on_surfaces () { return new SdaiCurve_on_surfaces ; }

/////  END SELECT TYPE curve_on_surface 


//////////  SELECT TYPE trimming_select
class SdaiTrimming_select  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   CARTESIAN_POINT	--  ENTITY_TYPE
	//   PARAMETER_VALUE	--  REAL_TYPE
	   SdaiReal _sdaireal;
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiTrimming_select();
	//  part 1
	SdaiTrimming_select( const SdaiCartesian_pointH& );
	SdaiTrimming_select( const SdaiParameter_value& );
	virtual ~SdaiTrimming_select();

	//  part 2
	operator SdaiCartesian_pointH();
	operator SdaiParameter_value();

	//  part 3
	const RealAggregateH Coordinates() const;
	void Coordinates (RealAggregateH x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiTrimming_select& operator =( const SdaiCartesian_pointH& );
	SdaiTrimming_select& operator =( const SdaiParameter_value& );
	// not in SDAI
	SdaiTrimming_select& ShallowCopy ( const SdaiTrimming_select& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiTrimming_select& operator =( const SdaiTrimming_selectH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsCartesian_point() const;
	SdaiLogical IsParameter_value() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiTrimming_select () { return new SdaiTrimming_select ; }


class SdaiTrimming_selects  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiTrimming_select);	}
};

inline STEPaggregate * create_SdaiTrimming_selects () { return new SdaiTrimming_selects ; }

/////  END SELECT TYPE trimming_select 


//////////  SELECT TYPE contracted_item
class SdaiContracted_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiContracted_item();
	//  part 1
	SdaiContracted_item( const SdaiProduct_definition_formationH& );
	virtual ~SdaiContracted_item();

	//  part 2
	operator SdaiProduct_definition_formationH();

	//  part 3
	SdaiProductH Of_product() const;
	void Of_product (SdaiProductH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);

	//  part 4
	SdaiContracted_item& operator =( const SdaiProduct_definition_formationH& );
	// not in SDAI
	SdaiContracted_item& ShallowCopy ( const SdaiContracted_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiContracted_item& operator =( const SdaiContracted_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsProduct_definition_formation() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiContracted_item () { return new SdaiContracted_item ; }


class SdaiContracted_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiContracted_item);	}
};

inline STEPaggregate * create_SdaiContracted_items () { return new SdaiContracted_items ; }

/////  END SELECT TYPE contracted_item 


//////////  SELECT TYPE unit
class SdaiUnit  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   NAMED_UNIT	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiUnit();
	//  part 1
	SdaiUnit( const SdaiNamed_unitH& );
	virtual ~SdaiUnit();

	//  part 2
	operator SdaiNamed_unitH();

	//  part 3
	SdaiDimensional_exponentsH Dimensions() const;
	void Dimensions (SdaiDimensional_exponentsH x);

	//  part 4
	SdaiUnit& operator =( const SdaiNamed_unitH& );
	// not in SDAI
	SdaiUnit& ShallowCopy ( const SdaiUnit& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiUnit& operator =( const SdaiUnitH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsNamed_unit() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiUnit () { return new SdaiUnit ; }


class SdaiUnits  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiUnit);	}
};

inline STEPaggregate * create_SdaiUnits () { return new SdaiUnits ; }

/////  END SELECT TYPE unit 


//////////  SELECT TYPE reversible_topology
class SdaiReversible_topology  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   REVERSIBLE_TOPOLOGY_ITEM	--  SELECT_TYPE
	//   LIST_OF_REVERSIBLE_TOPOLOGY_ITEM	--  LIST_TYPE
	//   SET_OF_REVERSIBLE_TOPOLOGY_ITEM	--  SET_TYPE
	   SdaiReversible_topology_items _sdaireversible_topology_items;
	   SdaiReversible_topology_item _sdaireversible_topology_item;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiReversible_topology();
	//  part 1
	SdaiReversible_topology( const SdaiReversible_topology_itemH& );
	SdaiReversible_topology( const SdaiReversible_topology_itemsH& );
	virtual ~SdaiReversible_topology();

	//  part 2
	operator SdaiReversible_topology_itemH();
	operator SdaiSet_of_reversible_topology_itemH ();

	//  part 3

	//  part 4
	SdaiReversible_topology& operator =( const SdaiReversible_topology_itemH& );
	SdaiReversible_topology& operator =( const SdaiReversible_topology_itemsH& );
	// not in SDAI
	SdaiReversible_topology& ShallowCopy ( const SdaiReversible_topology& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiReversible_topology& operator =( const SdaiReversible_topologyH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsReversible_topology_item() const;
	SdaiLogical IsList_of_reversible_topology_item() const;
	SdaiLogical IsSet_of_reversible_topology_item() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7
	const TypeDescriptor *SetUnderlyingType ( const TypeDescriptor * td );
};

inline SdaiSelect * create_SdaiReversible_topology () { return new SdaiReversible_topology ; }


class SdaiReversible_topologys  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiReversible_topology);	}
};

inline STEPaggregate * create_SdaiReversible_topologys () { return new SdaiReversible_topologys ; }

/////  END SELECT TYPE reversible_topology 


//////////  SELECT TYPE work_item
class SdaiWork_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiWork_item();
	//  part 1
	SdaiWork_item( const SdaiProduct_definition_formationH& );
	virtual ~SdaiWork_item();

	//  part 2
	operator SdaiProduct_definition_formationH();

	//  part 3
	SdaiProductH Of_product() const;
	void Of_product (SdaiProductH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);

	//  part 4
	SdaiWork_item& operator =( const SdaiProduct_definition_formationH& );
	// not in SDAI
	SdaiWork_item& ShallowCopy ( const SdaiWork_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiWork_item& operator =( const SdaiWork_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsProduct_definition_formation() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiWork_item () { return new SdaiWork_item ; }


class SdaiWork_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiWork_item);	}
};

inline STEPaggregate * create_SdaiWork_items () { return new SdaiWork_items ; }

/////  END SELECT TYPE work_item 


//////////  SELECT TYPE supported_item
class SdaiSupported_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   ACTION_DIRECTIVE	--  ENTITY_TYPE
	//   ACTION	--  ENTITY_TYPE
	//   ACTION_METHOD	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiSupported_item();
	//  part 1
	SdaiSupported_item( const SdaiAction_directiveH& );
	SdaiSupported_item( const SdaiActionH& );
	SdaiSupported_item( const SdaiAction_methodH& );
	virtual ~SdaiSupported_item();

	//  part 2
	operator SdaiAction_directiveH();
	operator SdaiActionH();
	operator SdaiAction_methodH();

	//  part 3
	const SdaiText Purpose() const;
	void Purpose (const char * x);
	const SdaiText Consequence() const;
	void Consequence (const char * x);
	SdaiAction_methodH Chosen_method() const;
	void Chosen_method (SdaiAction_methodH x);
	const EntityAggregateH Requests() const;
	void Requests (EntityAggregateH x);
	const SdaiText Comment() const;
	void Comment (const char * x);
	const SdaiText Analysis() const;
	void Analysis (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiSupported_item& operator =( const SdaiAction_directiveH& );
	SdaiSupported_item& operator =( const SdaiActionH& );
	SdaiSupported_item& operator =( const SdaiAction_methodH& );
	// not in SDAI
	SdaiSupported_item& ShallowCopy ( const SdaiSupported_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiSupported_item& operator =( const SdaiSupported_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsAction_directive() const;
	SdaiLogical IsAction() const;
	SdaiLogical IsAction_method() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiSupported_item () { return new SdaiSupported_item ; }


class SdaiSupported_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiSupported_item);	}
};

inline STEPaggregate * create_SdaiSupported_items () { return new SdaiSupported_items ; }

/////  END SELECT TYPE supported_item 


//////////  SELECT TYPE approved_item
class SdaiApproved_item  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  ENTITY_TYPE
	//   PRODUCT_DEFINITION	--  ENTITY_TYPE
	//   CONFIGURATION_EFFECTIVITY	--  ENTITY_TYPE
	//   CONFIGURATION_ITEM	--  ENTITY_TYPE
	//   SECURITY_CLASSIFICATION	--  ENTITY_TYPE
	//   CHANGE_REQUEST	--  ENTITY_TYPE
	//   CHANGE	--  ENTITY_TYPE
	//   START_REQUEST	--  ENTITY_TYPE
	//   START_WORK	--  ENTITY_TYPE
	//   CERTIFICATION	--  ENTITY_TYPE
	//   CONTRACT	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiApproved_item();
	//  part 1
	SdaiApproved_item( const SdaiProduct_definition_formationH& );
	SdaiApproved_item( const SdaiProduct_definitionH& );
	SdaiApproved_item( const SdaiConfiguration_effectivityH& );
	SdaiApproved_item( const SdaiConfiguration_itemH& );
	SdaiApproved_item( const SdaiSecurity_classificationH& );
	SdaiApproved_item( const SdaiChange_requestH& );
	SdaiApproved_item( const SdaiChangeH& );
	SdaiApproved_item( const SdaiStart_requestH& );
	SdaiApproved_item( const SdaiStart_workH& );
	SdaiApproved_item( const SdaiCertificationH& );
	SdaiApproved_item( const SdaiContractH& );
	virtual ~SdaiApproved_item();

	//  part 2
	operator SdaiProduct_definition_formationH();
	operator SdaiProduct_definitionH();
	operator SdaiConfiguration_effectivityH();
	operator SdaiConfiguration_itemH();
	operator SdaiSecurity_classificationH();
	operator SdaiChange_requestH();
	operator SdaiChangeH();
	operator SdaiStart_requestH();
	operator SdaiStart_workH();
	operator SdaiCertificationH();
	operator SdaiContractH();

	//  part 3
	SdaiCertification_typeH Kind() const;
	void Kind (SdaiCertification_typeH x);
	SdaiActionH Assigned_action() const;
	void Assigned_action (SdaiActionH x);
	const SdaiChange_request_itemsH Items() const;
	void Items (SdaiChange_request_itemsH x);
	SdaiVersioned_action_requestH Assigned_action_request() const;
	void Assigned_action_request (SdaiVersioned_action_requestH x);
	SdaiSecurity_classification_levelH Security_level() const;
	void Security_level (SdaiSecurity_classification_levelH x);
	const SdaiLabel Purpose() const;
	void Purpose (const char * x);
	SdaiProduct_conceptH Item_concept() const;
	void Item_concept (SdaiProduct_conceptH x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	SdaiConfiguration_designH Configuration() const;
	void Configuration (SdaiConfiguration_designH x);
	SdaiProduct_definition_relationshipH Usage() const;
	void Usage (SdaiProduct_definition_relationshipH x);
	SdaiProduct_definition_contextH Frame_of_reference() const;
	void Frame_of_reference (SdaiProduct_definition_contextH x);
	SdaiProduct_definition_formationH Formation() const;
	void Formation (SdaiProduct_definition_formationH x);
	SdaiProductH Of_product() const;
	void Of_product (SdaiProductH x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiIdentifier Id() const;
	void Id (const char * x);

	//  part 4
	SdaiApproved_item& operator =( const SdaiProduct_definition_formationH& );
	SdaiApproved_item& operator =( const SdaiProduct_definitionH& );
	SdaiApproved_item& operator =( const SdaiConfiguration_effectivityH& );
	SdaiApproved_item& operator =( const SdaiConfiguration_itemH& );
	SdaiApproved_item& operator =( const SdaiSecurity_classificationH& );
	SdaiApproved_item& operator =( const SdaiChange_requestH& );
	SdaiApproved_item& operator =( const SdaiChangeH& );
	SdaiApproved_item& operator =( const SdaiStart_requestH& );
	SdaiApproved_item& operator =( const SdaiStart_workH& );
	SdaiApproved_item& operator =( const SdaiCertificationH& );
	SdaiApproved_item& operator =( const SdaiContractH& );
	// not in SDAI
	SdaiApproved_item& ShallowCopy ( const SdaiApproved_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiApproved_item& operator =( const SdaiApproved_itemH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsProduct_definition_formation() const;
	SdaiLogical IsProduct_definition() const;
	SdaiLogical IsConfiguration_effectivity() const;
	SdaiLogical IsConfiguration_item() const;
	SdaiLogical IsSecurity_classification() const;
	SdaiLogical IsChange_request() const;
	SdaiLogical IsChange() const;
	SdaiLogical IsStart_request() const;
	SdaiLogical IsStart_work() const;
	SdaiLogical IsCertification() const;
	SdaiLogical IsContract() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiApproved_item () { return new SdaiApproved_item ; }


class SdaiApproved_items  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiApproved_item);	}
};

inline STEPaggregate * create_SdaiApproved_items () { return new SdaiApproved_items ; }

/////  END SELECT TYPE approved_item 


//////////  SELECT TYPE surface_model
class SdaiSurface_model  :  public SdaiSelect {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   SHELL_BASED_SURFACE_MODEL	--  ENTITY_TYPE
	   STEPentityH _stepentityh;
/*  	} ;  */  /* unnamed union of select items */

  public:
	virtual const TypeDescriptor * AssignEntity (STEPentity * se);
	virtual SdaiSelect * NewSelect ();


// STEP Part 21
	virtual void STEPwrite_content (ostream& out =G4cout) const;
	virtual Severity STEPread_content (istream& in =cin, InstMgr * instances =0, int addFileId =0);

	virtual Severity StrToVal_content (const char *, InstMgr * instances =0);

// STEP Part 22:  SDAI

// structors
	SdaiSurface_model();
	//  part 1
	SdaiSurface_model( const SdaiShell_based_surface_modelH& );
	virtual ~SdaiSurface_model();

	//  part 2
	operator SdaiShell_based_surface_modelH();

	//  part 3
	const SdaiShellsH Sbsm_boundary() const;
	void Sbsm_boundary (SdaiShellsH x);
	const SdaiLabel Name() const;
	void Name (const char * x);

	//  part 4
	SdaiSurface_model& operator =( const SdaiShell_based_surface_modelH& );
	// not in SDAI
	SdaiSurface_model& ShallowCopy ( const SdaiSurface_model& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiSurface_model& operator =( const SdaiSurface_modelH& );
	SdaiSelect& operator =( const SdaiSelect& );
#endif

	//  part 5
	SdaiLogical IsShell_based_surface_model() const;

	//  part 6 ... UnderlyingTypeName () implemented in SdaiSelect class ...

	//  part 7 ... NONE	only for complex selects...
};

inline SdaiSelect * create_SdaiSurface_model () { return new SdaiSurface_model ; }


class SdaiSurface_models  :  public  SelectAggregate  {
  public:
	virtual SingleLinkNode * NewNode ()  {
	  return new SelectNode (new SdaiSurface_model);	}
};

inline STEPaggregate * create_SdaiSurface_models () { return new SdaiSurface_models ; }

/////  END SELECT TYPE surface_model 


/*	**************  ENTITIES  	*/

//	***** Print Entity Classes  	

/////////	 ENTITY representation_item 

extern AttrDescriptor *a_0name;

class SdaiRepresentation_item  :    public STEPentity {
  protected:
	SdaiString _name ;
  public:  

	SdaiRepresentation_item ( ); 
	SdaiRepresentation_item (STEPentity *se ); 
	SdaiRepresentation_item (SdaiRepresentation_item& e ); 
	~SdaiRepresentation_item ();
	int opcode ()  { return 0 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
};
inline SdaiRepresentation_item *
create_SdaiRepresentation_item () {  return  new SdaiRepresentation_item ;  }

/////////	 END_ENTITY representation_item 


/////////	 ENTITY geometric_representation_item 

extern AttrDescriptor *a_1Ddim;

class SdaiGeometric_representation_item  :    public SdaiRepresentation_item  {
   protected:
  public:  

	SdaiGeometric_representation_item ( ); 
	SdaiGeometric_representation_item (STEPentity *se ); 
	SdaiGeometric_representation_item (SdaiGeometric_representation_item& e ); 
	~SdaiGeometric_representation_item ();
	int opcode ()  { return 1 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiGeometric_representation_item *
create_SdaiGeometric_representation_item () {  return  new SdaiGeometric_representation_item ;  }

/////////	 END_ENTITY geometric_representation_item 


/////////	 ENTITY functionally_defined_transformation 

extern AttrDescriptor *a_2name;
extern AttrDescriptor *a_3description;

class SdaiFunctionally_defined_transformation  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
  public:  

	SdaiFunctionally_defined_transformation ( ); 
	SdaiFunctionally_defined_transformation (STEPentity *se ); 
	SdaiFunctionally_defined_transformation (SdaiFunctionally_defined_transformation& e ); 
	~SdaiFunctionally_defined_transformation ();
	int opcode ()  { return 2 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
};
inline SdaiFunctionally_defined_transformation *
create_SdaiFunctionally_defined_transformation () {  return  new SdaiFunctionally_defined_transformation ;  }

/////////	 END_ENTITY functionally_defined_transformation 


/////////	 ENTITY cartesian_transformation_operator 

extern AttrDescriptor *a_4axis1;
extern AttrDescriptor *a_5axis2;
extern AttrDescriptor *a_6local_origin;
extern AttrDescriptor *a_7scale;
extern AttrDescriptor *a_8Dscl;

class SdaiCartesian_transformation_operator  :    public SdaiGeometric_representation_item  {
   protected:
	SdaiDirectionH _axis1 ;    //  OPTIONAL
	SdaiDirectionH _axis2 ;    //  OPTIONAL
	SdaiCartesian_pointH _local_origin ;
	SdaiReal _scale ;    //  OPTIONAL
  public:  

	SdaiCartesian_transformation_operator ( ); 
	SdaiCartesian_transformation_operator (STEPentity *se ); 
	SdaiCartesian_transformation_operator (SdaiCartesian_transformation_operator& e ); 
	~SdaiCartesian_transformation_operator ();
	int opcode ()  { return 3 ; } 
	SdaiDirectionH Axis1() const;
	void Axis1 (SdaiDirectionH x);
	SdaiDirectionH Axis2() const;
	void Axis2 (SdaiDirectionH x);
	SdaiCartesian_pointH Local_origin() const;
	void Local_origin (SdaiCartesian_pointH x);
	const SdaiReal Scale() const;
	void Scale (SdaiReal x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);

#endif
};
inline SdaiCartesian_transformation_operator *
create_SdaiCartesian_transformation_operator () {  return  new SdaiCartesian_transformation_operator ;  }

/////////	 END_ENTITY cartesian_transformation_operator 


/////////	 ENTITY cartesian_transformation_operator_3d 

extern AttrDescriptor *a_9axis3;
extern AttrDescriptor *a_10Du;

class SdaiCartesian_transformation_operator_3d  :    public SdaiCartesian_transformation_operator  {
   protected:
	SdaiDirectionH _axis3 ;    //  OPTIONAL
  public:  

	SdaiCartesian_transformation_operator_3d ( ); 
	SdaiCartesian_transformation_operator_3d (STEPentity *se ); 
	SdaiCartesian_transformation_operator_3d (SdaiCartesian_transformation_operator_3d& e ); 
	~SdaiCartesian_transformation_operator_3d ();
	int opcode ()  { return 4 ; } 
	SdaiDirectionH Axis3() const;
	void Axis3 (SdaiDirectionH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCartesian_transformation_operator_3d *
create_SdaiCartesian_transformation_operator_3d () {  return  new SdaiCartesian_transformation_operator_3d ;  }

/////////	 END_ENTITY cartesian_transformation_operator_3d 


/////////	 ENTITY versioned_action_request 

extern AttrDescriptor *a_11id;
extern AttrDescriptor *a_12version;
extern AttrDescriptor *a_13purpose;
extern AttrDescriptor *a_14description;

class SdaiVersioned_action_request  :    public STEPentity {
  protected:
	SdaiString _id ;
	SdaiString _version ;
	SdaiString _purpose ;
	SdaiString _description ;
  public:  

	SdaiVersioned_action_request ( ); 
	SdaiVersioned_action_request (STEPentity *se ); 
	SdaiVersioned_action_request (SdaiVersioned_action_request& e ); 
	~SdaiVersioned_action_request ();
	int opcode ()  { return 5 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	const SdaiLabel Version() const;
	void Version (const char * x);
	const SdaiText Purpose() const;
	void Purpose (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
};
inline SdaiVersioned_action_request *
create_SdaiVersioned_action_request () {  return  new SdaiVersioned_action_request ;  }

/////////	 END_ENTITY versioned_action_request 


/////////	 ENTITY representation 

extern AttrDescriptor *a_15name;
extern AttrDescriptor *a_16items;
extern AttrDescriptor *a_17context_of_items;

class SdaiRepresentation  :    public STEPentity {
  protected:
	SdaiString _name ;
	EntityAggregate _items ;	  //  of  representation_item

	SdaiRepresentation_contextH _context_of_items ;
  public:  

	SdaiRepresentation ( ); 
	SdaiRepresentation (STEPentity *se ); 
	SdaiRepresentation (SdaiRepresentation& e ); 
	~SdaiRepresentation ();
	int opcode ()  { return 6 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const EntityAggregateH Items() const;
	void Items (EntityAggregateH x);
	SdaiRepresentation_contextH Context_of_items() const;
	void Context_of_items (SdaiRepresentation_contextH x);
};
inline SdaiRepresentation *
create_SdaiRepresentation () {  return  new SdaiRepresentation ;  }

/////////	 END_ENTITY representation 


/////////	 ENTITY shape_representation 


class SdaiShape_representation  :    public SdaiRepresentation  {
   protected:
  public:  

	SdaiShape_representation ( ); 
	SdaiShape_representation (STEPentity *se ); 
	SdaiShape_representation (SdaiShape_representation& e ); 
	~SdaiShape_representation ();
	int opcode ()  { return 7 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiShape_representation *
create_SdaiShape_representation () {  return  new SdaiShape_representation ;  }

/////////	 END_ENTITY shape_representation 


/////////	 ENTITY manifold_surface_shape_representation 


class SdaiManifold_surface_shape_representation  :    public SdaiShape_representation  {
   protected:
  public:  

	SdaiManifold_surface_shape_representation ( ); 
	SdaiManifold_surface_shape_representation (STEPentity *se ); 
	SdaiManifold_surface_shape_representation (SdaiManifold_surface_shape_representation& e ); 
	~SdaiManifold_surface_shape_representation ();
	int opcode ()  { return 8 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiManifold_surface_shape_representation *
create_SdaiManifold_surface_shape_representation () {  return  new SdaiManifold_surface_shape_representation ;  }

/////////	 END_ENTITY manifold_surface_shape_representation 


/////////	 ENTITY certification 

extern AttrDescriptor *a_18name;
extern AttrDescriptor *a_19purpose;
extern AttrDescriptor *a_20kind;

class SdaiCertification  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _purpose ;
	SdaiCertification_typeH _kind ;
  public:  

	SdaiCertification ( ); 
	SdaiCertification (STEPentity *se ); 
	SdaiCertification (SdaiCertification& e ); 
	~SdaiCertification ();
	int opcode ()  { return 9 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Purpose() const;
	void Purpose (const char * x);
	SdaiCertification_typeH Kind() const;
	void Kind (SdaiCertification_typeH x);
};
inline SdaiCertification *
create_SdaiCertification () {  return  new SdaiCertification ;  }

/////////	 END_ENTITY certification 


/////////	 ENTITY product_definition_relationship 

extern AttrDescriptor *a_21id;
extern AttrDescriptor *a_22name;
extern AttrDescriptor *a_23description;
extern AttrDescriptor *a_24relating_product_definition;
extern AttrDescriptor *a_25related_product_definition;

class SdaiProduct_definition_relationship  :    public STEPentity {
  protected:
	SdaiString _id ;
	SdaiString _name ;
	SdaiString _description ;
	SdaiProduct_definitionH _relating_product_definition ;
	SdaiProduct_definitionH _related_product_definition ;
  public:  

	SdaiProduct_definition_relationship ( ); 
	SdaiProduct_definition_relationship (STEPentity *se ); 
	SdaiProduct_definition_relationship (SdaiProduct_definition_relationship& e ); 
	~SdaiProduct_definition_relationship ();
	int opcode ()  { return 10 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiProduct_definitionH Relating_product_definition() const;
	void Relating_product_definition (SdaiProduct_definitionH x);
	SdaiProduct_definitionH Related_product_definition() const;
	void Related_product_definition (SdaiProduct_definitionH x);
};
inline SdaiProduct_definition_relationship *
create_SdaiProduct_definition_relationship () {  return  new SdaiProduct_definition_relationship ;  }

/////////	 END_ENTITY product_definition_relationship 


/////////	 ENTITY product_definition_usage 


class SdaiProduct_definition_usage  :    public SdaiProduct_definition_relationship  {
   protected:
  public:  

	SdaiProduct_definition_usage ( ); 
	SdaiProduct_definition_usage (STEPentity *se ); 
	SdaiProduct_definition_usage (SdaiProduct_definition_usage& e ); 
	~SdaiProduct_definition_usage ();
	int opcode ()  { return 11 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiProduct_definition_usage *
create_SdaiProduct_definition_usage () {  return  new SdaiProduct_definition_usage ;  }

/////////	 END_ENTITY product_definition_usage 


/////////	 ENTITY assembly_component_usage 

extern AttrDescriptor *a_26reference_designator;

class SdaiAssembly_component_usage  :    public SdaiProduct_definition_usage  {
   protected:
	SdaiString _reference_designator ;    //  OPTIONAL
  public:  

	SdaiAssembly_component_usage ( ); 
	SdaiAssembly_component_usage (STEPentity *se ); 
	SdaiAssembly_component_usage (SdaiAssembly_component_usage& e ); 
	~SdaiAssembly_component_usage ();
	int opcode ()  { return 12 ; } 
	const SdaiIdentifier Reference_designator() const;
	void Reference_designator (const char * x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiAssembly_component_usage *
create_SdaiAssembly_component_usage () {  return  new SdaiAssembly_component_usage ;  }

/////////	 END_ENTITY assembly_component_usage 


/////////	 ENTITY quantified_assembly_component_usage 

extern AttrDescriptor *a_27quantity;

class SdaiQuantified_assembly_component_usage  :    public SdaiAssembly_component_usage  {
   protected:
	SdaiMeasure_with_unitH _quantity ;
  public:  

	SdaiQuantified_assembly_component_usage ( ); 
	SdaiQuantified_assembly_component_usage (STEPentity *se ); 
	SdaiQuantified_assembly_component_usage (SdaiQuantified_assembly_component_usage& e ); 
	~SdaiQuantified_assembly_component_usage ();
	int opcode ()  { return 13 ; } 
	SdaiMeasure_with_unitH Quantity() const;
	void Quantity (SdaiMeasure_with_unitH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiQuantified_assembly_component_usage *
create_SdaiQuantified_assembly_component_usage () {  return  new SdaiQuantified_assembly_component_usage ;  }

/////////	 END_ENTITY quantified_assembly_component_usage 


/////////	 ENTITY solid_model 


class SdaiSolid_model  :    public SdaiGeometric_representation_item  {
   protected:
  public:  

	SdaiSolid_model ( ); 
	SdaiSolid_model (STEPentity *se ); 
	SdaiSolid_model (SdaiSolid_model& e ); 
	~SdaiSolid_model ();
	int opcode ()  { return 14 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSolid_model *
create_SdaiSolid_model () {  return  new SdaiSolid_model ;  }

/////////	 END_ENTITY solid_model 


/////////	 ENTITY manifold_solid_brep 

extern AttrDescriptor *a_28outer;

class SdaiManifold_solid_brep  :    public SdaiSolid_model  {
   protected:
	SdaiClosed_shellH _outer ;
  public:  

	SdaiManifold_solid_brep ( ); 
	SdaiManifold_solid_brep (STEPentity *se ); 
	SdaiManifold_solid_brep (SdaiManifold_solid_brep& e ); 
	~SdaiManifold_solid_brep ();
	int opcode ()  { return 15 ; } 
	SdaiClosed_shellH Outer() const;
	void Outer (SdaiClosed_shellH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiManifold_solid_brep *
create_SdaiManifold_solid_brep () {  return  new SdaiManifold_solid_brep ;  }

/////////	 END_ENTITY manifold_solid_brep 


/////////	 ENTITY faceted_brep 


class SdaiFaceted_brep  :    public SdaiManifold_solid_brep  {
   protected:
  public:  

	SdaiFaceted_brep ( ); 
	SdaiFaceted_brep (STEPentity *se ); 
	SdaiFaceted_brep (SdaiFaceted_brep& e ); 
	~SdaiFaceted_brep ();
	int opcode ()  { return 16 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiFaceted_brep *
create_SdaiFaceted_brep () {  return  new SdaiFaceted_brep ;  }

/////////	 END_ENTITY faceted_brep 


/////////	 ENTITY action_directive 

extern AttrDescriptor *a_29name;
extern AttrDescriptor *a_30description;
extern AttrDescriptor *a_31analysis;
extern AttrDescriptor *a_32comment;
extern AttrDescriptor *a_33requests;

class SdaiAction_directive  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiString _analysis ;
	SdaiString _comment ;
	EntityAggregate _requests ;	  //  of  versioned_action_request

  public:  

	SdaiAction_directive ( ); 
	SdaiAction_directive (STEPentity *se ); 
	SdaiAction_directive (SdaiAction_directive& e ); 
	~SdaiAction_directive ();
	int opcode ()  { return 17 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiText Analysis() const;
	void Analysis (const char * x);
	const SdaiText Comment() const;
	void Comment (const char * x);
	const EntityAggregateH Requests() const;
	void Requests (EntityAggregateH x);
};
inline SdaiAction_directive *
create_SdaiAction_directive () {  return  new SdaiAction_directive ;  }

/////////	 END_ENTITY action_directive 


/////////	 ENTITY named_unit 

extern AttrDescriptor *a_34dimensions;

class SdaiNamed_unit  :    public STEPentity {
  protected:
	SdaiDimensional_exponentsH _dimensions ;
  public:  

	SdaiNamed_unit ( ); 
	SdaiNamed_unit (STEPentity *se ); 
	SdaiNamed_unit (SdaiNamed_unit& e ); 
	~SdaiNamed_unit ();
	int opcode ()  { return 18 ; } 
	SdaiDimensional_exponentsH Dimensions() const;
	void Dimensions (SdaiDimensional_exponentsH x);
};
inline SdaiNamed_unit *
create_SdaiNamed_unit () {  return  new SdaiNamed_unit ;  }

/////////	 END_ENTITY named_unit 


/////////	 ENTITY plane_angle_unit 


class SdaiPlane_angle_unit  :    public SdaiNamed_unit  {
   protected:
  public:  

	SdaiPlane_angle_unit ( ); 
	SdaiPlane_angle_unit (STEPentity *se ); 
	SdaiPlane_angle_unit (SdaiPlane_angle_unit& e ); 
	~SdaiPlane_angle_unit ();
	int opcode ()  { return 19 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPlane_angle_unit *
create_SdaiPlane_angle_unit () {  return  new SdaiPlane_angle_unit ;  }

/////////	 END_ENTITY plane_angle_unit 


/////////	 ENTITY measure_with_unit 

extern AttrDescriptor *a_35value_component;
extern AttrDescriptor *a_36unit_component;

class SdaiMeasure_with_unit  :    public STEPentity {
  protected:
	SdaiMeasure_value _value_component ;
	SdaiUnit _unit_component ;
  public:  

	SdaiMeasure_with_unit ( ); 
	SdaiMeasure_with_unit (STEPentity *se ); 
	SdaiMeasure_with_unit (SdaiMeasure_with_unit& e ); 
	~SdaiMeasure_with_unit ();
	int opcode ()  { return 20 ; } 
	const SdaiMeasure_valueH Value_component() const;
	void Value_component (SdaiMeasure_valueH x);
	const SdaiUnitH Unit_component() const;
	void Unit_component (SdaiUnitH x);
};
inline SdaiMeasure_with_unit *
create_SdaiMeasure_with_unit () {  return  new SdaiMeasure_with_unit ;  }

/////////	 END_ENTITY measure_with_unit 


/////////	 ENTITY area_measure_with_unit 


class SdaiArea_measure_with_unit  :    public SdaiMeasure_with_unit  {
   protected:
  public:  

	SdaiArea_measure_with_unit ( ); 
	SdaiArea_measure_with_unit (STEPentity *se ); 
	SdaiArea_measure_with_unit (SdaiArea_measure_with_unit& e ); 
	~SdaiArea_measure_with_unit ();
	int opcode ()  { return 21 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiArea_measure_with_unit *
create_SdaiArea_measure_with_unit () {  return  new SdaiArea_measure_with_unit ;  }

/////////	 END_ENTITY area_measure_with_unit 


/////////	 ENTITY effectivity 

extern AttrDescriptor *a_37id;

class SdaiEffectivity  :    public STEPentity {
  protected:
	SdaiString _id ;
  public:  

	SdaiEffectivity ( ); 
	SdaiEffectivity (STEPentity *se ); 
	SdaiEffectivity (SdaiEffectivity& e ); 
	~SdaiEffectivity ();
	int opcode ()  { return 22 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
};
inline SdaiEffectivity *
create_SdaiEffectivity () {  return  new SdaiEffectivity ;  }

/////////	 END_ENTITY effectivity 


/////////	 ENTITY serial_numbered_effectivity 

extern AttrDescriptor *a_38effectivity_start_id;
extern AttrDescriptor *a_39effectivity_end_id;

class SdaiSerial_numbered_effectivity  :    public SdaiEffectivity  {
   protected:
	SdaiString _effectivity_start_id ;
	SdaiString _effectivity_end_id ;    //  OPTIONAL
  public:  

	SdaiSerial_numbered_effectivity ( ); 
	SdaiSerial_numbered_effectivity (STEPentity *se ); 
	SdaiSerial_numbered_effectivity (SdaiSerial_numbered_effectivity& e ); 
	~SdaiSerial_numbered_effectivity ();
	int opcode ()  { return 23 ; } 
	const SdaiIdentifier Effectivity_start_id() const;
	void Effectivity_start_id (const char * x);
	const SdaiIdentifier Effectivity_end_id() const;
	void Effectivity_end_id (const char * x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSerial_numbered_effectivity *
create_SdaiSerial_numbered_effectivity () {  return  new SdaiSerial_numbered_effectivity ;  }

/////////	 END_ENTITY serial_numbered_effectivity 


/////////	 ENTITY surface 


class SdaiSurface  :    public SdaiGeometric_representation_item  {
   protected:
  public:  

	SdaiSurface ( ); 
	SdaiSurface (STEPentity *se ); 
	SdaiSurface (SdaiSurface& e ); 
	~SdaiSurface ();
	int opcode ()  { return 24 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSurface *
create_SdaiSurface () {  return  new SdaiSurface ;  }

/////////	 END_ENTITY surface 


/////////	 ENTITY offset_surface 

extern AttrDescriptor *a_40basis_surface;
extern AttrDescriptor *a_41distance;
extern AttrDescriptor *a_42self_intersect;

class SdaiOffset_surface  :    public SdaiSurface  {
   protected:
	SdaiSurfaceH _basis_surface ;
	SdaiReal _distance ;
	SdaiLogical _self_intersect ;
  public:  

	SdaiOffset_surface ( ); 
	SdaiOffset_surface (STEPentity *se ); 
	SdaiOffset_surface (SdaiOffset_surface& e ); 
	~SdaiOffset_surface ();
	int opcode ()  { return 25 ; } 
	SdaiSurfaceH Basis_surface() const;
	void Basis_surface (SdaiSurfaceH x);
	const SdaiLength_measure Distance() const;
	void Distance (SdaiLength_measure x);
	const LOGICAL Self_intersect() const;
	void Self_intersect (LOGICAL x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOffset_surface *
create_SdaiOffset_surface () {  return  new SdaiOffset_surface ;  }

/////////	 END_ENTITY offset_surface 


/////////	 ENTITY placement 

extern AttrDescriptor *a_43location;

class SdaiPlacement  :    public SdaiGeometric_representation_item  {
   protected:
	SdaiCartesian_pointH _location ;
  public:  

	SdaiPlacement ( ); 
	SdaiPlacement (STEPentity *se ); 
	SdaiPlacement (SdaiPlacement& e ); 
	~SdaiPlacement ();
	int opcode ()  { return 26 ; } 
	SdaiCartesian_pointH Location() const;
	void Location (SdaiCartesian_pointH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPlacement *
create_SdaiPlacement () {  return  new SdaiPlacement ;  }

/////////	 END_ENTITY placement 


/////////	 ENTITY axis2_placement_2d 

extern AttrDescriptor *a_44ref_direction;
extern AttrDescriptor *a_45Dp;

class SdaiAxis2_placement_2d  :    public SdaiPlacement  {
   protected:
	SdaiDirectionH _ref_direction ;    //  OPTIONAL
  public:  

	SdaiAxis2_placement_2d ( ); 
	SdaiAxis2_placement_2d (STEPentity *se ); 
	SdaiAxis2_placement_2d (SdaiAxis2_placement_2d& e ); 
	~SdaiAxis2_placement_2d ();
	int opcode ()  { return 27 ; } 
	SdaiDirectionH Ref_direction() const;
	void Ref_direction (SdaiDirectionH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiAxis2_placement_2d *
create_SdaiAxis2_placement_2d () {  return  new SdaiAxis2_placement_2d ;  }

/////////	 END_ENTITY axis2_placement_2d 


/////////	 ENTITY product_category 

extern AttrDescriptor *a_46name;
extern AttrDescriptor *a_47description;

class SdaiProduct_category  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;    //  OPTIONAL
  public:  

	SdaiProduct_category ( ); 
	SdaiProduct_category (STEPentity *se ); 
	SdaiProduct_category (SdaiProduct_category& e ); 
	~SdaiProduct_category ();
	int opcode ()  { return 28 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
};
inline SdaiProduct_category *
create_SdaiProduct_category () {  return  new SdaiProduct_category ;  }

/////////	 END_ENTITY product_category 


/////////	 ENTITY product_related_product_category 

extern AttrDescriptor *a_48products;

class SdaiProduct_related_product_category  :    public SdaiProduct_category  {
   protected:
	EntityAggregate _products ;	  //  of  product

  public:  

	SdaiProduct_related_product_category ( ); 
	SdaiProduct_related_product_category (STEPentity *se ); 
	SdaiProduct_related_product_category (SdaiProduct_related_product_category& e ); 
	~SdaiProduct_related_product_category ();
	int opcode ()  { return 29 ; } 
	const EntityAggregateH Products() const;
	void Products (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiProduct_related_product_category *
create_SdaiProduct_related_product_category () {  return  new SdaiProduct_related_product_category ;  }

/////////	 END_ENTITY product_related_product_category 


/////////	 ENTITY curve 


class SdaiCurve  :    public SdaiGeometric_representation_item  {
   protected:
  public:  

	SdaiCurve ( ); 
	SdaiCurve (STEPentity *se ); 
	SdaiCurve (SdaiCurve& e ); 
	~SdaiCurve ();
	int opcode ()  { return 30 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCurve *
create_SdaiCurve () {  return  new SdaiCurve ;  }

/////////	 END_ENTITY curve 


/////////	 ENTITY conic 

extern AttrDescriptor *a_49position;

class SdaiConic  :    public SdaiCurve  {
   protected:
	SdaiAxis2_placement _position ;
  public:  

	SdaiConic ( ); 
	SdaiConic (STEPentity *se ); 
	SdaiConic (SdaiConic& e ); 
	~SdaiConic ();
	int opcode ()  { return 31 ; } 
	const SdaiAxis2_placementH Position() const;
	void Position (SdaiAxis2_placementH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiConic *
create_SdaiConic () {  return  new SdaiConic ;  }

/////////	 END_ENTITY conic 


/////////	 ENTITY hyperbola 

extern AttrDescriptor *a_50semi_axis;
extern AttrDescriptor *a_51semi_imag_axis;

class SdaiHyperbola  :    public SdaiConic  {
   protected:
	SdaiReal _semi_axis ;
	SdaiReal _semi_imag_axis ;
  public:  

	SdaiHyperbola ( ); 
	SdaiHyperbola (STEPentity *se ); 
	SdaiHyperbola (SdaiHyperbola& e ); 
	~SdaiHyperbola ();
	int opcode ()  { return 32 ; } 
	const SdaiPositive_length_measure Semi_axis() const;
	void Semi_axis (SdaiPositive_length_measure x);
	const SdaiPositive_length_measure Semi_imag_axis() const;
	void Semi_imag_axis (SdaiPositive_length_measure x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiHyperbola *
create_SdaiHyperbola () {  return  new SdaiHyperbola ;  }

/////////	 END_ENTITY hyperbola 


/////////	 ENTITY address 

extern AttrDescriptor *a_52internal_location;
extern AttrDescriptor *a_53street_number;
extern AttrDescriptor *a_54street;
extern AttrDescriptor *a_55postal_box;
extern AttrDescriptor *a_56town;
extern AttrDescriptor *a_57region;
extern AttrDescriptor *a_58postal_code;
extern AttrDescriptor *a_59country;
extern AttrDescriptor *a_60facsimile_number;
extern AttrDescriptor *a_61telephone_number;
extern AttrDescriptor *a_62electronic_mail_address;
extern AttrDescriptor *a_63telex_number;

class SdaiAddress  :    public STEPentity {
  protected:
	SdaiString _internal_location ;    //  OPTIONAL
	SdaiString _street_number ;    //  OPTIONAL
	SdaiString _street ;    //  OPTIONAL
	SdaiString _postal_box ;    //  OPTIONAL
	SdaiString _town ;    //  OPTIONAL
	SdaiString _region ;    //  OPTIONAL
	SdaiString _postal_code ;    //  OPTIONAL
	SdaiString _country ;    //  OPTIONAL
	SdaiString _facsimile_number ;    //  OPTIONAL
	SdaiString _telephone_number ;    //  OPTIONAL
	SdaiString _electronic_mail_address ;    //  OPTIONAL
	SdaiString _telex_number ;    //  OPTIONAL
  public:  

	SdaiAddress ( ); 
	SdaiAddress (STEPentity *se ); 
	SdaiAddress (SdaiAddress& e ); 
	~SdaiAddress ();
	int opcode ()  { return 33 ; } 
	const SdaiLabel Internal_location() const;
	void Internal_location (const char * x);
	const SdaiLabel Street_number() const;
	void Street_number (const char * x);
	const SdaiLabel Street() const;
	void Street (const char * x);
	const SdaiLabel Postal_box() const;
	void Postal_box (const char * x);
	const SdaiLabel Town() const;
	void Town (const char * x);
	const SdaiLabel Region() const;
	void Region (const char * x);
	const SdaiLabel Postal_code() const;
	void Postal_code (const char * x);
	const SdaiLabel Country() const;
	void Country (const char * x);
	const SdaiLabel Facsimile_number() const;
	void Facsimile_number (const char * x);
	const SdaiLabel Telephone_number() const;
	void Telephone_number (const char * x);
	const SdaiLabel Electronic_mail_address() const;
	void Electronic_mail_address (const char * x);
	const SdaiLabel Telex_number() const;
	void Telex_number (const char * x);
};
inline SdaiAddress *
create_SdaiAddress () {  return  new SdaiAddress ;  }

/////////	 END_ENTITY address 


/////////	 ENTITY organizational_address 

extern AttrDescriptor *a_64organizations;
extern AttrDescriptor *a_65description;

class SdaiOrganizational_address  :    public SdaiAddress  {
   protected:
	EntityAggregate _organizations ;	  //  of  organization

	SdaiString _description ;
  public:  

	SdaiOrganizational_address ( ); 
	SdaiOrganizational_address (STEPentity *se ); 
	SdaiOrganizational_address (SdaiOrganizational_address& e ); 
	~SdaiOrganizational_address ();
	int opcode ()  { return 34 ; } 
	const EntityAggregateH Organizations() const;
	void Organizations (EntityAggregateH x);
	const SdaiText Description() const;
	void Description (const char * x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOrganizational_address *
create_SdaiOrganizational_address () {  return  new SdaiOrganizational_address ;  }

/////////	 END_ENTITY organizational_address 


/////////	 ENTITY bounded_surface 


class SdaiBounded_surface  :    public SdaiSurface  {
   protected:
  public:  

	SdaiBounded_surface ( ); 
	SdaiBounded_surface (STEPentity *se ); 
	SdaiBounded_surface (SdaiBounded_surface& e ); 
	~SdaiBounded_surface ();
	int opcode ()  { return 35 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiBounded_surface *
create_SdaiBounded_surface () {  return  new SdaiBounded_surface ;  }

/////////	 END_ENTITY bounded_surface 


/////////	 ENTITY b_spline_surface 

extern AttrDescriptor *a_66u_degree;
extern AttrDescriptor *a_67v_degree;
extern AttrDescriptor *a_68control_points_list;
extern AttrDescriptor *a_69surface_form;
extern AttrDescriptor *a_70u_closed;
extern AttrDescriptor *a_71v_closed;
extern AttrDescriptor *a_72self_intersect;
extern AttrDescriptor *a_73Du_upper;
extern AttrDescriptor *a_74Dv_upper;
extern AttrDescriptor *a_75Dcontrol_points;

class SdaiB_spline_surface  :    public SdaiBounded_surface  {
   protected:
	SdaiInteger _u_degree ;
	SdaiInteger _v_degree ;
	GenericAggregate _control_points_list ;	  //  of  cartesian_point

	SdaiB_spline_surface_form _surface_form ;
	SdaiLogical _u_closed ;
	SdaiLogical _v_closed ;
	SdaiLogical _self_intersect ;
  public:  

	SdaiB_spline_surface ( ); 
	SdaiB_spline_surface (STEPentity *se ); 
	SdaiB_spline_surface (SdaiB_spline_surface& e ); 
	~SdaiB_spline_surface ();
	int opcode ()  { return 36 ; } 
	const SdaiInteger U_degree() const;
	void U_degree (SdaiInteger x);
	const SdaiInteger V_degree() const;
	void V_degree (SdaiInteger x);
	const GenericAggregateH Control_points_list() const;
	void Control_points_list (GenericAggregateH x);
	const sdaiB_spline_surface_form Surface_form() const;
	void Surface_form (sdaiB_spline_surface_form x);
	const LOGICAL U_closed() const;
	void U_closed (LOGICAL x);
	const LOGICAL V_closed() const;
	void V_closed (LOGICAL x);
	const LOGICAL Self_intersect() const;
	void Self_intersect (LOGICAL x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiB_spline_surface *
create_SdaiB_spline_surface () {  return  new SdaiB_spline_surface ;  }

/////////	 END_ENTITY b_spline_surface 


/////////	 ENTITY uniform_surface 


class SdaiUniform_surface  :    public SdaiB_spline_surface  {
   protected:
  public:  

	SdaiUniform_surface ( ); 
	SdaiUniform_surface (STEPentity *se ); 
	SdaiUniform_surface (SdaiUniform_surface& e ); 
	~SdaiUniform_surface ();
	int opcode ()  { return 37 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiUniform_surface *
create_SdaiUniform_surface () {  return  new SdaiUniform_surface ;  }

/////////	 END_ENTITY uniform_surface 


/////////	 ENTITY geometrically_bounded_surface_shape_representation 


class SdaiGeometrically_bounded_surface_shape_representation  :    public SdaiShape_representation  {
   protected:
  public:  

	SdaiGeometrically_bounded_surface_shape_representation ( ); 
	SdaiGeometrically_bounded_surface_shape_representation (STEPentity *se ); 
	SdaiGeometrically_bounded_surface_shape_representation (SdaiGeometrically_bounded_surface_shape_representation& e ); 
	~SdaiGeometrically_bounded_surface_shape_representation ();
	int opcode ()  { return 38 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiGeometrically_bounded_surface_shape_representation *
create_SdaiGeometrically_bounded_surface_shape_representation () {  return  new SdaiGeometrically_bounded_surface_shape_representation ;  }

/////////	 END_ENTITY geometrically_bounded_surface_shape_representation 


/////////	 ENTITY axis1_placement 

extern AttrDescriptor *a_76axis;
extern AttrDescriptor *a_77Dz;

class SdaiAxis1_placement  :    public SdaiPlacement  {
   protected:
	SdaiDirectionH _axis ;    //  OPTIONAL
  public:  

	SdaiAxis1_placement ( ); 
	SdaiAxis1_placement (STEPentity *se ); 
	SdaiAxis1_placement (SdaiAxis1_placement& e ); 
	~SdaiAxis1_placement ();
	int opcode ()  { return 39 ; } 
	SdaiDirectionH Axis() const;
	void Axis (SdaiDirectionH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiAxis1_placement *
create_SdaiAxis1_placement () {  return  new SdaiAxis1_placement ;  }

/////////	 END_ENTITY axis1_placement 


/////////	 ENTITY bounded_curve 


class SdaiBounded_curve  :    public SdaiCurve  {
   protected:
  public:  

	SdaiBounded_curve ( ); 
	SdaiBounded_curve (STEPentity *se ); 
	SdaiBounded_curve (SdaiBounded_curve& e ); 
	~SdaiBounded_curve ();
	int opcode ()  { return 40 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiBounded_curve *
create_SdaiBounded_curve () {  return  new SdaiBounded_curve ;  }

/////////	 END_ENTITY bounded_curve 


/////////	 ENTITY b_spline_curve 

extern AttrDescriptor *a_78degree;
extern AttrDescriptor *a_79control_points_list;
extern AttrDescriptor *a_80curve_form;
extern AttrDescriptor *a_81closed_curve;
extern AttrDescriptor *a_82self_intersect;
extern AttrDescriptor *a_83Dupper_index_on_control_points;
extern AttrDescriptor *a_84Dcontrol_points;

class SdaiB_spline_curve  :    public SdaiBounded_curve  {
   protected:
	SdaiInteger _degree ;
	EntityAggregate _control_points_list ;	  //  of  cartesian_point

	SdaiB_spline_curve_form _curve_form ;
	SdaiLogical _closed_curve ;
	SdaiLogical _self_intersect ;
  public:  

	SdaiB_spline_curve ( ); 
	SdaiB_spline_curve (STEPentity *se ); 
	SdaiB_spline_curve (SdaiB_spline_curve& e ); 
	~SdaiB_spline_curve ();
	int opcode ()  { return 41 ; } 
	const SdaiInteger Degree() const;
	void Degree (SdaiInteger x);
	const EntityAggregateH Control_points_list() const;
	void Control_points_list (EntityAggregateH x);
	const sdaiB_spline_curve_form Curve_form() const;
	void Curve_form (sdaiB_spline_curve_form x);
	const LOGICAL Closed_curve() const;
	void Closed_curve (LOGICAL x);
	const LOGICAL Self_intersect() const;
	void Self_intersect (LOGICAL x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiB_spline_curve *
create_SdaiB_spline_curve () {  return  new SdaiB_spline_curve ;  }

/////////	 END_ENTITY b_spline_curve 


/////////	 ENTITY rational_b_spline_curve 

extern AttrDescriptor *a_85weights_data;
extern AttrDescriptor *a_86Dweights;

class SdaiRational_b_spline_curve  :    public SdaiB_spline_curve  {
   protected:
	RealAggregate _weights_data ;
  public:  

	SdaiRational_b_spline_curve ( ); 
	SdaiRational_b_spline_curve (STEPentity *se ); 
	SdaiRational_b_spline_curve (SdaiRational_b_spline_curve& e ); 
	~SdaiRational_b_spline_curve ();
	int opcode ()  { return 42 ; } 
	const RealAggregateH Weights_data() const;
	void Weights_data (RealAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiRational_b_spline_curve *
create_SdaiRational_b_spline_curve () {  return  new SdaiRational_b_spline_curve ;  }

/////////	 END_ENTITY rational_b_spline_curve 


/////////	 ENTITY action_request_assignment 

extern AttrDescriptor *a_87assigned_action_request;

class SdaiAction_request_assignment  :    public STEPentity {
  protected:
	SdaiVersioned_action_requestH _assigned_action_request ;
  public:  

	SdaiAction_request_assignment ( ); 
	SdaiAction_request_assignment (STEPentity *se ); 
	SdaiAction_request_assignment (SdaiAction_request_assignment& e ); 
	~SdaiAction_request_assignment ();
	int opcode ()  { return 43 ; } 
	SdaiVersioned_action_requestH Assigned_action_request() const;
	void Assigned_action_request (SdaiVersioned_action_requestH x);
};
inline SdaiAction_request_assignment *
create_SdaiAction_request_assignment () {  return  new SdaiAction_request_assignment ;  }

/////////	 END_ENTITY action_request_assignment 


/////////	 ENTITY topological_representation_item 


class SdaiTopological_representation_item  :    public SdaiRepresentation_item  {
   protected:
  public:  

	SdaiTopological_representation_item ( ); 
	SdaiTopological_representation_item (STEPentity *se ); 
	SdaiTopological_representation_item (SdaiTopological_representation_item& e ); 
	~SdaiTopological_representation_item ();
	int opcode ()  { return 44 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiTopological_representation_item *
create_SdaiTopological_representation_item () {  return  new SdaiTopological_representation_item ;  }

/////////	 END_ENTITY topological_representation_item 


/////////	 ENTITY face_bound 

extern AttrDescriptor *a_88bound;
extern AttrDescriptor *a_89orientation;

class SdaiFace_bound  :    public SdaiTopological_representation_item  {
   protected:
	SdaiLoopH _bound ;
	SdaiBoolean _orientation ;
  public:  

	SdaiFace_bound ( ); 
	SdaiFace_bound (STEPentity *se ); 
	SdaiFace_bound (SdaiFace_bound& e ); 
	~SdaiFace_bound ();
	int opcode ()  { return 45 ; } 
	SdaiLoopH Bound() const;
	void Bound (SdaiLoopH x);
	const BOOLEAN Orientation() const;
	void Orientation (BOOLEAN x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiFace_bound *
create_SdaiFace_bound () {  return  new SdaiFace_bound ;  }

/////////	 END_ENTITY face_bound 


/////////	 ENTITY length_measure_with_unit 


class SdaiLength_measure_with_unit  :    public SdaiMeasure_with_unit  {
   protected:
  public:  

	SdaiLength_measure_with_unit ( ); 
	SdaiLength_measure_with_unit (STEPentity *se ); 
	SdaiLength_measure_with_unit (SdaiLength_measure_with_unit& e ); 
	~SdaiLength_measure_with_unit ();
	int opcode ()  { return 46 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiLength_measure_with_unit *
create_SdaiLength_measure_with_unit () {  return  new SdaiLength_measure_with_unit ;  }

/////////	 END_ENTITY length_measure_with_unit 


/////////	 ENTITY dated_effectivity 

extern AttrDescriptor *a_90effectivity_start_date;
extern AttrDescriptor *a_91effectivity_end_date;

class SdaiDated_effectivity  :    public SdaiEffectivity  {
   protected:
	SdaiDate_and_timeH _effectivity_start_date ;
	SdaiDate_and_timeH _effectivity_end_date ;    //  OPTIONAL
  public:  

	SdaiDated_effectivity ( ); 
	SdaiDated_effectivity (STEPentity *se ); 
	SdaiDated_effectivity (SdaiDated_effectivity& e ); 
	~SdaiDated_effectivity ();
	int opcode ()  { return 47 ; } 
	SdaiDate_and_timeH Effectivity_start_date() const;
	void Effectivity_start_date (SdaiDate_and_timeH x);
	SdaiDate_and_timeH Effectivity_end_date() const;
	void Effectivity_end_date (SdaiDate_and_timeH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiDated_effectivity *
create_SdaiDated_effectivity () {  return  new SdaiDated_effectivity ;  }

/////////	 END_ENTITY dated_effectivity 


/////////	 ENTITY direction 

extern AttrDescriptor *a_92direction_ratios;

class SdaiDirection  :    public SdaiGeometric_representation_item  {
   protected:
	RealAggregate _direction_ratios ;
  public:  

	SdaiDirection ( ); 
	SdaiDirection (STEPentity *se ); 
	SdaiDirection (SdaiDirection& e ); 
	~SdaiDirection ();
	int opcode ()  { return 48 ; } 
	const RealAggregateH Direction_ratios() const;
	void Direction_ratios (RealAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiDirection *
create_SdaiDirection () {  return  new SdaiDirection ;  }

/////////	 END_ENTITY direction 


/////////	 ENTITY next_assembly_usage_occurrence 


class SdaiNext_assembly_usage_occurrence  :    public SdaiAssembly_component_usage  {
   protected:
  public:  

	SdaiNext_assembly_usage_occurrence ( ); 
	SdaiNext_assembly_usage_occurrence (STEPentity *se ); 
	SdaiNext_assembly_usage_occurrence (SdaiNext_assembly_usage_occurrence& e ); 
	~SdaiNext_assembly_usage_occurrence ();
	int opcode ()  { return 49 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiNext_assembly_usage_occurrence *
create_SdaiNext_assembly_usage_occurrence () {  return  new SdaiNext_assembly_usage_occurrence ;  }

/////////	 END_ENTITY next_assembly_usage_occurrence 


/////////	 ENTITY edge 

extern AttrDescriptor *a_93edge_start;
extern AttrDescriptor *a_94edge_end;

class SdaiEdge  :    public SdaiTopological_representation_item  {
   protected:
	SdaiVertexH _edge_start ;
	SdaiVertexH _edge_end ;
  public:  

	SdaiEdge ( ); 
	SdaiEdge (STEPentity *se ); 
	SdaiEdge (SdaiEdge& e ); 
	~SdaiEdge ();
	int opcode ()  { return 50 ; } 
	SdaiVertexH Edge_start() const;
	void Edge_start (SdaiVertexH x);
	SdaiVertexH Edge_end() const;
	void Edge_end (SdaiVertexH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiEdge *
create_SdaiEdge () {  return  new SdaiEdge ;  }

/////////	 END_ENTITY edge 


/////////	 ENTITY oriented_edge 

extern AttrDescriptor *a_95edge_element;
extern AttrDescriptor *a_96orientation;
extern AttrDescriptor *a_97Dedge_edge_start;
extern AttrDescriptor *a_98Dedge_edge_end;

class SdaiOriented_edge  :    public SdaiEdge  {
   protected:
	SdaiEdgeH _edge_element ;
	SdaiBoolean _orientation ;
  public:  

	SdaiOriented_edge ( ); 
	SdaiOriented_edge (STEPentity *se ); 
	SdaiOriented_edge (SdaiOriented_edge& e ); 
	~SdaiOriented_edge ();
	int opcode ()  { return 51 ; } 
	SdaiEdgeH Edge_element() const;
	void Edge_element (SdaiEdgeH x);
	const BOOLEAN Orientation() const;
	void Orientation (BOOLEAN x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOriented_edge *
create_SdaiOriented_edge () {  return  new SdaiOriented_edge ;  }

/////////	 END_ENTITY oriented_edge 


/////////	 ENTITY person 

extern AttrDescriptor *a_99id;
extern AttrDescriptor *a_100last_name;
extern AttrDescriptor *a_101first_name;
extern AttrDescriptor *a_102middle_names;
extern AttrDescriptor *a_103prefix_titles;
extern AttrDescriptor *a_104suffix_titles;

class SdaiPerson  :    public STEPentity {
  protected:
	SdaiString _id ;
	SdaiString _last_name ;    //  OPTIONAL
	SdaiString _first_name ;    //  OPTIONAL
	StringAggregate _middle_names ;    //  OPTIONAL	  //  of  label

	StringAggregate _prefix_titles ;    //  OPTIONAL	  //  of  label

	StringAggregate _suffix_titles ;    //  OPTIONAL	  //  of  label

  public:  

	SdaiPerson ( ); 
	SdaiPerson (STEPentity *se ); 
	SdaiPerson (SdaiPerson& e ); 
	~SdaiPerson ();
	int opcode ()  { return 52 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	const SdaiLabel Last_name() const;
	void Last_name (const char * x);
	const SdaiLabel First_name() const;
	void First_name (const char * x);
	const StringAggregateH Middle_names() const;
	void Middle_names (StringAggregateH x);
	const StringAggregateH Prefix_titles() const;
	void Prefix_titles (StringAggregateH x);
	const StringAggregateH Suffix_titles() const;
	void Suffix_titles (StringAggregateH x);
};
inline SdaiPerson *
create_SdaiPerson () {  return  new SdaiPerson ;  }

/////////	 END_ENTITY person 


/////////	 ENTITY document 

extern AttrDescriptor *a_105id;
extern AttrDescriptor *a_106name;
extern AttrDescriptor *a_107description;
extern AttrDescriptor *a_108kind;

class SdaiDocument  :    public STEPentity {
  protected:
	SdaiString _id ;
	SdaiString _name ;
	SdaiString _description ;
	SdaiDocument_typeH _kind ;
  public:  

	SdaiDocument ( ); 
	SdaiDocument (STEPentity *se ); 
	SdaiDocument (SdaiDocument& e ); 
	~SdaiDocument ();
	int opcode ()  { return 53 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiDocument_typeH Kind() const;
	void Kind (SdaiDocument_typeH x);
};
inline SdaiDocument *
create_SdaiDocument () {  return  new SdaiDocument ;  }

/////////	 END_ENTITY document 


/////////	 ENTITY document_with_class 

extern AttrDescriptor *a_109class;

class SdaiDocument_with_class  :    public SdaiDocument  {
   protected:
	SdaiString _class ;
  public:  

	SdaiDocument_with_class ( ); 
	SdaiDocument_with_class (STEPentity *se ); 
	SdaiDocument_with_class (SdaiDocument_with_class& e ); 
	~SdaiDocument_with_class ();
	int opcode ()  { return 54 ; } 
	const SdaiIdentifier Class() const;
	void Class (const char * x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiDocument_with_class *
create_SdaiDocument_with_class () {  return  new SdaiDocument_with_class ;  }

/////////	 END_ENTITY document_with_class 


/////////	 ENTITY conversion_based_unit 

extern AttrDescriptor *a_110name;
extern AttrDescriptor *a_111conversion_factor;

class SdaiConversion_based_unit  :    public SdaiNamed_unit  {
   protected:
	SdaiString _name ;
	SdaiMeasure_with_unitH _conversion_factor ;
  public:  

	SdaiConversion_based_unit ( ); 
	SdaiConversion_based_unit (STEPentity *se ); 
	SdaiConversion_based_unit (SdaiConversion_based_unit& e ); 
	~SdaiConversion_based_unit ();
	int opcode ()  { return 55 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	SdaiMeasure_with_unitH Conversion_factor() const;
	void Conversion_factor (SdaiMeasure_with_unitH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiConversion_based_unit *
create_SdaiConversion_based_unit () {  return  new SdaiConversion_based_unit ;  }

/////////	 END_ENTITY conversion_based_unit 


/////////	 ENTITY point 


class SdaiPoint  :    public SdaiGeometric_representation_item  {
   protected:
  public:  

	SdaiPoint ( ); 
	SdaiPoint (STEPentity *se ); 
	SdaiPoint (SdaiPoint& e ); 
	~SdaiPoint ();
	int opcode ()  { return 56 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPoint *
create_SdaiPoint () {  return  new SdaiPoint ;  }

/////////	 END_ENTITY point 


/////////	 ENTITY point_on_surface 

extern AttrDescriptor *a_112basis_surface;
extern AttrDescriptor *a_113point_parameter_u;
extern AttrDescriptor *a_114point_parameter_v;

class SdaiPoint_on_surface  :    public SdaiPoint  {
   protected:
	SdaiSurfaceH _basis_surface ;
	SdaiReal _point_parameter_u ;
	SdaiReal _point_parameter_v ;
  public:  

	SdaiPoint_on_surface ( ); 
	SdaiPoint_on_surface (STEPentity *se ); 
	SdaiPoint_on_surface (SdaiPoint_on_surface& e ); 
	~SdaiPoint_on_surface ();
	int opcode ()  { return 57 ; } 
	SdaiSurfaceH Basis_surface() const;
	void Basis_surface (SdaiSurfaceH x);
	const SdaiParameter_value Point_parameter_u() const;
	void Point_parameter_u (SdaiParameter_value x);
	const SdaiParameter_value Point_parameter_v() const;
	void Point_parameter_v (SdaiParameter_value x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPoint_on_surface *
create_SdaiPoint_on_surface () {  return  new SdaiPoint_on_surface ;  }

/////////	 END_ENTITY point_on_surface 


/////////	 ENTITY product_definition_formation 

extern AttrDescriptor *a_115id;
extern AttrDescriptor *a_116description;
extern AttrDescriptor *a_117of_product;

class SdaiProduct_definition_formation  :    public STEPentity {
  protected:
	SdaiString _id ;
	SdaiString _description ;
	SdaiProductH _of_product ;
  public:  

	SdaiProduct_definition_formation ( ); 
	SdaiProduct_definition_formation (STEPentity *se ); 
	SdaiProduct_definition_formation (SdaiProduct_definition_formation& e ); 
	~SdaiProduct_definition_formation ();
	int opcode ()  { return 58 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiProductH Of_product() const;
	void Of_product (SdaiProductH x);
};
inline SdaiProduct_definition_formation *
create_SdaiProduct_definition_formation () {  return  new SdaiProduct_definition_formation ;  }

/////////	 END_ENTITY product_definition_formation 


/////////	 ENTITY person_and_organization_assignment 

extern AttrDescriptor *a_118assigned_person_and_organization;
extern AttrDescriptor *a_119role;

class SdaiPerson_and_organization_assignment  :    public STEPentity {
  protected:
	SdaiPerson_and_organizationH _assigned_person_and_organization ;
	SdaiPerson_and_organization_roleH _role ;
  public:  

	SdaiPerson_and_organization_assignment ( ); 
	SdaiPerson_and_organization_assignment (STEPentity *se ); 
	SdaiPerson_and_organization_assignment (SdaiPerson_and_organization_assignment& e ); 
	~SdaiPerson_and_organization_assignment ();
	int opcode ()  { return 59 ; } 
	SdaiPerson_and_organizationH Assigned_person_and_organization() const;
	void Assigned_person_and_organization (SdaiPerson_and_organizationH x);
	SdaiPerson_and_organization_roleH Role() const;
	void Role (SdaiPerson_and_organization_roleH x);
};
inline SdaiPerson_and_organization_assignment *
create_SdaiPerson_and_organization_assignment () {  return  new SdaiPerson_and_organization_assignment ;  }

/////////	 END_ENTITY person_and_organization_assignment 


/////////	 ENTITY cc_design_person_and_organization_assignment 

extern AttrDescriptor *a_120items;

class SdaiCc_design_person_and_organization_assignment  :    public SdaiPerson_and_organization_assignment  {
   protected:
	SdaiPerson_organization_items _items ;	  //  of  person_organization_item

  public:  

	SdaiCc_design_person_and_organization_assignment ( ); 
	SdaiCc_design_person_and_organization_assignment (STEPentity *se ); 
	SdaiCc_design_person_and_organization_assignment (SdaiCc_design_person_and_organization_assignment& e ); 
	~SdaiCc_design_person_and_organization_assignment ();
	int opcode ()  { return 60 ; } 
	const SdaiPerson_organization_itemsH Items() const;
	void Items (SdaiPerson_organization_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCc_design_person_and_organization_assignment *
create_SdaiCc_design_person_and_organization_assignment () {  return  new SdaiCc_design_person_and_organization_assignment ;  }

/////////	 END_ENTITY cc_design_person_and_organization_assignment 


/////////	 ENTITY offset_curve_3d 

extern AttrDescriptor *a_121basis_curve;
extern AttrDescriptor *a_122distance;
extern AttrDescriptor *a_123self_intersect;
extern AttrDescriptor *a_124ref_direction;

class SdaiOffset_curve_3d  :    public SdaiCurve  {
   protected:
	SdaiCurveH _basis_curve ;
	SdaiReal _distance ;
	SdaiLogical _self_intersect ;
	SdaiDirectionH _ref_direction ;
  public:  

	SdaiOffset_curve_3d ( ); 
	SdaiOffset_curve_3d (STEPentity *se ); 
	SdaiOffset_curve_3d (SdaiOffset_curve_3d& e ); 
	~SdaiOffset_curve_3d ();
	int opcode ()  { return 61 ; } 
	SdaiCurveH Basis_curve() const;
	void Basis_curve (SdaiCurveH x);
	const SdaiLength_measure Distance() const;
	void Distance (SdaiLength_measure x);
	const LOGICAL Self_intersect() const;
	void Self_intersect (LOGICAL x);
	SdaiDirectionH Ref_direction() const;
	void Ref_direction (SdaiDirectionH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOffset_curve_3d *
create_SdaiOffset_curve_3d () {  return  new SdaiOffset_curve_3d ;  }

/////////	 END_ENTITY offset_curve_3d 


/////////	 ENTITY approval 

extern AttrDescriptor *a_125status;
extern AttrDescriptor *a_126level;

class SdaiApproval  :    public STEPentity {
  protected:
	SdaiApproval_statusH _status ;
	SdaiString _level ;
  public:  

	SdaiApproval ( ); 
	SdaiApproval (STEPentity *se ); 
	SdaiApproval (SdaiApproval& e ); 
	~SdaiApproval ();
	int opcode ()  { return 62 ; } 
	SdaiApproval_statusH Status() const;
	void Status (SdaiApproval_statusH x);
	const SdaiLabel Level() const;
	void Level (const char * x);
};
inline SdaiApproval *
create_SdaiApproval () {  return  new SdaiApproval ;  }

/////////	 END_ENTITY approval 


/////////	 ENTITY composite_curve 

extern AttrDescriptor *a_127segments;
extern AttrDescriptor *a_128self_intersect;
extern AttrDescriptor *a_129Dn_segments;
extern AttrDescriptor *a_130Dclosed_curve;

class SdaiComposite_curve  :    public SdaiBounded_curve  {
   protected:
	EntityAggregate _segments ;	  //  of  composite_curve_segment

	SdaiLogical _self_intersect ;
  public:  

	SdaiComposite_curve ( ); 
	SdaiComposite_curve (STEPentity *se ); 
	SdaiComposite_curve (SdaiComposite_curve& e ); 
	~SdaiComposite_curve ();
	int opcode ()  { return 63 ; } 
	const EntityAggregateH Segments() const;
	void Segments (EntityAggregateH x);
	const LOGICAL Self_intersect() const;
	void Self_intersect (LOGICAL x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiComposite_curve *
create_SdaiComposite_curve () {  return  new SdaiComposite_curve ;  }

/////////	 END_ENTITY composite_curve 


/////////	 ENTITY composite_curve_on_surface 

extern AttrDescriptor *a_131Dbasis_surface;

class SdaiComposite_curve_on_surface  :    public SdaiComposite_curve  {
   protected:
  public:  

	SdaiComposite_curve_on_surface ( ); 
	SdaiComposite_curve_on_surface (STEPentity *se ); 
	SdaiComposite_curve_on_surface (SdaiComposite_curve_on_surface& e ); 
	~SdaiComposite_curve_on_surface ();
	int opcode ()  { return 64 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiComposite_curve_on_surface *
create_SdaiComposite_curve_on_surface () {  return  new SdaiComposite_curve_on_surface ;  }

/////////	 END_ENTITY composite_curve_on_surface 


/////////	 ENTITY boundary_curve 


class SdaiBoundary_curve  :    public SdaiComposite_curve_on_surface  {
   protected:
  public:  

	SdaiBoundary_curve ( ); 
	SdaiBoundary_curve (STEPentity *se ); 
	SdaiBoundary_curve (SdaiBoundary_curve& e ); 
	~SdaiBoundary_curve ();
	int opcode ()  { return 65 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiBoundary_curve *
create_SdaiBoundary_curve () {  return  new SdaiBoundary_curve ;  }

/////////	 END_ENTITY boundary_curve 


/////////	 ENTITY representation_context 

extern AttrDescriptor *a_132context_identifier;
extern AttrDescriptor *a_133context_type;
extern InverseAttrDescriptor *a_134Irepresentations_in_context;

class SdaiRepresentation_context  :    public STEPentity {
  protected:
	SdaiString _context_identifier ;
	SdaiString _context_type ;
	EntityAggregate _representations_in_context ;	  //  of  representation

  public:  

	SdaiRepresentation_context ( ); 
	SdaiRepresentation_context (STEPentity *se ); 
	SdaiRepresentation_context (SdaiRepresentation_context& e ); 
	~SdaiRepresentation_context ();
	int opcode ()  { return 66 ; } 
	const SdaiIdentifier Context_identifier() const;
	void Context_identifier (const char * x);
	const SdaiText Context_type() const;
	void Context_type (const char * x);
	const EntityAggregateH Representations_in_context() const;
	void Representations_in_context (EntityAggregateH x);
};
inline SdaiRepresentation_context *
create_SdaiRepresentation_context () {  return  new SdaiRepresentation_context ;  }

/////////	 END_ENTITY representation_context 


/////////	 ENTITY geometric_representation_context 

extern AttrDescriptor *a_135coordinate_space_dimension;

class SdaiGeometric_representation_context  :    public SdaiRepresentation_context  {
   protected:
	SdaiInteger _coordinate_space_dimension ;
  public:  

	SdaiGeometric_representation_context ( ); 
	SdaiGeometric_representation_context (STEPentity *se ); 
	SdaiGeometric_representation_context (SdaiGeometric_representation_context& e ); 
	~SdaiGeometric_representation_context ();
	int opcode ()  { return 67 ; } 
	const SdaiDimension_count Coordinate_space_dimension() const;
	void Coordinate_space_dimension (SdaiDimension_count x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiGeometric_representation_context *
create_SdaiGeometric_representation_context () {  return  new SdaiGeometric_representation_context ;  }

/////////	 END_ENTITY geometric_representation_context 


/////////	 ENTITY action_status 

extern AttrDescriptor *a_136status;
extern AttrDescriptor *a_137assigned_action;

class SdaiAction_status  :    public STEPentity {
  protected:
	SdaiString _status ;
	SdaiExecuted_actionH _assigned_action ;
  public:  

	SdaiAction_status ( ); 
	SdaiAction_status (STEPentity *se ); 
	SdaiAction_status (SdaiAction_status& e ); 
	~SdaiAction_status ();
	int opcode ()  { return 68 ; } 
	const SdaiLabel Status() const;
	void Status (const char * x);
	SdaiExecuted_actionH Assigned_action() const;
	void Assigned_action (SdaiExecuted_actionH x);
};
inline SdaiAction_status *
create_SdaiAction_status () {  return  new SdaiAction_status ;  }

/////////	 END_ENTITY action_status 


/////////	 ENTITY application_context 

extern AttrDescriptor *a_138application;
extern InverseAttrDescriptor *a_139Icontext_elements;

class SdaiApplication_context  :    public STEPentity {
  protected:
	SdaiString _application ;
	EntityAggregate _context_elements ;	  //  of  application_context_element

  public:  

	SdaiApplication_context ( ); 
	SdaiApplication_context (STEPentity *se ); 
	SdaiApplication_context (SdaiApplication_context& e ); 
	~SdaiApplication_context ();
	int opcode ()  { return 69 ; } 
	const SdaiText Application() const;
	void Application (const char * x);
	const EntityAggregateH Context_elements() const;
	void Context_elements (EntityAggregateH x);
};
inline SdaiApplication_context *
create_SdaiApplication_context () {  return  new SdaiApplication_context ;  }

/////////	 END_ENTITY application_context 


/////////	 ENTITY change_request 

extern AttrDescriptor *a_140items;

class SdaiChange_request  :    public SdaiAction_request_assignment  {
   protected:
	SdaiChange_request_items _items ;	  //  of  change_request_item

  public:  

	SdaiChange_request ( ); 
	SdaiChange_request (STEPentity *se ); 
	SdaiChange_request (SdaiChange_request& e ); 
	~SdaiChange_request ();
	int opcode ()  { return 70 ; } 
	const SdaiChange_request_itemsH Items() const;
	void Items (SdaiChange_request_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiChange_request *
create_SdaiChange_request () {  return  new SdaiChange_request ;  }

/////////	 END_ENTITY change_request 


/////////	 ENTITY date_and_time 

extern AttrDescriptor *a_141date_component;
extern AttrDescriptor *a_142time_component;

class SdaiDate_and_time  :    public STEPentity {
  protected:
	SdaiDateH _date_component ;
	SdaiLocal_timeH _time_component ;
  public:  

	SdaiDate_and_time ( ); 
	SdaiDate_and_time (STEPentity *se ); 
	SdaiDate_and_time (SdaiDate_and_time& e ); 
	~SdaiDate_and_time ();
	int opcode ()  { return 71 ; } 
	SdaiDateH Date_component() const;
	void Date_component (SdaiDateH x);
	SdaiLocal_timeH Time_component() const;
	void Time_component (SdaiLocal_timeH x);
};
inline SdaiDate_and_time *
create_SdaiDate_and_time () {  return  new SdaiDate_and_time ;  }

/////////	 END_ENTITY date_and_time 


/////////	 ENTITY approval_date_time 

extern AttrDescriptor *a_143date_time;
extern AttrDescriptor *a_144dated_approval;

class SdaiApproval_date_time  :    public STEPentity {
  protected:
	SdaiDate_time_select _date_time ;
	SdaiApprovalH _dated_approval ;
  public:  

	SdaiApproval_date_time ( ); 
	SdaiApproval_date_time (STEPentity *se ); 
	SdaiApproval_date_time (SdaiApproval_date_time& e ); 
	~SdaiApproval_date_time ();
	int opcode ()  { return 72 ; } 
	const SdaiDate_time_selectH Date_time() const;
	void Date_time (SdaiDate_time_selectH x);
	SdaiApprovalH Dated_approval() const;
	void Dated_approval (SdaiApprovalH x);
};
inline SdaiApproval_date_time *
create_SdaiApproval_date_time () {  return  new SdaiApproval_date_time ;  }

/////////	 END_ENTITY approval_date_time 


/////////	 ENTITY approval_role 

extern AttrDescriptor *a_145role;

class SdaiApproval_role  :    public STEPentity {
  protected:
	SdaiString _role ;
  public:  

	SdaiApproval_role ( ); 
	SdaiApproval_role (STEPentity *se ); 
	SdaiApproval_role (SdaiApproval_role& e ); 
	~SdaiApproval_role ();
	int opcode ()  { return 73 ; } 
	const SdaiLabel Role() const;
	void Role (const char * x);
};
inline SdaiApproval_role *
create_SdaiApproval_role () {  return  new SdaiApproval_role ;  }

/////////	 END_ENTITY approval_role 


/////////	 ENTITY application_context_element 

extern AttrDescriptor *a_146name;
extern AttrDescriptor *a_147frame_of_reference;

class SdaiApplication_context_element  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiApplication_contextH _frame_of_reference ;
  public:  

	SdaiApplication_context_element ( ); 
	SdaiApplication_context_element (STEPentity *se ); 
	SdaiApplication_context_element (SdaiApplication_context_element& e ); 
	~SdaiApplication_context_element ();
	int opcode ()  { return 74 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	SdaiApplication_contextH Frame_of_reference() const;
	void Frame_of_reference (SdaiApplication_contextH x);
};
inline SdaiApplication_context_element *
create_SdaiApplication_context_element () {  return  new SdaiApplication_context_element ;  }

/////////	 END_ENTITY application_context_element 


/////////	 ENTITY product_context 

extern AttrDescriptor *a_148discipline_type;

class SdaiProduct_context  :    public SdaiApplication_context_element  {
   protected:
	SdaiString _discipline_type ;
  public:  

	SdaiProduct_context ( ); 
	SdaiProduct_context (STEPentity *se ); 
	SdaiProduct_context (SdaiProduct_context& e ); 
	~SdaiProduct_context ();
	int opcode ()  { return 75 ; } 
	const SdaiLabel Discipline_type() const;
	void Discipline_type (const char * x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiProduct_context *
create_SdaiProduct_context () {  return  new SdaiProduct_context ;  }

/////////	 END_ENTITY product_context 


/////////	 ENTITY elementary_surface 

extern AttrDescriptor *a_149position;

class SdaiElementary_surface  :    public SdaiSurface  {
   protected:
	SdaiAxis2_placement_3dH _position ;
  public:  

	SdaiElementary_surface ( ); 
	SdaiElementary_surface (STEPentity *se ); 
	SdaiElementary_surface (SdaiElementary_surface& e ); 
	~SdaiElementary_surface ();
	int opcode ()  { return 76 ; } 
	SdaiAxis2_placement_3dH Position() const;
	void Position (SdaiAxis2_placement_3dH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiElementary_surface *
create_SdaiElementary_surface () {  return  new SdaiElementary_surface ;  }

/////////	 END_ENTITY elementary_surface 


/////////	 ENTITY spherical_surface 

extern AttrDescriptor *a_150radius;

class SdaiSpherical_surface  :    public SdaiElementary_surface  {
   protected:
	SdaiReal _radius ;
  public:  

	SdaiSpherical_surface ( ); 
	SdaiSpherical_surface (STEPentity *se ); 
	SdaiSpherical_surface (SdaiSpherical_surface& e ); 
	~SdaiSpherical_surface ();
	int opcode ()  { return 77 ; } 
	const SdaiPositive_length_measure Radius() const;
	void Radius (SdaiPositive_length_measure x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSpherical_surface *
create_SdaiSpherical_surface () {  return  new SdaiSpherical_surface ;  }

/////////	 END_ENTITY spherical_surface 


/////////	 ENTITY application_protocol_definition 

extern AttrDescriptor *a_151status;
extern AttrDescriptor *a_152application_interpreted_model_schema_name;
extern AttrDescriptor *a_153application_protocol_year;
extern AttrDescriptor *a_154application;

class SdaiApplication_protocol_definition  :    public STEPentity {
  protected:
	SdaiString _status ;
	SdaiString _application_interpreted_model_schema_name ;
	SdaiInteger _application_protocol_year ;
	SdaiApplication_contextH _application ;
  public:  

	SdaiApplication_protocol_definition ( ); 
	SdaiApplication_protocol_definition (STEPentity *se ); 
	SdaiApplication_protocol_definition (SdaiApplication_protocol_definition& e ); 
	~SdaiApplication_protocol_definition ();
	int opcode ()  { return 78 ; } 
	const SdaiLabel Status() const;
	void Status (const char * x);
	const SdaiLabel Application_interpreted_model_schema_name() const;
	void Application_interpreted_model_schema_name (const char * x);
	const SdaiYear_number Application_protocol_year() const;
	void Application_protocol_year (SdaiYear_number x);
	SdaiApplication_contextH Application() const;
	void Application (SdaiApplication_contextH x);
};
inline SdaiApplication_protocol_definition *
create_SdaiApplication_protocol_definition () {  return  new SdaiApplication_protocol_definition ;  }

/////////	 END_ENTITY application_protocol_definition 


/////////	 ENTITY specified_higher_usage_occurrence 

extern AttrDescriptor *a_155upper_usage;
extern AttrDescriptor *a_156next_usage;

class SdaiSpecified_higher_usage_occurrence  :    public SdaiAssembly_component_usage  {
   protected:
	SdaiAssembly_component_usageH _upper_usage ;
	SdaiNext_assembly_usage_occurrenceH _next_usage ;
  public:  

	SdaiSpecified_higher_usage_occurrence ( ); 
	SdaiSpecified_higher_usage_occurrence (STEPentity *se ); 
	SdaiSpecified_higher_usage_occurrence (SdaiSpecified_higher_usage_occurrence& e ); 
	~SdaiSpecified_higher_usage_occurrence ();
	int opcode ()  { return 79 ; } 
	SdaiAssembly_component_usageH Upper_usage() const;
	void Upper_usage (SdaiAssembly_component_usageH x);
	SdaiNext_assembly_usage_occurrenceH Next_usage() const;
	void Next_usage (SdaiNext_assembly_usage_occurrenceH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSpecified_higher_usage_occurrence *
create_SdaiSpecified_higher_usage_occurrence () {  return  new SdaiSpecified_higher_usage_occurrence ;  }

/////////	 END_ENTITY specified_higher_usage_occurrence 


/////////	 ENTITY product_definition_formation_with_specified_source 

extern AttrDescriptor *a_157make_or_buy;

class SdaiProduct_definition_formation_with_specified_source  :    public SdaiProduct_definition_formation  {
   protected:
	SdaiSource _make_or_buy ;
  public:  

	SdaiProduct_definition_formation_with_specified_source ( ); 
	SdaiProduct_definition_formation_with_specified_source (STEPentity *se ); 
	SdaiProduct_definition_formation_with_specified_source (SdaiProduct_definition_formation_with_specified_source& e ); 
	~SdaiProduct_definition_formation_with_specified_source ();
	int opcode ()  { return 80 ; } 
	const sdaiSource Make_or_buy() const;
	void Make_or_buy (sdaiSource x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiProduct_definition_formation_with_specified_source *
create_SdaiProduct_definition_formation_with_specified_source () {  return  new SdaiProduct_definition_formation_with_specified_source ;  }

/////////	 END_ENTITY product_definition_formation_with_specified_source 


/////////	 ENTITY action_request_solution 

extern AttrDescriptor *a_158method;
extern AttrDescriptor *a_159request;

class SdaiAction_request_solution  :    public STEPentity {
  protected:
	SdaiAction_methodH _method ;
	SdaiVersioned_action_requestH _request ;
  public:  

	SdaiAction_request_solution ( ); 
	SdaiAction_request_solution (STEPentity *se ); 
	SdaiAction_request_solution (SdaiAction_request_solution& e ); 
	~SdaiAction_request_solution ();
	int opcode ()  { return 81 ; } 
	SdaiAction_methodH Method() const;
	void Method (SdaiAction_methodH x);
	SdaiVersioned_action_requestH Request() const;
	void Request (SdaiVersioned_action_requestH x);
};
inline SdaiAction_request_solution *
create_SdaiAction_request_solution () {  return  new SdaiAction_request_solution ;  }

/////////	 END_ENTITY action_request_solution 


/////////	 ENTITY uncertainty_measure_with_unit 

extern AttrDescriptor *a_160name;
extern AttrDescriptor *a_161description;

class SdaiUncertainty_measure_with_unit  :    public SdaiMeasure_with_unit  {
   protected:
	SdaiString _name ;
	SdaiString _description ;
  public:  

	SdaiUncertainty_measure_with_unit ( ); 
	SdaiUncertainty_measure_with_unit (STEPentity *se ); 
	SdaiUncertainty_measure_with_unit (SdaiUncertainty_measure_with_unit& e ); 
	~SdaiUncertainty_measure_with_unit ();
	int opcode ()  { return 82 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiUncertainty_measure_with_unit *
create_SdaiUncertainty_measure_with_unit () {  return  new SdaiUncertainty_measure_with_unit ;  }

/////////	 END_ENTITY uncertainty_measure_with_unit 


/////////	 ENTITY edge_based_wireframe_model 

extern AttrDescriptor *a_162ebwm_boundary;

class SdaiEdge_based_wireframe_model  :    public SdaiGeometric_representation_item  {
   protected:
	EntityAggregate _ebwm_boundary ;	  //  of  connected_edge_set

  public:  

	SdaiEdge_based_wireframe_model ( ); 
	SdaiEdge_based_wireframe_model (STEPentity *se ); 
	SdaiEdge_based_wireframe_model (SdaiEdge_based_wireframe_model& e ); 
	~SdaiEdge_based_wireframe_model ();
	int opcode ()  { return 83 ; } 
	const EntityAggregateH Ebwm_boundary() const;
	void Ebwm_boundary (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiEdge_based_wireframe_model *
create_SdaiEdge_based_wireframe_model () {  return  new SdaiEdge_based_wireframe_model ;  }

/////////	 END_ENTITY edge_based_wireframe_model 


/////////	 ENTITY path 

extern AttrDescriptor *a_163edge_list;

class SdaiPath  :    public SdaiTopological_representation_item  {
   protected:
	EntityAggregate _edge_list ;	  //  of  oriented_edge

  public:  

	SdaiPath ( ); 
	SdaiPath (STEPentity *se ); 
	SdaiPath (SdaiPath& e ); 
	~SdaiPath ();
	int opcode ()  { return 84 ; } 
	const EntityAggregateH Edge_list() const;
	void Edge_list (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPath *
create_SdaiPath () {  return  new SdaiPath ;  }

/////////	 END_ENTITY path 


/////////	 ENTITY connected_face_set 

extern AttrDescriptor *a_164cfs_faces;

class SdaiConnected_face_set  :    public SdaiTopological_representation_item  {
   protected:
	EntityAggregate _cfs_faces ;	  //  of  face

  public:  

	SdaiConnected_face_set ( ); 
	SdaiConnected_face_set (STEPentity *se ); 
	SdaiConnected_face_set (SdaiConnected_face_set& e ); 
	~SdaiConnected_face_set ();
	int opcode ()  { return 85 ; } 
	const EntityAggregateH Cfs_faces() const;
	void Cfs_faces (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiConnected_face_set *
create_SdaiConnected_face_set () {  return  new SdaiConnected_face_set ;  }

/////////	 END_ENTITY connected_face_set 


/////////	 ENTITY open_shell 


class SdaiOpen_shell  :    public SdaiConnected_face_set  {
   protected:
  public:  

	SdaiOpen_shell ( ); 
	SdaiOpen_shell (STEPentity *se ); 
	SdaiOpen_shell (SdaiOpen_shell& e ); 
	~SdaiOpen_shell ();
	int opcode ()  { return 86 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOpen_shell *
create_SdaiOpen_shell () {  return  new SdaiOpen_shell ;  }

/////////	 END_ENTITY open_shell 


/////////	 ENTITY oriented_open_shell 

extern AttrDescriptor *a_165open_shell_element;
extern AttrDescriptor *a_166orientation;
extern AttrDescriptor *a_167Dconnected_face_set_cfs_faces;

class SdaiOriented_open_shell  :    public SdaiOpen_shell  {
   protected:
	SdaiOpen_shellH _open_shell_element ;
	SdaiBoolean _orientation ;
  public:  

	SdaiOriented_open_shell ( ); 
	SdaiOriented_open_shell (STEPentity *se ); 
	SdaiOriented_open_shell (SdaiOriented_open_shell& e ); 
	~SdaiOriented_open_shell ();
	int opcode ()  { return 87 ; } 
	SdaiOpen_shellH Open_shell_element() const;
	void Open_shell_element (SdaiOpen_shellH x);
	const BOOLEAN Orientation() const;
	void Orientation (BOOLEAN x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOriented_open_shell *
create_SdaiOriented_open_shell () {  return  new SdaiOriented_open_shell ;  }

/////////	 END_ENTITY oriented_open_shell 


/////////	 ENTITY solid_angle_unit 


class SdaiSolid_angle_unit  :    public SdaiNamed_unit  {
   protected:
  public:  

	SdaiSolid_angle_unit ( ); 
	SdaiSolid_angle_unit (STEPentity *se ); 
	SdaiSolid_angle_unit (SdaiSolid_angle_unit& e ); 
	~SdaiSolid_angle_unit ();
	int opcode ()  { return 88 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSolid_angle_unit *
create_SdaiSolid_angle_unit () {  return  new SdaiSolid_angle_unit ;  }

/////////	 END_ENTITY solid_angle_unit 


/////////	 ENTITY coordinated_universal_time_offset 

extern AttrDescriptor *a_168hour_offset;
extern AttrDescriptor *a_169minute_offset;
extern AttrDescriptor *a_170sense;

class SdaiCoordinated_universal_time_offset  :    public STEPentity {
  protected:
	SdaiInteger _hour_offset ;
	SdaiInteger _minute_offset ;    //  OPTIONAL
	SdaiAhead_or_behind _sense ;
  public:  

	SdaiCoordinated_universal_time_offset ( ); 
	SdaiCoordinated_universal_time_offset (STEPentity *se ); 
	SdaiCoordinated_universal_time_offset (SdaiCoordinated_universal_time_offset& e ); 
	~SdaiCoordinated_universal_time_offset ();
	int opcode ()  { return 89 ; } 
	const SdaiHour_in_day Hour_offset() const;
	void Hour_offset (SdaiHour_in_day x);
	const SdaiMinute_in_hour Minute_offset() const;
	void Minute_offset (SdaiMinute_in_hour x);
	const sdaiAhead_or_behind Sense() const;
	void Sense (sdaiAhead_or_behind x);
};
inline SdaiCoordinated_universal_time_offset *
create_SdaiCoordinated_universal_time_offset () {  return  new SdaiCoordinated_universal_time_offset ;  }

/////////	 END_ENTITY coordinated_universal_time_offset 


/////////	 ENTITY curve_replica 

extern AttrDescriptor *a_171parent_curve;
extern AttrDescriptor *a_172transformation;

class SdaiCurve_replica  :    public SdaiCurve  {
   protected:
	SdaiCurveH _parent_curve ;
	SdaiCartesian_transformation_operatorH _transformation ;
  public:  

	SdaiCurve_replica ( ); 
	SdaiCurve_replica (STEPentity *se ); 
	SdaiCurve_replica (SdaiCurve_replica& e ); 
	~SdaiCurve_replica ();
	int opcode ()  { return 90 ; } 
	SdaiCurveH Parent_curve() const;
	void Parent_curve (SdaiCurveH x);
	SdaiCartesian_transformation_operatorH Transformation() const;
	void Transformation (SdaiCartesian_transformation_operatorH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCurve_replica *
create_SdaiCurve_replica () {  return  new SdaiCurve_replica ;  }

/////////	 END_ENTITY curve_replica 


/////////	 ENTITY quasi_uniform_surface 


class SdaiQuasi_uniform_surface  :    public SdaiB_spline_surface  {
   protected:
  public:  

	SdaiQuasi_uniform_surface ( ); 
	SdaiQuasi_uniform_surface (STEPentity *se ); 
	SdaiQuasi_uniform_surface (SdaiQuasi_uniform_surface& e ); 
	~SdaiQuasi_uniform_surface ();
	int opcode ()  { return 91 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiQuasi_uniform_surface *
create_SdaiQuasi_uniform_surface () {  return  new SdaiQuasi_uniform_surface ;  }

/////////	 END_ENTITY quasi_uniform_surface 


/////////	 ENTITY surface_curve 

extern AttrDescriptor *a_173curve_3d;
extern AttrDescriptor *a_174associated_geometry;
extern AttrDescriptor *a_175master_representation;
extern AttrDescriptor *a_176Dbasis_surface;

class SdaiSurface_curve  :    public SdaiCurve  {
   protected:
	SdaiCurveH _curve_3d ;
	SdaiPcurve_or_surfaces _associated_geometry ;	  //  of  pcurve_or_surface

	SdaiPreferred_surface_curve_representation _master_representation ;
  public:  

	SdaiSurface_curve ( ); 
	SdaiSurface_curve (STEPentity *se ); 
	SdaiSurface_curve (SdaiSurface_curve& e ); 
	~SdaiSurface_curve ();
	int opcode ()  { return 92 ; } 
	SdaiCurveH Curve_3d() const;
	void Curve_3d (SdaiCurveH x);
	const SdaiPcurve_or_surfacesH Associated_geometry() const;
	void Associated_geometry (SdaiPcurve_or_surfacesH x);
	const sdaiPreferred_surface_curve_representation Master_representation() const;
	void Master_representation (sdaiPreferred_surface_curve_representation x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSurface_curve *
create_SdaiSurface_curve () {  return  new SdaiSurface_curve ;  }

/////////	 END_ENTITY surface_curve 


/////////	 ENTITY action_request_status 

extern AttrDescriptor *a_177status;
extern AttrDescriptor *a_178assigned_request;

class SdaiAction_request_status  :    public STEPentity {
  protected:
	SdaiString _status ;
	SdaiVersioned_action_requestH _assigned_request ;
  public:  

	SdaiAction_request_status ( ); 
	SdaiAction_request_status (STEPentity *se ); 
	SdaiAction_request_status (SdaiAction_request_status& e ); 
	~SdaiAction_request_status ();
	int opcode ()  { return 93 ; } 
	const SdaiLabel Status() const;
	void Status (const char * x);
	SdaiVersioned_action_requestH Assigned_request() const;
	void Assigned_request (SdaiVersioned_action_requestH x);
};
inline SdaiAction_request_status *
create_SdaiAction_request_status () {  return  new SdaiAction_request_status ;  }

/////////	 END_ENTITY action_request_status 


/////////	 ENTITY composite_curve_segment 

extern AttrDescriptor *a_179transition;
extern AttrDescriptor *a_180same_sense;
extern AttrDescriptor *a_181parent_curve;
extern InverseAttrDescriptor *a_182Iusing_curves;

class SdaiComposite_curve_segment  :    public STEPentity {
  protected:
	SdaiTransition_code _transition ;
	SdaiBoolean _same_sense ;
	SdaiCurveH _parent_curve ;
	EntityAggregate _using_curves ;	  //  of  composite_curve

  public:  

	SdaiComposite_curve_segment ( ); 
	SdaiComposite_curve_segment (STEPentity *se ); 
	SdaiComposite_curve_segment (SdaiComposite_curve_segment& e ); 
	~SdaiComposite_curve_segment ();
	int opcode ()  { return 94 ; } 
	const sdaiTransition_code Transition() const;
	void Transition (sdaiTransition_code x);
	const BOOLEAN Same_sense() const;
	void Same_sense (BOOLEAN x);
	SdaiCurveH Parent_curve() const;
	void Parent_curve (SdaiCurveH x);
	const EntityAggregateH Using_curves() const;
	void Using_curves (EntityAggregateH x);
};
inline SdaiComposite_curve_segment *
create_SdaiComposite_curve_segment () {  return  new SdaiComposite_curve_segment ;  }

/////////	 END_ENTITY composite_curve_segment 


/////////	 ENTITY reparametrised_composite_curve_segment 

extern AttrDescriptor *a_183param_length;

class SdaiReparametrised_composite_curve_segment  :    public SdaiComposite_curve_segment  {
   protected:
	SdaiReal _param_length ;
  public:  

	SdaiReparametrised_composite_curve_segment ( ); 
	SdaiReparametrised_composite_curve_segment (STEPentity *se ); 
	SdaiReparametrised_composite_curve_segment (SdaiReparametrised_composite_curve_segment& e ); 
	~SdaiReparametrised_composite_curve_segment ();
	int opcode ()  { return 95 ; } 
	const SdaiParameter_value Param_length() const;
	void Param_length (SdaiParameter_value x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiReparametrised_composite_curve_segment *
create_SdaiReparametrised_composite_curve_segment () {  return  new SdaiReparametrised_composite_curve_segment ;  }

/////////	 END_ENTITY reparametrised_composite_curve_segment 


/////////	 ENTITY representation_relationship 

extern AttrDescriptor *a_184name;
extern AttrDescriptor *a_185description;
extern AttrDescriptor *a_186rep_1;
extern AttrDescriptor *a_187rep_2;

class SdaiRepresentation_relationship  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiRepresentationH _rep_1 ;
	SdaiRepresentationH _rep_2 ;
  public:  

	SdaiRepresentation_relationship ( ); 
	SdaiRepresentation_relationship (STEPentity *se ); 
	SdaiRepresentation_relationship (SdaiRepresentation_relationship& e ); 
	~SdaiRepresentation_relationship ();
	int opcode ()  { return 96 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiRepresentationH Rep_1() const;
	void Rep_1 (SdaiRepresentationH x);
	SdaiRepresentationH Rep_2() const;
	void Rep_2 (SdaiRepresentationH x);
};
inline SdaiRepresentation_relationship *
create_SdaiRepresentation_relationship () {  return  new SdaiRepresentation_relationship ;  }

/////////	 END_ENTITY representation_relationship 


/////////	 ENTITY representation_relationship_with_transformation 

extern AttrDescriptor *a_188transformation_operator;

class SdaiRepresentation_relationship_with_transformation  :    public SdaiRepresentation_relationship  {
   protected:
	SdaiTransformation _transformation_operator ;
  public:  

	SdaiRepresentation_relationship_with_transformation ( ); 
	SdaiRepresentation_relationship_with_transformation (STEPentity *se ); 
	SdaiRepresentation_relationship_with_transformation (SdaiRepresentation_relationship_with_transformation& e ); 
	~SdaiRepresentation_relationship_with_transformation ();
	int opcode ()  { return 97 ; } 
	const SdaiTransformationH Transformation_operator() const;
	void Transformation_operator (SdaiTransformationH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiRepresentation_relationship_with_transformation *
create_SdaiRepresentation_relationship_with_transformation () {  return  new SdaiRepresentation_relationship_with_transformation ;  }

/////////	 END_ENTITY representation_relationship_with_transformation 


/////////	 ENTITY person_and_organization_role 

extern AttrDescriptor *a_189name;

class SdaiPerson_and_organization_role  :    public STEPentity {
  protected:
	SdaiString _name ;
  public:  

	SdaiPerson_and_organization_role ( ); 
	SdaiPerson_and_organization_role (STEPentity *se ); 
	SdaiPerson_and_organization_role (SdaiPerson_and_organization_role& e ); 
	~SdaiPerson_and_organization_role ();
	int opcode ()  { return 98 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
};
inline SdaiPerson_and_organization_role *
create_SdaiPerson_and_organization_role () {  return  new SdaiPerson_and_organization_role ;  }

/////////	 END_ENTITY person_and_organization_role 


/////////	 ENTITY quasi_uniform_curve 


class SdaiQuasi_uniform_curve  :    public SdaiB_spline_curve  {
   protected:
  public:  

	SdaiQuasi_uniform_curve ( ); 
	SdaiQuasi_uniform_curve (STEPentity *se ); 
	SdaiQuasi_uniform_curve (SdaiQuasi_uniform_curve& e ); 
	~SdaiQuasi_uniform_curve ();
	int opcode ()  { return 99 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiQuasi_uniform_curve *
create_SdaiQuasi_uniform_curve () {  return  new SdaiQuasi_uniform_curve ;  }

/////////	 END_ENTITY quasi_uniform_curve 


/////////	 ENTITY swept_surface 

extern AttrDescriptor *a_190swept_curve;

class SdaiSwept_surface  :    public SdaiSurface  {
   protected:
	SdaiCurveH _swept_curve ;
  public:  

	SdaiSwept_surface ( ); 
	SdaiSwept_surface (STEPentity *se ); 
	SdaiSwept_surface (SdaiSwept_surface& e ); 
	~SdaiSwept_surface ();
	int opcode ()  { return 100 ; } 
	SdaiCurveH Swept_curve() const;
	void Swept_curve (SdaiCurveH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSwept_surface *
create_SdaiSwept_surface () {  return  new SdaiSwept_surface ;  }

/////////	 END_ENTITY swept_surface 


/////////	 ENTITY property_definition 

extern AttrDescriptor *a_191name;
extern AttrDescriptor *a_192description;
extern AttrDescriptor *a_193definition;

class SdaiProperty_definition  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiCharacterized_definition _definition ;
  public:  

	SdaiProperty_definition ( ); 
	SdaiProperty_definition (STEPentity *se ); 
	SdaiProperty_definition (SdaiProperty_definition& e ); 
	~SdaiProperty_definition ();
	int opcode ()  { return 101 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiCharacterized_definitionH Definition() const;
	void Definition (SdaiCharacterized_definitionH x);
};
inline SdaiProperty_definition *
create_SdaiProperty_definition () {  return  new SdaiProperty_definition ;  }

/////////	 END_ENTITY property_definition 


/////////	 ENTITY global_uncertainty_assigned_context 

extern AttrDescriptor *a_194uncertainty;

class SdaiGlobal_uncertainty_assigned_context  :    public SdaiRepresentation_context  {
   protected:
	EntityAggregate _uncertainty ;	  //  of  uncertainty_measure_with_unit

  public:  

	SdaiGlobal_uncertainty_assigned_context ( ); 
	SdaiGlobal_uncertainty_assigned_context (STEPentity *se ); 
	SdaiGlobal_uncertainty_assigned_context (SdaiGlobal_uncertainty_assigned_context& e ); 
	~SdaiGlobal_uncertainty_assigned_context ();
	int opcode ()  { return 102 ; } 
	const EntityAggregateH Uncertainty() const;
	void Uncertainty (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiGlobal_uncertainty_assigned_context *
create_SdaiGlobal_uncertainty_assigned_context () {  return  new SdaiGlobal_uncertainty_assigned_context ;  }

/////////	 END_ENTITY global_uncertainty_assigned_context 


/////////	 ENTITY organization_relationship 

extern AttrDescriptor *a_195name;
extern AttrDescriptor *a_196description;
extern AttrDescriptor *a_197relating_organization;
extern AttrDescriptor *a_198related_organization;

class SdaiOrganization_relationship  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiOrganizationH _relating_organization ;
	SdaiOrganizationH _related_organization ;
  public:  

	SdaiOrganization_relationship ( ); 
	SdaiOrganization_relationship (STEPentity *se ); 
	SdaiOrganization_relationship (SdaiOrganization_relationship& e ); 
	~SdaiOrganization_relationship ();
	int opcode ()  { return 103 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiOrganizationH Relating_organization() const;
	void Relating_organization (SdaiOrganizationH x);
	SdaiOrganizationH Related_organization() const;
	void Related_organization (SdaiOrganizationH x);
};
inline SdaiOrganization_relationship *
create_SdaiOrganization_relationship () {  return  new SdaiOrganization_relationship ;  }

/////////	 END_ENTITY organization_relationship 


/////////	 ENTITY parabola 

extern AttrDescriptor *a_199focal_dist;

class SdaiParabola  :    public SdaiConic  {
   protected:
	SdaiReal _focal_dist ;
  public:  

	SdaiParabola ( ); 
	SdaiParabola (STEPentity *se ); 
	SdaiParabola (SdaiParabola& e ); 
	~SdaiParabola ();
	int opcode ()  { return 104 ; } 
	const SdaiLength_measure Focal_dist() const;
	void Focal_dist (SdaiLength_measure x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiParabola *
create_SdaiParabola () {  return  new SdaiParabola ;  }

/////////	 END_ENTITY parabola 


/////////	 ENTITY rectangular_composite_surface 

extern AttrDescriptor *a_200segments;
extern AttrDescriptor *a_201Dn_u;
extern AttrDescriptor *a_202Dn_v;

class SdaiRectangular_composite_surface  :    public SdaiBounded_surface  {
   protected:
	GenericAggregate _segments ;	  //  of  surface_patch

  public:  

	SdaiRectangular_composite_surface ( ); 
	SdaiRectangular_composite_surface (STEPentity *se ); 
	SdaiRectangular_composite_surface (SdaiRectangular_composite_surface& e ); 
	~SdaiRectangular_composite_surface ();
	int opcode ()  { return 105 ; } 
	const GenericAggregateH Segments() const;
	void Segments (GenericAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiRectangular_composite_surface *
create_SdaiRectangular_composite_surface () {  return  new SdaiRectangular_composite_surface ;  }

/////////	 END_ENTITY rectangular_composite_surface 


/////////	 ENTITY lot_effectivity 

extern AttrDescriptor *a_203effectivity_lot_id;
extern AttrDescriptor *a_204effectivity_lot_size;

class SdaiLot_effectivity  :    public SdaiEffectivity  {
   protected:
	SdaiString _effectivity_lot_id ;
	SdaiMeasure_with_unitH _effectivity_lot_size ;
  public:  

	SdaiLot_effectivity ( ); 
	SdaiLot_effectivity (STEPentity *se ); 
	SdaiLot_effectivity (SdaiLot_effectivity& e ); 
	~SdaiLot_effectivity ();
	int opcode ()  { return 106 ; } 
	const SdaiIdentifier Effectivity_lot_id() const;
	void Effectivity_lot_id (const char * x);
	SdaiMeasure_with_unitH Effectivity_lot_size() const;
	void Effectivity_lot_size (SdaiMeasure_with_unitH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiLot_effectivity *
create_SdaiLot_effectivity () {  return  new SdaiLot_effectivity ;  }

/////////	 END_ENTITY lot_effectivity 


/////////	 ENTITY surface_of_linear_extrusion 

extern AttrDescriptor *a_205extrusion_axis;

class SdaiSurface_of_linear_extrusion  :    public SdaiSwept_surface  {
   protected:
	SdaiVectorH _extrusion_axis ;
  public:  

	SdaiSurface_of_linear_extrusion ( ); 
	SdaiSurface_of_linear_extrusion (STEPentity *se ); 
	SdaiSurface_of_linear_extrusion (SdaiSurface_of_linear_extrusion& e ); 
	~SdaiSurface_of_linear_extrusion ();
	int opcode ()  { return 107 ; } 
	SdaiVectorH Extrusion_axis() const;
	void Extrusion_axis (SdaiVectorH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSurface_of_linear_extrusion *
create_SdaiSurface_of_linear_extrusion () {  return  new SdaiSurface_of_linear_extrusion ;  }

/////////	 END_ENTITY surface_of_linear_extrusion 


/////////	 ENTITY shell_based_surface_model 

extern AttrDescriptor *a_206sbsm_boundary;

class SdaiShell_based_surface_model  :    public SdaiGeometric_representation_item  {
   protected:
	SdaiShells _sbsm_boundary ;	  //  of  shell

  public:  

	SdaiShell_based_surface_model ( ); 
	SdaiShell_based_surface_model (STEPentity *se ); 
	SdaiShell_based_surface_model (SdaiShell_based_surface_model& e ); 
	~SdaiShell_based_surface_model ();
	int opcode ()  { return 108 ; } 
	const SdaiShellsH Sbsm_boundary() const;
	void Sbsm_boundary (SdaiShellsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiShell_based_surface_model *
create_SdaiShell_based_surface_model () {  return  new SdaiShell_based_surface_model ;  }

/////////	 END_ENTITY shell_based_surface_model 


/////////	 ENTITY uniform_curve 


class SdaiUniform_curve  :    public SdaiB_spline_curve  {
   protected:
  public:  

	SdaiUniform_curve ( ); 
	SdaiUniform_curve (STEPentity *se ); 
	SdaiUniform_curve (SdaiUniform_curve& e ); 
	~SdaiUniform_curve ();
	int opcode ()  { return 109 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiUniform_curve *
create_SdaiUniform_curve () {  return  new SdaiUniform_curve ;  }

/////////	 END_ENTITY uniform_curve 


/////////	 ENTITY bezier_curve 


class SdaiBezier_curve  :    public SdaiB_spline_curve  {
   protected:
  public:  

	SdaiBezier_curve ( ); 
	SdaiBezier_curve (STEPentity *se ); 
	SdaiBezier_curve (SdaiBezier_curve& e ); 
	~SdaiBezier_curve ();
	int opcode ()  { return 110 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiBezier_curve *
create_SdaiBezier_curve () {  return  new SdaiBezier_curve ;  }

/////////	 END_ENTITY bezier_curve 


/////////	 ENTITY loop 


class SdaiLoop  :    public SdaiTopological_representation_item  {
   protected:
  public:  

	SdaiLoop ( ); 
	SdaiLoop (STEPentity *se ); 
	SdaiLoop (SdaiLoop& e ); 
	~SdaiLoop ();
	int opcode ()  { return 111 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiLoop *
create_SdaiLoop () {  return  new SdaiLoop ;  }

/////////	 END_ENTITY loop 


/////////	 ENTITY edge_loop 

extern AttrDescriptor *a_207Dne;

class SdaiEdge_loop  :    public SdaiLoop  {
   protected:
  public:  

	SdaiEdge_loop ( ); 
	SdaiEdge_loop (STEPentity *se ); 
	SdaiEdge_loop (SdaiEdge_loop& e ); 
	~SdaiEdge_loop ();
	int opcode ()  { return 112 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0
	const EntityAggregateH Edge_list() const;
	void Edge_list (EntityAggregateH x);

#endif
};
inline SdaiEdge_loop *
create_SdaiEdge_loop () {  return  new SdaiEdge_loop ;  }

/////////	 END_ENTITY edge_loop 


/////////	 ENTITY date 

extern AttrDescriptor *a_208year_component;

class SdaiDate  :    public STEPentity {
  protected:
	SdaiInteger _year_component ;
  public:  

	SdaiDate ( ); 
	SdaiDate (STEPentity *se ); 
	SdaiDate (SdaiDate& e ); 
	~SdaiDate ();
	int opcode ()  { return 113 ; } 
	const SdaiYear_number Year_component() const;
	void Year_component (SdaiYear_number x);
};
inline SdaiDate *
create_SdaiDate () {  return  new SdaiDate ;  }

/////////	 END_ENTITY date 


/////////	 ENTITY calendar_date 

extern AttrDescriptor *a_209day_component;
extern AttrDescriptor *a_210month_component;

class SdaiCalendar_date  :    public SdaiDate  {
   protected:
	SdaiInteger _day_component ;
	SdaiInteger _month_component ;
  public:  

	SdaiCalendar_date ( ); 
	SdaiCalendar_date (STEPentity *se ); 
	SdaiCalendar_date (SdaiCalendar_date& e ); 
	~SdaiCalendar_date ();
	int opcode ()  { return 114 ; } 
	const SdaiDay_in_month_number Day_component() const;
	void Day_component (SdaiDay_in_month_number x);
	const SdaiMonth_in_year_number Month_component() const;
	void Month_component (SdaiMonth_in_year_number x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCalendar_date *
create_SdaiCalendar_date () {  return  new SdaiCalendar_date ;  }

/////////	 END_ENTITY calendar_date 


/////////	 ENTITY toroidal_surface 

extern AttrDescriptor *a_211major_radius;
extern AttrDescriptor *a_212minor_radius;

class SdaiToroidal_surface  :    public SdaiElementary_surface  {
   protected:
	SdaiReal _major_radius ;
	SdaiReal _minor_radius ;
  public:  

	SdaiToroidal_surface ( ); 
	SdaiToroidal_surface (STEPentity *se ); 
	SdaiToroidal_surface (SdaiToroidal_surface& e ); 
	~SdaiToroidal_surface ();
	int opcode ()  { return 115 ; } 
	const SdaiPositive_length_measure Major_radius() const;
	void Major_radius (SdaiPositive_length_measure x);
	const SdaiPositive_length_measure Minor_radius() const;
	void Minor_radius (SdaiPositive_length_measure x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiToroidal_surface *
create_SdaiToroidal_surface () {  return  new SdaiToroidal_surface ;  }

/////////	 END_ENTITY toroidal_surface 


/////////	 ENTITY promissory_usage_occurrence 


class SdaiPromissory_usage_occurrence  :    public SdaiAssembly_component_usage  {
   protected:
  public:  

	SdaiPromissory_usage_occurrence ( ); 
	SdaiPromissory_usage_occurrence (STEPentity *se ); 
	SdaiPromissory_usage_occurrence (SdaiPromissory_usage_occurrence& e ); 
	~SdaiPromissory_usage_occurrence ();
	int opcode ()  { return 116 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPromissory_usage_occurrence *
create_SdaiPromissory_usage_occurrence () {  return  new SdaiPromissory_usage_occurrence ;  }

/////////	 END_ENTITY promissory_usage_occurrence 


/////////	 ENTITY approval_assignment 

extern AttrDescriptor *a_213assigned_approval;

class SdaiApproval_assignment  :    public STEPentity {
  protected:
	SdaiApprovalH _assigned_approval ;
  public:  

	SdaiApproval_assignment ( ); 
	SdaiApproval_assignment (STEPentity *se ); 
	SdaiApproval_assignment (SdaiApproval_assignment& e ); 
	~SdaiApproval_assignment ();
	int opcode ()  { return 117 ; } 
	SdaiApprovalH Assigned_approval() const;
	void Assigned_approval (SdaiApprovalH x);
};
inline SdaiApproval_assignment *
create_SdaiApproval_assignment () {  return  new SdaiApproval_assignment ;  }

/////////	 END_ENTITY approval_assignment 


/////////	 ENTITY configuration_item 

extern AttrDescriptor *a_214id;
extern AttrDescriptor *a_215name;
extern AttrDescriptor *a_216description;
extern AttrDescriptor *a_217item_concept;
extern AttrDescriptor *a_218purpose;

class SdaiConfiguration_item  :    public STEPentity {
  protected:
	SdaiString _id ;
	SdaiString _name ;
	SdaiString _description ;    //  OPTIONAL
	SdaiProduct_conceptH _item_concept ;
	SdaiString _purpose ;    //  OPTIONAL
  public:  

	SdaiConfiguration_item ( ); 
	SdaiConfiguration_item (STEPentity *se ); 
	SdaiConfiguration_item (SdaiConfiguration_item& e ); 
	~SdaiConfiguration_item ();
	int opcode ()  { return 118 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiProduct_conceptH Item_concept() const;
	void Item_concept (SdaiProduct_conceptH x);
	const SdaiLabel Purpose() const;
	void Purpose (const char * x);
};
inline SdaiConfiguration_item *
create_SdaiConfiguration_item () {  return  new SdaiConfiguration_item ;  }

/////////	 END_ENTITY configuration_item 


/////////	 ENTITY contract_assignment 

extern AttrDescriptor *a_219assigned_contract;

class SdaiContract_assignment  :    public STEPentity {
  protected:
	SdaiContractH _assigned_contract ;
  public:  

	SdaiContract_assignment ( ); 
	SdaiContract_assignment (STEPentity *se ); 
	SdaiContract_assignment (SdaiContract_assignment& e ); 
	~SdaiContract_assignment ();
	int opcode ()  { return 119 ; } 
	SdaiContractH Assigned_contract() const;
	void Assigned_contract (SdaiContractH x);
};
inline SdaiContract_assignment *
create_SdaiContract_assignment () {  return  new SdaiContract_assignment ;  }

/////////	 END_ENTITY contract_assignment 


/////////	 ENTITY vector 

extern AttrDescriptor *a_220orientation;
extern AttrDescriptor *a_221magnitude;

class SdaiVector  :    public SdaiGeometric_representation_item  {
   protected:
	SdaiDirectionH _orientation ;
	SdaiReal _magnitude ;
  public:  

	SdaiVector ( ); 
	SdaiVector (STEPentity *se ); 
	SdaiVector (SdaiVector& e ); 
	~SdaiVector ();
	int opcode ()  { return 120 ; } 
	SdaiDirectionH Orientation() const;
	void Orientation (SdaiDirectionH x);
	const SdaiLength_measure Magnitude() const;
	void Magnitude (SdaiLength_measure x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiVector *
create_SdaiVector () {  return  new SdaiVector ;  }

/////////	 END_ENTITY vector 


/////////	 ENTITY intersection_curve 


class SdaiIntersection_curve  :    public SdaiSurface_curve  {
   protected:
  public:  

	SdaiIntersection_curve ( ); 
	SdaiIntersection_curve (STEPentity *se ); 
	SdaiIntersection_curve (SdaiIntersection_curve& e ); 
	~SdaiIntersection_curve ();
	int opcode ()  { return 121 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiIntersection_curve *
create_SdaiIntersection_curve () {  return  new SdaiIntersection_curve ;  }

/////////	 END_ENTITY intersection_curve 


/////////	 ENTITY trimmed_curve 

extern AttrDescriptor *a_222basis_curve;
extern AttrDescriptor *a_223trim_1;
extern AttrDescriptor *a_224trim_2;
extern AttrDescriptor *a_225sense_agreement;
extern AttrDescriptor *a_226master_representation;

class SdaiTrimmed_curve  :    public SdaiBounded_curve  {
   protected:
	SdaiCurveH _basis_curve ;
	SdaiTrimming_selects _trim_1 ;	  //  of  trimming_select

	SdaiTrimming_selects _trim_2 ;	  //  of  trimming_select

	SdaiBoolean _sense_agreement ;
	SdaiTrimming_preference _master_representation ;
  public:  

	SdaiTrimmed_curve ( ); 
	SdaiTrimmed_curve (STEPentity *se ); 
	SdaiTrimmed_curve (SdaiTrimmed_curve& e ); 
	~SdaiTrimmed_curve ();
	int opcode ()  { return 122 ; } 
	SdaiCurveH Basis_curve() const;
	void Basis_curve (SdaiCurveH x);
	const SdaiTrimming_selectsH Trim_1() const;
	void Trim_1 (SdaiTrimming_selectsH x);
	const SdaiTrimming_selectsH Trim_2() const;
	void Trim_2 (SdaiTrimming_selectsH x);
	const BOOLEAN Sense_agreement() const;
	void Sense_agreement (BOOLEAN x);
	const sdaiTrimming_preference Master_representation() const;
	void Master_representation (sdaiTrimming_preference x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiTrimmed_curve *
create_SdaiTrimmed_curve () {  return  new SdaiTrimmed_curve ;  }

/////////	 END_ENTITY trimmed_curve 


/////////	 ENTITY product_definition_context 

extern AttrDescriptor *a_227life_cycle_stage;

class SdaiProduct_definition_context  :    public SdaiApplication_context_element  {
   protected:
	SdaiString _life_cycle_stage ;
  public:  

	SdaiProduct_definition_context ( ); 
	SdaiProduct_definition_context (STEPentity *se ); 
	SdaiProduct_definition_context (SdaiProduct_definition_context& e ); 
	~SdaiProduct_definition_context ();
	int opcode ()  { return 123 ; } 
	const SdaiLabel Life_cycle_stage() const;
	void Life_cycle_stage (const char * x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiProduct_definition_context *
create_SdaiProduct_definition_context () {  return  new SdaiProduct_definition_context ;  }

/////////	 END_ENTITY product_definition_context 


/////////	 ENTITY item_defined_transformation 

extern AttrDescriptor *a_228name;
extern AttrDescriptor *a_229description;
extern AttrDescriptor *a_230transform_item_1;
extern AttrDescriptor *a_231transform_item_2;

class SdaiItem_defined_transformation  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiRepresentation_itemH _transform_item_1 ;
	SdaiRepresentation_itemH _transform_item_2 ;
  public:  

	SdaiItem_defined_transformation ( ); 
	SdaiItem_defined_transformation (STEPentity *se ); 
	SdaiItem_defined_transformation (SdaiItem_defined_transformation& e ); 
	~SdaiItem_defined_transformation ();
	int opcode ()  { return 124 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiRepresentation_itemH Transform_item_1() const;
	void Transform_item_1 (SdaiRepresentation_itemH x);
	SdaiRepresentation_itemH Transform_item_2() const;
	void Transform_item_2 (SdaiRepresentation_itemH x);
};
inline SdaiItem_defined_transformation *
create_SdaiItem_defined_transformation () {  return  new SdaiItem_defined_transformation ;  }

/////////	 END_ENTITY item_defined_transformation 


/////////	 ENTITY action_method 

extern AttrDescriptor *a_232name;
extern AttrDescriptor *a_233description;
extern AttrDescriptor *a_234consequence;
extern AttrDescriptor *a_235purpose;

class SdaiAction_method  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiString _consequence ;
	SdaiString _purpose ;
  public:  

	SdaiAction_method ( ); 
	SdaiAction_method (STEPentity *se ); 
	SdaiAction_method (SdaiAction_method& e ); 
	~SdaiAction_method ();
	int opcode ()  { return 125 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	const SdaiText Consequence() const;
	void Consequence (const char * x);
	const SdaiText Purpose() const;
	void Purpose (const char * x);
};
inline SdaiAction_method *
create_SdaiAction_method () {  return  new SdaiAction_method ;  }

/////////	 END_ENTITY action_method 


/////////	 ENTITY product_category_relationship 

extern AttrDescriptor *a_236name;
extern AttrDescriptor *a_237description;
extern AttrDescriptor *a_238category;
extern AttrDescriptor *a_239sub_category;

class SdaiProduct_category_relationship  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiProduct_categoryH _category ;
	SdaiProduct_categoryH _sub_category ;
  public:  

	SdaiProduct_category_relationship ( ); 
	SdaiProduct_category_relationship (STEPentity *se ); 
	SdaiProduct_category_relationship (SdaiProduct_category_relationship& e ); 
	~SdaiProduct_category_relationship ();
	int opcode ()  { return 126 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiProduct_categoryH Category() const;
	void Category (SdaiProduct_categoryH x);
	SdaiProduct_categoryH Sub_category() const;
	void Sub_category (SdaiProduct_categoryH x);
};
inline SdaiProduct_category_relationship *
create_SdaiProduct_category_relationship () {  return  new SdaiProduct_category_relationship ;  }

/////////	 END_ENTITY product_category_relationship 


/////////	 ENTITY plane_angle_measure_with_unit 


class SdaiPlane_angle_measure_with_unit  :    public SdaiMeasure_with_unit  {
   protected:
  public:  

	SdaiPlane_angle_measure_with_unit ( ); 
	SdaiPlane_angle_measure_with_unit (STEPentity *se ); 
	SdaiPlane_angle_measure_with_unit (SdaiPlane_angle_measure_with_unit& e ); 
	~SdaiPlane_angle_measure_with_unit ();
	int opcode ()  { return 127 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPlane_angle_measure_with_unit *
create_SdaiPlane_angle_measure_with_unit () {  return  new SdaiPlane_angle_measure_with_unit ;  }

/////////	 END_ENTITY plane_angle_measure_with_unit 


/////////	 ENTITY vertex 


class SdaiVertex  :    public SdaiTopological_representation_item  {
   protected:
  public:  

	SdaiVertex ( ); 
	SdaiVertex (STEPentity *se ); 
	SdaiVertex (SdaiVertex& e ); 
	~SdaiVertex ();
	int opcode ()  { return 128 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiVertex *
create_SdaiVertex () {  return  new SdaiVertex ;  }

/////////	 END_ENTITY vertex 


/////////	 ENTITY representation_map 

extern AttrDescriptor *a_240mapping_origin;
extern AttrDescriptor *a_241mapped_representation;
extern InverseAttrDescriptor *a_242Imap_usage;

class SdaiRepresentation_map  :    public STEPentity {
  protected:
	SdaiRepresentation_itemH _mapping_origin ;
	SdaiRepresentationH _mapped_representation ;
	EntityAggregate _map_usage ;	  //  of  mapped_item

  public:  

	SdaiRepresentation_map ( ); 
	SdaiRepresentation_map (STEPentity *se ); 
	SdaiRepresentation_map (SdaiRepresentation_map& e ); 
	~SdaiRepresentation_map ();
	int opcode ()  { return 129 ; } 
	SdaiRepresentation_itemH Mapping_origin() const;
	void Mapping_origin (SdaiRepresentation_itemH x);
	SdaiRepresentationH Mapped_representation() const;
	void Mapped_representation (SdaiRepresentationH x);
	const EntityAggregateH Map_usage() const;
	void Map_usage (EntityAggregateH x);
};
inline SdaiRepresentation_map *
create_SdaiRepresentation_map () {  return  new SdaiRepresentation_map ;  }

/////////	 END_ENTITY representation_map 


/////////	 ENTITY product_definition_effectivity 

extern AttrDescriptor *a_243usage;

class SdaiProduct_definition_effectivity  :    public SdaiEffectivity  {
   protected:
	SdaiProduct_definition_relationshipH _usage ;
  public:  

	SdaiProduct_definition_effectivity ( ); 
	SdaiProduct_definition_effectivity (STEPentity *se ); 
	SdaiProduct_definition_effectivity (SdaiProduct_definition_effectivity& e ); 
	~SdaiProduct_definition_effectivity ();
	int opcode ()  { return 130 ; } 
	SdaiProduct_definition_relationshipH Usage() const;
	void Usage (SdaiProduct_definition_relationshipH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiProduct_definition_effectivity *
create_SdaiProduct_definition_effectivity () {  return  new SdaiProduct_definition_effectivity ;  }

/////////	 END_ENTITY product_definition_effectivity 


/////////	 ENTITY configuration_effectivity 

extern AttrDescriptor *a_244configuration;

class SdaiConfiguration_effectivity  :    public SdaiProduct_definition_effectivity  {
   protected:
	SdaiConfiguration_designH _configuration ;
  public:  

	SdaiConfiguration_effectivity ( ); 
	SdaiConfiguration_effectivity (STEPentity *se ); 
	SdaiConfiguration_effectivity (SdaiConfiguration_effectivity& e ); 
	~SdaiConfiguration_effectivity ();
	int opcode ()  { return 131 ; } 
	SdaiConfiguration_designH Configuration() const;
	void Configuration (SdaiConfiguration_designH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiConfiguration_effectivity *
create_SdaiConfiguration_effectivity () {  return  new SdaiConfiguration_effectivity ;  }

/////////	 END_ENTITY configuration_effectivity 


/////////	 ENTITY ellipse 

extern AttrDescriptor *a_245semi_axis_1;
extern AttrDescriptor *a_246semi_axis_2;

class SdaiEllipse  :    public SdaiConic  {
   protected:
	SdaiReal _semi_axis_1 ;
	SdaiReal _semi_axis_2 ;
  public:  

	SdaiEllipse ( ); 
	SdaiEllipse (STEPentity *se ); 
	SdaiEllipse (SdaiEllipse& e ); 
	~SdaiEllipse ();
	int opcode ()  { return 132 ; } 
	const SdaiPositive_length_measure Semi_axis_1() const;
	void Semi_axis_1 (SdaiPositive_length_measure x);
	const SdaiPositive_length_measure Semi_axis_2() const;
	void Semi_axis_2 (SdaiPositive_length_measure x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiEllipse *
create_SdaiEllipse () {  return  new SdaiEllipse ;  }

/////////	 END_ENTITY ellipse 


/////////	 ENTITY context_dependent_unit 

extern AttrDescriptor *a_247name;

class SdaiContext_dependent_unit  :    public SdaiNamed_unit  {
   protected:
	SdaiString _name ;
  public:  

	SdaiContext_dependent_unit ( ); 
	SdaiContext_dependent_unit (STEPentity *se ); 
	SdaiContext_dependent_unit (SdaiContext_dependent_unit& e ); 
	~SdaiContext_dependent_unit ();
	int opcode ()  { return 133 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiContext_dependent_unit *
create_SdaiContext_dependent_unit () {  return  new SdaiContext_dependent_unit ;  }

/////////	 END_ENTITY context_dependent_unit 


/////////	 ENTITY alternate_product_relationship 

extern AttrDescriptor *a_248name;
extern AttrDescriptor *a_249description;
extern AttrDescriptor *a_250alternate;
extern AttrDescriptor *a_251base;
extern AttrDescriptor *a_252basis;

class SdaiAlternate_product_relationship  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiProductH _alternate ;
	SdaiProductH _base ;
	SdaiString _basis ;
  public:  

	SdaiAlternate_product_relationship ( ); 
	SdaiAlternate_product_relationship (STEPentity *se ); 
	SdaiAlternate_product_relationship (SdaiAlternate_product_relationship& e ); 
	~SdaiAlternate_product_relationship ();
	int opcode ()  { return 134 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiProductH Alternate() const;
	void Alternate (SdaiProductH x);
	SdaiProductH Base() const;
	void Base (SdaiProductH x);
	const SdaiText Basis() const;
	void Basis (const char * x);
};
inline SdaiAlternate_product_relationship *
create_SdaiAlternate_product_relationship () {  return  new SdaiAlternate_product_relationship ;  }

/////////	 END_ENTITY alternate_product_relationship 


/////////	 ENTITY document_type 

extern AttrDescriptor *a_253product_data_type;

class SdaiDocument_type  :    public STEPentity {
  protected:
	SdaiString _product_data_type ;
  public:  

	SdaiDocument_type ( ); 
	SdaiDocument_type (STEPentity *se ); 
	SdaiDocument_type (SdaiDocument_type& e ); 
	~SdaiDocument_type ();
	int opcode ()  { return 135 ; } 
	const SdaiLabel Product_data_type() const;
	void Product_data_type (const char * x);
};
inline SdaiDocument_type *
create_SdaiDocument_type () {  return  new SdaiDocument_type ;  }

/////////	 END_ENTITY document_type 


/////////	 ENTITY document_reference 

extern AttrDescriptor *a_254assigned_document;
extern AttrDescriptor *a_255source;

class SdaiDocument_reference  :    public STEPentity {
  protected:
	SdaiDocumentH _assigned_document ;
	SdaiString _source ;
  public:  

	SdaiDocument_reference ( ); 
	SdaiDocument_reference (STEPentity *se ); 
	SdaiDocument_reference (SdaiDocument_reference& e ); 
	~SdaiDocument_reference ();
	int opcode ()  { return 136 ; } 
	SdaiDocumentH Assigned_document() const;
	void Assigned_document (SdaiDocumentH x);
	const SdaiLabel Source() const;
	void Source (const char * x);
};
inline SdaiDocument_reference *
create_SdaiDocument_reference () {  return  new SdaiDocument_reference ;  }

/////////	 END_ENTITY document_reference 


/////////	 ENTITY mechanical_context 


class SdaiMechanical_context  :    public SdaiProduct_context  {
   protected:
  public:  

	SdaiMechanical_context ( ); 
	SdaiMechanical_context (STEPentity *se ); 
	SdaiMechanical_context (SdaiMechanical_context& e ); 
	~SdaiMechanical_context ();
	int opcode ()  { return 137 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiMechanical_context *
create_SdaiMechanical_context () {  return  new SdaiMechanical_context ;  }

/////////	 END_ENTITY mechanical_context 


/////////	 ENTITY shell_based_wireframe_model 

extern AttrDescriptor *a_256sbwm_boundary;

class SdaiShell_based_wireframe_model  :    public SdaiGeometric_representation_item  {
   protected:
	SdaiShells _sbwm_boundary ;	  //  of  shell

  public:  

	SdaiShell_based_wireframe_model ( ); 
	SdaiShell_based_wireframe_model (STEPentity *se ); 
	SdaiShell_based_wireframe_model (SdaiShell_based_wireframe_model& e ); 
	~SdaiShell_based_wireframe_model ();
	int opcode ()  { return 138 ; } 
	const SdaiShellsH Sbwm_boundary() const;
	void Sbwm_boundary (SdaiShellsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiShell_based_wireframe_model *
create_SdaiShell_based_wireframe_model () {  return  new SdaiShell_based_wireframe_model ;  }

/////////	 END_ENTITY shell_based_wireframe_model 


/////////	 ENTITY contract 

extern AttrDescriptor *a_257name;
extern AttrDescriptor *a_258purpose;
extern AttrDescriptor *a_259kind;

class SdaiContract  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _purpose ;
	SdaiContract_typeH _kind ;
  public:  

	SdaiContract ( ); 
	SdaiContract (STEPentity *se ); 
	SdaiContract (SdaiContract& e ); 
	~SdaiContract ();
	int opcode ()  { return 139 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Purpose() const;
	void Purpose (const char * x);
	SdaiContract_typeH Kind() const;
	void Kind (SdaiContract_typeH x);
};
inline SdaiContract *
create_SdaiContract () {  return  new SdaiContract ;  }

/////////	 END_ENTITY contract 


/////////	 ENTITY dimensional_exponents 

extern AttrDescriptor *a_260length_exponent;
extern AttrDescriptor *a_261mass_exponent;
extern AttrDescriptor *a_262time_exponent;
extern AttrDescriptor *a_263electric_current_exponent;
extern AttrDescriptor *a_264thermodynamic_temperature_exponent;
extern AttrDescriptor *a_265amount_of_substance_exponent;
extern AttrDescriptor *a_266luminous_intensity_exponent;

class SdaiDimensional_exponents  :    public STEPentity {
  protected:
	SdaiReal _length_exponent ;
	SdaiReal _mass_exponent ;
	SdaiReal _time_exponent ;
	SdaiReal _electric_current_exponent ;
	SdaiReal _thermodynamic_temperature_exponent ;
	SdaiReal _amount_of_substance_exponent ;
	SdaiReal _luminous_intensity_exponent ;
  public:  

	SdaiDimensional_exponents ( ); 
	SdaiDimensional_exponents (STEPentity *se ); 
	SdaiDimensional_exponents (SdaiDimensional_exponents& e ); 
	~SdaiDimensional_exponents ();
	int opcode ()  { return 140 ; } 
	const SdaiReal Length_exponent() const;
	void Length_exponent (SdaiReal x);
	const SdaiReal Mass_exponent() const;
	void Mass_exponent (SdaiReal x);
	const SdaiReal Time_exponent() const;
	void Time_exponent (SdaiReal x);
	const SdaiReal Electric_current_exponent() const;
	void Electric_current_exponent (SdaiReal x);
	const SdaiReal Thermodynamic_temperature_exponent() const;
	void Thermodynamic_temperature_exponent (SdaiReal x);
	const SdaiReal Amount_of_substance_exponent() const;
	void Amount_of_substance_exponent (SdaiReal x);
	const SdaiReal Luminous_intensity_exponent() const;
	void Luminous_intensity_exponent (SdaiReal x);
};
inline SdaiDimensional_exponents *
create_SdaiDimensional_exponents () {  return  new SdaiDimensional_exponents ;  }

/////////	 END_ENTITY dimensional_exponents 


/////////	 ENTITY start_request 

extern AttrDescriptor *a_267items;

class SdaiStart_request  :    public SdaiAction_request_assignment  {
   protected:
	SdaiStart_request_items _items ;	  //  of  start_request_item

  public:  

	SdaiStart_request ( ); 
	SdaiStart_request (STEPentity *se ); 
	SdaiStart_request (SdaiStart_request& e ); 
	~SdaiStart_request ();
	int opcode ()  { return 141 ; } 
	const SdaiStart_request_itemsH Items() const;
	void Items (SdaiStart_request_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiStart_request *
create_SdaiStart_request () {  return  new SdaiStart_request ;  }

/////////	 END_ENTITY start_request 


/////////	 ENTITY cc_design_specification_reference 

extern AttrDescriptor *a_268items;

class SdaiCc_design_specification_reference  :    public SdaiDocument_reference  {
   protected:
	SdaiSpecified_items _items ;	  //  of  specified_item

  public:  

	SdaiCc_design_specification_reference ( ); 
	SdaiCc_design_specification_reference (STEPentity *se ); 
	SdaiCc_design_specification_reference (SdaiCc_design_specification_reference& e ); 
	~SdaiCc_design_specification_reference ();
	int opcode ()  { return 142 ; } 
	const SdaiSpecified_itemsH Items() const;
	void Items (SdaiSpecified_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCc_design_specification_reference *
create_SdaiCc_design_specification_reference () {  return  new SdaiCc_design_specification_reference ;  }

/////////	 END_ENTITY cc_design_specification_reference 


/////////	 ENTITY supplied_part_relationship 


class SdaiSupplied_part_relationship  :    public SdaiProduct_definition_relationship  {
   protected:
  public:  

	SdaiSupplied_part_relationship ( ); 
	SdaiSupplied_part_relationship (STEPentity *se ); 
	SdaiSupplied_part_relationship (SdaiSupplied_part_relationship& e ); 
	~SdaiSupplied_part_relationship ();
	int opcode ()  { return 143 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSupplied_part_relationship *
create_SdaiSupplied_part_relationship () {  return  new SdaiSupplied_part_relationship ;  }

/////////	 END_ENTITY supplied_part_relationship 


/////////	 ENTITY context_dependent_shape_representation 

extern AttrDescriptor *a_269representation_relation;
extern AttrDescriptor *a_270represented_product_relation;

class SdaiContext_dependent_shape_representation  :    public STEPentity {
  protected:
	SdaiShape_representation_relationshipH _representation_relation ;
	SdaiProduct_definition_shapeH _represented_product_relation ;
  public:  

	SdaiContext_dependent_shape_representation ( ); 
	SdaiContext_dependent_shape_representation (STEPentity *se ); 
	SdaiContext_dependent_shape_representation (SdaiContext_dependent_shape_representation& e ); 
	~SdaiContext_dependent_shape_representation ();
	int opcode ()  { return 144 ; } 
	SdaiShape_representation_relationshipH Representation_relation() const;
	void Representation_relation (SdaiShape_representation_relationshipH x);
	SdaiProduct_definition_shapeH Represented_product_relation() const;
	void Represented_product_relation (SdaiProduct_definition_shapeH x);
};
inline SdaiContext_dependent_shape_representation *
create_SdaiContext_dependent_shape_representation () {  return  new SdaiContext_dependent_shape_representation ;  }

/////////	 END_ENTITY context_dependent_shape_representation 


/////////	 ENTITY ordinal_date 

extern AttrDescriptor *a_271day_component;

class SdaiOrdinal_date  :    public SdaiDate  {
   protected:
	SdaiInteger _day_component ;
  public:  

	SdaiOrdinal_date ( ); 
	SdaiOrdinal_date (STEPentity *se ); 
	SdaiOrdinal_date (SdaiOrdinal_date& e ); 
	~SdaiOrdinal_date ();
	int opcode ()  { return 145 ; } 
	const SdaiDay_in_year_number Day_component() const;
	void Day_component (SdaiDay_in_year_number x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOrdinal_date *
create_SdaiOrdinal_date () {  return  new SdaiOrdinal_date ;  }

/////////	 END_ENTITY ordinal_date 


/////////	 ENTITY face_outer_bound 


class SdaiFace_outer_bound  :    public SdaiFace_bound  {
   protected:
  public:  

	SdaiFace_outer_bound ( ); 
	SdaiFace_outer_bound (STEPentity *se ); 
	SdaiFace_outer_bound (SdaiFace_outer_bound& e ); 
	~SdaiFace_outer_bound ();
	int opcode ()  { return 146 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiFace_outer_bound *
create_SdaiFace_outer_bound () {  return  new SdaiFace_outer_bound ;  }

/////////	 END_ENTITY face_outer_bound 


/////////	 ENTITY mass_measure_with_unit 


class SdaiMass_measure_with_unit  :    public SdaiMeasure_with_unit  {
   protected:
  public:  

	SdaiMass_measure_with_unit ( ); 
	SdaiMass_measure_with_unit (STEPentity *se ); 
	SdaiMass_measure_with_unit (SdaiMass_measure_with_unit& e ); 
	~SdaiMass_measure_with_unit ();
	int opcode ()  { return 147 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiMass_measure_with_unit *
create_SdaiMass_measure_with_unit () {  return  new SdaiMass_measure_with_unit ;  }

/////////	 END_ENTITY mass_measure_with_unit 


/////////	 ENTITY brep_with_voids 

extern AttrDescriptor *a_272voids;

class SdaiBrep_with_voids  :    public SdaiManifold_solid_brep  {
   protected:
	EntityAggregate _voids ;	  //  of  oriented_closed_shell

  public:  

	SdaiBrep_with_voids ( ); 
	SdaiBrep_with_voids (STEPentity *se ); 
	SdaiBrep_with_voids (SdaiBrep_with_voids& e ); 
	~SdaiBrep_with_voids ();
	int opcode ()  { return 148 ; } 
	const EntityAggregateH Voids() const;
	void Voids (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiBrep_with_voids *
create_SdaiBrep_with_voids () {  return  new SdaiBrep_with_voids ;  }

/////////	 END_ENTITY brep_with_voids 


/////////	 ENTITY week_of_year_and_day_date 

extern AttrDescriptor *a_273week_component;
extern AttrDescriptor *a_274day_component;

class SdaiWeek_of_year_and_day_date  :    public SdaiDate  {
   protected:
	SdaiInteger _week_component ;
	SdaiInteger _day_component ;    //  OPTIONAL
  public:  

	SdaiWeek_of_year_and_day_date ( ); 
	SdaiWeek_of_year_and_day_date (STEPentity *se ); 
	SdaiWeek_of_year_and_day_date (SdaiWeek_of_year_and_day_date& e ); 
	~SdaiWeek_of_year_and_day_date ();
	int opcode ()  { return 149 ; } 
	const SdaiWeek_in_year_number Week_component() const;
	void Week_component (SdaiWeek_in_year_number x);
	const SdaiDay_in_week_number Day_component() const;
	void Day_component (SdaiDay_in_week_number x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiWeek_of_year_and_day_date *
create_SdaiWeek_of_year_and_day_date () {  return  new SdaiWeek_of_year_and_day_date ;  }

/////////	 END_ENTITY week_of_year_and_day_date 


/////////	 ENTITY point_on_curve 

extern AttrDescriptor *a_275basis_curve;
extern AttrDescriptor *a_276point_parameter;

class SdaiPoint_on_curve  :    public SdaiPoint  {
   protected:
	SdaiCurveH _basis_curve ;
	SdaiReal _point_parameter ;
  public:  

	SdaiPoint_on_curve ( ); 
	SdaiPoint_on_curve (STEPentity *se ); 
	SdaiPoint_on_curve (SdaiPoint_on_curve& e ); 
	~SdaiPoint_on_curve ();
	int opcode ()  { return 150 ; } 
	SdaiCurveH Basis_curve() const;
	void Basis_curve (SdaiCurveH x);
	const SdaiParameter_value Point_parameter() const;
	void Point_parameter (SdaiParameter_value x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPoint_on_curve *
create_SdaiPoint_on_curve () {  return  new SdaiPoint_on_curve ;  }

/////////	 END_ENTITY point_on_curve 


/////////	 ENTITY shell_based_wireframe_shape_representation 


class SdaiShell_based_wireframe_shape_representation  :    public SdaiShape_representation  {
   protected:
  public:  

	SdaiShell_based_wireframe_shape_representation ( ); 
	SdaiShell_based_wireframe_shape_representation (STEPentity *se ); 
	SdaiShell_based_wireframe_shape_representation (SdaiShell_based_wireframe_shape_representation& e ); 
	~SdaiShell_based_wireframe_shape_representation ();
	int opcode ()  { return 151 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiShell_based_wireframe_shape_representation *
create_SdaiShell_based_wireframe_shape_representation () {  return  new SdaiShell_based_wireframe_shape_representation ;  }

/////////	 END_ENTITY shell_based_wireframe_shape_representation 


/////////	 ENTITY face 

extern AttrDescriptor *a_277bounds;

class SdaiFace  :    public SdaiTopological_representation_item  {
   protected:
	EntityAggregate _bounds ;	  //  of  face_bound

  public:  

	SdaiFace ( ); 
	SdaiFace (STEPentity *se ); 
	SdaiFace (SdaiFace& e ); 
	~SdaiFace ();
	int opcode ()  { return 152 ; } 
	const EntityAggregateH Bounds() const;
	void Bounds (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiFace *
create_SdaiFace () {  return  new SdaiFace ;  }

/////////	 END_ENTITY face 


/////////	 ENTITY face_surface 

extern AttrDescriptor *a_278face_geometry;
extern AttrDescriptor *a_279same_sense;

class SdaiFace_surface  :    public SdaiFace  {
   protected:
	SdaiSurfaceH _face_geometry ;
	SdaiBoolean _same_sense ;
  public:  

	SdaiFace_surface ( ); 
	SdaiFace_surface (STEPentity *se ); 
	SdaiFace_surface (SdaiFace_surface& e ); 
	~SdaiFace_surface ();
	int opcode ()  { return 153 ; } 
	SdaiSurfaceH Face_geometry() const;
	void Face_geometry (SdaiSurfaceH x);
	const BOOLEAN Same_sense() const;
	void Same_sense (BOOLEAN x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0

#endif
};
inline SdaiFace_surface *
create_SdaiFace_surface () {  return  new SdaiFace_surface ;  }

/////////	 END_ENTITY face_surface 


/////////	 ENTITY oriented_face 

extern AttrDescriptor *a_280face_element;
extern AttrDescriptor *a_281orientation;
extern AttrDescriptor *a_282Dface_bounds;

class SdaiOriented_face  :    public SdaiFace  {
   protected:
	SdaiFaceH _face_element ;
	SdaiBoolean _orientation ;
  public:  

	SdaiOriented_face ( ); 
	SdaiOriented_face (STEPentity *se ); 
	SdaiOriented_face (SdaiOriented_face& e ); 
	~SdaiOriented_face ();
	int opcode ()  { return 154 ; } 
	SdaiFaceH Face_element() const;
	void Face_element (SdaiFaceH x);
	const BOOLEAN Orientation() const;
	void Orientation (BOOLEAN x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOriented_face *
create_SdaiOriented_face () {  return  new SdaiOriented_face ;  }

/////////	 END_ENTITY oriented_face 


/////////	 ENTITY surface_of_revolution 

extern AttrDescriptor *a_283axis_position;
extern AttrDescriptor *a_284Daxis_line;

class SdaiSurface_of_revolution  :    public SdaiSwept_surface  {
   protected:
	SdaiAxis1_placementH _axis_position ;
  public:  

	SdaiSurface_of_revolution ( ); 
	SdaiSurface_of_revolution (STEPentity *se ); 
	SdaiSurface_of_revolution (SdaiSurface_of_revolution& e ); 
	~SdaiSurface_of_revolution ();
	int opcode ()  { return 155 ; } 
	SdaiAxis1_placementH Axis_position() const;
	void Axis_position (SdaiAxis1_placementH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSurface_of_revolution *
create_SdaiSurface_of_revolution () {  return  new SdaiSurface_of_revolution ;  }

/////////	 END_ENTITY surface_of_revolution 


/////////	 ENTITY advanced_brep_shape_representation 


class SdaiAdvanced_brep_shape_representation  :    public SdaiShape_representation  {
   protected:
  public:  

	SdaiAdvanced_brep_shape_representation ( ); 
	SdaiAdvanced_brep_shape_representation (STEPentity *se ); 
	SdaiAdvanced_brep_shape_representation (SdaiAdvanced_brep_shape_representation& e ); 
	~SdaiAdvanced_brep_shape_representation ();
	int opcode ()  { return 156 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiAdvanced_brep_shape_representation *
create_SdaiAdvanced_brep_shape_representation () {  return  new SdaiAdvanced_brep_shape_representation ;  }

/////////	 END_ENTITY advanced_brep_shape_representation 


/////////	 ENTITY edge_curve 

extern AttrDescriptor *a_285edge_geometry;
extern AttrDescriptor *a_286same_sense;

class SdaiEdge_curve  :    public SdaiEdge  {
   protected:
	SdaiCurveH _edge_geometry ;
	SdaiBoolean _same_sense ;
  public:  

	SdaiEdge_curve ( ); 
	SdaiEdge_curve (STEPentity *se ); 
	SdaiEdge_curve (SdaiEdge_curve& e ); 
	~SdaiEdge_curve ();
	int opcode ()  { return 157 ; } 
	SdaiCurveH Edge_geometry() const;
	void Edge_geometry (SdaiCurveH x);
	const BOOLEAN Same_sense() const;
	void Same_sense (BOOLEAN x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0

#endif
};
inline SdaiEdge_curve *
create_SdaiEdge_curve () {  return  new SdaiEdge_curve ;  }

/////////	 END_ENTITY edge_curve 


/////////	 ENTITY point_replica 

extern AttrDescriptor *a_287parent_pt;
extern AttrDescriptor *a_288transformation;

class SdaiPoint_replica  :    public SdaiPoint  {
   protected:
	SdaiPointH _parent_pt ;
	SdaiCartesian_transformation_operatorH _transformation ;
  public:  

	SdaiPoint_replica ( ); 
	SdaiPoint_replica (STEPentity *se ); 
	SdaiPoint_replica (SdaiPoint_replica& e ); 
	~SdaiPoint_replica ();
	int opcode ()  { return 158 ; } 
	SdaiPointH Parent_pt() const;
	void Parent_pt (SdaiPointH x);
	SdaiCartesian_transformation_operatorH Transformation() const;
	void Transformation (SdaiCartesian_transformation_operatorH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPoint_replica *
create_SdaiPoint_replica () {  return  new SdaiPoint_replica ;  }

/////////	 END_ENTITY point_replica 


/////////	 ENTITY product 

extern AttrDescriptor *a_289id;
extern AttrDescriptor *a_290name;
extern AttrDescriptor *a_291description;
extern AttrDescriptor *a_292frame_of_reference;

class SdaiProduct  :    public STEPentity {
  protected:
	SdaiString _id ;
	SdaiString _name ;
	SdaiString _description ;
	EntityAggregate _frame_of_reference ;	  //  of  product_context

  public:  

	SdaiProduct ( ); 
	SdaiProduct (STEPentity *se ); 
	SdaiProduct (SdaiProduct& e ); 
	~SdaiProduct ();
	int opcode ()  { return 159 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	const EntityAggregateH Frame_of_reference() const;
	void Frame_of_reference (EntityAggregateH x);
};
inline SdaiProduct *
create_SdaiProduct () {  return  new SdaiProduct ;  }

/////////	 END_ENTITY product 


/////////	 ENTITY shape_aspect_relationship 

extern AttrDescriptor *a_293name;
extern AttrDescriptor *a_294description;
extern AttrDescriptor *a_295relating_shape_aspect;
extern AttrDescriptor *a_296related_shape_aspect;

class SdaiShape_aspect_relationship  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiShape_aspectH _relating_shape_aspect ;
	SdaiShape_aspectH _related_shape_aspect ;
  public:  

	SdaiShape_aspect_relationship ( ); 
	SdaiShape_aspect_relationship (STEPentity *se ); 
	SdaiShape_aspect_relationship (SdaiShape_aspect_relationship& e ); 
	~SdaiShape_aspect_relationship ();
	int opcode ()  { return 160 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiShape_aspectH Relating_shape_aspect() const;
	void Relating_shape_aspect (SdaiShape_aspectH x);
	SdaiShape_aspectH Related_shape_aspect() const;
	void Related_shape_aspect (SdaiShape_aspectH x);
};
inline SdaiShape_aspect_relationship *
create_SdaiShape_aspect_relationship () {  return  new SdaiShape_aspect_relationship ;  }

/////////	 END_ENTITY shape_aspect_relationship 


/////////	 ENTITY rectangular_trimmed_surface 

extern AttrDescriptor *a_297basis_surface;
extern AttrDescriptor *a_298u1;
extern AttrDescriptor *a_299u2;
extern AttrDescriptor *a_300v1;
extern AttrDescriptor *a_301v2;
extern AttrDescriptor *a_302usense;
extern AttrDescriptor *a_303vsense;

class SdaiRectangular_trimmed_surface  :    public SdaiBounded_surface  {
   protected:
	SdaiSurfaceH _basis_surface ;
	SdaiReal _u1 ;
	SdaiReal _u2 ;
	SdaiReal _v1 ;
	SdaiReal _v2 ;
	SdaiBoolean _usense ;
	SdaiBoolean _vsense ;
  public:  

	SdaiRectangular_trimmed_surface ( ); 
	SdaiRectangular_trimmed_surface (STEPentity *se ); 
	SdaiRectangular_trimmed_surface (SdaiRectangular_trimmed_surface& e ); 
	~SdaiRectangular_trimmed_surface ();
	int opcode ()  { return 161 ; } 
	SdaiSurfaceH Basis_surface() const;
	void Basis_surface (SdaiSurfaceH x);
	const SdaiParameter_value U1() const;
	void U1 (SdaiParameter_value x);
	const SdaiParameter_value U2() const;
	void U2 (SdaiParameter_value x);
	const SdaiParameter_value V1() const;
	void V1 (SdaiParameter_value x);
	const SdaiParameter_value V2() const;
	void V2 (SdaiParameter_value x);
	const BOOLEAN Usense() const;
	void Usense (BOOLEAN x);
	const BOOLEAN Vsense() const;
	void Vsense (BOOLEAN x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiRectangular_trimmed_surface *
create_SdaiRectangular_trimmed_surface () {  return  new SdaiRectangular_trimmed_surface ;  }

/////////	 END_ENTITY rectangular_trimmed_surface 


/////////	 ENTITY plane 


class SdaiPlane  :    public SdaiElementary_surface  {
   protected:
  public:  

	SdaiPlane ( ); 
	SdaiPlane (STEPentity *se ); 
	SdaiPlane (SdaiPlane& e ); 
	~SdaiPlane ();
	int opcode ()  { return 162 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPlane *
create_SdaiPlane () {  return  new SdaiPlane ;  }

/////////	 END_ENTITY plane 


/////////	 ENTITY action_assignment 

extern AttrDescriptor *a_304assigned_action;

class SdaiAction_assignment  :    public STEPentity {
  protected:
	SdaiActionH _assigned_action ;
  public:  

	SdaiAction_assignment ( ); 
	SdaiAction_assignment (STEPentity *se ); 
	SdaiAction_assignment (SdaiAction_assignment& e ); 
	~SdaiAction_assignment ();
	int opcode ()  { return 163 ; } 
	SdaiActionH Assigned_action() const;
	void Assigned_action (SdaiActionH x);
};
inline SdaiAction_assignment *
create_SdaiAction_assignment () {  return  new SdaiAction_assignment ;  }

/////////	 END_ENTITY action_assignment 


/////////	 ENTITY change 

extern AttrDescriptor *a_305items;

class SdaiChange  :    public SdaiAction_assignment  {
   protected:
	SdaiWork_items _items ;	  //  of  work_item

  public:  

	SdaiChange ( ); 
	SdaiChange (STEPentity *se ); 
	SdaiChange (SdaiChange& e ); 
	~SdaiChange ();
	int opcode ()  { return 164 ; } 
	const SdaiWork_itemsH Items() const;
	void Items (SdaiWork_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiChange *
create_SdaiChange () {  return  new SdaiChange ;  }

/////////	 END_ENTITY change 


/////////	 ENTITY circle 

extern AttrDescriptor *a_306radius;

class SdaiCircle  :    public SdaiConic  {
   protected:
	SdaiReal _radius ;
  public:  

	SdaiCircle ( ); 
	SdaiCircle (STEPentity *se ); 
	SdaiCircle (SdaiCircle& e ); 
	~SdaiCircle ();
	int opcode ()  { return 165 ; } 
	const SdaiPositive_length_measure Radius() const;
	void Radius (SdaiPositive_length_measure x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCircle *
create_SdaiCircle () {  return  new SdaiCircle ;  }

/////////	 END_ENTITY circle 


/////////	 ENTITY line 

extern AttrDescriptor *a_307pnt;
extern AttrDescriptor *a_308dir;

class SdaiLine  :    public SdaiCurve  {
   protected:
	SdaiCartesian_pointH _pnt ;
	SdaiVectorH _dir ;
  public:  

	SdaiLine ( ); 
	SdaiLine (STEPentity *se ); 
	SdaiLine (SdaiLine& e ); 
	~SdaiLine ();
	int opcode ()  { return 166 ; } 
	SdaiCartesian_pointH Pnt() const;
	void Pnt (SdaiCartesian_pointH x);
	SdaiVectorH Dir() const;
	void Dir (SdaiVectorH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiLine *
create_SdaiLine () {  return  new SdaiLine ;  }

/////////	 END_ENTITY line 


/////////	 ENTITY property_definition_representation 

extern AttrDescriptor *a_309definition;
extern AttrDescriptor *a_310used_representation;

class SdaiProperty_definition_representation  :    public STEPentity {
  protected:
	SdaiProperty_definitionH _definition ;
	SdaiRepresentationH _used_representation ;
  public:  

	SdaiProperty_definition_representation ( ); 
	SdaiProperty_definition_representation (STEPentity *se ); 
	SdaiProperty_definition_representation (SdaiProperty_definition_representation& e ); 
	~SdaiProperty_definition_representation ();
	int opcode ()  { return 167 ; } 
	SdaiProperty_definitionH Definition() const;
	void Definition (SdaiProperty_definitionH x);
	SdaiRepresentationH Used_representation() const;
	void Used_representation (SdaiRepresentationH x);
};
inline SdaiProperty_definition_representation *
create_SdaiProperty_definition_representation () {  return  new SdaiProperty_definition_representation ;  }

/////////	 END_ENTITY property_definition_representation 


/////////	 ENTITY geometric_set 

extern AttrDescriptor *a_311elements;

class SdaiGeometric_set  :    public SdaiGeometric_representation_item  {
   protected:
	SdaiGeometric_set_selects _elements ;	  //  of  geometric_set_select

  public:  

	SdaiGeometric_set ( ); 
	SdaiGeometric_set (STEPentity *se ); 
	SdaiGeometric_set (SdaiGeometric_set& e ); 
	~SdaiGeometric_set ();
	int opcode ()  { return 168 ; } 
	const SdaiGeometric_set_selectsH Elements() const;
	void Elements (SdaiGeometric_set_selectsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiGeometric_set *
create_SdaiGeometric_set () {  return  new SdaiGeometric_set ;  }

/////////	 END_ENTITY geometric_set 


/////////	 ENTITY geometric_curve_set 


class SdaiGeometric_curve_set  :    public SdaiGeometric_set  {
   protected:
  public:  

	SdaiGeometric_curve_set ( ); 
	SdaiGeometric_curve_set (STEPentity *se ); 
	SdaiGeometric_curve_set (SdaiGeometric_curve_set& e ); 
	~SdaiGeometric_curve_set ();
	int opcode ()  { return 169 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiGeometric_curve_set *
create_SdaiGeometric_curve_set () {  return  new SdaiGeometric_curve_set ;  }

/////////	 END_ENTITY geometric_curve_set 


/////////	 ENTITY personal_address 

extern AttrDescriptor *a_312people;
extern AttrDescriptor *a_313description;

class SdaiPersonal_address  :    public SdaiAddress  {
   protected:
	EntityAggregate _people ;	  //  of  person

	SdaiString _description ;
  public:  

	SdaiPersonal_address ( ); 
	SdaiPersonal_address (STEPentity *se ); 
	SdaiPersonal_address (SdaiPersonal_address& e ); 
	~SdaiPersonal_address ();
	int opcode ()  { return 170 ; } 
	const EntityAggregateH People() const;
	void People (EntityAggregateH x);
	const SdaiText Description() const;
	void Description (const char * x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPersonal_address *
create_SdaiPersonal_address () {  return  new SdaiPersonal_address ;  }

/////////	 END_ENTITY personal_address 


/////////	 ENTITY document_relationship 

extern AttrDescriptor *a_314name;
extern AttrDescriptor *a_315description;
extern AttrDescriptor *a_316relating_document;
extern AttrDescriptor *a_317related_document;

class SdaiDocument_relationship  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiDocumentH _relating_document ;
	SdaiDocumentH _related_document ;
  public:  

	SdaiDocument_relationship ( ); 
	SdaiDocument_relationship (STEPentity *se ); 
	SdaiDocument_relationship (SdaiDocument_relationship& e ); 
	~SdaiDocument_relationship ();
	int opcode ()  { return 171 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiDocumentH Relating_document() const;
	void Relating_document (SdaiDocumentH x);
	SdaiDocumentH Related_document() const;
	void Related_document (SdaiDocumentH x);
};
inline SdaiDocument_relationship *
create_SdaiDocument_relationship () {  return  new SdaiDocument_relationship ;  }

/////////	 END_ENTITY document_relationship 


/////////	 ENTITY pcurve 

extern AttrDescriptor *a_318basis_surface;
extern AttrDescriptor *a_319reference_to_curve;

class SdaiPcurve  :    public SdaiCurve  {
   protected:
	SdaiSurfaceH _basis_surface ;
	SdaiDefinitional_representationH _reference_to_curve ;
  public:  

	SdaiPcurve ( ); 
	SdaiPcurve (STEPentity *se ); 
	SdaiPcurve (SdaiPcurve& e ); 
	~SdaiPcurve ();
	int opcode ()  { return 172 ; } 
	SdaiSurfaceH Basis_surface() const;
	void Basis_surface (SdaiSurfaceH x);
	SdaiDefinitional_representationH Reference_to_curve() const;
	void Reference_to_curve (SdaiDefinitional_representationH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPcurve *
create_SdaiPcurve () {  return  new SdaiPcurve ;  }

/////////	 END_ENTITY pcurve 


/////////	 ENTITY outer_boundary_curve 


class SdaiOuter_boundary_curve  :    public SdaiBoundary_curve  {
   protected:
  public:  

	SdaiOuter_boundary_curve ( ); 
	SdaiOuter_boundary_curve (STEPentity *se ); 
	SdaiOuter_boundary_curve (SdaiOuter_boundary_curve& e ); 
	~SdaiOuter_boundary_curve ();
	int opcode ()  { return 173 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOuter_boundary_curve *
create_SdaiOuter_boundary_curve () {  return  new SdaiOuter_boundary_curve ;  }

/////////	 END_ENTITY outer_boundary_curve 


/////////	 ENTITY shape_representation_relationship 


class SdaiShape_representation_relationship  :    public SdaiRepresentation_relationship  {
   protected:
  public:  

	SdaiShape_representation_relationship ( ); 
	SdaiShape_representation_relationship (STEPentity *se ); 
	SdaiShape_representation_relationship (SdaiShape_representation_relationship& e ); 
	~SdaiShape_representation_relationship ();
	int opcode ()  { return 174 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiShape_representation_relationship *
create_SdaiShape_representation_relationship () {  return  new SdaiShape_representation_relationship ;  }

/////////	 END_ENTITY shape_representation_relationship 


/////////	 ENTITY assembly_component_usage_substitute 

extern AttrDescriptor *a_320name;
extern AttrDescriptor *a_321description;
extern AttrDescriptor *a_322base;
extern AttrDescriptor *a_323substitute;

class SdaiAssembly_component_usage_substitute  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiAssembly_component_usageH _base ;
	SdaiAssembly_component_usageH _substitute ;
  public:  

	SdaiAssembly_component_usage_substitute ( ); 
	SdaiAssembly_component_usage_substitute (STEPentity *se ); 
	SdaiAssembly_component_usage_substitute (SdaiAssembly_component_usage_substitute& e ); 
	~SdaiAssembly_component_usage_substitute ();
	int opcode ()  { return 175 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiAssembly_component_usageH Base() const;
	void Base (SdaiAssembly_component_usageH x);
	SdaiAssembly_component_usageH Substitute() const;
	void Substitute (SdaiAssembly_component_usageH x);
};
inline SdaiAssembly_component_usage_substitute *
create_SdaiAssembly_component_usage_substitute () {  return  new SdaiAssembly_component_usage_substitute ;  }

/////////	 END_ENTITY assembly_component_usage_substitute 


/////////	 ENTITY degenerate_pcurve 

extern AttrDescriptor *a_324basis_surface;
extern AttrDescriptor *a_325reference_to_curve;

class SdaiDegenerate_pcurve  :    public SdaiPoint  {
   protected:
	SdaiSurfaceH _basis_surface ;
	SdaiDefinitional_representationH _reference_to_curve ;
  public:  

	SdaiDegenerate_pcurve ( ); 
	SdaiDegenerate_pcurve (STEPentity *se ); 
	SdaiDegenerate_pcurve (SdaiDegenerate_pcurve& e ); 
	~SdaiDegenerate_pcurve ();
	int opcode ()  { return 176 ; } 
	SdaiSurfaceH Basis_surface() const;
	void Basis_surface (SdaiSurfaceH x);
	SdaiDefinitional_representationH Reference_to_curve() const;
	void Reference_to_curve (SdaiDefinitional_representationH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiDegenerate_pcurve *
create_SdaiDegenerate_pcurve () {  return  new SdaiDegenerate_pcurve ;  }

/////////	 END_ENTITY degenerate_pcurve 


/////////	 ENTITY evaluated_degenerate_pcurve 

extern AttrDescriptor *a_326equivalent_point;

class SdaiEvaluated_degenerate_pcurve  :    public SdaiDegenerate_pcurve  {
   protected:
	SdaiCartesian_pointH _equivalent_point ;
  public:  

	SdaiEvaluated_degenerate_pcurve ( ); 
	SdaiEvaluated_degenerate_pcurve (STEPentity *se ); 
	SdaiEvaluated_degenerate_pcurve (SdaiEvaluated_degenerate_pcurve& e ); 
	~SdaiEvaluated_degenerate_pcurve ();
	int opcode ()  { return 177 ; } 
	SdaiCartesian_pointH Equivalent_point() const;
	void Equivalent_point (SdaiCartesian_pointH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiEvaluated_degenerate_pcurve *
create_SdaiEvaluated_degenerate_pcurve () {  return  new SdaiEvaluated_degenerate_pcurve ;  }

/////////	 END_ENTITY evaluated_degenerate_pcurve 


/////////	 ENTITY solid_angle_measure_with_unit 


class SdaiSolid_angle_measure_with_unit  :    public SdaiMeasure_with_unit  {
   protected:
  public:  

	SdaiSolid_angle_measure_with_unit ( ); 
	SdaiSolid_angle_measure_with_unit (STEPentity *se ); 
	SdaiSolid_angle_measure_with_unit (SdaiSolid_angle_measure_with_unit& e ); 
	~SdaiSolid_angle_measure_with_unit ();
	int opcode ()  { return 178 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSolid_angle_measure_with_unit *
create_SdaiSolid_angle_measure_with_unit () {  return  new SdaiSolid_angle_measure_with_unit ;  }

/////////	 END_ENTITY solid_angle_measure_with_unit 


/////////	 ENTITY connected_edge_set 

extern AttrDescriptor *a_327ces_edges;

class SdaiConnected_edge_set  :    public SdaiTopological_representation_item  {
   protected:
	EntityAggregate _ces_edges ;	  //  of  edge

  public:  

	SdaiConnected_edge_set ( ); 
	SdaiConnected_edge_set (STEPentity *se ); 
	SdaiConnected_edge_set (SdaiConnected_edge_set& e ); 
	~SdaiConnected_edge_set ();
	int opcode ()  { return 179 ; } 
	const EntityAggregateH Ces_edges() const;
	void Ces_edges (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiConnected_edge_set *
create_SdaiConnected_edge_set () {  return  new SdaiConnected_edge_set ;  }

/////////	 END_ENTITY connected_edge_set 


/////////	 ENTITY action 

extern AttrDescriptor *a_328name;
extern AttrDescriptor *a_329description;
extern AttrDescriptor *a_330chosen_method;

class SdaiAction  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiAction_methodH _chosen_method ;
  public:  

	SdaiAction ( ); 
	SdaiAction (STEPentity *se ); 
	SdaiAction (SdaiAction& e ); 
	~SdaiAction ();
	int opcode ()  { return 180 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiAction_methodH Chosen_method() const;
	void Chosen_method (SdaiAction_methodH x);
};
inline SdaiAction *
create_SdaiAction () {  return  new SdaiAction ;  }

/////////	 END_ENTITY action 


/////////	 ENTITY executed_action 


class SdaiExecuted_action  :    public SdaiAction  {
   protected:
  public:  

	SdaiExecuted_action ( ); 
	SdaiExecuted_action (STEPentity *se ); 
	SdaiExecuted_action (SdaiExecuted_action& e ); 
	~SdaiExecuted_action ();
	int opcode ()  { return 181 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiExecuted_action *
create_SdaiExecuted_action () {  return  new SdaiExecuted_action ;  }

/////////	 END_ENTITY executed_action 


/////////	 ENTITY directed_action 

extern AttrDescriptor *a_331directive;

class SdaiDirected_action  :    public SdaiExecuted_action  {
   protected:
	SdaiAction_directiveH _directive ;
  public:  

	SdaiDirected_action ( ); 
	SdaiDirected_action (STEPentity *se ); 
	SdaiDirected_action (SdaiDirected_action& e ); 
	~SdaiDirected_action ();
	int opcode ()  { return 182 ; } 
	SdaiAction_directiveH Directive() const;
	void Directive (SdaiAction_directiveH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiDirected_action *
create_SdaiDirected_action () {  return  new SdaiDirected_action ;  }

/////////	 END_ENTITY directed_action 


/////////	 ENTITY organizational_project 

extern AttrDescriptor *a_332name;
extern AttrDescriptor *a_333description;
extern AttrDescriptor *a_334responsible_organizations;

class SdaiOrganizational_project  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	EntityAggregate _responsible_organizations ;	  //  of  organization

  public:  

	SdaiOrganizational_project ( ); 
	SdaiOrganizational_project (STEPentity *se ); 
	SdaiOrganizational_project (SdaiOrganizational_project& e ); 
	~SdaiOrganizational_project ();
	int opcode ()  { return 183 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	const EntityAggregateH Responsible_organizations() const;
	void Responsible_organizations (EntityAggregateH x);
};
inline SdaiOrganizational_project *
create_SdaiOrganizational_project () {  return  new SdaiOrganizational_project ;  }

/////////	 END_ENTITY organizational_project 


/////////	 ENTITY date_time_role 

extern AttrDescriptor *a_335name;

class SdaiDate_time_role  :    public STEPentity {
  protected:
	SdaiString _name ;
  public:  

	SdaiDate_time_role ( ); 
	SdaiDate_time_role (STEPentity *se ); 
	SdaiDate_time_role (SdaiDate_time_role& e ); 
	~SdaiDate_time_role ();
	int opcode ()  { return 184 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
};
inline SdaiDate_time_role *
create_SdaiDate_time_role () {  return  new SdaiDate_time_role ;  }

/////////	 END_ENTITY date_time_role 


/////////	 ENTITY curve_bounded_surface 

extern AttrDescriptor *a_336basis_surface;
extern AttrDescriptor *a_337boundaries;
extern AttrDescriptor *a_338implicit_outer;

class SdaiCurve_bounded_surface  :    public SdaiBounded_surface  {
   protected:
	SdaiSurfaceH _basis_surface ;
	EntityAggregate _boundaries ;	  //  of  boundary_curve

	SdaiBoolean _implicit_outer ;
  public:  

	SdaiCurve_bounded_surface ( ); 
	SdaiCurve_bounded_surface (STEPentity *se ); 
	SdaiCurve_bounded_surface (SdaiCurve_bounded_surface& e ); 
	~SdaiCurve_bounded_surface ();
	int opcode ()  { return 185 ; } 
	SdaiSurfaceH Basis_surface() const;
	void Basis_surface (SdaiSurfaceH x);
	const EntityAggregateH Boundaries() const;
	void Boundaries (EntityAggregateH x);
	const BOOLEAN Implicit_outer() const;
	void Implicit_outer (BOOLEAN x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCurve_bounded_surface *
create_SdaiCurve_bounded_surface () {  return  new SdaiCurve_bounded_surface ;  }

/////////	 END_ENTITY curve_bounded_surface 


/////////	 ENTITY closed_shell 


class SdaiClosed_shell  :    public SdaiConnected_face_set  {
   protected:
  public:  

	SdaiClosed_shell ( ); 
	SdaiClosed_shell (STEPentity *se ); 
	SdaiClosed_shell (SdaiClosed_shell& e ); 
	~SdaiClosed_shell ();
	int opcode ()  { return 186 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiClosed_shell *
create_SdaiClosed_shell () {  return  new SdaiClosed_shell ;  }

/////////	 END_ENTITY closed_shell 


/////////	 ENTITY design_make_from_relationship 


class SdaiDesign_make_from_relationship  :    public SdaiProduct_definition_relationship  {
   protected:
  public:  

	SdaiDesign_make_from_relationship ( ); 
	SdaiDesign_make_from_relationship (STEPentity *se ); 
	SdaiDesign_make_from_relationship (SdaiDesign_make_from_relationship& e ); 
	~SdaiDesign_make_from_relationship ();
	int opcode ()  { return 187 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiDesign_make_from_relationship *
create_SdaiDesign_make_from_relationship () {  return  new SdaiDesign_make_from_relationship ;  }

/////////	 END_ENTITY design_make_from_relationship 


/////////	 ENTITY definitional_representation 


class SdaiDefinitional_representation  :    public SdaiRepresentation  {
   protected:
  public:  

	SdaiDefinitional_representation ( ); 
	SdaiDefinitional_representation (STEPentity *se ); 
	SdaiDefinitional_representation (SdaiDefinitional_representation& e ); 
	~SdaiDefinitional_representation ();
	int opcode ()  { return 188 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiDefinitional_representation *
create_SdaiDefinitional_representation () {  return  new SdaiDefinitional_representation ;  }

/////////	 END_ENTITY definitional_representation 


/////////	 ENTITY product_definition_shape 


class SdaiProduct_definition_shape  :    public SdaiProperty_definition  {
   protected:
  public:  

	SdaiProduct_definition_shape ( ); 
	SdaiProduct_definition_shape (STEPentity *se ); 
	SdaiProduct_definition_shape (SdaiProduct_definition_shape& e ); 
	~SdaiProduct_definition_shape ();
	int opcode ()  { return 189 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiProduct_definition_shape *
create_SdaiProduct_definition_shape () {  return  new SdaiProduct_definition_shape ;  }

/////////	 END_ENTITY product_definition_shape 


/////////	 ENTITY si_unit 

extern AttrDescriptor *a_339prefix;
extern AttrDescriptor *a_340name;
extern AttrDescriptor *a_341Dnamed_unit_dimensions;

class SdaiSi_unit  :    public SdaiNamed_unit  {
   protected:
	SdaiSi_prefix _prefix ;    //  OPTIONAL
	SdaiSi_unit_name _name ;
  public:  

	SdaiSi_unit ( ); 
	SdaiSi_unit (STEPentity *se ); 
	SdaiSi_unit (SdaiSi_unit& e ); 
	~SdaiSi_unit ();
	int opcode ()  { return 190 ; } 
	const sdaiSi_prefix Prefix() const;
	void Prefix (sdaiSi_prefix x);
	const sdaiSi_unit_name Name() const;
	void Name (sdaiSi_unit_name x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSi_unit *
create_SdaiSi_unit () {  return  new SdaiSi_unit ;  }

/////////	 END_ENTITY si_unit 


/////////	 ENTITY bezier_surface 


class SdaiBezier_surface  :    public SdaiB_spline_surface  {
   protected:
  public:  

	SdaiBezier_surface ( ); 
	SdaiBezier_surface (STEPentity *se ); 
	SdaiBezier_surface (SdaiBezier_surface& e ); 
	~SdaiBezier_surface ();
	int opcode ()  { return 191 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiBezier_surface *
create_SdaiBezier_surface () {  return  new SdaiBezier_surface ;  }

/////////	 END_ENTITY bezier_surface 


/////////	 ENTITY certification_assignment 

extern AttrDescriptor *a_342assigned_certification;

class SdaiCertification_assignment  :    public STEPentity {
  protected:
	SdaiCertificationH _assigned_certification ;
  public:  

	SdaiCertification_assignment ( ); 
	SdaiCertification_assignment (STEPentity *se ); 
	SdaiCertification_assignment (SdaiCertification_assignment& e ); 
	~SdaiCertification_assignment ();
	int opcode ()  { return 192 ; } 
	SdaiCertificationH Assigned_certification() const;
	void Assigned_certification (SdaiCertificationH x);
};
inline SdaiCertification_assignment *
create_SdaiCertification_assignment () {  return  new SdaiCertification_assignment ;  }

/////////	 END_ENTITY certification_assignment 


/////////	 ENTITY start_work 

extern AttrDescriptor *a_343items;

class SdaiStart_work  :    public SdaiAction_assignment  {
   protected:
	SdaiWork_items _items ;	  //  of  work_item

  public:  

	SdaiStart_work ( ); 
	SdaiStart_work (STEPentity *se ); 
	SdaiStart_work (SdaiStart_work& e ); 
	~SdaiStart_work ();
	int opcode ()  { return 193 ; } 
	const SdaiWork_itemsH Items() const;
	void Items (SdaiWork_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiStart_work *
create_SdaiStart_work () {  return  new SdaiStart_work ;  }

/////////	 END_ENTITY start_work 


/////////	 ENTITY contract_type 

extern AttrDescriptor *a_344description;

class SdaiContract_type  :    public STEPentity {
  protected:
	SdaiString _description ;
  public:  

	SdaiContract_type ( ); 
	SdaiContract_type (STEPentity *se ); 
	SdaiContract_type (SdaiContract_type& e ); 
	~SdaiContract_type ();
	int opcode ()  { return 194 ; } 
	const SdaiLabel Description() const;
	void Description (const char * x);
};
inline SdaiContract_type *
create_SdaiContract_type () {  return  new SdaiContract_type ;  }

/////////	 END_ENTITY contract_type 


/////////	 ENTITY b_spline_curve_with_knots 

extern AttrDescriptor *a_345knot_multiplicities;
extern AttrDescriptor *a_346knots;
extern AttrDescriptor *a_347knot_spec;
extern AttrDescriptor *a_348Dupper_index_on_knots;

class SdaiB_spline_curve_with_knots  :    public SdaiB_spline_curve  {
   protected:
	IntAggregate _knot_multiplicities ;
	RealAggregate _knots ;	  //  of  parameter_value

	SdaiKnot_type _knot_spec ;
  public:  

	SdaiB_spline_curve_with_knots ( ); 
	SdaiB_spline_curve_with_knots (STEPentity *se ); 
	SdaiB_spline_curve_with_knots (SdaiB_spline_curve_with_knots& e ); 
	~SdaiB_spline_curve_with_knots ();
	int opcode ()  { return 195 ; } 
	const IntAggregateH Knot_multiplicities() const;
	void Knot_multiplicities (IntAggregateH x);
	const RealAggregateH Knots() const;
	void Knots (RealAggregateH x);
	const sdaiKnot_type Knot_spec() const;
	void Knot_spec (sdaiKnot_type x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiB_spline_curve_with_knots *
create_SdaiB_spline_curve_with_knots () {  return  new SdaiB_spline_curve_with_knots ;  }

/////////	 END_ENTITY b_spline_curve_with_knots 


/////////	 ENTITY cc_design_approval 

extern AttrDescriptor *a_349items;

class SdaiCc_design_approval  :    public SdaiApproval_assignment  {
   protected:
	SdaiApproved_items _items ;	  //  of  approved_item

  public:  

	SdaiCc_design_approval ( ); 
	SdaiCc_design_approval (STEPentity *se ); 
	SdaiCc_design_approval (SdaiCc_design_approval& e ); 
	~SdaiCc_design_approval ();
	int opcode ()  { return 196 ; } 
	const SdaiApproved_itemsH Items() const;
	void Items (SdaiApproved_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCc_design_approval *
create_SdaiCc_design_approval () {  return  new SdaiCc_design_approval ;  }

/////////	 END_ENTITY cc_design_approval 


/////////	 ENTITY edge_based_wireframe_shape_representation 


class SdaiEdge_based_wireframe_shape_representation  :    public SdaiShape_representation  {
   protected:
  public:  

	SdaiEdge_based_wireframe_shape_representation ( ); 
	SdaiEdge_based_wireframe_shape_representation (STEPentity *se ); 
	SdaiEdge_based_wireframe_shape_representation (SdaiEdge_based_wireframe_shape_representation& e ); 
	~SdaiEdge_based_wireframe_shape_representation ();
	int opcode ()  { return 197 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiEdge_based_wireframe_shape_representation *
create_SdaiEdge_based_wireframe_shape_representation () {  return  new SdaiEdge_based_wireframe_shape_representation ;  }

/////////	 END_ENTITY edge_based_wireframe_shape_representation 


/////////	 ENTITY geometrically_bounded_wireframe_shape_representation 


class SdaiGeometrically_bounded_wireframe_shape_representation  :    public SdaiShape_representation  {
   protected:
  public:  

	SdaiGeometrically_bounded_wireframe_shape_representation ( ); 
	SdaiGeometrically_bounded_wireframe_shape_representation (STEPentity *se ); 
	SdaiGeometrically_bounded_wireframe_shape_representation (SdaiGeometrically_bounded_wireframe_shape_representation& e ); 
	~SdaiGeometrically_bounded_wireframe_shape_representation ();
	int opcode ()  { return 198 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiGeometrically_bounded_wireframe_shape_representation *
create_SdaiGeometrically_bounded_wireframe_shape_representation () {  return  new SdaiGeometrically_bounded_wireframe_shape_representation ;  }

/////////	 END_ENTITY geometrically_bounded_wireframe_shape_representation 


/////////	 ENTITY product_concept 

extern AttrDescriptor *a_350id;
extern AttrDescriptor *a_351name;
extern AttrDescriptor *a_352description;
extern AttrDescriptor *a_353market_context;

class SdaiProduct_concept  :    public STEPentity {
  protected:
	SdaiString _id ;
	SdaiString _name ;
	SdaiString _description ;
	SdaiProduct_concept_contextH _market_context ;
  public:  

	SdaiProduct_concept ( ); 
	SdaiProduct_concept (STEPentity *se ); 
	SdaiProduct_concept (SdaiProduct_concept& e ); 
	~SdaiProduct_concept ();
	int opcode ()  { return 199 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiProduct_concept_contextH Market_context() const;
	void Market_context (SdaiProduct_concept_contextH x);
};
inline SdaiProduct_concept *
create_SdaiProduct_concept () {  return  new SdaiProduct_concept ;  }

/////////	 END_ENTITY product_concept 


/////////	 ENTITY cc_design_contract 

extern AttrDescriptor *a_354items;

class SdaiCc_design_contract  :    public SdaiContract_assignment  {
   protected:
	SdaiContracted_items _items ;	  //  of  contracted_item

  public:  

	SdaiCc_design_contract ( ); 
	SdaiCc_design_contract (STEPentity *se ); 
	SdaiCc_design_contract (SdaiCc_design_contract& e ); 
	~SdaiCc_design_contract ();
	int opcode ()  { return 200 ; } 
	const SdaiContracted_itemsH Items() const;
	void Items (SdaiContracted_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCc_design_contract *
create_SdaiCc_design_contract () {  return  new SdaiCc_design_contract ;  }

/////////	 END_ENTITY cc_design_contract 


/////////	 ENTITY seam_curve 


class SdaiSeam_curve  :    public SdaiSurface_curve  {
   protected:
  public:  

	SdaiSeam_curve ( ); 
	SdaiSeam_curve (STEPentity *se ); 
	SdaiSeam_curve (SdaiSeam_curve& e ); 
	~SdaiSeam_curve ();
	int opcode ()  { return 201 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSeam_curve *
create_SdaiSeam_curve () {  return  new SdaiSeam_curve ;  }

/////////	 END_ENTITY seam_curve 


/////////	 ENTITY axis2_placement_3d 

extern AttrDescriptor *a_355axis;
extern AttrDescriptor *a_356ref_direction;
extern AttrDescriptor *a_357Dp;

class SdaiAxis2_placement_3d  :    public SdaiPlacement  {
   protected:
	SdaiDirectionH _axis ;    //  OPTIONAL
	SdaiDirectionH _ref_direction ;    //  OPTIONAL
  public:  

	SdaiAxis2_placement_3d ( ); 
	SdaiAxis2_placement_3d (STEPentity *se ); 
	SdaiAxis2_placement_3d (SdaiAxis2_placement_3d& e ); 
	~SdaiAxis2_placement_3d ();
	int opcode ()  { return 202 ; } 
	SdaiDirectionH Axis() const;
	void Axis (SdaiDirectionH x);
	SdaiDirectionH Ref_direction() const;
	void Ref_direction (SdaiDirectionH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiAxis2_placement_3d *
create_SdaiAxis2_placement_3d () {  return  new SdaiAxis2_placement_3d ;  }

/////////	 END_ENTITY axis2_placement_3d 


/////////	 ENTITY rational_b_spline_surface 

extern AttrDescriptor *a_358weights_data;
extern AttrDescriptor *a_359Dweights;

class SdaiRational_b_spline_surface  :    public SdaiB_spline_surface  {
   protected:
	GenericAggregate _weights_data ;
  public:  

	SdaiRational_b_spline_surface ( ); 
	SdaiRational_b_spline_surface (STEPentity *se ); 
	SdaiRational_b_spline_surface (SdaiRational_b_spline_surface& e ); 
	~SdaiRational_b_spline_surface ();
	int opcode ()  { return 203 ; } 
	const GenericAggregateH Weights_data() const;
	void Weights_data (GenericAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiRational_b_spline_surface *
create_SdaiRational_b_spline_surface () {  return  new SdaiRational_b_spline_surface ;  }

/////////	 END_ENTITY rational_b_spline_surface 


/////////	 ENTITY configuration_design 

extern AttrDescriptor *a_360configuration;
extern AttrDescriptor *a_361design;

class SdaiConfiguration_design  :    public STEPentity {
  protected:
	SdaiConfiguration_itemH _configuration ;
	SdaiProduct_definition_formationH _design ;
  public:  

	SdaiConfiguration_design ( ); 
	SdaiConfiguration_design (STEPentity *se ); 
	SdaiConfiguration_design (SdaiConfiguration_design& e ); 
	~SdaiConfiguration_design ();
	int opcode ()  { return 204 ; } 
	SdaiConfiguration_itemH Configuration() const;
	void Configuration (SdaiConfiguration_itemH x);
	SdaiProduct_definition_formationH Design() const;
	void Design (SdaiProduct_definition_formationH x);
};
inline SdaiConfiguration_design *
create_SdaiConfiguration_design () {  return  new SdaiConfiguration_design ;  }

/////////	 END_ENTITY configuration_design 


/////////	 ENTITY design_context 


class SdaiDesign_context  :    public SdaiProduct_definition_context  {
   protected:
  public:  

	SdaiDesign_context ( ); 
	SdaiDesign_context (STEPentity *se ); 
	SdaiDesign_context (SdaiDesign_context& e ); 
	~SdaiDesign_context ();
	int opcode ()  { return 205 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiDesign_context *
create_SdaiDesign_context () {  return  new SdaiDesign_context ;  }

/////////	 END_ENTITY design_context 


/////////	 ENTITY product_definition 

extern AttrDescriptor *a_362id;
extern AttrDescriptor *a_363description;
extern AttrDescriptor *a_364formation;
extern AttrDescriptor *a_365frame_of_reference;

class SdaiProduct_definition  :    public STEPentity {
  protected:
	SdaiString _id ;
	SdaiString _description ;
	SdaiProduct_definition_formationH _formation ;
	SdaiProduct_definition_contextH _frame_of_reference ;
  public:  

	SdaiProduct_definition ( ); 
	SdaiProduct_definition (STEPentity *se ); 
	SdaiProduct_definition (SdaiProduct_definition& e ); 
	~SdaiProduct_definition ();
	int opcode ()  { return 206 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiProduct_definition_formationH Formation() const;
	void Formation (SdaiProduct_definition_formationH x);
	SdaiProduct_definition_contextH Frame_of_reference() const;
	void Frame_of_reference (SdaiProduct_definition_contextH x);
};
inline SdaiProduct_definition *
create_SdaiProduct_definition () {  return  new SdaiProduct_definition ;  }

/////////	 END_ENTITY product_definition 


/////////	 ENTITY product_definition_with_associated_documents 

extern AttrDescriptor *a_366documentation_ids;

class SdaiProduct_definition_with_associated_documents  :    public SdaiProduct_definition  {
   protected:
	EntityAggregate _documentation_ids ;	  //  of  document

  public:  

	SdaiProduct_definition_with_associated_documents ( ); 
	SdaiProduct_definition_with_associated_documents (STEPentity *se ); 
	SdaiProduct_definition_with_associated_documents (SdaiProduct_definition_with_associated_documents& e ); 
	~SdaiProduct_definition_with_associated_documents ();
	int opcode ()  { return 207 ; } 
	const EntityAggregateH Documentation_ids() const;
	void Documentation_ids (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiProduct_definition_with_associated_documents *
create_SdaiProduct_definition_with_associated_documents () {  return  new SdaiProduct_definition_with_associated_documents ;  }

/////////	 END_ENTITY product_definition_with_associated_documents 


/////////	 ENTITY organization 

extern AttrDescriptor *a_367id;
extern AttrDescriptor *a_368name;
extern AttrDescriptor *a_369description;

class SdaiOrganization  :    public STEPentity {
  protected:
	SdaiString _id ;    //  OPTIONAL
	SdaiString _name ;
	SdaiString _description ;
  public:  

	SdaiOrganization ( ); 
	SdaiOrganization (STEPentity *se ); 
	SdaiOrganization (SdaiOrganization& e ); 
	~SdaiOrganization ();
	int opcode ()  { return 208 ; } 
	const SdaiIdentifier Id() const;
	void Id (const char * x);
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
};
inline SdaiOrganization *
create_SdaiOrganization () {  return  new SdaiOrganization ;  }

/////////	 END_ENTITY organization 


/////////	 ENTITY cc_design_certification 

extern AttrDescriptor *a_370items;

class SdaiCc_design_certification  :    public SdaiCertification_assignment  {
   protected:
	SdaiCertified_items _items ;	  //  of  certified_item

  public:  

	SdaiCc_design_certification ( ); 
	SdaiCc_design_certification (STEPentity *se ); 
	SdaiCc_design_certification (SdaiCc_design_certification& e ); 
	~SdaiCc_design_certification ();
	int opcode ()  { return 209 ; } 
	const SdaiCertified_itemsH Items() const;
	void Items (SdaiCertified_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCc_design_certification *
create_SdaiCc_design_certification () {  return  new SdaiCc_design_certification ;  }

/////////	 END_ENTITY cc_design_certification 


/////////	 ENTITY b_spline_surface_with_knots 

extern AttrDescriptor *a_371u_multiplicities;
extern AttrDescriptor *a_372v_multiplicities;
extern AttrDescriptor *a_373u_knots;
extern AttrDescriptor *a_374v_knots;
extern AttrDescriptor *a_375knot_spec;
extern AttrDescriptor *a_376Dknot_u_upper;
extern AttrDescriptor *a_377Dknot_v_upper;

class SdaiB_spline_surface_with_knots  :    public SdaiB_spline_surface  {
   protected:
	IntAggregate _u_multiplicities ;
	IntAggregate _v_multiplicities ;
	RealAggregate _u_knots ;	  //  of  parameter_value

	RealAggregate _v_knots ;	  //  of  parameter_value

	SdaiKnot_type _knot_spec ;
  public:  

	SdaiB_spline_surface_with_knots ( ); 
	SdaiB_spline_surface_with_knots (STEPentity *se ); 
	SdaiB_spline_surface_with_knots (SdaiB_spline_surface_with_knots& e ); 
	~SdaiB_spline_surface_with_knots ();
	int opcode ()  { return 210 ; } 
	const IntAggregateH U_multiplicities() const;
	void U_multiplicities (IntAggregateH x);
	const IntAggregateH V_multiplicities() const;
	void V_multiplicities (IntAggregateH x);
	const RealAggregateH U_knots() const;
	void U_knots (RealAggregateH x);
	const RealAggregateH V_knots() const;
	void V_knots (RealAggregateH x);
	const sdaiKnot_type Knot_spec() const;
	void Knot_spec (sdaiKnot_type x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiB_spline_surface_with_knots *
create_SdaiB_spline_surface_with_knots () {  return  new SdaiB_spline_surface_with_knots ;  }

/////////	 END_ENTITY b_spline_surface_with_knots 


/////////	 ENTITY certification_type 

extern AttrDescriptor *a_378description;

class SdaiCertification_type  :    public STEPentity {
  protected:
	SdaiString _description ;
  public:  

	SdaiCertification_type ( ); 
	SdaiCertification_type (STEPentity *se ); 
	SdaiCertification_type (SdaiCertification_type& e ); 
	~SdaiCertification_type ();
	int opcode ()  { return 211 ; } 
	const SdaiLabel Description() const;
	void Description (const char * x);
};
inline SdaiCertification_type *
create_SdaiCertification_type () {  return  new SdaiCertification_type ;  }

/////////	 END_ENTITY certification_type 


/////////	 ENTITY oriented_path 

extern AttrDescriptor *a_379path_element;
extern AttrDescriptor *a_380orientation;
extern AttrDescriptor *a_381Dpath_edge_list;

class SdaiOriented_path  :    public SdaiPath  {
   protected:
	SdaiPathH _path_element ;
	SdaiBoolean _orientation ;
  public:  

	SdaiOriented_path ( ); 
	SdaiOriented_path (STEPentity *se ); 
	SdaiOriented_path (SdaiOriented_path& e ); 
	~SdaiOriented_path ();
	int opcode ()  { return 212 ; } 
	SdaiPathH Path_element() const;
	void Path_element (SdaiPathH x);
	const BOOLEAN Orientation() const;
	void Orientation (BOOLEAN x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOriented_path *
create_SdaiOriented_path () {  return  new SdaiOriented_path ;  }

/////////	 END_ENTITY oriented_path 


/////////	 ENTITY security_classification 

extern AttrDescriptor *a_382name;
extern AttrDescriptor *a_383purpose;
extern AttrDescriptor *a_384security_level;

class SdaiSecurity_classification  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _purpose ;
	SdaiSecurity_classification_levelH _security_level ;
  public:  

	SdaiSecurity_classification ( ); 
	SdaiSecurity_classification (STEPentity *se ); 
	SdaiSecurity_classification (SdaiSecurity_classification& e ); 
	~SdaiSecurity_classification ();
	int opcode ()  { return 213 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Purpose() const;
	void Purpose (const char * x);
	SdaiSecurity_classification_levelH Security_level() const;
	void Security_level (SdaiSecurity_classification_levelH x);
};
inline SdaiSecurity_classification *
create_SdaiSecurity_classification () {  return  new SdaiSecurity_classification ;  }

/////////	 END_ENTITY security_classification 


/////////	 ENTITY vertex_loop 

extern AttrDescriptor *a_385loop_vertex;

class SdaiVertex_loop  :    public SdaiLoop  {
   protected:
	SdaiVertexH _loop_vertex ;
  public:  

	SdaiVertex_loop ( ); 
	SdaiVertex_loop (STEPentity *se ); 
	SdaiVertex_loop (SdaiVertex_loop& e ); 
	~SdaiVertex_loop ();
	int opcode ()  { return 214 ; } 
	SdaiVertexH Loop_vertex() const;
	void Loop_vertex (SdaiVertexH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiVertex_loop *
create_SdaiVertex_loop () {  return  new SdaiVertex_loop ;  }

/////////	 END_ENTITY vertex_loop 


/////////	 ENTITY approval_status 

extern AttrDescriptor *a_386name;

class SdaiApproval_status  :    public STEPentity {
  protected:
	SdaiString _name ;
  public:  

	SdaiApproval_status ( ); 
	SdaiApproval_status (STEPentity *se ); 
	SdaiApproval_status (SdaiApproval_status& e ); 
	~SdaiApproval_status ();
	int opcode ()  { return 215 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
};
inline SdaiApproval_status *
create_SdaiApproval_status () {  return  new SdaiApproval_status ;  }

/////////	 END_ENTITY approval_status 


/////////	 ENTITY cartesian_point 

extern AttrDescriptor *a_387coordinates;

class SdaiCartesian_point  :    public SdaiPoint  {
   protected:
	RealAggregate _coordinates ;	  //  of  length_measure

  public:  

	SdaiCartesian_point ( ); 
	SdaiCartesian_point (STEPentity *se ); 
	SdaiCartesian_point (SdaiCartesian_point& e ); 
	~SdaiCartesian_point ();
	int opcode ()  { return 216 ; } 
	const RealAggregateH Coordinates() const;
	void Coordinates (RealAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCartesian_point *
create_SdaiCartesian_point () {  return  new SdaiCartesian_point ;  }

/////////	 END_ENTITY cartesian_point 


/////////	 ENTITY date_and_time_assignment 

extern AttrDescriptor *a_388assigned_date_and_time;
extern AttrDescriptor *a_389role;

class SdaiDate_and_time_assignment  :    public STEPentity {
  protected:
	SdaiDate_and_timeH _assigned_date_and_time ;
	SdaiDate_time_roleH _role ;
  public:  

	SdaiDate_and_time_assignment ( ); 
	SdaiDate_and_time_assignment (STEPentity *se ); 
	SdaiDate_and_time_assignment (SdaiDate_and_time_assignment& e ); 
	~SdaiDate_and_time_assignment ();
	int opcode ()  { return 217 ; } 
	SdaiDate_and_timeH Assigned_date_and_time() const;
	void Assigned_date_and_time (SdaiDate_and_timeH x);
	SdaiDate_time_roleH Role() const;
	void Role (SdaiDate_time_roleH x);
};
inline SdaiDate_and_time_assignment *
create_SdaiDate_and_time_assignment () {  return  new SdaiDate_and_time_assignment ;  }

/////////	 END_ENTITY date_and_time_assignment 


/////////	 ENTITY parametric_representation_context 


class SdaiParametric_representation_context  :    public SdaiRepresentation_context  {
   protected:
  public:  

	SdaiParametric_representation_context ( ); 
	SdaiParametric_representation_context (STEPentity *se ); 
	SdaiParametric_representation_context (SdaiParametric_representation_context& e ); 
	~SdaiParametric_representation_context ();
	int opcode ()  { return 218 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiParametric_representation_context *
create_SdaiParametric_representation_context () {  return  new SdaiParametric_representation_context ;  }

/////////	 END_ENTITY parametric_representation_context 


/////////	 ENTITY product_concept_context 

extern AttrDescriptor *a_390market_segment_type;

class SdaiProduct_concept_context  :    public SdaiApplication_context_element  {
   protected:
	SdaiString _market_segment_type ;
  public:  

	SdaiProduct_concept_context ( ); 
	SdaiProduct_concept_context (STEPentity *se ); 
	SdaiProduct_concept_context (SdaiProduct_concept_context& e ); 
	~SdaiProduct_concept_context ();
	int opcode ()  { return 219 ; } 
	const SdaiLabel Market_segment_type() const;
	void Market_segment_type (const char * x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiProduct_concept_context *
create_SdaiProduct_concept_context () {  return  new SdaiProduct_concept_context ;  }

/////////	 END_ENTITY product_concept_context 


/////////	 ENTITY cartesian_transformation_operator_2d 

extern AttrDescriptor *a_391Du;

class SdaiCartesian_transformation_operator_2d  :    public SdaiCartesian_transformation_operator  {
   protected:
  public:  

	SdaiCartesian_transformation_operator_2d ( ); 
	SdaiCartesian_transformation_operator_2d (STEPentity *se ); 
	SdaiCartesian_transformation_operator_2d (SdaiCartesian_transformation_operator_2d& e ); 
	~SdaiCartesian_transformation_operator_2d ();
	int opcode ()  { return 220 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCartesian_transformation_operator_2d *
create_SdaiCartesian_transformation_operator_2d () {  return  new SdaiCartesian_transformation_operator_2d ;  }

/////////	 END_ENTITY cartesian_transformation_operator_2d 


/////////	 ENTITY surface_patch 

extern AttrDescriptor *a_392parent_surface;
extern AttrDescriptor *a_393u_transition;
extern AttrDescriptor *a_394v_transition;
extern AttrDescriptor *a_395u_sense;
extern AttrDescriptor *a_396v_sense;
extern InverseAttrDescriptor *a_397Iusing_surfaces;

class SdaiSurface_patch  :    public STEPentity {
  protected:
	SdaiBounded_surfaceH _parent_surface ;
	SdaiTransition_code _u_transition ;
	SdaiTransition_code _v_transition ;
	SdaiBoolean _u_sense ;
	SdaiBoolean _v_sense ;
	EntityAggregate _using_surfaces ;	  //  of  rectangular_composite_surface

  public:  

	SdaiSurface_patch ( ); 
	SdaiSurface_patch (STEPentity *se ); 
	SdaiSurface_patch (SdaiSurface_patch& e ); 
	~SdaiSurface_patch ();
	int opcode ()  { return 221 ; } 
	SdaiBounded_surfaceH Parent_surface() const;
	void Parent_surface (SdaiBounded_surfaceH x);
	const sdaiTransition_code U_transition() const;
	void U_transition (sdaiTransition_code x);
	const sdaiTransition_code V_transition() const;
	void V_transition (sdaiTransition_code x);
	const BOOLEAN U_sense() const;
	void U_sense (BOOLEAN x);
	const BOOLEAN V_sense() const;
	void V_sense (BOOLEAN x);
	const EntityAggregateH Using_surfaces() const;
	void Using_surfaces (EntityAggregateH x);
};
inline SdaiSurface_patch *
create_SdaiSurface_patch () {  return  new SdaiSurface_patch ;  }

/////////	 END_ENTITY surface_patch 


/////////	 ENTITY length_unit 


class SdaiLength_unit  :    public SdaiNamed_unit  {
   protected:
  public:  

	SdaiLength_unit ( ); 
	SdaiLength_unit (STEPentity *se ); 
	SdaiLength_unit (SdaiLength_unit& e ); 
	~SdaiLength_unit ();
	int opcode ()  { return 222 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiLength_unit *
create_SdaiLength_unit () {  return  new SdaiLength_unit ;  }

/////////	 END_ENTITY length_unit 


/////////	 ENTITY shape_aspect 

extern AttrDescriptor *a_398name;
extern AttrDescriptor *a_399description;
extern AttrDescriptor *a_400of_shape;
extern AttrDescriptor *a_401product_definitional;

class SdaiShape_aspect  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiProduct_definition_shapeH _of_shape ;
	SdaiLogical _product_definitional ;
  public:  

	SdaiShape_aspect ( ); 
	SdaiShape_aspect (STEPentity *se ); 
	SdaiShape_aspect (SdaiShape_aspect& e ); 
	~SdaiShape_aspect ();
	int opcode ()  { return 223 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiProduct_definition_shapeH Of_shape() const;
	void Of_shape (SdaiProduct_definition_shapeH x);
	const LOGICAL Product_definitional() const;
	void Product_definitional (LOGICAL x);
};
inline SdaiShape_aspect *
create_SdaiShape_aspect () {  return  new SdaiShape_aspect ;  }

/////////	 END_ENTITY shape_aspect 


/////////	 ENTITY volume_measure_with_unit 


class SdaiVolume_measure_with_unit  :    public SdaiMeasure_with_unit  {
   protected:
  public:  

	SdaiVolume_measure_with_unit ( ); 
	SdaiVolume_measure_with_unit (STEPentity *se ); 
	SdaiVolume_measure_with_unit (SdaiVolume_measure_with_unit& e ); 
	~SdaiVolume_measure_with_unit ();
	int opcode ()  { return 224 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiVolume_measure_with_unit *
create_SdaiVolume_measure_with_unit () {  return  new SdaiVolume_measure_with_unit ;  }

/////////	 END_ENTITY volume_measure_with_unit 


/////////	 ENTITY advanced_face 


class SdaiAdvanced_face  :    public SdaiFace_surface  {
   protected:
  public:  

	SdaiAdvanced_face ( ); 
	SdaiAdvanced_face (STEPentity *se ); 
	SdaiAdvanced_face (SdaiAdvanced_face& e ); 
	~SdaiAdvanced_face ();
	int opcode ()  { return 225 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiAdvanced_face *
create_SdaiAdvanced_face () {  return  new SdaiAdvanced_face ;  }

/////////	 END_ENTITY advanced_face 


/////////	 ENTITY security_classification_level 

extern AttrDescriptor *a_402name;

class SdaiSecurity_classification_level  :    public STEPentity {
  protected:
	SdaiString _name ;
  public:  

	SdaiSecurity_classification_level ( ); 
	SdaiSecurity_classification_level (STEPentity *se ); 
	SdaiSecurity_classification_level (SdaiSecurity_classification_level& e ); 
	~SdaiSecurity_classification_level ();
	int opcode ()  { return 226 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
};
inline SdaiSecurity_classification_level *
create_SdaiSecurity_classification_level () {  return  new SdaiSecurity_classification_level ;  }

/////////	 END_ENTITY security_classification_level 


/////////	 ENTITY approval_relationship 

extern AttrDescriptor *a_403name;
extern AttrDescriptor *a_404description;
extern AttrDescriptor *a_405relating_approval;
extern AttrDescriptor *a_406related_approval;

class SdaiApproval_relationship  :    public STEPentity {
  protected:
	SdaiString _name ;
	SdaiString _description ;
	SdaiApprovalH _relating_approval ;
	SdaiApprovalH _related_approval ;
  public:  

	SdaiApproval_relationship ( ); 
	SdaiApproval_relationship (STEPentity *se ); 
	SdaiApproval_relationship (SdaiApproval_relationship& e ); 
	~SdaiApproval_relationship ();
	int opcode ()  { return 227 ; } 
	const SdaiLabel Name() const;
	void Name (const char * x);
	const SdaiText Description() const;
	void Description (const char * x);
	SdaiApprovalH Relating_approval() const;
	void Relating_approval (SdaiApprovalH x);
	SdaiApprovalH Related_approval() const;
	void Related_approval (SdaiApprovalH x);
};
inline SdaiApproval_relationship *
create_SdaiApproval_relationship () {  return  new SdaiApproval_relationship ;  }

/////////	 END_ENTITY approval_relationship 


/////////	 ENTITY polyline 

extern AttrDescriptor *a_407points;

class SdaiPolyline  :    public SdaiBounded_curve  {
   protected:
	EntityAggregate _points ;	  //  of  cartesian_point

  public:  

	SdaiPolyline ( ); 
	SdaiPolyline (STEPentity *se ); 
	SdaiPolyline (SdaiPolyline& e ); 
	~SdaiPolyline ();
	int opcode ()  { return 228 ; } 
	const EntityAggregateH Points() const;
	void Points (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiPolyline *
create_SdaiPolyline () {  return  new SdaiPolyline ;  }

/////////	 END_ENTITY polyline 


/////////	 ENTITY approval_person_organization 

extern AttrDescriptor *a_408person_organization;
extern AttrDescriptor *a_409authorized_approval;
extern AttrDescriptor *a_410role;

class SdaiApproval_person_organization  :    public STEPentity {
  protected:
	SdaiPerson_organization_select _person_organization ;
	SdaiApprovalH _authorized_approval ;
	SdaiApproval_roleH _role ;
  public:  

	SdaiApproval_person_organization ( ); 
	SdaiApproval_person_organization (STEPentity *se ); 
	SdaiApproval_person_organization (SdaiApproval_person_organization& e ); 
	~SdaiApproval_person_organization ();
	int opcode ()  { return 229 ; } 
	const SdaiPerson_organization_selectH Person_organization() const;
	void Person_organization (SdaiPerson_organization_selectH x);
	SdaiApprovalH Authorized_approval() const;
	void Authorized_approval (SdaiApprovalH x);
	SdaiApproval_roleH Role() const;
	void Role (SdaiApproval_roleH x);
};
inline SdaiApproval_person_organization *
create_SdaiApproval_person_organization () {  return  new SdaiApproval_person_organization ;  }

/////////	 END_ENTITY approval_person_organization 


/////////	 ENTITY surface_replica 

extern AttrDescriptor *a_411parent_surface;
extern AttrDescriptor *a_412transformation;

class SdaiSurface_replica  :    public SdaiSurface  {
   protected:
	SdaiSurfaceH _parent_surface ;
	SdaiCartesian_transformation_operator_3dH _transformation ;
  public:  

	SdaiSurface_replica ( ); 
	SdaiSurface_replica (STEPentity *se ); 
	SdaiSurface_replica (SdaiSurface_replica& e ); 
	~SdaiSurface_replica ();
	int opcode ()  { return 230 ; } 
	SdaiSurfaceH Parent_surface() const;
	void Parent_surface (SdaiSurfaceH x);
	SdaiCartesian_transformation_operator_3dH Transformation() const;
	void Transformation (SdaiCartesian_transformation_operator_3dH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiSurface_replica *
create_SdaiSurface_replica () {  return  new SdaiSurface_replica ;  }

/////////	 END_ENTITY surface_replica 


/////////	 ENTITY security_classification_assignment 

extern AttrDescriptor *a_413assigned_security_classification;

class SdaiSecurity_classification_assignment  :    public STEPentity {
  protected:
	SdaiSecurity_classificationH _assigned_security_classification ;
  public:  

	SdaiSecurity_classification_assignment ( ); 
	SdaiSecurity_classification_assignment (STEPentity *se ); 
	SdaiSecurity_classification_assignment (SdaiSecurity_classification_assignment& e ); 
	~SdaiSecurity_classification_assignment ();
	int opcode ()  { return 231 ; } 
	SdaiSecurity_classificationH Assigned_security_classification() const;
	void Assigned_security_classification (SdaiSecurity_classificationH x);
};
inline SdaiSecurity_classification_assignment *
create_SdaiSecurity_classification_assignment () {  return  new SdaiSecurity_classification_assignment ;  }

/////////	 END_ENTITY security_classification_assignment 


/////////	 ENTITY cc_design_security_classification 

extern AttrDescriptor *a_414items;

class SdaiCc_design_security_classification  :    public SdaiSecurity_classification_assignment  {
   protected:
	SdaiClassified_items _items ;	  //  of  classified_item

  public:  

	SdaiCc_design_security_classification ( ); 
	SdaiCc_design_security_classification (STEPentity *se ); 
	SdaiCc_design_security_classification (SdaiCc_design_security_classification& e ); 
	~SdaiCc_design_security_classification ();
	int opcode ()  { return 232 ; } 
	const SdaiClassified_itemsH Items() const;
	void Items (SdaiClassified_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCc_design_security_classification *
create_SdaiCc_design_security_classification () {  return  new SdaiCc_design_security_classification ;  }

/////////	 END_ENTITY cc_design_security_classification 


/////////	 ENTITY faceted_brep_shape_representation 


class SdaiFaceted_brep_shape_representation  :    public SdaiShape_representation  {
   protected:
  public:  

	SdaiFaceted_brep_shape_representation ( ); 
	SdaiFaceted_brep_shape_representation (STEPentity *se ); 
	SdaiFaceted_brep_shape_representation (SdaiFaceted_brep_shape_representation& e ); 
	~SdaiFaceted_brep_shape_representation ();
	int opcode ()  { return 233 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiFaceted_brep_shape_representation *
create_SdaiFaceted_brep_shape_representation () {  return  new SdaiFaceted_brep_shape_representation ;  }

/////////	 END_ENTITY faceted_brep_shape_representation 


/////////	 ENTITY document_usage_constraint 

extern AttrDescriptor *a_415source;
extern AttrDescriptor *a_416subject_element;
extern AttrDescriptor *a_417subject_element_value;

class SdaiDocument_usage_constraint  :    public STEPentity {
  protected:
	SdaiDocumentH _source ;
	SdaiString _subject_element ;
	SdaiString _subject_element_value ;
  public:  

	SdaiDocument_usage_constraint ( ); 
	SdaiDocument_usage_constraint (STEPentity *se ); 
	SdaiDocument_usage_constraint (SdaiDocument_usage_constraint& e ); 
	~SdaiDocument_usage_constraint ();
	int opcode ()  { return 234 ; } 
	SdaiDocumentH Source() const;
	void Source (SdaiDocumentH x);
	const SdaiLabel Subject_element() const;
	void Subject_element (const char * x);
	const SdaiText Subject_element_value() const;
	void Subject_element_value (const char * x);
};
inline SdaiDocument_usage_constraint *
create_SdaiDocument_usage_constraint () {  return  new SdaiDocument_usage_constraint ;  }

/////////	 END_ENTITY document_usage_constraint 


/////////	 ENTITY vertex_point 

extern AttrDescriptor *a_418vertex_geometry;

class SdaiVertex_point  :    public SdaiVertex  {
   protected:
	SdaiPointH _vertex_geometry ;
  public:  

	SdaiVertex_point ( ); 
	SdaiVertex_point (STEPentity *se ); 
	SdaiVertex_point (SdaiVertex_point& e ); 
	~SdaiVertex_point ();
	int opcode ()  { return 235 ; } 
	SdaiPointH Vertex_geometry() const;
	void Vertex_geometry (SdaiPointH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0

#endif
};
inline SdaiVertex_point *
create_SdaiVertex_point () {  return  new SdaiVertex_point ;  }

/////////	 END_ENTITY vertex_point 


/////////	 ENTITY cc_design_date_and_time_assignment 

extern AttrDescriptor *a_419items;

class SdaiCc_design_date_and_time_assignment  :    public SdaiDate_and_time_assignment  {
   protected:
	SdaiDate_time_items _items ;	  //  of  date_time_item

  public:  

	SdaiCc_design_date_and_time_assignment ( ); 
	SdaiCc_design_date_and_time_assignment (STEPentity *se ); 
	SdaiCc_design_date_and_time_assignment (SdaiCc_design_date_and_time_assignment& e ); 
	~SdaiCc_design_date_and_time_assignment ();
	int opcode ()  { return 236 ; } 
	const SdaiDate_time_itemsH Items() const;
	void Items (SdaiDate_time_itemsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCc_design_date_and_time_assignment *
create_SdaiCc_design_date_and_time_assignment () {  return  new SdaiCc_design_date_and_time_assignment ;  }

/////////	 END_ENTITY cc_design_date_and_time_assignment 


/////////	 ENTITY oriented_closed_shell 

extern AttrDescriptor *a_420closed_shell_element;
extern AttrDescriptor *a_421orientation;
extern AttrDescriptor *a_422Dconnected_face_set_cfs_faces;

class SdaiOriented_closed_shell  :    public SdaiClosed_shell  {
   protected:
	SdaiClosed_shellH _closed_shell_element ;
	SdaiBoolean _orientation ;
  public:  

	SdaiOriented_closed_shell ( ); 
	SdaiOriented_closed_shell (STEPentity *se ); 
	SdaiOriented_closed_shell (SdaiOriented_closed_shell& e ); 
	~SdaiOriented_closed_shell ();
	int opcode ()  { return 237 ; } 
	SdaiClosed_shellH Closed_shell_element() const;
	void Closed_shell_element (SdaiClosed_shellH x);
	const BOOLEAN Orientation() const;
	void Orientation (BOOLEAN x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOriented_closed_shell *
create_SdaiOriented_closed_shell () {  return  new SdaiOriented_closed_shell ;  }

/////////	 END_ENTITY oriented_closed_shell 


/////////	 ENTITY person_and_organization 

extern AttrDescriptor *a_423the_person;
extern AttrDescriptor *a_424the_organization;

class SdaiPerson_and_organization  :    public STEPentity {
  protected:
	SdaiPersonH _the_person ;
	SdaiOrganizationH _the_organization ;
  public:  

	SdaiPerson_and_organization ( ); 
	SdaiPerson_and_organization (STEPentity *se ); 
	SdaiPerson_and_organization (SdaiPerson_and_organization& e ); 
	~SdaiPerson_and_organization ();
	int opcode ()  { return 238 ; } 
	SdaiPersonH The_person() const;
	void The_person (SdaiPersonH x);
	SdaiOrganizationH The_organization() const;
	void The_organization (SdaiOrganizationH x);
};
inline SdaiPerson_and_organization *
create_SdaiPerson_and_organization () {  return  new SdaiPerson_and_organization ;  }

/////////	 END_ENTITY person_and_organization 


/////////	 ENTITY cylindrical_surface 

extern AttrDescriptor *a_425radius;

class SdaiCylindrical_surface  :    public SdaiElementary_surface  {
   protected:
	SdaiReal _radius ;
  public:  

	SdaiCylindrical_surface ( ); 
	SdaiCylindrical_surface (STEPentity *se ); 
	SdaiCylindrical_surface (SdaiCylindrical_surface& e ); 
	~SdaiCylindrical_surface ();
	int opcode ()  { return 239 ; } 
	const SdaiPositive_length_measure Radius() const;
	void Radius (SdaiPositive_length_measure x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiCylindrical_surface *
create_SdaiCylindrical_surface () {  return  new SdaiCylindrical_surface ;  }

/////////	 END_ENTITY cylindrical_surface 


/////////	 ENTITY local_time 

extern AttrDescriptor *a_426hour_component;
extern AttrDescriptor *a_427minute_component;
extern AttrDescriptor *a_428second_component;
extern AttrDescriptor *a_429zone;

class SdaiLocal_time  :    public STEPentity {
  protected:
	SdaiInteger _hour_component ;
	SdaiInteger _minute_component ;    //  OPTIONAL
	SdaiReal _second_component ;    //  OPTIONAL
	SdaiCoordinated_universal_time_offsetH _zone ;
  public:  

	SdaiLocal_time ( ); 
	SdaiLocal_time (STEPentity *se ); 
	SdaiLocal_time (SdaiLocal_time& e ); 
	~SdaiLocal_time ();
	int opcode ()  { return 240 ; } 
	const SdaiHour_in_day Hour_component() const;
	void Hour_component (SdaiHour_in_day x);
	const SdaiMinute_in_hour Minute_component() const;
	void Minute_component (SdaiMinute_in_hour x);
	const SdaiSecond_in_minute Second_component() const;
	void Second_component (SdaiSecond_in_minute x);
	SdaiCoordinated_universal_time_offsetH Zone() const;
	void Zone (SdaiCoordinated_universal_time_offsetH x);
};
inline SdaiLocal_time *
create_SdaiLocal_time () {  return  new SdaiLocal_time ;  }

/////////	 END_ENTITY local_time 


/////////	 ENTITY mass_unit 


class SdaiMass_unit  :    public SdaiNamed_unit  {
   protected:
  public:  

	SdaiMass_unit ( ); 
	SdaiMass_unit (STEPentity *se ); 
	SdaiMass_unit (SdaiMass_unit& e ); 
	~SdaiMass_unit ();
	int opcode ()  { return 241 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiMass_unit *
create_SdaiMass_unit () {  return  new SdaiMass_unit ;  }

/////////	 END_ENTITY mass_unit 


/////////	 ENTITY vertex_shell 

extern AttrDescriptor *a_430vertex_shell_extent;

class SdaiVertex_shell  :    public SdaiTopological_representation_item  {
   protected:
	SdaiVertex_loopH _vertex_shell_extent ;
  public:  

	SdaiVertex_shell ( ); 
	SdaiVertex_shell (STEPentity *se ); 
	SdaiVertex_shell (SdaiVertex_shell& e ); 
	~SdaiVertex_shell ();
	int opcode ()  { return 242 ; } 
	SdaiVertex_loopH Vertex_shell_extent() const;
	void Vertex_shell_extent (SdaiVertex_loopH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiVertex_shell *
create_SdaiVertex_shell () {  return  new SdaiVertex_shell ;  }

/////////	 END_ENTITY vertex_shell 


/////////	 ENTITY poly_loop 

extern AttrDescriptor *a_431polygon;

class SdaiPoly_loop  :    public SdaiLoop  {
   protected:
	EntityAggregate _polygon ;	  //  of  cartesian_point

  public:  

	SdaiPoly_loop ( ); 
	SdaiPoly_loop (STEPentity *se ); 
	SdaiPoly_loop (SdaiPoly_loop& e ); 
	~SdaiPoly_loop ();
	int opcode ()  { return 243 ; } 
	const EntityAggregateH Polygon() const;
	void Polygon (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0

#endif
};
inline SdaiPoly_loop *
create_SdaiPoly_loop () {  return  new SdaiPoly_loop ;  }

/////////	 END_ENTITY poly_loop 


/////////	 ENTITY wire_shell 

extern AttrDescriptor *a_432wire_shell_extent;

class SdaiWire_shell  :    public SdaiTopological_representation_item  {
   protected:
	EntityAggregate _wire_shell_extent ;	  //  of  loop

  public:  

	SdaiWire_shell ( ); 
	SdaiWire_shell (STEPentity *se ); 
	SdaiWire_shell (SdaiWire_shell& e ); 
	~SdaiWire_shell ();
	int opcode ()  { return 244 ; } 
	const EntityAggregateH Wire_shell_extent() const;
	void Wire_shell_extent (EntityAggregateH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiWire_shell *
create_SdaiWire_shell () {  return  new SdaiWire_shell ;  }

/////////	 END_ENTITY wire_shell 


/////////	 ENTITY area_unit 


class SdaiArea_unit  :    public SdaiNamed_unit  {
   protected:
  public:  

	SdaiArea_unit ( ); 
	SdaiArea_unit (STEPentity *se ); 
	SdaiArea_unit (SdaiArea_unit& e ); 
	~SdaiArea_unit ();
	int opcode ()  { return 245 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiArea_unit *
create_SdaiArea_unit () {  return  new SdaiArea_unit ;  }

/////////	 END_ENTITY area_unit 


/////////	 ENTITY mapped_item 

extern AttrDescriptor *a_433mapping_source;
extern AttrDescriptor *a_434mapping_target;

class SdaiMapped_item  :    public SdaiRepresentation_item  {
   protected:
	SdaiRepresentation_mapH _mapping_source ;
	SdaiRepresentation_itemH _mapping_target ;
  public:  

	SdaiMapped_item ( ); 
	SdaiMapped_item (STEPentity *se ); 
	SdaiMapped_item (SdaiMapped_item& e ); 
	~SdaiMapped_item ();
	int opcode ()  { return 246 ; } 
	SdaiRepresentation_mapH Mapping_source() const;
	void Mapping_source (SdaiRepresentation_mapH x);
	SdaiRepresentation_itemH Mapping_target() const;
	void Mapping_target (SdaiRepresentation_itemH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiMapped_item *
create_SdaiMapped_item () {  return  new SdaiMapped_item ;  }

/////////	 END_ENTITY mapped_item 


/////////	 ENTITY offset_curve_2d 

extern AttrDescriptor *a_435basis_curve;
extern AttrDescriptor *a_436distance;
extern AttrDescriptor *a_437self_intersect;

class SdaiOffset_curve_2d  :    public SdaiCurve  {
   protected:
	SdaiCurveH _basis_curve ;
	SdaiReal _distance ;
	SdaiLogical _self_intersect ;
  public:  

	SdaiOffset_curve_2d ( ); 
	SdaiOffset_curve_2d (STEPentity *se ); 
	SdaiOffset_curve_2d (SdaiOffset_curve_2d& e ); 
	~SdaiOffset_curve_2d ();
	int opcode ()  { return 247 ; } 
	SdaiCurveH Basis_curve() const;
	void Basis_curve (SdaiCurveH x);
	const SdaiLength_measure Distance() const;
	void Distance (SdaiLength_measure x);
	const LOGICAL Self_intersect() const;
	void Self_intersect (LOGICAL x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiOffset_curve_2d *
create_SdaiOffset_curve_2d () {  return  new SdaiOffset_curve_2d ;  }

/////////	 END_ENTITY offset_curve_2d 


/////////	 ENTITY shape_definition_representation 


class SdaiShape_definition_representation  :    public SdaiProperty_definition_representation  {
   protected:
  public:  

	SdaiShape_definition_representation ( ); 
	SdaiShape_definition_representation (STEPentity *se ); 
	SdaiShape_definition_representation (SdaiShape_definition_representation& e ); 
	~SdaiShape_definition_representation ();
	int opcode ()  { return 248 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiShape_definition_representation *
create_SdaiShape_definition_representation () {  return  new SdaiShape_definition_representation ;  }

/////////	 END_ENTITY shape_definition_representation 


/////////	 ENTITY volume_unit 


class SdaiVolume_unit  :    public SdaiNamed_unit  {
   protected:
  public:  

	SdaiVolume_unit ( ); 
	SdaiVolume_unit (STEPentity *se ); 
	SdaiVolume_unit (SdaiVolume_unit& e ); 
	~SdaiVolume_unit ();
	int opcode ()  { return 249 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiVolume_unit *
create_SdaiVolume_unit () {  return  new SdaiVolume_unit ;  }

/////////	 END_ENTITY volume_unit 


/////////	 ENTITY conical_surface 

extern AttrDescriptor *a_438radius;
extern AttrDescriptor *a_439semi_angle;

class SdaiConical_surface  :    public SdaiElementary_surface  {
   protected:
	SdaiReal _radius ;
	SdaiReal _semi_angle ;
  public:  

	SdaiConical_surface ( ); 
	SdaiConical_surface (STEPentity *se ); 
	SdaiConical_surface (SdaiConical_surface& e ); 
	~SdaiConical_surface ();
	int opcode ()  { return 250 ; } 
	const SdaiLength_measure Radius() const;
	void Radius (SdaiLength_measure x);
	const SdaiPlane_angle_measure Semi_angle() const;
	void Semi_angle (SdaiPlane_angle_measure x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiConical_surface *
create_SdaiConical_surface () {  return  new SdaiConical_surface ;  }

/////////	 END_ENTITY conical_surface 


/////////	 ENTITY global_unit_assigned_context 

extern AttrDescriptor *a_440units;

class SdaiGlobal_unit_assigned_context  :    public SdaiRepresentation_context  {
   protected:
	SdaiUnits _units ;	  //  of  unit

  public:  

	SdaiGlobal_unit_assigned_context ( ); 
	SdaiGlobal_unit_assigned_context (STEPentity *se ); 
	SdaiGlobal_unit_assigned_context (SdaiGlobal_unit_assigned_context& e ); 
	~SdaiGlobal_unit_assigned_context ();
	int opcode ()  { return 251 ; } 
	const SdaiUnitsH Units() const;
	void Units (SdaiUnitsH x);
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */
};
inline SdaiGlobal_unit_assigned_context *
create_SdaiGlobal_unit_assigned_context () {  return  new SdaiGlobal_unit_assigned_context ;  }

/////////	 END_ENTITY global_unit_assigned_context 

#endif
