#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.
/* $Id: SdaiCONFIG_CONTROL_DESIGN.h,v 1.6 2000/06/09 13:55:20 gcosmo Exp $  */

#ifdef __OSTORE__
#include <ostore/ostore.hh>    // Required to access ObjectStore Class Library
#endif

#ifdef __O3DB__
#include <OpenOODB.h>
#endif

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

#ifdef PART26
#include <corbaIncludes.h> 
// Create a corbaSchema.h file in this directory with a #include in 
// it for your IDL generated schema-specific .hh file.
#include <corbaSchema.h> 
#endif 

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

#if __OSTORE__
STEPaggregate * create_SdaiSet_of_reversible_topology_item (os_database *db);

#else
STEPaggregate * create_SdaiSet_of_reversible_topology_item ();

#endif

//////////  ENUMERATION TYPE knot_type
enum Knot_type {
	Knot_type__uniform_knots,
	Knot_type__quasi_uniform_knots,
	Knot_type__piecewise_bezier_knots,
	Knot_type__unspecified,
	Knot_type_unset
};

class SdaiKnot_type_var  :  public SCLP23(Enum)  {

#ifdef __OSTORE__
  friend void SdaiKnot_type_var_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EnumTypeDescriptor *type;

  public:
	SdaiKnot_type_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_knot_type);
	SdaiKnot_type_var (Knot_type e, EnumTypeDescriptor *et =config_control_designt_knot_type)
		: type(et) {  set_value (e);  }
	~SdaiKnot_type_var () { }
	SdaiKnot_type_var& operator= (const SdaiKnot_type_var& e)
		{  set_value (e);  return *this;  }
	operator Knot_type () const;

	inline virtual const char * Name () const
		{  return type->Name();  }
	inline virtual int no_elements () const  {  return 4;  }
	virtual const char * element_at (int n) const;

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif
};

typedef SdaiKnot_type_var * SdaiKnot_type_var_ptr;

#ifdef __OSTORE__
void SdaiKnot_type_var_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#if __OSTORE__
  SCLP23(Enum) * create_SdaiKnot_type_var (os_database *db);
#else
  SCLP23(Enum) * create_SdaiKnot_type_var ();
#endif

class SdaiKnot_type_vars  :  public EnumAggregate  {

#ifdef __OSTORE__
  friend void SdaiKnot_type_vars_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
    EnumTypeDescriptor *enum_type;

  public:
    SdaiKnot_type_vars( EnumTypeDescriptor * =config_control_designt_knot_type);
    virtual ~SdaiKnot_type_vars();
    virtual SingleLinkNode * NewNode()
	{ return new EnumNode (new SdaiKnot_type_var( "", enum_type )); }

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
#endif
};

#ifdef __OSTORE__
void SdaiKnot_type_vars_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

typedef SdaiKnot_type_vars * SdaiKnot_type_vars_ptr;

#if __OSTORE__
  STEPaggregate * create_SdaiKnot_type_vars (os_database *db);
#else
  STEPaggregate * create_SdaiKnot_type_vars ();
#endif

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


//////////  ENUMERATION TYPE transition_code
enum Transition_code {
	Transition_code__discontinuous,
	Transition_code__cont_same_gradient_same_curvature,
	Transition_code__cont_same_gradient,
	Transition_code__continuous,
	Transition_code_unset
};

class SdaiTransition_code_var  :  public SCLP23(Enum)  {

#ifdef __OSTORE__
  friend void SdaiTransition_code_var_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EnumTypeDescriptor *type;

  public:
	SdaiTransition_code_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_transition_code);
	SdaiTransition_code_var (Transition_code e, EnumTypeDescriptor *et =config_control_designt_transition_code)
		: type(et) {  set_value (e);  }
	~SdaiTransition_code_var () { }
	SdaiTransition_code_var& operator= (const SdaiTransition_code_var& e)
		{  set_value (e);  return *this;  }
	operator Transition_code () const;

	inline virtual const char * Name () const
		{  return type->Name();  }
	inline virtual int no_elements () const  {  return 4;  }
	virtual const char * element_at (int n) const;

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif
};

typedef SdaiTransition_code_var * SdaiTransition_code_var_ptr;

#ifdef __OSTORE__
void SdaiTransition_code_var_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#if __OSTORE__
  SCLP23(Enum) * create_SdaiTransition_code_var (os_database *db);
#else
  SCLP23(Enum) * create_SdaiTransition_code_var ();
#endif

class SdaiTransition_code_vars  :  public EnumAggregate  {

#ifdef __OSTORE__
  friend void SdaiTransition_code_vars_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
    EnumTypeDescriptor *enum_type;

  public:
    SdaiTransition_code_vars( EnumTypeDescriptor * =config_control_designt_transition_code);
    virtual ~SdaiTransition_code_vars();
    virtual SingleLinkNode * NewNode()
	{ return new EnumNode (new SdaiTransition_code_var( "", enum_type )); }

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
#endif
};

#ifdef __OSTORE__
void SdaiTransition_code_vars_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

typedef SdaiTransition_code_vars * SdaiTransition_code_vars_ptr;

#if __OSTORE__
  STEPaggregate * create_SdaiTransition_code_vars (os_database *db);
#else
  STEPaggregate * create_SdaiTransition_code_vars ();
#endif

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


//////////  ENUMERATION TYPE preferred_surface_curve_representation
enum Preferred_surface_curve_representation {
	Preferred_surface_curve_representation__pcurve_s2,
	Preferred_surface_curve_representation__pcurve_s1,
	Preferred_surface_curve_representation__curve_3d,
	Preferred_surface_curve_representation_unset
};

class SdaiPreferred_surface_curve_representation_var  :  public SCLP23(Enum)  {

#ifdef __OSTORE__
  friend void SdaiPreferred_surface_curve_representation_var_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EnumTypeDescriptor *type;

  public:
	SdaiPreferred_surface_curve_representation_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_preferred_surface_curve_representation);
	SdaiPreferred_surface_curve_representation_var (Preferred_surface_curve_representation e, EnumTypeDescriptor *et =config_control_designt_preferred_surface_curve_representation)
		: type(et) {  set_value (e);  }
	~SdaiPreferred_surface_curve_representation_var () { }
	SdaiPreferred_surface_curve_representation_var& operator= (const SdaiPreferred_surface_curve_representation_var& e)
		{  set_value (e);  return *this;  }
	operator Preferred_surface_curve_representation () const;

	inline virtual const char * Name () const
		{  return type->Name();  }
	inline virtual int no_elements () const  {  return 3;  }
	virtual const char * element_at (int n) const;

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif
};

typedef SdaiPreferred_surface_curve_representation_var * SdaiPreferred_surface_curve_representation_var_ptr;

#ifdef __OSTORE__
void SdaiPreferred_surface_curve_representation_var_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#if __OSTORE__
  SCLP23(Enum) * create_SdaiPreferred_surface_curve_representation_var (os_database *db);
#else
  SCLP23(Enum) * create_SdaiPreferred_surface_curve_representation_var ();
#endif

class SdaiPreferred_surface_curve_representation_vars  :  public EnumAggregate  {

#ifdef __OSTORE__
  friend void SdaiPreferred_surface_curve_representation_vars_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
    EnumTypeDescriptor *enum_type;

  public:
    SdaiPreferred_surface_curve_representation_vars( EnumTypeDescriptor * =config_control_designt_preferred_surface_curve_representation);
    virtual ~SdaiPreferred_surface_curve_representation_vars();
    virtual SingleLinkNode * NewNode()
	{ return new EnumNode (new SdaiPreferred_surface_curve_representation_var( "", enum_type )); }

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
#endif
};

#ifdef __OSTORE__
void SdaiPreferred_surface_curve_representation_vars_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

typedef SdaiPreferred_surface_curve_representation_vars * SdaiPreferred_surface_curve_representation_vars_ptr;

#if __OSTORE__
  STEPaggregate * create_SdaiPreferred_surface_curve_representation_vars (os_database *db);
#else
  STEPaggregate * create_SdaiPreferred_surface_curve_representation_vars ();
#endif

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


//////////  ENUMERATION TYPE b_spline_curve_form
enum B_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,
	B_spline_curve_form_unset
};

class SdaiB_spline_curve_form_var  :  public SCLP23(Enum)  {

#ifdef __OSTORE__
  friend void SdaiB_spline_curve_form_var_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EnumTypeDescriptor *type;

  public:
	SdaiB_spline_curve_form_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_b_spline_curve_form);
	SdaiB_spline_curve_form_var (B_spline_curve_form e, EnumTypeDescriptor *et =config_control_designt_b_spline_curve_form)
		: type(et) {  set_value (e);  }
	~SdaiB_spline_curve_form_var () { }
	SdaiB_spline_curve_form_var& operator= (const SdaiB_spline_curve_form_var& e)
		{  set_value (e);  return *this;  }
	operator B_spline_curve_form () const;

	inline virtual const char * Name () const
		{  return type->Name();  }
	inline virtual int no_elements () const  {  return 6;  }
	virtual const char * element_at (int n) const;

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif
};

typedef SdaiB_spline_curve_form_var * SdaiB_spline_curve_form_var_ptr;

#ifdef __OSTORE__
void SdaiB_spline_curve_form_var_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#if __OSTORE__
  SCLP23(Enum) * create_SdaiB_spline_curve_form_var (os_database *db);
#else
  SCLP23(Enum) * create_SdaiB_spline_curve_form_var ();
#endif

class SdaiB_spline_curve_form_vars  :  public EnumAggregate  {

#ifdef __OSTORE__
  friend void SdaiB_spline_curve_form_vars_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
    EnumTypeDescriptor *enum_type;

  public:
    SdaiB_spline_curve_form_vars( EnumTypeDescriptor * =config_control_designt_b_spline_curve_form);
    virtual ~SdaiB_spline_curve_form_vars();
    virtual SingleLinkNode * NewNode()
	{ return new EnumNode (new SdaiB_spline_curve_form_var( "", enum_type )); }

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
#endif
};

#ifdef __OSTORE__
void SdaiB_spline_curve_form_vars_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

typedef SdaiB_spline_curve_form_vars * SdaiB_spline_curve_form_vars_ptr;

#if __OSTORE__
  STEPaggregate * create_SdaiB_spline_curve_form_vars (os_database *db);
#else
  STEPaggregate * create_SdaiB_spline_curve_form_vars ();
#endif

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


//////////  ENUMERATION TYPE si_unit_name
enum Si_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,
	Si_unit_name_unset
};

class SdaiSi_unit_name_var  :  public SCLP23(Enum)  {

#ifdef __OSTORE__
  friend void SdaiSi_unit_name_var_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EnumTypeDescriptor *type;

  public:
	SdaiSi_unit_name_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_si_unit_name);
	SdaiSi_unit_name_var (Si_unit_name e, EnumTypeDescriptor *et =config_control_designt_si_unit_name)
		: type(et) {  set_value (e);  }
	~SdaiSi_unit_name_var () { }
	SdaiSi_unit_name_var& operator= (const SdaiSi_unit_name_var& e)
		{  set_value (e);  return *this;  }
	operator Si_unit_name () const;

	inline virtual const char * Name () const
		{  return type->Name();  }
	inline virtual int no_elements () const  {  return 28;  }
	virtual const char * element_at (int n) const;

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif
};

typedef SdaiSi_unit_name_var * SdaiSi_unit_name_var_ptr;

#ifdef __OSTORE__
void SdaiSi_unit_name_var_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#if __OSTORE__
  SCLP23(Enum) * create_SdaiSi_unit_name_var (os_database *db);
#else
  SCLP23(Enum) * create_SdaiSi_unit_name_var ();
#endif

class SdaiSi_unit_name_vars  :  public EnumAggregate  {

#ifdef __OSTORE__
  friend void SdaiSi_unit_name_vars_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
    EnumTypeDescriptor *enum_type;

  public:
    SdaiSi_unit_name_vars( EnumTypeDescriptor * =config_control_designt_si_unit_name);
    virtual ~SdaiSi_unit_name_vars();
    virtual SingleLinkNode * NewNode()
	{ return new EnumNode (new SdaiSi_unit_name_var( "", enum_type )); }

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
#endif
};

#ifdef __OSTORE__
void SdaiSi_unit_name_vars_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

typedef SdaiSi_unit_name_vars * SdaiSi_unit_name_vars_ptr;

#if __OSTORE__
  STEPaggregate * create_SdaiSi_unit_name_vars (os_database *db);
#else
  STEPaggregate * create_SdaiSi_unit_name_vars ();
#endif

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


//////////  ENUMERATION TYPE trimming_preference
enum Trimming_preference {
	Trimming_preference__parameter,
	Trimming_preference__unspecified,
	Trimming_preference__cartesian,
	Trimming_preference_unset
};

class SdaiTrimming_preference_var  :  public SCLP23(Enum)  {

#ifdef __OSTORE__
  friend void SdaiTrimming_preference_var_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EnumTypeDescriptor *type;

  public:
	SdaiTrimming_preference_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_trimming_preference);
	SdaiTrimming_preference_var (Trimming_preference e, EnumTypeDescriptor *et =config_control_designt_trimming_preference)
		: type(et) {  set_value (e);  }
	~SdaiTrimming_preference_var () { }
	SdaiTrimming_preference_var& operator= (const SdaiTrimming_preference_var& e)
		{  set_value (e);  return *this;  }
	operator Trimming_preference () const;

	inline virtual const char * Name () const
		{  return type->Name();  }
	inline virtual int no_elements () const  {  return 3;  }
	virtual const char * element_at (int n) const;

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif
};

typedef SdaiTrimming_preference_var * SdaiTrimming_preference_var_ptr;

#ifdef __OSTORE__
void SdaiTrimming_preference_var_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#if __OSTORE__
  SCLP23(Enum) * create_SdaiTrimming_preference_var (os_database *db);
#else
  SCLP23(Enum) * create_SdaiTrimming_preference_var ();
#endif

class SdaiTrimming_preference_vars  :  public EnumAggregate  {

#ifdef __OSTORE__
  friend void SdaiTrimming_preference_vars_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
    EnumTypeDescriptor *enum_type;

  public:
    SdaiTrimming_preference_vars( EnumTypeDescriptor * =config_control_designt_trimming_preference);
    virtual ~SdaiTrimming_preference_vars();
    virtual SingleLinkNode * NewNode()
	{ return new EnumNode (new SdaiTrimming_preference_var( "", enum_type )); }

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
#endif
};

#ifdef __OSTORE__
void SdaiTrimming_preference_vars_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

typedef SdaiTrimming_preference_vars * SdaiTrimming_preference_vars_ptr;

#if __OSTORE__
  STEPaggregate * create_SdaiTrimming_preference_vars (os_database *db);
#else
  STEPaggregate * create_SdaiTrimming_preference_vars ();
#endif

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


//////////  ENUMERATION TYPE b_spline_surface_form
enum B_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,
	B_spline_surface_form_unset
};

class SdaiB_spline_surface_form_var  :  public SCLP23(Enum)  {

#ifdef __OSTORE__
  friend void SdaiB_spline_surface_form_var_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EnumTypeDescriptor *type;

  public:
	SdaiB_spline_surface_form_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_b_spline_surface_form);
	SdaiB_spline_surface_form_var (B_spline_surface_form e, EnumTypeDescriptor *et =config_control_designt_b_spline_surface_form)
		: type(et) {  set_value (e);  }
	~SdaiB_spline_surface_form_var () { }
	SdaiB_spline_surface_form_var& operator= (const SdaiB_spline_surface_form_var& e)
		{  set_value (e);  return *this;  }
	operator B_spline_surface_form () const;

	inline virtual const char * Name () const
		{  return type->Name();  }
	inline virtual int no_elements () const  {  return 11;  }
	virtual const char * element_at (int n) const;

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif
};

typedef SdaiB_spline_surface_form_var * SdaiB_spline_surface_form_var_ptr;

#ifdef __OSTORE__
void SdaiB_spline_surface_form_var_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#if __OSTORE__
  SCLP23(Enum) * create_SdaiB_spline_surface_form_var (os_database *db);
#else
  SCLP23(Enum) * create_SdaiB_spline_surface_form_var ();
#endif

class SdaiB_spline_surface_form_vars  :  public EnumAggregate  {

#ifdef __OSTORE__
  friend void SdaiB_spline_surface_form_vars_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
    EnumTypeDescriptor *enum_type;

  public:
    SdaiB_spline_surface_form_vars( EnumTypeDescriptor * =config_control_designt_b_spline_surface_form);
    virtual ~SdaiB_spline_surface_form_vars();
    virtual SingleLinkNode * NewNode()
	{ return new EnumNode (new SdaiB_spline_surface_form_var( "", enum_type )); }

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
#endif
};

#ifdef __OSTORE__
void SdaiB_spline_surface_form_vars_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

typedef SdaiB_spline_surface_form_vars * SdaiB_spline_surface_form_vars_ptr;

#if __OSTORE__
  STEPaggregate * create_SdaiB_spline_surface_form_vars (os_database *db);
#else
  STEPaggregate * create_SdaiB_spline_surface_form_vars ();
#endif

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


//////////  ENUMERATION TYPE ahead_or_behind
enum Ahead_or_behind {
	Ahead_or_behind__ahead,
	Ahead_or_behind__behind,
	Ahead_or_behind_unset
};

class SdaiAhead_or_behind_var  :  public SCLP23(Enum)  {

#ifdef __OSTORE__
  friend void SdaiAhead_or_behind_var_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EnumTypeDescriptor *type;

  public:
	SdaiAhead_or_behind_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_ahead_or_behind);
	SdaiAhead_or_behind_var (Ahead_or_behind e, EnumTypeDescriptor *et =config_control_designt_ahead_or_behind)
		: type(et) {  set_value (e);  }
	~SdaiAhead_or_behind_var () { }
	SdaiAhead_or_behind_var& operator= (const SdaiAhead_or_behind_var& e)
		{  set_value (e);  return *this;  }
	operator Ahead_or_behind () const;

	inline virtual const char * Name () const
		{  return type->Name();  }
	inline virtual int no_elements () const  {  return 2;  }
	virtual const char * element_at (int n) const;

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif
};

typedef SdaiAhead_or_behind_var * SdaiAhead_or_behind_var_ptr;

#ifdef __OSTORE__
void SdaiAhead_or_behind_var_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#if __OSTORE__
  SCLP23(Enum) * create_SdaiAhead_or_behind_var (os_database *db);
#else
  SCLP23(Enum) * create_SdaiAhead_or_behind_var ();
#endif

class SdaiAhead_or_behind_vars  :  public EnumAggregate  {

#ifdef __OSTORE__
  friend void SdaiAhead_or_behind_vars_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
    EnumTypeDescriptor *enum_type;

  public:
    SdaiAhead_or_behind_vars( EnumTypeDescriptor * =config_control_designt_ahead_or_behind);
    virtual ~SdaiAhead_or_behind_vars();
    virtual SingleLinkNode * NewNode()
	{ return new EnumNode (new SdaiAhead_or_behind_var( "", enum_type )); }

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
#endif
};

#ifdef __OSTORE__
void SdaiAhead_or_behind_vars_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

typedef SdaiAhead_or_behind_vars * SdaiAhead_or_behind_vars_ptr;

#if __OSTORE__
  STEPaggregate * create_SdaiAhead_or_behind_vars (os_database *db);
#else
  STEPaggregate * create_SdaiAhead_or_behind_vars ();
#endif

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


//////////  ENUMERATION TYPE source
enum Source {
	Source__bought,
	Source__not_known,
	Source__made,
	Source_unset
};

class SdaiSource_var  :  public SCLP23(Enum)  {

#ifdef __OSTORE__
  friend void SdaiSource_var_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EnumTypeDescriptor *type;

  public:
	SdaiSource_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_source);
	SdaiSource_var (Source e, EnumTypeDescriptor *et =config_control_designt_source)
		: type(et) {  set_value (e);  }
	~SdaiSource_var () { }
	SdaiSource_var& operator= (const SdaiSource_var& e)
		{  set_value (e);  return *this;  }
	operator Source () const;

	inline virtual const char * Name () const
		{  return type->Name();  }
	inline virtual int no_elements () const  {  return 3;  }
	virtual const char * element_at (int n) const;

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif
};

typedef SdaiSource_var * SdaiSource_var_ptr;

#ifdef __OSTORE__
void SdaiSource_var_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#if __OSTORE__
  SCLP23(Enum) * create_SdaiSource_var (os_database *db);
#else
  SCLP23(Enum) * create_SdaiSource_var ();
#endif

class SdaiSource_vars  :  public EnumAggregate  {

#ifdef __OSTORE__
  friend void SdaiSource_vars_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
    EnumTypeDescriptor *enum_type;

  public:
    SdaiSource_vars( EnumTypeDescriptor * =config_control_designt_source);
    virtual ~SdaiSource_vars();
    virtual SingleLinkNode * NewNode()
	{ return new EnumNode (new SdaiSource_var( "", enum_type )); }

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
#endif
};

#ifdef __OSTORE__
void SdaiSource_vars_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

typedef SdaiSource_vars * SdaiSource_vars_ptr;

#if __OSTORE__
  STEPaggregate * create_SdaiSource_vars (os_database *db);
#else
  STEPaggregate * create_SdaiSource_vars ();
#endif

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


//////////  ENUMERATION TYPE si_prefix
enum Si_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,
	Si_prefix_unset
};

class SdaiSi_prefix_var  :  public SCLP23(Enum)  {

#ifdef __OSTORE__
  friend void SdaiSi_prefix_var_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EnumTypeDescriptor *type;

  public:
	SdaiSi_prefix_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_si_prefix);
	SdaiSi_prefix_var (Si_prefix e, EnumTypeDescriptor *et =config_control_designt_si_prefix)
		: type(et) {  set_value (e);  }
	~SdaiSi_prefix_var () { }
	SdaiSi_prefix_var& operator= (const SdaiSi_prefix_var& e)
		{  set_value (e);  return *this;  }
	operator Si_prefix () const;

	inline virtual const char * Name () const
		{  return type->Name();  }
	inline virtual int no_elements () const  {  return 16;  }
	virtual const char * element_at (int n) const;

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif
};

typedef SdaiSi_prefix_var * SdaiSi_prefix_var_ptr;

#ifdef __OSTORE__
void SdaiSi_prefix_var_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#if __OSTORE__
  SCLP23(Enum) * create_SdaiSi_prefix_var (os_database *db);
#else
  SCLP23(Enum) * create_SdaiSi_prefix_var ();
#endif

class SdaiSi_prefix_vars  :  public EnumAggregate  {

#ifdef __OSTORE__
  friend void SdaiSi_prefix_vars_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
    EnumTypeDescriptor *enum_type;

  public:
    SdaiSi_prefix_vars( EnumTypeDescriptor * =config_control_designt_si_prefix);
    virtual ~SdaiSi_prefix_vars();
    virtual SingleLinkNode * NewNode()
	{ return new EnumNode (new SdaiSi_prefix_var( "", enum_type )); }

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
#endif
};

#ifdef __OSTORE__
void SdaiSi_prefix_vars_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

typedef SdaiSi_prefix_vars * SdaiSi_prefix_vars_ptr;

#if __OSTORE__
  STEPaggregate * create_SdaiSi_prefix_vars (os_database *db);
#else
  STEPaggregate * create_SdaiSi_prefix_vars ();
#endif

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


#if __OSTORE__
STEPaggregate * create_SdaiList_of_reversible_topology_item (os_database *db);

#else
STEPaggregate * create_SdaiList_of_reversible_topology_item ();

#endif

//	***** Build the SELECT Types  	

//////////  SELECT TYPE SdaiCharacterized_product_definition
class SdaiCharacterized_product_definition  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION	--  sdaiINSTANCE
	//   PRODUCT_DEFINITION_RELATIONSHIP	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiCharacterized_product_definition_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiCharacterized_product_definition( const SelectTypeDescriptor * =config_control_designt_characterized_product_definition );
	//  part 1
	SdaiCharacterized_product_definition( const SdaiProduct_definition_ptr&,
	                                      const SelectTypeDescriptor * =config_control_designt_characterized_product_definition );
	SdaiCharacterized_product_definition( const SdaiProduct_definition_relationship_ptr&,
	                                      const SelectTypeDescriptor * =config_control_designt_characterized_product_definition );
	virtual ~SdaiCharacterized_product_definition();

	//  part 2
	operator SdaiProduct_definition_ptr();
	operator SdaiProduct_definition_relationship_ptr();

	//  part 3
	const SdaiProduct_definition_ptr related_product_definition_() const;
	void related_product_definition_ (const SdaiProduct_definition_ptr x);

	const SdaiProduct_definition_ptr relating_product_definition_() const;
	void relating_product_definition_ (const SdaiProduct_definition_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiProduct_definition_context_ptr frame_of_reference_() const;
	void frame_of_reference_ (const SdaiProduct_definition_context_ptr x);

	const SdaiProduct_definition_formation_ptr formation_() const;
	void formation_ (const SdaiProduct_definition_formation_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


	//  part 4
	SdaiCharacterized_product_definition& operator =( const SdaiProduct_definition_ptr& );
	SdaiCharacterized_product_definition& operator =( const SdaiProduct_definition_relationship_ptr& );
	// not in SDAI
	SdaiCharacterized_product_definition& ShallowCopy ( const SdaiCharacterized_product_definition& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiCharacterized_product_definition& operator =( SdaiCharacterized_product_definition * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsProduct_definition() const;
	SCLLOG(Logical) IsProduct_definition_relationship() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiCharacterized_product_definition_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiCharacterized_product_definition (os_database *db);
#else

inline SCLP23(Select) * create_SdaiCharacterized_product_definition () { return new SdaiCharacterized_product_definition; }
#endif

typedef SdaiCharacterized_product_definition * SdaiCharacterized_product_definitionH;
typedef SdaiCharacterized_product_definition_ptr SdaiCharacterized_product_definition_var;


class SdaiCharacterized_product_definitions : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiCharacterized_product_definitions( SelectTypeDescriptor * =config_control_designt_characterized_product_definition );
    ~SdaiCharacterized_product_definitions();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiCharacterized_product_definition( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiCharacterized_product_definitions (os_database *db);
#else
inline STEPaggregate * create_SdaiCharacterized_product_definitions () { return new SdaiCharacterized_product_definitions; }
#endif

typedef SdaiCharacterized_product_definitions_ptr SdaiCharacterized_product_definitions_var;

/////  END SELECT TYPE characterized_product_definition


//////////  SELECT TYPE SdaiShape_definition
class SdaiShape_definition  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_SHAPE	--  sdaiINSTANCE
	//   SHAPE_ASPECT	--  sdaiINSTANCE
	//   SHAPE_ASPECT_RELATIONSHIP	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiShape_definition_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiShape_definition( const SelectTypeDescriptor * =config_control_designt_shape_definition );
	//  part 1
	SdaiShape_definition( const SdaiProduct_definition_shape_ptr&,
	                      const SelectTypeDescriptor * =config_control_designt_shape_definition );
	SdaiShape_definition( const SdaiShape_aspect_ptr&,
	                      const SelectTypeDescriptor * =config_control_designt_shape_definition );
	SdaiShape_definition( const SdaiShape_aspect_relationship_ptr&,
	                      const SelectTypeDescriptor * =config_control_designt_shape_definition );
	virtual ~SdaiShape_definition();

	//  part 2
	operator SdaiProduct_definition_shape_ptr();
	operator SdaiShape_aspect_ptr();
	operator SdaiShape_aspect_relationship_ptr();

	//  part 3
	const SdaiShape_aspect_ptr related_shape_aspect_() const;
	void related_shape_aspect_ (const SdaiShape_aspect_ptr x);

	const SdaiShape_aspect_ptr relating_shape_aspect_() const;
	void relating_shape_aspect_ (const SdaiShape_aspect_ptr x);

	const SCLLOG(Logical) product_definitional_() const;
	void product_definitional_ (const SCLLOG(Logical) x);

	const SdaiProduct_definition_shape_ptr of_shape_() const;
	void of_shape_ (const SdaiProduct_definition_shape_ptr x);

	const SdaiCharacterized_definition_ptr definition_() const;
	void definition_ (const SdaiCharacterized_definition_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiShape_definition& operator =( const SdaiProduct_definition_shape_ptr& );
	SdaiShape_definition& operator =( const SdaiShape_aspect_ptr& );
	SdaiShape_definition& operator =( const SdaiShape_aspect_relationship_ptr& );
	// not in SDAI
	SdaiShape_definition& ShallowCopy ( const SdaiShape_definition& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiShape_definition& operator =( SdaiShape_definition * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsProduct_definition_shape() const;
	SCLLOG(Logical) IsShape_aspect() const;
	SCLLOG(Logical) IsShape_aspect_relationship() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiShape_definition_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiShape_definition (os_database *db);
#else

inline SCLP23(Select) * create_SdaiShape_definition () { return new SdaiShape_definition; }
#endif

typedef SdaiShape_definition * SdaiShape_definitionH;
typedef SdaiShape_definition_ptr SdaiShape_definition_var;


class SdaiShape_definitions : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiShape_definitions( SelectTypeDescriptor * =config_control_designt_shape_definition );
    ~SdaiShape_definitions();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiShape_definition( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiShape_definitions (os_database *db);
#else
inline STEPaggregate * create_SdaiShape_definitions () { return new SdaiShape_definitions; }
#endif

typedef SdaiShape_definitions_ptr SdaiShape_definitions_var;

/////  END SELECT TYPE shape_definition


//////////  SELECT TYPE SdaiCharacterized_definition
class SdaiCharacterized_definition  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   CHARACTERIZED_PRODUCT_DEFINITION	--  sdaiSELECT
	//   SHAPE_DEFINITION	--  sdaiSELECT
	   SdaiCharacterized_product_definition _sdaicharacterized_product_definition;
	   SdaiShape_definition _sdaishape_definition;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiCharacterized_definition_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiCharacterized_definition( const SelectTypeDescriptor * =config_control_designt_characterized_definition );
	//  part 1
	SdaiCharacterized_definition( const SdaiCharacterized_product_definition_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_characterized_definition );
	SdaiCharacterized_definition( const SdaiShape_definition_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_characterized_definition );
	virtual ~SdaiCharacterized_definition();

	//  part 2
	operator SdaiCharacterized_product_definition_ptr();
	operator SdaiShape_definition_ptr();

	//  part 3

	//  part 4
	SdaiCharacterized_definition& operator =( const SdaiCharacterized_product_definition_ptr& );
	SdaiCharacterized_definition& operator =( const SdaiShape_definition_ptr& );
	// not in SDAI
	SdaiCharacterized_definition& ShallowCopy ( const SdaiCharacterized_definition& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiCharacterized_definition& operator =( SdaiCharacterized_definition * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsCharacterized_product_definition() const;
	SCLLOG(Logical) IsShape_definition() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiCharacterized_definition_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiCharacterized_definition (os_database *db);
#else

inline SCLP23(Select) * create_SdaiCharacterized_definition () { return new SdaiCharacterized_definition; }
#endif

typedef SdaiCharacterized_definition * SdaiCharacterized_definitionH;
typedef SdaiCharacterized_definition_ptr SdaiCharacterized_definition_var;


class SdaiCharacterized_definitions : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiCharacterized_definitions( SelectTypeDescriptor * =config_control_designt_characterized_definition );
    ~SdaiCharacterized_definitions();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiCharacterized_definition( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiCharacterized_definitions (os_database *db);
#else
inline STEPaggregate * create_SdaiCharacterized_definitions () { return new SdaiCharacterized_definitions; }
#endif

typedef SdaiCharacterized_definitions_ptr SdaiCharacterized_definitions_var;

/////  END SELECT TYPE characterized_definition


//////////  SELECT TYPE SdaiChange_request_item
class SdaiChange_request_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiChange_request_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiChange_request_item( const SelectTypeDescriptor * =config_control_designt_change_request_item );
	//  part 1
	SdaiChange_request_item( const SdaiProduct_definition_formation_ptr&,
	                         const SelectTypeDescriptor * =config_control_designt_change_request_item );
	virtual ~SdaiChange_request_item();

	//  part 2
	operator SdaiProduct_definition_formation_ptr();

	//  part 3
	const SdaiProduct_ptr of_product_() const;
	void of_product_ (const SdaiProduct_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiChange_request_item& operator =( SdaiChange_request_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsProduct_definition_formation() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiChange_request_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiChange_request_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiChange_request_item () { return new SdaiChange_request_item; }
#endif

typedef SdaiChange_request_item * SdaiChange_request_itemH;
typedef SdaiChange_request_item_ptr SdaiChange_request_item_var;


class SdaiChange_request_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiChange_request_items( SelectTypeDescriptor * =config_control_designt_change_request_item );
    ~SdaiChange_request_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiChange_request_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiChange_request_items (os_database *db);
#else
inline STEPaggregate * create_SdaiChange_request_items () { return new SdaiChange_request_items; }
#endif

typedef SdaiChange_request_items_ptr SdaiChange_request_items_var;

/////  END SELECT TYPE change_request_item


//////////  SELECT TYPE SdaiReversible_topology_item
class SdaiReversible_topology_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   EDGE	--  sdaiINSTANCE
	//   PATH	--  sdaiINSTANCE
	//   FACE	--  sdaiINSTANCE
	//   FACE_BOUND	--  sdaiINSTANCE
	//   CLOSED_SHELL	--  sdaiINSTANCE
	//   OPEN_SHELL	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiReversible_topology_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiReversible_topology_item( const SelectTypeDescriptor * =config_control_designt_reversible_topology_item );
	//  part 1
	SdaiReversible_topology_item( const SdaiEdge_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_reversible_topology_item );
	SdaiReversible_topology_item( const SdaiPath_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_reversible_topology_item );
	SdaiReversible_topology_item( const SdaiFace_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_reversible_topology_item );
	SdaiReversible_topology_item( const SdaiFace_bound_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_reversible_topology_item );
	SdaiReversible_topology_item( const SdaiClosed_shell_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_reversible_topology_item );
	SdaiReversible_topology_item( const SdaiOpen_shell_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_reversible_topology_item );
	virtual ~SdaiReversible_topology_item();

	//  part 2
	operator SdaiEdge_ptr();
	operator SdaiPath_ptr();
	operator SdaiFace_ptr();
	operator SdaiFace_bound_ptr();
	operator SdaiClosed_shell_ptr();
	operator SdaiOpen_shell_ptr();

	//  part 3
	const EntityAggregate_ptr cfs_faces_() const;
	void cfs_faces_ (const EntityAggregate_ptr x);

	const SCLBOOL(Bool) orientation_() const;
	void orientation_ (const SCLBOOL(Bool) x);

	const SdaiLoop_ptr bound_() const;
	void bound_ (const SdaiLoop_ptr x);

	const EntityAggregate_ptr bounds_() const;
	void bounds_ (const EntityAggregate_ptr x);

	const EntityAggregate_ptr edge_list_() const;
	void edge_list_ (const EntityAggregate_ptr x);

	const SdaiVertex_ptr edge_end_() const;
	void edge_end_ (const SdaiVertex_ptr x);

	const SdaiVertex_ptr edge_start_() const;
	void edge_start_ (const SdaiVertex_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiReversible_topology_item& operator =( const SdaiEdge_ptr& );
	SdaiReversible_topology_item& operator =( const SdaiPath_ptr& );
	SdaiReversible_topology_item& operator =( const SdaiFace_ptr& );
	SdaiReversible_topology_item& operator =( const SdaiFace_bound_ptr& );
	SdaiReversible_topology_item& operator =( const SdaiClosed_shell_ptr& );
	SdaiReversible_topology_item& operator =( const SdaiOpen_shell_ptr& );
	// not in SDAI
	SdaiReversible_topology_item& ShallowCopy ( const SdaiReversible_topology_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiReversible_topology_item& operator =( SdaiReversible_topology_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

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

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiReversible_topology_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiReversible_topology_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiReversible_topology_item () { return new SdaiReversible_topology_item; }
#endif

typedef SdaiReversible_topology_item * SdaiReversible_topology_itemH;
typedef SdaiReversible_topology_item_ptr SdaiReversible_topology_item_var;


class SdaiReversible_topology_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiReversible_topology_items( SelectTypeDescriptor * =config_control_designt_reversible_topology_item );
    ~SdaiReversible_topology_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiReversible_topology_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiReversible_topology_items (os_database *db);
#else
inline STEPaggregate * create_SdaiReversible_topology_items () { return new SdaiReversible_topology_items; }
#endif

typedef SdaiReversible_topology_items_ptr SdaiReversible_topology_items_var;

/////  END SELECT TYPE reversible_topology_item


//////////  SELECT TYPE SdaiAxis2_placement
class SdaiAxis2_placement  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   AXIS2_PLACEMENT_2D	--  sdaiINSTANCE
	//   AXIS2_PLACEMENT_3D	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiAxis2_placement_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiAxis2_placement( const SelectTypeDescriptor * =config_control_designt_axis2_placement );
	//  part 1
	SdaiAxis2_placement( const SdaiAxis2_placement_2d_ptr&,
	                     const SelectTypeDescriptor * =config_control_designt_axis2_placement );
	SdaiAxis2_placement( const SdaiAxis2_placement_3d_ptr&,
	                     const SelectTypeDescriptor * =config_control_designt_axis2_placement );
	virtual ~SdaiAxis2_placement();

	//  part 2
	operator SdaiAxis2_placement_2d_ptr();
	operator SdaiAxis2_placement_3d_ptr();

	//  part 3
	const SdaiDirection_ptr axis_() const;
	void axis_ (const SdaiDirection_ptr x);

	const SdaiDirection_ptr ref_direction_() const;
	void ref_direction_ (const SdaiDirection_ptr x);

	const SdaiCartesian_point_ptr location_() const;
	void location_ (const SdaiCartesian_point_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiAxis2_placement& operator =( const SdaiAxis2_placement_2d_ptr& );
	SdaiAxis2_placement& operator =( const SdaiAxis2_placement_3d_ptr& );
	// not in SDAI
	SdaiAxis2_placement& ShallowCopy ( const SdaiAxis2_placement& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiAxis2_placement& operator =( SdaiAxis2_placement * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsAxis2_placement_2d() const;
	SCLLOG(Logical) IsAxis2_placement_3d() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiAxis2_placement_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiAxis2_placement (os_database *db);
#else

inline SCLP23(Select) * create_SdaiAxis2_placement () { return new SdaiAxis2_placement; }
#endif

typedef SdaiAxis2_placement * SdaiAxis2_placementH;
typedef SdaiAxis2_placement_ptr SdaiAxis2_placement_var;


class SdaiAxis2_placements : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiAxis2_placements( SelectTypeDescriptor * =config_control_designt_axis2_placement );
    ~SdaiAxis2_placements();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiAxis2_placement( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiAxis2_placements (os_database *db);
#else
inline STEPaggregate * create_SdaiAxis2_placements () { return new SdaiAxis2_placements; }
#endif

typedef SdaiAxis2_placements_ptr SdaiAxis2_placements_var;

/////  END SELECT TYPE axis2_placement


//////////  SELECT TYPE SdaiSpecified_item
class SdaiSpecified_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION	--  sdaiINSTANCE
	//   SHAPE_ASPECT	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiSpecified_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiSpecified_item( const SelectTypeDescriptor * =config_control_designt_specified_item );
	//  part 1
	SdaiSpecified_item( const SdaiProduct_definition_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_specified_item );
	SdaiSpecified_item( const SdaiShape_aspect_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_specified_item );
	virtual ~SdaiSpecified_item();

	//  part 2
	operator SdaiProduct_definition_ptr();
	operator SdaiShape_aspect_ptr();

	//  part 3
	const SCLLOG(Logical) product_definitional_() const;
	void product_definitional_ (const SCLLOG(Logical) x);

	const SdaiProduct_definition_shape_ptr of_shape_() const;
	void of_shape_ (const SdaiProduct_definition_shape_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiProduct_definition_context_ptr frame_of_reference_() const;
	void frame_of_reference_ (const SdaiProduct_definition_context_ptr x);

	const SdaiProduct_definition_formation_ptr formation_() const;
	void formation_ (const SdaiProduct_definition_formation_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


	//  part 4
	SdaiSpecified_item& operator =( const SdaiProduct_definition_ptr& );
	SdaiSpecified_item& operator =( const SdaiShape_aspect_ptr& );
	// not in SDAI
	SdaiSpecified_item& ShallowCopy ( const SdaiSpecified_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiSpecified_item& operator =( SdaiSpecified_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsProduct_definition() const;
	SCLLOG(Logical) IsShape_aspect() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiSpecified_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiSpecified_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiSpecified_item () { return new SdaiSpecified_item; }
#endif

typedef SdaiSpecified_item * SdaiSpecified_itemH;
typedef SdaiSpecified_item_ptr SdaiSpecified_item_var;


class SdaiSpecified_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiSpecified_items( SelectTypeDescriptor * =config_control_designt_specified_item );
    ~SdaiSpecified_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiSpecified_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiSpecified_items (os_database *db);
#else
inline STEPaggregate * create_SdaiSpecified_items () { return new SdaiSpecified_items; }
#endif

typedef SdaiSpecified_items_ptr SdaiSpecified_items_var;

/////  END SELECT TYPE specified_item


//////////  SELECT TYPE SdaiMeasure_value
class SdaiMeasure_value  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   AREA_MEASURE	--  sdaiREAL
	//   CONTEXT_DEPENDENT_MEASURE	--  sdaiREAL
	//   COUNT_MEASURE	--  sdaiNUMBER
	//   DESCRIPTIVE_MEASURE	--  sdaiSTRING
	//   LENGTH_MEASURE	--  sdaiREAL
	//   MASS_MEASURE	--  sdaiREAL
	//   PLANE_ANGLE_MEASURE	--  sdaiREAL
	//   PARAMETER_VALUE	--  sdaiREAL
	//   POSITIVE_LENGTH_MEASURE	--  REFERENCE_TYPE
	//   POSITIVE_PLANE_ANGLE_MEASURE	--  REFERENCE_TYPE
	//   SOLID_ANGLE_MEASURE	--  sdaiREAL
	//   VOLUME_MEASURE	--  sdaiREAL
	   SCLP23(Real) _real;
	   SCLP23(String) _string;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiMeasure_value_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiMeasure_value( const SelectTypeDescriptor * =config_control_designt_measure_value );
	//  part 1
	SdaiMeasure_value( const SdaiDescriptive_measure&,
	                   const SelectTypeDescriptor * =config_control_designt_measure_value );
	SdaiMeasure_value( const SCLP23(Real)&,
	                   const SelectTypeDescriptor * =config_control_designt_measure_value );
	virtual ~SdaiMeasure_value();

	//  part 2
	operator SdaiDescriptive_measure();
	operator SCLP23(Real) ();

	//  part 3

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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiMeasure_value& operator =( SdaiMeasure_value * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

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

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiMeasure_value_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiMeasure_value (os_database *db);
#else

inline SCLP23(Select) * create_SdaiMeasure_value () { return new SdaiMeasure_value; }
#endif

typedef SdaiMeasure_value * SdaiMeasure_valueH;
typedef SdaiMeasure_value_ptr SdaiMeasure_value_var;


class SdaiMeasure_values : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiMeasure_values( SelectTypeDescriptor * =config_control_designt_measure_value );
    ~SdaiMeasure_values();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiMeasure_value( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiMeasure_values (os_database *db);
#else
inline STEPaggregate * create_SdaiMeasure_values () { return new SdaiMeasure_values; }
#endif

typedef SdaiMeasure_values_ptr SdaiMeasure_values_var;

/////  END SELECT TYPE measure_value


//////////  SELECT TYPE SdaiPerson_organization_select
class SdaiPerson_organization_select  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PERSON_AND_ORGANIZATION	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiPerson_organization_select_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiPerson_organization_select( const SelectTypeDescriptor * =config_control_designt_person_organization_select );
	//  part 1
	SdaiPerson_organization_select( const SdaiPerson_and_organization_ptr&,
	                                const SelectTypeDescriptor * =config_control_designt_person_organization_select );
	virtual ~SdaiPerson_organization_select();

	//  part 2
	operator SdaiPerson_and_organization_ptr();

	//  part 3
	const SdaiOrganization_ptr the_organization_() const;
	void the_organization_ (const SdaiOrganization_ptr x);

	const SdaiPerson_ptr the_person_() const;
	void the_person_ (const SdaiPerson_ptr x);


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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiPerson_organization_select& operator =( SdaiPerson_organization_select * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsPerson_and_organization() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiPerson_organization_select_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiPerson_organization_select (os_database *db);
#else

inline SCLP23(Select) * create_SdaiPerson_organization_select () { return new SdaiPerson_organization_select; }
#endif

typedef SdaiPerson_organization_select * SdaiPerson_organization_selectH;
typedef SdaiPerson_organization_select_ptr SdaiPerson_organization_select_var;


class SdaiPerson_organization_selects : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiPerson_organization_selects( SelectTypeDescriptor * =config_control_designt_person_organization_select );
    ~SdaiPerson_organization_selects();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiPerson_organization_select( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiPerson_organization_selects (os_database *db);
#else
inline STEPaggregate * create_SdaiPerson_organization_selects () { return new SdaiPerson_organization_selects; }
#endif

typedef SdaiPerson_organization_selects_ptr SdaiPerson_organization_selects_var;

/////  END SELECT TYPE person_organization_select


//////////  SELECT TYPE SdaiPcurve_or_surface
class SdaiPcurve_or_surface  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PCURVE	--  sdaiINSTANCE
	//   SURFACE	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiPcurve_or_surface_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiPcurve_or_surface( const SelectTypeDescriptor * =config_control_designt_pcurve_or_surface );
	//  part 1
	SdaiPcurve_or_surface( const SdaiPcurve_ptr&,
	                       const SelectTypeDescriptor * =config_control_designt_pcurve_or_surface );
	SdaiPcurve_or_surface( const SdaiSurface_ptr&,
	                       const SelectTypeDescriptor * =config_control_designt_pcurve_or_surface );
	virtual ~SdaiPcurve_or_surface();

	//  part 2
	operator SdaiPcurve_ptr();
	operator SdaiSurface_ptr();

	//  part 3
	const SdaiDefinitional_representation_ptr reference_to_curve_() const;
	void reference_to_curve_ (const SdaiDefinitional_representation_ptr x);

	const SdaiSurface_ptr basis_surface_() const;
	void basis_surface_ (const SdaiSurface_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiPcurve_or_surface& operator =( const SdaiPcurve_ptr& );
	SdaiPcurve_or_surface& operator =( const SdaiSurface_ptr& );
	// not in SDAI
	SdaiPcurve_or_surface& ShallowCopy ( const SdaiPcurve_or_surface& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiPcurve_or_surface& operator =( SdaiPcurve_or_surface * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsPcurve() const;
	SCLLOG(Logical) IsSurface() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiPcurve_or_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiPcurve_or_surface (os_database *db);
#else

inline SCLP23(Select) * create_SdaiPcurve_or_surface () { return new SdaiPcurve_or_surface; }
#endif

typedef SdaiPcurve_or_surface * SdaiPcurve_or_surfaceH;
typedef SdaiPcurve_or_surface_ptr SdaiPcurve_or_surface_var;


class SdaiPcurve_or_surfaces : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiPcurve_or_surfaces( SelectTypeDescriptor * =config_control_designt_pcurve_or_surface );
    ~SdaiPcurve_or_surfaces();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiPcurve_or_surface( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiPcurve_or_surfaces (os_database *db);
#else
inline STEPaggregate * create_SdaiPcurve_or_surfaces () { return new SdaiPcurve_or_surfaces; }
#endif

typedef SdaiPcurve_or_surfaces_ptr SdaiPcurve_or_surfaces_var;

/////  END SELECT TYPE pcurve_or_surface


//////////  SELECT TYPE SdaiClassified_item
class SdaiClassified_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  sdaiINSTANCE
	//   ASSEMBLY_COMPONENT_USAGE	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiClassified_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiClassified_item( const SelectTypeDescriptor * =config_control_designt_classified_item );
	//  part 1
	SdaiClassified_item( const SdaiProduct_definition_formation_ptr&,
	                     const SelectTypeDescriptor * =config_control_designt_classified_item );
	SdaiClassified_item( const SdaiAssembly_component_usage_ptr&,
	                     const SelectTypeDescriptor * =config_control_designt_classified_item );
	virtual ~SdaiClassified_item();

	//  part 2
	operator SdaiProduct_definition_formation_ptr();
	operator SdaiAssembly_component_usage_ptr();

	//  part 3
	const SdaiIdentifier reference_designator_() const;
	void reference_designator_ (const SdaiIdentifier x);

	const SdaiProduct_definition_ptr related_product_definition_() const;
	void related_product_definition_ (const SdaiProduct_definition_ptr x);

	const SdaiProduct_definition_ptr relating_product_definition_() const;
	void relating_product_definition_ (const SdaiProduct_definition_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiProduct_ptr of_product_() const;
	void of_product_ (const SdaiProduct_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


	//  part 4
	SdaiClassified_item& operator =( const SdaiProduct_definition_formation_ptr& );
	SdaiClassified_item& operator =( const SdaiAssembly_component_usage_ptr& );
	// not in SDAI
	SdaiClassified_item& ShallowCopy ( const SdaiClassified_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiClassified_item& operator =( SdaiClassified_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsProduct_definition_formation() const;
	SCLLOG(Logical) IsAssembly_component_usage() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiClassified_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiClassified_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiClassified_item () { return new SdaiClassified_item; }
#endif

typedef SdaiClassified_item * SdaiClassified_itemH;
typedef SdaiClassified_item_ptr SdaiClassified_item_var;


class SdaiClassified_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiClassified_items( SelectTypeDescriptor * =config_control_designt_classified_item );
    ~SdaiClassified_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiClassified_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiClassified_items (os_database *db);
#else
inline STEPaggregate * create_SdaiClassified_items () { return new SdaiClassified_items; }
#endif

typedef SdaiClassified_items_ptr SdaiClassified_items_var;

/////  END SELECT TYPE classified_item


//////////  SELECT TYPE SdaiVector_or_direction
class SdaiVector_or_direction  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   VECTOR	--  sdaiINSTANCE
	//   DIRECTION	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiVector_or_direction_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiVector_or_direction( const SelectTypeDescriptor * =config_control_designt_vector_or_direction );
	//  part 1
	SdaiVector_or_direction( const SdaiVector_ptr&,
	                         const SelectTypeDescriptor * =config_control_designt_vector_or_direction );
	SdaiVector_or_direction( const SdaiDirection_ptr&,
	                         const SelectTypeDescriptor * =config_control_designt_vector_or_direction );
	virtual ~SdaiVector_or_direction();

	//  part 2
	operator SdaiVector_ptr();
	operator SdaiDirection_ptr();

	//  part 3
	const RealAggregate_ptr direction_ratios_() const;
	void direction_ratios_ (const RealAggregate_ptr x);

	const SdaiLength_measure magnitude_() const;
	void magnitude_ (const SdaiLength_measure x);

	const SdaiDirection_ptr orientation_() const;
	void orientation_ (const SdaiDirection_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiVector_or_direction& operator =( const SdaiVector_ptr& );
	SdaiVector_or_direction& operator =( const SdaiDirection_ptr& );
	// not in SDAI
	SdaiVector_or_direction& ShallowCopy ( const SdaiVector_or_direction& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiVector_or_direction& operator =( SdaiVector_or_direction * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsVector() const;
	SCLLOG(Logical) IsDirection() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiVector_or_direction_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiVector_or_direction (os_database *db);
#else

inline SCLP23(Select) * create_SdaiVector_or_direction () { return new SdaiVector_or_direction; }
#endif

typedef SdaiVector_or_direction * SdaiVector_or_directionH;
typedef SdaiVector_or_direction_ptr SdaiVector_or_direction_var;


class SdaiVector_or_directions : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiVector_or_directions( SelectTypeDescriptor * =config_control_designt_vector_or_direction );
    ~SdaiVector_or_directions();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiVector_or_direction( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiVector_or_directions (os_database *db);
#else
inline STEPaggregate * create_SdaiVector_or_directions () { return new SdaiVector_or_directions; }
#endif

typedef SdaiVector_or_directions_ptr SdaiVector_or_directions_var;

/////  END SELECT TYPE vector_or_direction


//////////  SELECT TYPE SdaiWireframe_model
class SdaiWireframe_model  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   SHELL_BASED_WIREFRAME_MODEL	--  sdaiINSTANCE
	//   EDGE_BASED_WIREFRAME_MODEL	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiWireframe_model_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiWireframe_model( const SelectTypeDescriptor * =config_control_designt_wireframe_model );
	//  part 1
	SdaiWireframe_model( const SdaiShell_based_wireframe_model_ptr&,
	                     const SelectTypeDescriptor * =config_control_designt_wireframe_model );
	SdaiWireframe_model( const SdaiEdge_based_wireframe_model_ptr&,
	                     const SelectTypeDescriptor * =config_control_designt_wireframe_model );
	virtual ~SdaiWireframe_model();

	//  part 2
	operator SdaiShell_based_wireframe_model_ptr();
	operator SdaiEdge_based_wireframe_model_ptr();

	//  part 3
	const EntityAggregate_ptr ebwm_boundary_() const;
	void ebwm_boundary_ (const EntityAggregate_ptr x);

	const SdaiShells_ptr sbwm_boundary_() const;
	void sbwm_boundary_ (const SdaiShells_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiWireframe_model& operator =( const SdaiShell_based_wireframe_model_ptr& );
	SdaiWireframe_model& operator =( const SdaiEdge_based_wireframe_model_ptr& );
	// not in SDAI
	SdaiWireframe_model& ShallowCopy ( const SdaiWireframe_model& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiWireframe_model& operator =( SdaiWireframe_model * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsShell_based_wireframe_model() const;
	SCLLOG(Logical) IsEdge_based_wireframe_model() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiWireframe_model_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiWireframe_model (os_database *db);
#else

inline SCLP23(Select) * create_SdaiWireframe_model () { return new SdaiWireframe_model; }
#endif

typedef SdaiWireframe_model * SdaiWireframe_modelH;
typedef SdaiWireframe_model_ptr SdaiWireframe_model_var;


class SdaiWireframe_models : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiWireframe_models( SelectTypeDescriptor * =config_control_designt_wireframe_model );
    ~SdaiWireframe_models();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiWireframe_model( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiWireframe_models (os_database *db);
#else
inline STEPaggregate * create_SdaiWireframe_models () { return new SdaiWireframe_models; }
#endif

typedef SdaiWireframe_models_ptr SdaiWireframe_models_var;

/////  END SELECT TYPE wireframe_model


//////////  SELECT TYPE SdaiGeometric_set_select
class SdaiGeometric_set_select  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   POINT	--  sdaiINSTANCE
	//   CURVE	--  sdaiINSTANCE
	//   SURFACE	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiGeometric_set_select_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiGeometric_set_select( const SelectTypeDescriptor * =config_control_designt_geometric_set_select );
	//  part 1
	SdaiGeometric_set_select( const SdaiPoint_ptr&,
	                          const SelectTypeDescriptor * =config_control_designt_geometric_set_select );
	SdaiGeometric_set_select( const SdaiCurve_ptr&,
	                          const SelectTypeDescriptor * =config_control_designt_geometric_set_select );
	SdaiGeometric_set_select( const SdaiSurface_ptr&,
	                          const SelectTypeDescriptor * =config_control_designt_geometric_set_select );
	virtual ~SdaiGeometric_set_select();

	//  part 2
	operator SdaiPoint_ptr();
	operator SdaiCurve_ptr();
	operator SdaiSurface_ptr();

	//  part 3
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiGeometric_set_select& operator =( const SdaiPoint_ptr& );
	SdaiGeometric_set_select& operator =( const SdaiCurve_ptr& );
	SdaiGeometric_set_select& operator =( const SdaiSurface_ptr& );
	// not in SDAI
	SdaiGeometric_set_select& ShallowCopy ( const SdaiGeometric_set_select& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiGeometric_set_select& operator =( SdaiGeometric_set_select * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsPoint() const;
	SCLLOG(Logical) IsCurve() const;
	SCLLOG(Logical) IsSurface() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiGeometric_set_select_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiGeometric_set_select (os_database *db);
#else

inline SCLP23(Select) * create_SdaiGeometric_set_select () { return new SdaiGeometric_set_select; }
#endif

typedef SdaiGeometric_set_select * SdaiGeometric_set_selectH;
typedef SdaiGeometric_set_select_ptr SdaiGeometric_set_select_var;


class SdaiGeometric_set_selects : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiGeometric_set_selects( SelectTypeDescriptor * =config_control_designt_geometric_set_select );
    ~SdaiGeometric_set_selects();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiGeometric_set_select( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiGeometric_set_selects (os_database *db);
#else
inline STEPaggregate * create_SdaiGeometric_set_selects () { return new SdaiGeometric_set_selects; }
#endif

typedef SdaiGeometric_set_selects_ptr SdaiGeometric_set_selects_var;

/////  END SELECT TYPE geometric_set_select


//////////  SELECT TYPE SdaiStart_request_item
class SdaiStart_request_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiStart_request_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiStart_request_item( const SelectTypeDescriptor * =config_control_designt_start_request_item );
	//  part 1
	SdaiStart_request_item( const SdaiProduct_definition_formation_ptr&,
	                        const SelectTypeDescriptor * =config_control_designt_start_request_item );
	virtual ~SdaiStart_request_item();

	//  part 2
	operator SdaiProduct_definition_formation_ptr();

	//  part 3
	const SdaiProduct_ptr of_product_() const;
	void of_product_ (const SdaiProduct_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiStart_request_item& operator =( SdaiStart_request_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsProduct_definition_formation() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiStart_request_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiStart_request_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiStart_request_item () { return new SdaiStart_request_item; }
#endif

typedef SdaiStart_request_item * SdaiStart_request_itemH;
typedef SdaiStart_request_item_ptr SdaiStart_request_item_var;


class SdaiStart_request_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiStart_request_items( SelectTypeDescriptor * =config_control_designt_start_request_item );
    ~SdaiStart_request_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiStart_request_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiStart_request_items (os_database *db);
#else
inline STEPaggregate * create_SdaiStart_request_items () { return new SdaiStart_request_items; }
#endif

typedef SdaiStart_request_items_ptr SdaiStart_request_items_var;

/////  END SELECT TYPE start_request_item


//////////  SELECT TYPE SdaiPerson_organization_item
class SdaiPerson_organization_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   CHANGE	--  sdaiINSTANCE
	//   START_WORK	--  sdaiINSTANCE
	//   CHANGE_REQUEST	--  sdaiINSTANCE
	//   START_REQUEST	--  sdaiINSTANCE
	//   CONFIGURATION_ITEM	--  sdaiINSTANCE
	//   PRODUCT	--  sdaiINSTANCE
	//   PRODUCT_DEFINITION_FORMATION	--  sdaiINSTANCE
	//   PRODUCT_DEFINITION	--  sdaiINSTANCE
	//   CONTRACT	--  sdaiINSTANCE
	//   SECURITY_CLASSIFICATION	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiPerson_organization_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiPerson_organization_item( const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	//  part 1
	SdaiPerson_organization_item( const SdaiChange_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	SdaiPerson_organization_item( const SdaiStart_work_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	SdaiPerson_organization_item( const SdaiChange_request_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	SdaiPerson_organization_item( const SdaiStart_request_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	SdaiPerson_organization_item( const SdaiConfiguration_item_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	SdaiPerson_organization_item( const SdaiProduct_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	SdaiPerson_organization_item( const SdaiProduct_definition_formation_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	SdaiPerson_organization_item( const SdaiProduct_definition_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	SdaiPerson_organization_item( const SdaiContract_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	SdaiPerson_organization_item( const SdaiSecurity_classification_ptr&,
	                              const SelectTypeDescriptor * =config_control_designt_person_organization_item );
	virtual ~SdaiPerson_organization_item();

	//  part 2
	operator SdaiChange_ptr();
	operator SdaiStart_work_ptr();
	operator SdaiChange_request_ptr();
	operator SdaiStart_request_ptr();
	operator SdaiConfiguration_item_ptr();
	operator SdaiProduct_ptr();
	operator SdaiProduct_definition_formation_ptr();
	operator SdaiProduct_definition_ptr();
	operator SdaiContract_ptr();
	operator SdaiSecurity_classification_ptr();

	//  part 3
	const SdaiSecurity_classification_level_ptr security_level_() const;
	void security_level_ (const SdaiSecurity_classification_level_ptr x);

	const SdaiContract_type_ptr kind_() const;
	void kind_ (const SdaiContract_type_ptr x);

	const SdaiProduct_definition_formation_ptr formation_() const;
	void formation_ (const SdaiProduct_definition_formation_ptr x);

	const SdaiProduct_ptr of_product_() const;
	void of_product_ (const SdaiProduct_ptr x);

	const EntityAggregate_ptr frame_of_reference_() const;
	void frame_of_reference_ (const EntityAggregate_ptr x);

	const SdaiLabel purpose_() const;
	void purpose_ (const SdaiLabel x);

	const SdaiProduct_concept_ptr item_concept_() const;
	void item_concept_ (const SdaiProduct_concept_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiVersioned_action_request_ptr assigned_action_request_() const;
	void assigned_action_request_ (const SdaiVersioned_action_request_ptr x);

	const SdaiWork_items_ptr items_() const;
	void items_ (const SdaiWork_items_ptr x);

	const SdaiAction_ptr assigned_action_() const;
	void assigned_action_ (const SdaiAction_ptr x);


	//  part 4
	SdaiPerson_organization_item& operator =( const SdaiChange_ptr& );
	SdaiPerson_organization_item& operator =( const SdaiStart_work_ptr& );
	SdaiPerson_organization_item& operator =( const SdaiChange_request_ptr& );
	SdaiPerson_organization_item& operator =( const SdaiStart_request_ptr& );
	SdaiPerson_organization_item& operator =( const SdaiConfiguration_item_ptr& );
	SdaiPerson_organization_item& operator =( const SdaiProduct_ptr& );
	SdaiPerson_organization_item& operator =( const SdaiProduct_definition_formation_ptr& );
	SdaiPerson_organization_item& operator =( const SdaiProduct_definition_ptr& );
	SdaiPerson_organization_item& operator =( const SdaiContract_ptr& );
	SdaiPerson_organization_item& operator =( const SdaiSecurity_classification_ptr& );
	// not in SDAI
	SdaiPerson_organization_item& ShallowCopy ( const SdaiPerson_organization_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiPerson_organization_item& operator =( SdaiPerson_organization_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

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

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiPerson_organization_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiPerson_organization_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiPerson_organization_item () { return new SdaiPerson_organization_item; }
#endif

typedef SdaiPerson_organization_item * SdaiPerson_organization_itemH;
typedef SdaiPerson_organization_item_ptr SdaiPerson_organization_item_var;


class SdaiPerson_organization_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiPerson_organization_items( SelectTypeDescriptor * =config_control_designt_person_organization_item );
    ~SdaiPerson_organization_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiPerson_organization_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiPerson_organization_items (os_database *db);
#else
inline STEPaggregate * create_SdaiPerson_organization_items () { return new SdaiPerson_organization_items; }
#endif

typedef SdaiPerson_organization_items_ptr SdaiPerson_organization_items_var;

/////  END SELECT TYPE person_organization_item


//////////  SELECT TYPE SdaiDate_time_item
class SdaiDate_time_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION	--  sdaiINSTANCE
	//   CHANGE_REQUEST	--  sdaiINSTANCE
	//   START_REQUEST	--  sdaiINSTANCE
	//   CHANGE	--  sdaiINSTANCE
	//   START_WORK	--  sdaiINSTANCE
	//   APPROVAL_PERSON_ORGANIZATION	--  sdaiINSTANCE
	//   CONTRACT	--  sdaiINSTANCE
	//   SECURITY_CLASSIFICATION	--  sdaiINSTANCE
	//   CERTIFICATION	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiDate_time_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiDate_time_item( const SelectTypeDescriptor * =config_control_designt_date_time_item );
	//  part 1
	SdaiDate_time_item( const SdaiProduct_definition_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_date_time_item );
	SdaiDate_time_item( const SdaiChange_request_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_date_time_item );
	SdaiDate_time_item( const SdaiStart_request_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_date_time_item );
	SdaiDate_time_item( const SdaiChange_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_date_time_item );
	SdaiDate_time_item( const SdaiStart_work_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_date_time_item );
	SdaiDate_time_item( const SdaiApproval_person_organization_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_date_time_item );
	SdaiDate_time_item( const SdaiContract_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_date_time_item );
	SdaiDate_time_item( const SdaiSecurity_classification_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_date_time_item );
	SdaiDate_time_item( const SdaiCertification_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_date_time_item );
	virtual ~SdaiDate_time_item();

	//  part 2
	operator SdaiProduct_definition_ptr();
	operator SdaiChange_request_ptr();
	operator SdaiStart_request_ptr();
	operator SdaiChange_ptr();
	operator SdaiStart_work_ptr();
	operator SdaiApproval_person_organization_ptr();
	operator SdaiContract_ptr();
	operator SdaiSecurity_classification_ptr();
	operator SdaiCertification_ptr();

	//  part 3
	const SdaiSecurity_classification_level_ptr security_level_() const;
	void security_level_ (const SdaiSecurity_classification_level_ptr x);

	const SdaiContract_type_ptr kind_() const;
	void kind_ (const SdaiContract_type_ptr x);

	const SdaiText purpose_() const;
	void purpose_ (const SdaiText x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiApproval_role_ptr role_() const;
	void role_ (const SdaiApproval_role_ptr x);

	const SdaiApproval_ptr authorized_approval_() const;
	void authorized_approval_ (const SdaiApproval_ptr x);

	const SdaiPerson_organization_select_ptr person_organization_() const;
	void person_organization_ (const SdaiPerson_organization_select_ptr x);

	const SdaiAction_ptr assigned_action_() const;
	void assigned_action_ (const SdaiAction_ptr x);

	const SdaiChange_request_items_ptr items_() const;
	void items_ (const SdaiChange_request_items_ptr x);

	const SdaiVersioned_action_request_ptr assigned_action_request_() const;
	void assigned_action_request_ (const SdaiVersioned_action_request_ptr x);

	const SdaiProduct_definition_context_ptr frame_of_reference_() const;
	void frame_of_reference_ (const SdaiProduct_definition_context_ptr x);

	const SdaiProduct_definition_formation_ptr formation_() const;
	void formation_ (const SdaiProduct_definition_formation_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


	//  part 4
	SdaiDate_time_item& operator =( const SdaiProduct_definition_ptr& );
	SdaiDate_time_item& operator =( const SdaiChange_request_ptr& );
	SdaiDate_time_item& operator =( const SdaiStart_request_ptr& );
	SdaiDate_time_item& operator =( const SdaiChange_ptr& );
	SdaiDate_time_item& operator =( const SdaiStart_work_ptr& );
	SdaiDate_time_item& operator =( const SdaiApproval_person_organization_ptr& );
	SdaiDate_time_item& operator =( const SdaiContract_ptr& );
	SdaiDate_time_item& operator =( const SdaiSecurity_classification_ptr& );
	SdaiDate_time_item& operator =( const SdaiCertification_ptr& );
	// not in SDAI
	SdaiDate_time_item& ShallowCopy ( const SdaiDate_time_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiDate_time_item& operator =( SdaiDate_time_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

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

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiDate_time_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiDate_time_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiDate_time_item () { return new SdaiDate_time_item; }
#endif

typedef SdaiDate_time_item * SdaiDate_time_itemH;
typedef SdaiDate_time_item_ptr SdaiDate_time_item_var;


class SdaiDate_time_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiDate_time_items( SelectTypeDescriptor * =config_control_designt_date_time_item );
    ~SdaiDate_time_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiDate_time_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiDate_time_items (os_database *db);
#else
inline STEPaggregate * create_SdaiDate_time_items () { return new SdaiDate_time_items; }
#endif

typedef SdaiDate_time_items_ptr SdaiDate_time_items_var;

/////  END SELECT TYPE date_time_item


//////////  SELECT TYPE SdaiShell
class SdaiShell  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   OPEN_SHELL	--  sdaiINSTANCE
	//   CLOSED_SHELL	--  sdaiINSTANCE
	//   VERTEX_SHELL	--  sdaiINSTANCE
	//   WIRE_SHELL	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiShell_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiShell( const SelectTypeDescriptor * =config_control_designt_shell );
	//  part 1
	SdaiShell( const SdaiOpen_shell_ptr&,
	           const SelectTypeDescriptor * =config_control_designt_shell );
	SdaiShell( const SdaiClosed_shell_ptr&,
	           const SelectTypeDescriptor * =config_control_designt_shell );
	SdaiShell( const SdaiVertex_shell_ptr&,
	           const SelectTypeDescriptor * =config_control_designt_shell );
	SdaiShell( const SdaiWire_shell_ptr&,
	           const SelectTypeDescriptor * =config_control_designt_shell );
	virtual ~SdaiShell();

	//  part 2
	operator SdaiOpen_shell_ptr();
	operator SdaiClosed_shell_ptr();
	operator SdaiVertex_shell_ptr();
	operator SdaiWire_shell_ptr();

	//  part 3
	const EntityAggregate_ptr wire_shell_extent_() const;
	void wire_shell_extent_ (const EntityAggregate_ptr x);

	const SdaiVertex_loop_ptr vertex_shell_extent_() const;
	void vertex_shell_extent_ (const SdaiVertex_loop_ptr x);

	const EntityAggregate_ptr cfs_faces_() const;
	void cfs_faces_ (const EntityAggregate_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiShell& operator =( const SdaiOpen_shell_ptr& );
	SdaiShell& operator =( const SdaiClosed_shell_ptr& );
	SdaiShell& operator =( const SdaiVertex_shell_ptr& );
	SdaiShell& operator =( const SdaiWire_shell_ptr& );
	// not in SDAI
	SdaiShell& ShallowCopy ( const SdaiShell& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiShell& operator =( SdaiShell * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsOpen_shell() const;
	SCLLOG(Logical) IsClosed_shell() const;
	SCLLOG(Logical) IsVertex_shell() const;
	SCLLOG(Logical) IsWire_shell() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiShell_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiShell (os_database *db);
#else

inline SCLP23(Select) * create_SdaiShell () { return new SdaiShell; }
#endif

typedef SdaiShell * SdaiShellH;
typedef SdaiShell_ptr SdaiShell_var;


class SdaiShells : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiShells( SelectTypeDescriptor * =config_control_designt_shell );
    ~SdaiShells();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiShell( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiShells (os_database *db);
#else
inline STEPaggregate * create_SdaiShells () { return new SdaiShells; }
#endif

typedef SdaiShells_ptr SdaiShells_var;

/////  END SELECT TYPE shell


//////////  SELECT TYPE SdaiTransformation
class SdaiTransformation  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   ITEM_DEFINED_TRANSFORMATION	--  sdaiINSTANCE
	//   FUNCTIONALLY_DEFINED_TRANSFORMATION	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiTransformation_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiTransformation( const SelectTypeDescriptor * =config_control_designt_transformation );
	//  part 1
	SdaiTransformation( const SdaiItem_defined_transformation_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_transformation );
	SdaiTransformation( const SdaiFunctionally_defined_transformation_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_transformation );
	virtual ~SdaiTransformation();

	//  part 2
	operator SdaiItem_defined_transformation_ptr();
	operator SdaiFunctionally_defined_transformation_ptr();

	//  part 3
	const SdaiRepresentation_item_ptr transform_item_2_() const;
	void transform_item_2_ (const SdaiRepresentation_item_ptr x);

	const SdaiRepresentation_item_ptr transform_item_1_() const;
	void transform_item_1_ (const SdaiRepresentation_item_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiTransformation& operator =( const SdaiItem_defined_transformation_ptr& );
	SdaiTransformation& operator =( const SdaiFunctionally_defined_transformation_ptr& );
	// not in SDAI
	SdaiTransformation& ShallowCopy ( const SdaiTransformation& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiTransformation& operator =( SdaiTransformation * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsItem_defined_transformation() const;
	SCLLOG(Logical) IsFunctionally_defined_transformation() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiTransformation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiTransformation (os_database *db);
#else

inline SCLP23(Select) * create_SdaiTransformation () { return new SdaiTransformation; }
#endif

typedef SdaiTransformation * SdaiTransformationH;
typedef SdaiTransformation_ptr SdaiTransformation_var;


class SdaiTransformations : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiTransformations( SelectTypeDescriptor * =config_control_designt_transformation );
    ~SdaiTransformations();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiTransformation( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiTransformations (os_database *db);
#else
inline STEPaggregate * create_SdaiTransformations () { return new SdaiTransformations; }
#endif

typedef SdaiTransformations_ptr SdaiTransformations_var;

/////  END SELECT TYPE transformation


//////////  SELECT TYPE SdaiBoolean_operand
class SdaiBoolean_operand  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   SOLID_MODEL	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiBoolean_operand_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiBoolean_operand( const SelectTypeDescriptor * =config_control_designt_boolean_operand );
	//  part 1
	SdaiBoolean_operand( const SdaiSolid_model_ptr&,
	                     const SelectTypeDescriptor * =config_control_designt_boolean_operand );
	virtual ~SdaiBoolean_operand();

	//  part 2
	operator SdaiSolid_model_ptr();

	//  part 3
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiBoolean_operand& operator =( SdaiBoolean_operand * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsSolid_model() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiBoolean_operand_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiBoolean_operand (os_database *db);
#else

inline SCLP23(Select) * create_SdaiBoolean_operand () { return new SdaiBoolean_operand; }
#endif

typedef SdaiBoolean_operand * SdaiBoolean_operandH;
typedef SdaiBoolean_operand_ptr SdaiBoolean_operand_var;


class SdaiBoolean_operands : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiBoolean_operands( SelectTypeDescriptor * =config_control_designt_boolean_operand );
    ~SdaiBoolean_operands();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiBoolean_operand( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiBoolean_operands (os_database *db);
#else
inline STEPaggregate * create_SdaiBoolean_operands () { return new SdaiBoolean_operands; }
#endif

typedef SdaiBoolean_operands_ptr SdaiBoolean_operands_var;

/////  END SELECT TYPE boolean_operand


//////////  SELECT TYPE SdaiCertified_item
class SdaiCertified_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   SUPPLIED_PART_RELATIONSHIP	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiCertified_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiCertified_item( const SelectTypeDescriptor * =config_control_designt_certified_item );
	//  part 1
	SdaiCertified_item( const SdaiSupplied_part_relationship_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_certified_item );
	virtual ~SdaiCertified_item();

	//  part 2
	operator SdaiSupplied_part_relationship_ptr();

	//  part 3
	const SdaiProduct_definition_ptr related_product_definition_() const;
	void related_product_definition_ (const SdaiProduct_definition_ptr x);

	const SdaiProduct_definition_ptr relating_product_definition_() const;
	void relating_product_definition_ (const SdaiProduct_definition_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiCertified_item& operator =( SdaiCertified_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsSupplied_part_relationship() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiCertified_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiCertified_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiCertified_item () { return new SdaiCertified_item; }
#endif

typedef SdaiCertified_item * SdaiCertified_itemH;
typedef SdaiCertified_item_ptr SdaiCertified_item_var;


class SdaiCertified_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiCertified_items( SelectTypeDescriptor * =config_control_designt_certified_item );
    ~SdaiCertified_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiCertified_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiCertified_items (os_database *db);
#else
inline STEPaggregate * create_SdaiCertified_items () { return new SdaiCertified_items; }
#endif

typedef SdaiCertified_items_ptr SdaiCertified_items_var;

/////  END SELECT TYPE certified_item


//////////  SELECT TYPE SdaiDate_time_select
class SdaiDate_time_select  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   DATE_AND_TIME	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiDate_time_select_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiDate_time_select( const SelectTypeDescriptor * =config_control_designt_date_time_select );
	//  part 1
	SdaiDate_time_select( const SdaiDate_and_time_ptr&,
	                      const SelectTypeDescriptor * =config_control_designt_date_time_select );
	virtual ~SdaiDate_time_select();

	//  part 2
	operator SdaiDate_and_time_ptr();

	//  part 3
	const SdaiLocal_time_ptr time_component_() const;
	void time_component_ (const SdaiLocal_time_ptr x);

	const SdaiDate_ptr date_component_() const;
	void date_component_ (const SdaiDate_ptr x);


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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiDate_time_select& operator =( SdaiDate_time_select * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsDate_and_time() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiDate_time_select_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiDate_time_select (os_database *db);
#else

inline SCLP23(Select) * create_SdaiDate_time_select () { return new SdaiDate_time_select; }
#endif

typedef SdaiDate_time_select * SdaiDate_time_selectH;
typedef SdaiDate_time_select_ptr SdaiDate_time_select_var;


class SdaiDate_time_selects : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiDate_time_selects( SelectTypeDescriptor * =config_control_designt_date_time_select );
    ~SdaiDate_time_selects();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiDate_time_select( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiDate_time_selects (os_database *db);
#else
inline STEPaggregate * create_SdaiDate_time_selects () { return new SdaiDate_time_selects; }
#endif

typedef SdaiDate_time_selects_ptr SdaiDate_time_selects_var;

/////  END SELECT TYPE date_time_select


//////////  SELECT TYPE SdaiCurve_on_surface
class SdaiCurve_on_surface  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PCURVE	--  sdaiINSTANCE
	//   SURFACE_CURVE	--  sdaiINSTANCE
	//   COMPOSITE_CURVE_ON_SURFACE	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiCurve_on_surface_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiCurve_on_surface( const SelectTypeDescriptor * =config_control_designt_curve_on_surface );
	//  part 1
	SdaiCurve_on_surface( const SdaiPcurve_ptr&,
	                      const SelectTypeDescriptor * =config_control_designt_curve_on_surface );
	SdaiCurve_on_surface( const SdaiSurface_curve_ptr&,
	                      const SelectTypeDescriptor * =config_control_designt_curve_on_surface );
	SdaiCurve_on_surface( const SdaiComposite_curve_on_surface_ptr&,
	                      const SelectTypeDescriptor * =config_control_designt_curve_on_surface );
	virtual ~SdaiCurve_on_surface();

	//  part 2
	operator SdaiPcurve_ptr();
	operator SdaiSurface_curve_ptr();
	operator SdaiComposite_curve_on_surface_ptr();

	//  part 3
	const SCLLOG(Logical) self_intersect_() const;
	void self_intersect_ (const SCLLOG(Logical) x);

	const EntityAggregate_ptr segments_() const;
	void segments_ (const EntityAggregate_ptr x);

	const SdaiPreferred_surface_curve_representation_var master_representation_() const;
	void master_representation_ (const SdaiPreferred_surface_curve_representation_var x);

	const SdaiPcurve_or_surfaces_ptr associated_geometry_() const;
	void associated_geometry_ (const SdaiPcurve_or_surfaces_ptr x);

	const SdaiCurve_ptr curve_3d_() const;
	void curve_3d_ (const SdaiCurve_ptr x);

	const SdaiDefinitional_representation_ptr reference_to_curve_() const;
	void reference_to_curve_ (const SdaiDefinitional_representation_ptr x);

	const SdaiSurface_ptr basis_surface_() const;
	void basis_surface_ (const SdaiSurface_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiCurve_on_surface& operator =( const SdaiPcurve_ptr& );
	SdaiCurve_on_surface& operator =( const SdaiSurface_curve_ptr& );
	SdaiCurve_on_surface& operator =( const SdaiComposite_curve_on_surface_ptr& );
	// not in SDAI
	SdaiCurve_on_surface& ShallowCopy ( const SdaiCurve_on_surface& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiCurve_on_surface& operator =( SdaiCurve_on_surface * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsPcurve() const;
	SCLLOG(Logical) IsSurface_curve() const;
	SCLLOG(Logical) IsComposite_curve_on_surface() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiCurve_on_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiCurve_on_surface (os_database *db);
#else

inline SCLP23(Select) * create_SdaiCurve_on_surface () { return new SdaiCurve_on_surface; }
#endif

typedef SdaiCurve_on_surface * SdaiCurve_on_surfaceH;
typedef SdaiCurve_on_surface_ptr SdaiCurve_on_surface_var;


class SdaiCurve_on_surfaces : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiCurve_on_surfaces( SelectTypeDescriptor * =config_control_designt_curve_on_surface );
    ~SdaiCurve_on_surfaces();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiCurve_on_surface( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiCurve_on_surfaces (os_database *db);
#else
inline STEPaggregate * create_SdaiCurve_on_surfaces () { return new SdaiCurve_on_surfaces; }
#endif

typedef SdaiCurve_on_surfaces_ptr SdaiCurve_on_surfaces_var;

/////  END SELECT TYPE curve_on_surface


//////////  SELECT TYPE SdaiTrimming_select
class SdaiTrimming_select  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   CARTESIAN_POINT	--  sdaiINSTANCE
	//   PARAMETER_VALUE	--  sdaiREAL
	   SCLP23(Application_instance_ptr) _app_inst;
	   SCLP23(Real) _real;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiTrimming_select_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiTrimming_select( const SelectTypeDescriptor * =config_control_designt_trimming_select );
	//  part 1
	SdaiTrimming_select( const SdaiCartesian_point_ptr&,
	                     const SelectTypeDescriptor * =config_control_designt_trimming_select );
	SdaiTrimming_select( const SdaiParameter_value&,
	                     const SelectTypeDescriptor * =config_control_designt_trimming_select );
	virtual ~SdaiTrimming_select();

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

	//  part 3
	const RealAggregate_ptr coordinates_() const;
	void coordinates_ (const RealAggregate_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiTrimming_select& operator =( SdaiTrimming_select * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsCartesian_point() const;
	SCLLOG(Logical) IsParameter_value() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiTrimming_select_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiTrimming_select (os_database *db);
#else

inline SCLP23(Select) * create_SdaiTrimming_select () { return new SdaiTrimming_select; }
#endif

typedef SdaiTrimming_select * SdaiTrimming_selectH;
typedef SdaiTrimming_select_ptr SdaiTrimming_select_var;


class SdaiTrimming_selects : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiTrimming_selects( SelectTypeDescriptor * =config_control_designt_trimming_select );
    ~SdaiTrimming_selects();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiTrimming_select( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiTrimming_selects (os_database *db);
#else
inline STEPaggregate * create_SdaiTrimming_selects () { return new SdaiTrimming_selects; }
#endif

typedef SdaiTrimming_selects_ptr SdaiTrimming_selects_var;

/////  END SELECT TYPE trimming_select


//////////  SELECT TYPE SdaiContracted_item
class SdaiContracted_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiContracted_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiContracted_item( const SelectTypeDescriptor * =config_control_designt_contracted_item );
	//  part 1
	SdaiContracted_item( const SdaiProduct_definition_formation_ptr&,
	                     const SelectTypeDescriptor * =config_control_designt_contracted_item );
	virtual ~SdaiContracted_item();

	//  part 2
	operator SdaiProduct_definition_formation_ptr();

	//  part 3
	const SdaiProduct_ptr of_product_() const;
	void of_product_ (const SdaiProduct_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiContracted_item& operator =( SdaiContracted_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsProduct_definition_formation() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiContracted_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiContracted_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiContracted_item () { return new SdaiContracted_item; }
#endif

typedef SdaiContracted_item * SdaiContracted_itemH;
typedef SdaiContracted_item_ptr SdaiContracted_item_var;


class SdaiContracted_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiContracted_items( SelectTypeDescriptor * =config_control_designt_contracted_item );
    ~SdaiContracted_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiContracted_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiContracted_items (os_database *db);
#else
inline STEPaggregate * create_SdaiContracted_items () { return new SdaiContracted_items; }
#endif

typedef SdaiContracted_items_ptr SdaiContracted_items_var;

/////  END SELECT TYPE contracted_item


//////////  SELECT TYPE SdaiUnit
class SdaiUnit  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   NAMED_UNIT	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiUnit_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiUnit( const SelectTypeDescriptor * =config_control_designt_unit );
	//  part 1
	SdaiUnit( const SdaiNamed_unit_ptr&,
	          const SelectTypeDescriptor * =config_control_designt_unit );
	virtual ~SdaiUnit();

	//  part 2
	operator SdaiNamed_unit_ptr();

	//  part 3
	const SdaiDimensional_exponents_ptr dimensions_() const;
	void dimensions_ (const SdaiDimensional_exponents_ptr x);


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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiUnit& operator =( SdaiUnit * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsNamed_unit() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiUnit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiUnit (os_database *db);
#else

inline SCLP23(Select) * create_SdaiUnit () { return new SdaiUnit; }
#endif

typedef SdaiUnit * SdaiUnitH;
typedef SdaiUnit_ptr SdaiUnit_var;


class SdaiUnits : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiUnits( SelectTypeDescriptor * =config_control_designt_unit );
    ~SdaiUnits();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiUnit( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiUnits (os_database *db);
#else
inline STEPaggregate * create_SdaiUnits () { return new SdaiUnits; }
#endif

typedef SdaiUnits_ptr SdaiUnits_var;

/////  END SELECT TYPE unit


//////////  SELECT TYPE SdaiReversible_topology
class SdaiReversible_topology  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   REVERSIBLE_TOPOLOGY_ITEM	--  sdaiSELECT
	//   LIST_OF_REVERSIBLE_TOPOLOGY_ITEM	--  LIST_TYPE
	//   SET_OF_REVERSIBLE_TOPOLOGY_ITEM	--  SET_TYPE
	   SdaiReversible_topology_item _sdaireversible_topology_item;
	   SdaiReversible_topology_items _sdaireversible_topology_items;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiReversible_topology_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiReversible_topology( const SelectTypeDescriptor * =config_control_designt_reversible_topology );
	//  part 1
	SdaiReversible_topology( const SdaiReversible_topology_item_ptr&,
	                         const SelectTypeDescriptor * =config_control_designt_reversible_topology );
	SdaiReversible_topology( const SdaiSet_of_reversible_topology_item_ptr&,
	                         const SelectTypeDescriptor * =config_control_designt_reversible_topology );
	virtual ~SdaiReversible_topology();

	//  part 2
	operator SdaiReversible_topology_item_ptr();
	operator SdaiSet_of_reversible_topology_item_ptr ();

	//  part 3

	//  part 4
	SdaiReversible_topology& operator =( const SdaiReversible_topology_item_ptr& );
	SdaiReversible_topology& operator =( const SdaiSet_of_reversible_topology_item_ptr& );
	// not in SDAI
	SdaiReversible_topology& ShallowCopy ( const SdaiReversible_topology& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiReversible_topology& operator =( SdaiReversible_topology * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsReversible_topology_item() const;
	SCLLOG(Logical) IsList_of_reversible_topology_item() const;
	SCLLOG(Logical) IsSet_of_reversible_topology_item() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiReversible_topology_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiReversible_topology (os_database *db);
#else

inline SCLP23(Select) * create_SdaiReversible_topology () { return new SdaiReversible_topology; }
#endif

typedef SdaiReversible_topology * SdaiReversible_topologyH;
typedef SdaiReversible_topology_ptr SdaiReversible_topology_var;


class SdaiReversible_topologys : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiReversible_topologys( SelectTypeDescriptor * =config_control_designt_reversible_topology );
    ~SdaiReversible_topologys();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiReversible_topology( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiReversible_topologys (os_database *db);
#else
inline STEPaggregate * create_SdaiReversible_topologys () { return new SdaiReversible_topologys; }
#endif

typedef SdaiReversible_topologys_ptr SdaiReversible_topologys_var;

/////  END SELECT TYPE reversible_topology


//////////  SELECT TYPE SdaiWork_item
class SdaiWork_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiWork_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiWork_item( const SelectTypeDescriptor * =config_control_designt_work_item );
	//  part 1
	SdaiWork_item( const SdaiProduct_definition_formation_ptr&,
	               const SelectTypeDescriptor * =config_control_designt_work_item );
	virtual ~SdaiWork_item();

	//  part 2
	operator SdaiProduct_definition_formation_ptr();

	//  part 3
	const SdaiProduct_ptr of_product_() const;
	void of_product_ (const SdaiProduct_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


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

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiWork_item& operator =( SdaiWork_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsProduct_definition_formation() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiWork_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiWork_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiWork_item () { return new SdaiWork_item; }
#endif

typedef SdaiWork_item * SdaiWork_itemH;
typedef SdaiWork_item_ptr SdaiWork_item_var;


class SdaiWork_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiWork_items( SelectTypeDescriptor * =config_control_designt_work_item );
    ~SdaiWork_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiWork_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiWork_items (os_database *db);
#else
inline STEPaggregate * create_SdaiWork_items () { return new SdaiWork_items; }
#endif

typedef SdaiWork_items_ptr SdaiWork_items_var;

/////  END SELECT TYPE work_item


//////////  SELECT TYPE SdaiSupported_item
class SdaiSupported_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   ACTION_DIRECTIVE	--  sdaiINSTANCE
	//   ACTION	--  sdaiINSTANCE
	//   ACTION_METHOD	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiSupported_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiSupported_item( const SelectTypeDescriptor * =config_control_designt_supported_item );
	//  part 1
	SdaiSupported_item( const SdaiAction_directive_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_supported_item );
	SdaiSupported_item( const SdaiAction_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_supported_item );
	SdaiSupported_item( const SdaiAction_method_ptr&,
	                    const SelectTypeDescriptor * =config_control_designt_supported_item );
	virtual ~SdaiSupported_item();

	//  part 2
	operator SdaiAction_directive_ptr();
	operator SdaiAction_ptr();
	operator SdaiAction_method_ptr();

	//  part 3
	const SdaiText purpose_() const;
	void purpose_ (const SdaiText x);

	const SdaiText consequence_() const;
	void consequence_ (const SdaiText x);

	const SdaiAction_method_ptr chosen_method_() const;
	void chosen_method_ (const SdaiAction_method_ptr x);

	const EntityAggregate_ptr requests_() const;
	void requests_ (const EntityAggregate_ptr x);

	const SdaiText comment_() const;
	void comment_ (const SdaiText x);

	const SdaiText analysis_() const;
	void analysis_ (const SdaiText x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiSupported_item& operator =( const SdaiAction_directive_ptr& );
	SdaiSupported_item& operator =( const SdaiAction_ptr& );
	SdaiSupported_item& operator =( const SdaiAction_method_ptr& );
	// not in SDAI
	SdaiSupported_item& ShallowCopy ( const SdaiSupported_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiSupported_item& operator =( SdaiSupported_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsAction_directive() const;
	SCLLOG(Logical) IsAction() const;
	SCLLOG(Logical) IsAction_method() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiSupported_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiSupported_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiSupported_item () { return new SdaiSupported_item; }
#endif

typedef SdaiSupported_item * SdaiSupported_itemH;
typedef SdaiSupported_item_ptr SdaiSupported_item_var;


class SdaiSupported_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiSupported_items( SelectTypeDescriptor * =config_control_designt_supported_item );
    ~SdaiSupported_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiSupported_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiSupported_items (os_database *db);
#else
inline STEPaggregate * create_SdaiSupported_items () { return new SdaiSupported_items; }
#endif

typedef SdaiSupported_items_ptr SdaiSupported_items_var;

/////  END SELECT TYPE supported_item


//////////  SELECT TYPE SdaiApproved_item
class SdaiApproved_item  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   PRODUCT_DEFINITION_FORMATION	--  sdaiINSTANCE
	//   PRODUCT_DEFINITION	--  sdaiINSTANCE
	//   CONFIGURATION_EFFECTIVITY	--  sdaiINSTANCE
	//   CONFIGURATION_ITEM	--  sdaiINSTANCE
	//   SECURITY_CLASSIFICATION	--  sdaiINSTANCE
	//   CHANGE_REQUEST	--  sdaiINSTANCE
	//   CHANGE	--  sdaiINSTANCE
	//   START_REQUEST	--  sdaiINSTANCE
	//   START_WORK	--  sdaiINSTANCE
	//   CERTIFICATION	--  sdaiINSTANCE
	//   CONTRACT	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiApproved_item_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiApproved_item( const SelectTypeDescriptor * =config_control_designt_approved_item );
	//  part 1
	SdaiApproved_item( const SdaiProduct_definition_formation_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	SdaiApproved_item( const SdaiProduct_definition_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	SdaiApproved_item( const SdaiConfiguration_effectivity_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	SdaiApproved_item( const SdaiConfiguration_item_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	SdaiApproved_item( const SdaiSecurity_classification_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	SdaiApproved_item( const SdaiChange_request_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	SdaiApproved_item( const SdaiChange_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	SdaiApproved_item( const SdaiStart_request_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	SdaiApproved_item( const SdaiStart_work_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	SdaiApproved_item( const SdaiCertification_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	SdaiApproved_item( const SdaiContract_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_approved_item );
	virtual ~SdaiApproved_item();

	//  part 2
	operator SdaiProduct_definition_formation_ptr();
	operator SdaiProduct_definition_ptr();
	operator SdaiConfiguration_effectivity_ptr();
	operator SdaiConfiguration_item_ptr();
	operator SdaiSecurity_classification_ptr();
	operator SdaiChange_request_ptr();
	operator SdaiChange_ptr();
	operator SdaiStart_request_ptr();
	operator SdaiStart_work_ptr();
	operator SdaiCertification_ptr();
	operator SdaiContract_ptr();

	//  part 3
	const SdaiCertification_type_ptr kind_() const;
	void kind_ (const SdaiCertification_type_ptr x);

	const SdaiAction_ptr assigned_action_() const;
	void assigned_action_ (const SdaiAction_ptr x);

	const SdaiChange_request_items_ptr items_() const;
	void items_ (const SdaiChange_request_items_ptr x);

	const SdaiVersioned_action_request_ptr assigned_action_request_() const;
	void assigned_action_request_ (const SdaiVersioned_action_request_ptr x);

	const SdaiSecurity_classification_level_ptr security_level_() const;
	void security_level_ (const SdaiSecurity_classification_level_ptr x);

	const SdaiLabel purpose_() const;
	void purpose_ (const SdaiLabel x);

	const SdaiProduct_concept_ptr item_concept_() const;
	void item_concept_ (const SdaiProduct_concept_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiConfiguration_design_ptr configuration_() const;
	void configuration_ (const SdaiConfiguration_design_ptr x);

	const SdaiProduct_definition_relationship_ptr usage_() const;
	void usage_ (const SdaiProduct_definition_relationship_ptr x);

	const SdaiProduct_definition_context_ptr frame_of_reference_() const;
	void frame_of_reference_ (const SdaiProduct_definition_context_ptr x);

	const SdaiProduct_definition_formation_ptr formation_() const;
	void formation_ (const SdaiProduct_definition_formation_ptr x);

	const SdaiProduct_ptr of_product_() const;
	void of_product_ (const SdaiProduct_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


	//  part 4
	SdaiApproved_item& operator =( const SdaiProduct_definition_formation_ptr& );
	SdaiApproved_item& operator =( const SdaiProduct_definition_ptr& );
	SdaiApproved_item& operator =( const SdaiConfiguration_effectivity_ptr& );
	SdaiApproved_item& operator =( const SdaiConfiguration_item_ptr& );
	SdaiApproved_item& operator =( const SdaiSecurity_classification_ptr& );
	SdaiApproved_item& operator =( const SdaiChange_request_ptr& );
	SdaiApproved_item& operator =( const SdaiChange_ptr& );
	SdaiApproved_item& operator =( const SdaiStart_request_ptr& );
	SdaiApproved_item& operator =( const SdaiStart_work_ptr& );
	SdaiApproved_item& operator =( const SdaiCertification_ptr& );
	SdaiApproved_item& operator =( const SdaiContract_ptr& );
	// not in SDAI
	SdaiApproved_item& ShallowCopy ( const SdaiApproved_item& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiApproved_item& operator =( SdaiApproved_item * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

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

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiApproved_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiApproved_item (os_database *db);
#else

inline SCLP23(Select) * create_SdaiApproved_item () { return new SdaiApproved_item; }
#endif

typedef SdaiApproved_item * SdaiApproved_itemH;
typedef SdaiApproved_item_ptr SdaiApproved_item_var;


class SdaiApproved_items : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiApproved_items( SelectTypeDescriptor * =config_control_designt_approved_item );
    ~SdaiApproved_items();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiApproved_item( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiApproved_items (os_database *db);
#else
inline STEPaggregate * create_SdaiApproved_items () { return new SdaiApproved_items; }
#endif

typedef SdaiApproved_items_ptr SdaiApproved_items_var;

/////  END SELECT TYPE approved_item


//////////  SELECT TYPE SdaiSurface_model
class SdaiSurface_model  :  public SCLP23(Select) {
  protected:
/*  	union {  */
	//  types in SELECT 
	//   SHELL_BASED_SURFACE_MODEL	--  sdaiINSTANCE
	   SCLP23(Application_instance_ptr) _app_inst;
/*  	} ;  */  /* unnamed union of select items */

  public:

#ifdef __OSTORE__
	friend void SdaiSurface_model_access_hook_in(void *, 
				enum os_access_reason, void *, void *, void *);
	static os_typespec* get_os_typespec();
#endif

	virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se);
	virtual SCLP23(Select) * NewSelect ();

	virtual BASE_TYPE ValueType() const;


// STEP Part 21
	virtual void STEPwrite_content (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual void STEPwrite_verbose (G4std::ostream& out =G4cout,
					const char *currSch =0) const;
	virtual Severity STEPread_content (G4std::istream& in =G4cin,
		InstMgr * instances =0, const char *utype =0,
		int addFileId =0, const char *currSch =0);
	virtual Severity StrToVal_content (const char *,
		InstMgr * instances =0);

// STEP Part 22:  SDAI

// constructors
	SdaiSurface_model( const SelectTypeDescriptor * =config_control_designt_surface_model );
	//  part 1
	SdaiSurface_model( const SdaiShell_based_surface_model_ptr&,
	                   const SelectTypeDescriptor * =config_control_designt_surface_model );
	virtual ~SdaiSurface_model();

	//  part 2
	operator SdaiShell_based_surface_model_ptr();

	//  part 3
	const SdaiShells_ptr sbsm_boundary_() const;
	void sbsm_boundary_ (const SdaiShells_ptr x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


	//  part 4
	SdaiSurface_model& operator =( const SdaiShell_based_surface_model_ptr& );
	// not in SDAI
	SdaiSurface_model& ShallowCopy ( const SdaiSurface_model& );

#ifdef COMPILER_DEFINES_OPERATOR_EQ
#else
	SdaiSurface_model& operator =( SdaiSurface_model * const & );
	SCLP23(Select)& operator =( const SCLP23(Select)& );
#endif

	//  part 5
	SCLLOG(Logical) IsShell_based_surface_model() const;

	//  part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ...

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

#ifdef __OSTORE__
void SdaiSurface_model_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);

SCLP23(Select) * create_SdaiSurface_model (os_database *db);
#else

inline SCLP23(Select) * create_SdaiSurface_model () { return new SdaiSurface_model; }
#endif

typedef SdaiSurface_model * SdaiSurface_modelH;
typedef SdaiSurface_model_ptr SdaiSurface_model_var;


class SdaiSurface_models : public SelectAggregate {
  protected:
    SelectTypeDescriptor *sel_type;

  public:
    SdaiSurface_models( SelectTypeDescriptor * =config_control_designt_surface_model );
    ~SdaiSurface_models();

#ifdef __OSTORE__
    static os_typespec* get_os_typespec();
    virtual SingleLinkNode * NewNode();
#else
    virtual SingleLinkNode * NewNode()
	 { return new SelectNode (new SdaiSurface_model( sel_type )); }
#endif
};

#ifdef __OSTORE__
STEPaggregate * create_SdaiSurface_models (os_database *db);
#else
inline STEPaggregate * create_SdaiSurface_models () { return new SdaiSurface_models; }
#endif

typedef SdaiSurface_models_ptr SdaiSurface_models_var;

/////  END SELECT TYPE surface_model


/*	**************  ENTITIES  	*/

//	***** Print Entity Classes  	

/////////	 ENTITY representation_item

extern AttrDescriptor *a_0name;

class SdaiRepresentation_item  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiRepresentation_item_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
  public:  

	SdaiRepresentation_item ( ); 
	SdaiRepresentation_item (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiRepresentation_item (SdaiRepresentation_item& e ); 
	~SdaiRepresentation_item ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 0 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiRepresentation_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiRepresentation_item(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiRepresentation_item () {  return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_item ;  }
#else
inline SdaiRepresentation_item *
create_SdaiRepresentation_item () {  return  new SdaiRepresentation_item ;  }
#endif

/////////	 END_ENTITY representation_item


/////////	 ENTITY geometric_representation_item

extern Derived_attribute *a_1Ddim;

class SdaiGeometric_representation_item  :    public SdaiRepresentation_item  {
 
#ifdef __OSTORE__
  friend void SdaiGeometric_representation_item_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiGeometric_representation_item ( ); 
	SdaiGeometric_representation_item (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiGeometric_representation_item (SdaiGeometric_representation_item& e ); 
	~SdaiGeometric_representation_item ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 1 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiGeometric_representation_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiGeometric_representation_item(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiGeometric_representation_item () {  return (SCLP23(Application_instance_ptr)) new SdaiGeometric_representation_item ;  }
#else
inline SdaiGeometric_representation_item *
create_SdaiGeometric_representation_item () {  return  new SdaiGeometric_representation_item ;  }
#endif

/////////	 END_ENTITY geometric_representation_item


/////////	 ENTITY functionally_defined_transformation

extern AttrDescriptor *a_2name;
extern AttrDescriptor *a_3description;

class SdaiFunctionally_defined_transformation  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiFunctionally_defined_transformation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
  public:  

	SdaiFunctionally_defined_transformation ( ); 
	SdaiFunctionally_defined_transformation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiFunctionally_defined_transformation (SdaiFunctionally_defined_transformation& e ); 
	~SdaiFunctionally_defined_transformation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 2 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiFunctionally_defined_transformation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiFunctionally_defined_transformation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiFunctionally_defined_transformation () {  return (SCLP23(Application_instance_ptr)) new SdaiFunctionally_defined_transformation ;  }
#else
inline SdaiFunctionally_defined_transformation *
create_SdaiFunctionally_defined_transformation () {  return  new SdaiFunctionally_defined_transformation ;  }
#endif

/////////	 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 Derived_attribute *a_8Dscl;

class SdaiCartesian_transformation_operator  :    public SdaiGeometric_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiCartesian_transformation_operator_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _axis1 ;    //  OPTIONAL
	SCLP23(Application_instance_ptr) _axis2 ;    //  OPTIONAL
	SCLP23(Application_instance_ptr) _local_origin ;
	SCLP23(Real) _scale ;    //  OPTIONAL
  public:  

	SdaiCartesian_transformation_operator ( ); 
	SdaiCartesian_transformation_operator (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCartesian_transformation_operator (SdaiCartesian_transformation_operator& e ); 
	~SdaiCartesian_transformation_operator ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 3 ; } 
	const SdaiDirection_ptr axis1_() const;
	void axis1_ (const SdaiDirection_ptr x);

	const SdaiDirection_ptr axis2_() const;
	void axis2_ (const SdaiDirection_ptr x);

	const SdaiCartesian_point_ptr local_origin_() const;
	void local_origin_ (const SdaiCartesian_point_ptr x);

	const SCLP23(Real) scale_() const;
	void scale_ (const SCLP23(Real) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);


#endif

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCartesian_transformation_operator_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCartesian_transformation_operator(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCartesian_transformation_operator () {  return (SCLP23(Application_instance_ptr)) new SdaiCartesian_transformation_operator ;  }
#else
inline SdaiCartesian_transformation_operator *
create_SdaiCartesian_transformation_operator () {  return  new SdaiCartesian_transformation_operator ;  }
#endif

/////////	 END_ENTITY cartesian_transformation_operator


/////////	 ENTITY cartesian_transformation_operator_3d

extern AttrDescriptor *a_9axis3;
extern Derived_attribute *a_10Du;

class SdaiCartesian_transformation_operator_3d  :    public SdaiCartesian_transformation_operator  {
 
#ifdef __OSTORE__
  friend void SdaiCartesian_transformation_operator_3d_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _axis3 ;    //  OPTIONAL
  public:  

	SdaiCartesian_transformation_operator_3d ( ); 
	SdaiCartesian_transformation_operator_3d (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCartesian_transformation_operator_3d (SdaiCartesian_transformation_operator_3d& e ); 
	~SdaiCartesian_transformation_operator_3d ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 4 ; } 
	const SdaiDirection_ptr axis3_() const;
	void axis3_ (const SdaiDirection_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCartesian_transformation_operator_3d_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCartesian_transformation_operator_3d(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCartesian_transformation_operator_3d () {  return (SCLP23(Application_instance_ptr)) new SdaiCartesian_transformation_operator_3d ;  }
#else
inline SdaiCartesian_transformation_operator_3d *
create_SdaiCartesian_transformation_operator_3d () {  return  new SdaiCartesian_transformation_operator_3d ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiVersioned_action_request_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;
	SCLP23(String) _version ;
	SCLP23(String) _purpose ;
	SCLP23(String) _description ;
  public:  

	SdaiVersioned_action_request ( ); 
	SdaiVersioned_action_request (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiVersioned_action_request (SdaiVersioned_action_request& e ); 
	~SdaiVersioned_action_request ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 5 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiLabel version_() const;
	void version_ (const SdaiLabel x);

	const SdaiText purpose_() const;
	void purpose_ (const SdaiText x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiVersioned_action_request_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiVersioned_action_request(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiVersioned_action_request () {  return (SCLP23(Application_instance_ptr)) new SdaiVersioned_action_request ;  }
#else
inline SdaiVersioned_action_request *
create_SdaiVersioned_action_request () {  return  new SdaiVersioned_action_request ;  }
#endif

/////////	 END_ENTITY versioned_action_request


/////////	 ENTITY representation

extern AttrDescriptor *a_15name;
extern AttrDescriptor *a_16items;
extern AttrDescriptor *a_17context_of_items;

class SdaiRepresentation  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiRepresentation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	EntityAggregate _items ;	  //  of  representation_item

	SCLP23(Application_instance_ptr) _context_of_items ;
  public:  

	SdaiRepresentation ( ); 
	SdaiRepresentation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiRepresentation (SdaiRepresentation& e ); 
	~SdaiRepresentation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 6 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const EntityAggregate_ptr items_() const;
	void items_ (const EntityAggregate_ptr x);

	const SdaiRepresentation_context_ptr context_of_items_() const;
	void context_of_items_ (const SdaiRepresentation_context_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiRepresentation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiRepresentation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiRepresentation () {  return (SCLP23(Application_instance_ptr)) new SdaiRepresentation ;  }
#else
inline SdaiRepresentation *
create_SdaiRepresentation () {  return  new SdaiRepresentation ;  }
#endif

/////////	 END_ENTITY representation


/////////	 ENTITY shape_representation


class SdaiShape_representation  :    public SdaiRepresentation  {
 
#ifdef __OSTORE__
  friend void SdaiShape_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiShape_representation ( ); 
	SdaiShape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiShape_representation (SdaiShape_representation& e ); 
	~SdaiShape_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 7 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiShape_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiShape_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiShape_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiShape_representation ;  }
#else
inline SdaiShape_representation *
create_SdaiShape_representation () {  return  new SdaiShape_representation ;  }
#endif

/////////	 END_ENTITY shape_representation


/////////	 ENTITY manifold_surface_shape_representation


class SdaiManifold_surface_shape_representation  :    public SdaiShape_representation  {
 
#ifdef __OSTORE__
  friend void SdaiManifold_surface_shape_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiManifold_surface_shape_representation ( ); 
	SdaiManifold_surface_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiManifold_surface_shape_representation (SdaiManifold_surface_shape_representation& e ); 
	~SdaiManifold_surface_shape_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 8 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiManifold_surface_shape_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiManifold_surface_shape_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiManifold_surface_shape_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiManifold_surface_shape_representation ;  }
#else
inline SdaiManifold_surface_shape_representation *
create_SdaiManifold_surface_shape_representation () {  return  new SdaiManifold_surface_shape_representation ;  }
#endif

/////////	 END_ENTITY manifold_surface_shape_representation


/////////	 ENTITY certification

extern AttrDescriptor *a_18name;
extern AttrDescriptor *a_19purpose;
extern AttrDescriptor *a_20kind;

class SdaiCertification  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiCertification_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _purpose ;
	SCLP23(Application_instance_ptr) _kind ;
  public:  

	SdaiCertification ( ); 
	SdaiCertification (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCertification (SdaiCertification& e ); 
	~SdaiCertification ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 9 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText purpose_() const;
	void purpose_ (const SdaiText x);

	const SdaiCertification_type_ptr kind_() const;
	void kind_ (const SdaiCertification_type_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCertification_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCertification(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCertification () {  return (SCLP23(Application_instance_ptr)) new SdaiCertification ;  }
#else
inline SdaiCertification *
create_SdaiCertification () {  return  new SdaiCertification ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiProduct_definition_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _relating_product_definition ;
	SCLP23(Application_instance_ptr) _related_product_definition ;
  public:  

	SdaiProduct_definition_relationship ( ); 
	SdaiProduct_definition_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_definition_relationship (SdaiProduct_definition_relationship& e ); 
	~SdaiProduct_definition_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 10 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiProduct_definition_ptr relating_product_definition_() const;
	void relating_product_definition_ (const SdaiProduct_definition_ptr x);

	const SdaiProduct_definition_ptr related_product_definition_() const;
	void related_product_definition_ (const SdaiProduct_definition_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_definition_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_relationship ;  }
#else
inline SdaiProduct_definition_relationship *
create_SdaiProduct_definition_relationship () {  return  new SdaiProduct_definition_relationship ;  }
#endif

/////////	 END_ENTITY product_definition_relationship


/////////	 ENTITY product_definition_usage


class SdaiProduct_definition_usage  :    public SdaiProduct_definition_relationship  {
 
#ifdef __OSTORE__
  friend void SdaiProduct_definition_usage_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiProduct_definition_usage ( ); 
	SdaiProduct_definition_usage (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_definition_usage (SdaiProduct_definition_usage& e ); 
	~SdaiProduct_definition_usage ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 11 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_definition_usage_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_usage(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_usage () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_usage ;  }
#else
inline SdaiProduct_definition_usage *
create_SdaiProduct_definition_usage () {  return  new SdaiProduct_definition_usage ;  }
#endif

/////////	 END_ENTITY product_definition_usage


/////////	 ENTITY assembly_component_usage

extern AttrDescriptor *a_26reference_designator;

class SdaiAssembly_component_usage  :    public SdaiProduct_definition_usage  {
 
#ifdef __OSTORE__
  friend void SdaiAssembly_component_usage_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _reference_designator ;    //  OPTIONAL
  public:  

	SdaiAssembly_component_usage ( ); 
	SdaiAssembly_component_usage (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAssembly_component_usage (SdaiAssembly_component_usage& e ); 
	~SdaiAssembly_component_usage ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 12 ; } 
	const SdaiIdentifier reference_designator_() const;
	void reference_designator_ (const SdaiIdentifier x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAssembly_component_usage_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAssembly_component_usage(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAssembly_component_usage () {  return (SCLP23(Application_instance_ptr)) new SdaiAssembly_component_usage ;  }
#else
inline SdaiAssembly_component_usage *
create_SdaiAssembly_component_usage () {  return  new SdaiAssembly_component_usage ;  }
#endif

/////////	 END_ENTITY assembly_component_usage


/////////	 ENTITY quantified_assembly_component_usage

extern AttrDescriptor *a_27quantity;

class SdaiQuantified_assembly_component_usage  :    public SdaiAssembly_component_usage  {
 
#ifdef __OSTORE__
  friend void SdaiQuantified_assembly_component_usage_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _quantity ;
  public:  

	SdaiQuantified_assembly_component_usage ( ); 
	SdaiQuantified_assembly_component_usage (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiQuantified_assembly_component_usage (SdaiQuantified_assembly_component_usage& e ); 
	~SdaiQuantified_assembly_component_usage ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 13 ; } 
	const SdaiMeasure_with_unit_ptr quantity_() const;
	void quantity_ (const SdaiMeasure_with_unit_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiQuantified_assembly_component_usage_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiQuantified_assembly_component_usage(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiQuantified_assembly_component_usage () {  return (SCLP23(Application_instance_ptr)) new SdaiQuantified_assembly_component_usage ;  }
#else
inline SdaiQuantified_assembly_component_usage *
create_SdaiQuantified_assembly_component_usage () {  return  new SdaiQuantified_assembly_component_usage ;  }
#endif

/////////	 END_ENTITY quantified_assembly_component_usage


/////////	 ENTITY solid_model


class SdaiSolid_model  :    public SdaiGeometric_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiSolid_model_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiSolid_model ( ); 
	SdaiSolid_model (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSolid_model (SdaiSolid_model& e ); 
	~SdaiSolid_model ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 14 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSolid_model_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSolid_model(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSolid_model () {  return (SCLP23(Application_instance_ptr)) new SdaiSolid_model ;  }
#else
inline SdaiSolid_model *
create_SdaiSolid_model () {  return  new SdaiSolid_model ;  }
#endif

/////////	 END_ENTITY solid_model


/////////	 ENTITY manifold_solid_brep

extern AttrDescriptor *a_28outer;

class SdaiManifold_solid_brep  :    public SdaiSolid_model  {
 
#ifdef __OSTORE__
  friend void SdaiManifold_solid_brep_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _outer ;
  public:  

	SdaiManifold_solid_brep ( ); 
	SdaiManifold_solid_brep (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiManifold_solid_brep (SdaiManifold_solid_brep& e ); 
	~SdaiManifold_solid_brep ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 15 ; } 
	const SdaiClosed_shell_ptr outer_() const;
	void outer_ (const SdaiClosed_shell_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiManifold_solid_brep_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiManifold_solid_brep(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiManifold_solid_brep () {  return (SCLP23(Application_instance_ptr)) new SdaiManifold_solid_brep ;  }
#else
inline SdaiManifold_solid_brep *
create_SdaiManifold_solid_brep () {  return  new SdaiManifold_solid_brep ;  }
#endif

/////////	 END_ENTITY manifold_solid_brep


/////////	 ENTITY faceted_brep


class SdaiFaceted_brep  :    public SdaiManifold_solid_brep  {
 
#ifdef __OSTORE__
  friend void SdaiFaceted_brep_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiFaceted_brep ( ); 
	SdaiFaceted_brep (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiFaceted_brep (SdaiFaceted_brep& e ); 
	~SdaiFaceted_brep ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 16 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiFaceted_brep_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiFaceted_brep(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiFaceted_brep () {  return (SCLP23(Application_instance_ptr)) new SdaiFaceted_brep ;  }
#else
inline SdaiFaceted_brep *
create_SdaiFaceted_brep () {  return  new SdaiFaceted_brep ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAction_directive_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(String) _analysis ;
	SCLP23(String) _comment ;
	EntityAggregate _requests ;	  //  of  versioned_action_request

  public:  

	SdaiAction_directive ( ); 
	SdaiAction_directive (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAction_directive (SdaiAction_directive& e ); 
	~SdaiAction_directive ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 17 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiText analysis_() const;
	void analysis_ (const SdaiText x);

	const SdaiText comment_() const;
	void comment_ (const SdaiText x);

	const EntityAggregate_ptr requests_() const;
	void requests_ (const EntityAggregate_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAction_directive_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAction_directive(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAction_directive () {  return (SCLP23(Application_instance_ptr)) new SdaiAction_directive ;  }
#else
inline SdaiAction_directive *
create_SdaiAction_directive () {  return  new SdaiAction_directive ;  }
#endif

/////////	 END_ENTITY action_directive


/////////	 ENTITY named_unit

extern AttrDescriptor *a_34dimensions;

class SdaiNamed_unit  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiNamed_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _dimensions ;
  public:  

	SdaiNamed_unit ( ); 
	SdaiNamed_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiNamed_unit (SdaiNamed_unit& e ); 
	~SdaiNamed_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 18 ; } 
	const SdaiDimensional_exponents_ptr dimensions_() const;
	void dimensions_ (const SdaiDimensional_exponents_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiNamed_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiNamed_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiNamed_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiNamed_unit ;  }
#else
inline SdaiNamed_unit *
create_SdaiNamed_unit () {  return  new SdaiNamed_unit ;  }
#endif

/////////	 END_ENTITY named_unit


/////////	 ENTITY plane_angle_unit


class SdaiPlane_angle_unit  :    public SdaiNamed_unit  {
 
#ifdef __OSTORE__
  friend void SdaiPlane_angle_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiPlane_angle_unit ( ); 
	SdaiPlane_angle_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPlane_angle_unit (SdaiPlane_angle_unit& e ); 
	~SdaiPlane_angle_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 19 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPlane_angle_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPlane_angle_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPlane_angle_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiPlane_angle_unit ;  }
#else
inline SdaiPlane_angle_unit *
create_SdaiPlane_angle_unit () {  return  new SdaiPlane_angle_unit ;  }
#endif

/////////	 END_ENTITY plane_angle_unit


/////////	 ENTITY measure_with_unit

extern AttrDescriptor *a_35value_component;
extern AttrDescriptor *a_36unit_component;

class SdaiMeasure_with_unit  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiMeasure_with_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiMeasure_value _value_component ;
	SdaiUnit _unit_component ;
  public:  

	SdaiMeasure_with_unit ( ); 
	SdaiMeasure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiMeasure_with_unit (SdaiMeasure_with_unit& e ); 
	~SdaiMeasure_with_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 20 ; } 
	const SdaiMeasure_value_ptr value_component_() const;
	void value_component_ (const SdaiMeasure_value_ptr x);

	const SdaiUnit_ptr unit_component_() const;
	void unit_component_ (const SdaiUnit_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiMeasure_with_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiMeasure_with_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiMeasure_with_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiMeasure_with_unit ;  }
#else
inline SdaiMeasure_with_unit *
create_SdaiMeasure_with_unit () {  return  new SdaiMeasure_with_unit ;  }
#endif

/////////	 END_ENTITY measure_with_unit


/////////	 ENTITY area_measure_with_unit


class SdaiArea_measure_with_unit  :    public SdaiMeasure_with_unit  {
 
#ifdef __OSTORE__
  friend void SdaiArea_measure_with_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiArea_measure_with_unit ( ); 
	SdaiArea_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiArea_measure_with_unit (SdaiArea_measure_with_unit& e ); 
	~SdaiArea_measure_with_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 21 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiArea_measure_with_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiArea_measure_with_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiArea_measure_with_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiArea_measure_with_unit ;  }
#else
inline SdaiArea_measure_with_unit *
create_SdaiArea_measure_with_unit () {  return  new SdaiArea_measure_with_unit ;  }
#endif

/////////	 END_ENTITY area_measure_with_unit


/////////	 ENTITY effectivity

extern AttrDescriptor *a_37id;

class SdaiEffectivity  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiEffectivity_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;
  public:  

	SdaiEffectivity ( ); 
	SdaiEffectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiEffectivity (SdaiEffectivity& e ); 
	~SdaiEffectivity ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 22 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiEffectivity_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiEffectivity(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiEffectivity () {  return (SCLP23(Application_instance_ptr)) new SdaiEffectivity ;  }
#else
inline SdaiEffectivity *
create_SdaiEffectivity () {  return  new SdaiEffectivity ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiSerial_numbered_effectivity_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _effectivity_start_id ;
	SCLP23(String) _effectivity_end_id ;    //  OPTIONAL
  public:  

	SdaiSerial_numbered_effectivity ( ); 
	SdaiSerial_numbered_effectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSerial_numbered_effectivity (SdaiSerial_numbered_effectivity& e ); 
	~SdaiSerial_numbered_effectivity ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 23 ; } 
	const SdaiIdentifier effectivity_start_id_() const;
	void effectivity_start_id_ (const SdaiIdentifier x);

	const SdaiIdentifier effectivity_end_id_() const;
	void effectivity_end_id_ (const SdaiIdentifier x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSerial_numbered_effectivity_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSerial_numbered_effectivity(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSerial_numbered_effectivity () {  return (SCLP23(Application_instance_ptr)) new SdaiSerial_numbered_effectivity ;  }
#else
inline SdaiSerial_numbered_effectivity *
create_SdaiSerial_numbered_effectivity () {  return  new SdaiSerial_numbered_effectivity ;  }
#endif

/////////	 END_ENTITY serial_numbered_effectivity


/////////	 ENTITY surface


class SdaiSurface  :    public SdaiGeometric_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiSurface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiSurface ( ); 
	SdaiSurface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSurface (SdaiSurface& e ); 
	~SdaiSurface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 24 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSurface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSurface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSurface () {  return (SCLP23(Application_instance_ptr)) new SdaiSurface ;  }
#else
inline SdaiSurface *
create_SdaiSurface () {  return  new SdaiSurface ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiOffset_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _basis_surface ;
	SCLP23(Real) _distance ;
	SCLP23(LOGICAL) _self_intersect ;
  public:  

	SdaiOffset_surface ( ); 
	SdaiOffset_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOffset_surface (SdaiOffset_surface& e ); 
	~SdaiOffset_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 25 ; } 
	const SdaiSurface_ptr basis_surface_() const;
	void basis_surface_ (const SdaiSurface_ptr x);

	const SdaiLength_measure distance_() const;
	void distance_ (const SdaiLength_measure x);

	const SCLLOG(Logical) self_intersect_() const;
	void self_intersect_ (const SCLLOG(Logical) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOffset_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOffset_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOffset_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiOffset_surface ;  }
#else
inline SdaiOffset_surface *
create_SdaiOffset_surface () {  return  new SdaiOffset_surface ;  }
#endif

/////////	 END_ENTITY offset_surface


/////////	 ENTITY placement

extern AttrDescriptor *a_43location;

class SdaiPlacement  :    public SdaiGeometric_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiPlacement_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _location ;
  public:  

	SdaiPlacement ( ); 
	SdaiPlacement (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPlacement (SdaiPlacement& e ); 
	~SdaiPlacement ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 26 ; } 
	const SdaiCartesian_point_ptr location_() const;
	void location_ (const SdaiCartesian_point_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPlacement_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPlacement(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPlacement () {  return (SCLP23(Application_instance_ptr)) new SdaiPlacement ;  }
#else
inline SdaiPlacement *
create_SdaiPlacement () {  return  new SdaiPlacement ;  }
#endif

/////////	 END_ENTITY placement


/////////	 ENTITY axis2_placement_2d

extern AttrDescriptor *a_44ref_direction;
extern Derived_attribute *a_45Dp;

class SdaiAxis2_placement_2d  :    public SdaiPlacement  {
 
#ifdef __OSTORE__
  friend void SdaiAxis2_placement_2d_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _ref_direction ;    //  OPTIONAL
  public:  

	SdaiAxis2_placement_2d ( ); 
	SdaiAxis2_placement_2d (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAxis2_placement_2d (SdaiAxis2_placement_2d& e ); 
	~SdaiAxis2_placement_2d ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 27 ; } 
	const SdaiDirection_ptr ref_direction_() const;
	void ref_direction_ (const SdaiDirection_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAxis2_placement_2d_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAxis2_placement_2d(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAxis2_placement_2d () {  return (SCLP23(Application_instance_ptr)) new SdaiAxis2_placement_2d ;  }
#else
inline SdaiAxis2_placement_2d *
create_SdaiAxis2_placement_2d () {  return  new SdaiAxis2_placement_2d ;  }
#endif

/////////	 END_ENTITY axis2_placement_2d


/////////	 ENTITY product_category

extern AttrDescriptor *a_46name;
extern AttrDescriptor *a_47description;

class SdaiProduct_category  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiProduct_category_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;    //  OPTIONAL
  public:  

	SdaiProduct_category ( ); 
	SdaiProduct_category (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_category (SdaiProduct_category& e ); 
	~SdaiProduct_category ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 28 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_category_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_category(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_category () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_category ;  }
#else
inline SdaiProduct_category *
create_SdaiProduct_category () {  return  new SdaiProduct_category ;  }
#endif

/////////	 END_ENTITY product_category


/////////	 ENTITY product_related_product_category

extern AttrDescriptor *a_48products;

class SdaiProduct_related_product_category  :    public SdaiProduct_category  {
 
#ifdef __OSTORE__
  friend void SdaiProduct_related_product_category_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _products ;	  //  of  product

  public:  

	SdaiProduct_related_product_category ( ); 
	SdaiProduct_related_product_category (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_related_product_category (SdaiProduct_related_product_category& e ); 
	~SdaiProduct_related_product_category ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 29 ; } 
	const EntityAggregate_ptr products_() const;
	void products_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_related_product_category_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_related_product_category(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_related_product_category () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_related_product_category ;  }
#else
inline SdaiProduct_related_product_category *
create_SdaiProduct_related_product_category () {  return  new SdaiProduct_related_product_category ;  }
#endif

/////////	 END_ENTITY product_related_product_category


/////////	 ENTITY curve


class SdaiCurve  :    public SdaiGeometric_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiCurve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiCurve ( ); 
	SdaiCurve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCurve (SdaiCurve& e ); 
	~SdaiCurve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 30 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCurve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCurve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCurve () {  return (SCLP23(Application_instance_ptr)) new SdaiCurve ;  }
#else
inline SdaiCurve *
create_SdaiCurve () {  return  new SdaiCurve ;  }
#endif

/////////	 END_ENTITY curve


/////////	 ENTITY conic

extern AttrDescriptor *a_49position;

class SdaiConic  :    public SdaiCurve  {
 
#ifdef __OSTORE__
  friend void SdaiConic_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiAxis2_placement _position ;
  public:  

	SdaiConic ( ); 
	SdaiConic (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiConic (SdaiConic& e ); 
	~SdaiConic ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 31 ; } 
	const SdaiAxis2_placement_ptr position_() const;
	void position_ (const SdaiAxis2_placement_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiConic_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiConic(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiConic () {  return (SCLP23(Application_instance_ptr)) new SdaiConic ;  }
#else
inline SdaiConic *
create_SdaiConic () {  return  new SdaiConic ;  }
#endif

/////////	 END_ENTITY conic


/////////	 ENTITY hyperbola

extern AttrDescriptor *a_50semi_axis;
extern AttrDescriptor *a_51semi_imag_axis;

class SdaiHyperbola  :    public SdaiConic  {
 
#ifdef __OSTORE__
  friend void SdaiHyperbola_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Real) _semi_axis ;
	SCLP23(Real) _semi_imag_axis ;
  public:  

	SdaiHyperbola ( ); 
	SdaiHyperbola (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiHyperbola (SdaiHyperbola& e ); 
	~SdaiHyperbola ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 32 ; } 
	const SdaiPositive_length_measure semi_axis_() const;
	void semi_axis_ (const SdaiPositive_length_measure x);

	const SdaiPositive_length_measure semi_imag_axis_() const;
	void semi_imag_axis_ (const SdaiPositive_length_measure x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiHyperbola_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiHyperbola(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiHyperbola () {  return (SCLP23(Application_instance_ptr)) new SdaiHyperbola ;  }
#else
inline SdaiHyperbola *
create_SdaiHyperbola () {  return  new SdaiHyperbola ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAddress_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _internal_location ;    //  OPTIONAL
	SCLP23(String) _street_number ;    //  OPTIONAL
	SCLP23(String) _street ;    //  OPTIONAL
	SCLP23(String) _postal_box ;    //  OPTIONAL
	SCLP23(String) _town ;    //  OPTIONAL
	SCLP23(String) _region ;    //  OPTIONAL
	SCLP23(String) _postal_code ;    //  OPTIONAL
	SCLP23(String) _country ;    //  OPTIONAL
	SCLP23(String) _facsimile_number ;    //  OPTIONAL
	SCLP23(String) _telephone_number ;    //  OPTIONAL
	SCLP23(String) _electronic_mail_address ;    //  OPTIONAL
	SCLP23(String) _telex_number ;    //  OPTIONAL
  public:  

	SdaiAddress ( ); 
	SdaiAddress (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAddress (SdaiAddress& e ); 
	~SdaiAddress ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 33 ; } 
	const SdaiLabel internal_location_() const;
	void internal_location_ (const SdaiLabel x);

	const SdaiLabel street_number_() const;
	void street_number_ (const SdaiLabel x);

	const SdaiLabel street_() const;
	void street_ (const SdaiLabel x);

	const SdaiLabel postal_box_() const;
	void postal_box_ (const SdaiLabel x);

	const SdaiLabel town_() const;
	void town_ (const SdaiLabel x);

	const SdaiLabel region_() const;
	void region_ (const SdaiLabel x);

	const SdaiLabel postal_code_() const;
	void postal_code_ (const SdaiLabel x);

	const SdaiLabel country_() const;
	void country_ (const SdaiLabel x);

	const SdaiLabel facsimile_number_() const;
	void facsimile_number_ (const SdaiLabel x);

	const SdaiLabel telephone_number_() const;
	void telephone_number_ (const SdaiLabel x);

	const SdaiLabel electronic_mail_address_() const;
	void electronic_mail_address_ (const SdaiLabel x);

	const SdaiLabel telex_number_() const;
	void telex_number_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAddress_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAddress(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAddress () {  return (SCLP23(Application_instance_ptr)) new SdaiAddress ;  }
#else
inline SdaiAddress *
create_SdaiAddress () {  return  new SdaiAddress ;  }
#endif

/////////	 END_ENTITY address


/////////	 ENTITY organizational_address

extern AttrDescriptor *a_64organizations;
extern AttrDescriptor *a_65description;

class SdaiOrganizational_address  :    public SdaiAddress  {
 
#ifdef __OSTORE__
  friend void SdaiOrganizational_address_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _organizations ;	  //  of  organization

	SCLP23(String) _description ;
  public:  

	SdaiOrganizational_address ( ); 
	SdaiOrganizational_address (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOrganizational_address (SdaiOrganizational_address& e ); 
	~SdaiOrganizational_address ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 34 ; } 
	const EntityAggregate_ptr organizations_() const;
	void organizations_ (const EntityAggregate_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOrganizational_address_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOrganizational_address(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOrganizational_address () {  return (SCLP23(Application_instance_ptr)) new SdaiOrganizational_address ;  }
#else
inline SdaiOrganizational_address *
create_SdaiOrganizational_address () {  return  new SdaiOrganizational_address ;  }
#endif

/////////	 END_ENTITY organizational_address


/////////	 ENTITY bounded_surface


class SdaiBounded_surface  :    public SdaiSurface  {
 
#ifdef __OSTORE__
  friend void SdaiBounded_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiBounded_surface ( ); 
	SdaiBounded_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiBounded_surface (SdaiBounded_surface& e ); 
	~SdaiBounded_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 35 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiBounded_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiBounded_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiBounded_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiBounded_surface ;  }
#else
inline SdaiBounded_surface *
create_SdaiBounded_surface () {  return  new SdaiBounded_surface ;  }
#endif

/////////	 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 Derived_attribute *a_73Du_upper;
extern Derived_attribute *a_74Dv_upper;
extern Derived_attribute *a_75Dcontrol_points;

class SdaiB_spline_surface  :    public SdaiBounded_surface  {
 
#ifdef __OSTORE__
  friend void SdaiB_spline_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Integer) _u_degree ;
	SCLP23(Integer) _v_degree ;
	GenericAggregate _control_points_list ;	  //  of  cartesian_point

	SdaiB_spline_surface_form_var _surface_form ;
	SCLP23(LOGICAL) _u_closed ;
	SCLP23(LOGICAL) _v_closed ;
	SCLP23(LOGICAL) _self_intersect ;
  public:  

	SdaiB_spline_surface ( ); 
	SdaiB_spline_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiB_spline_surface (SdaiB_spline_surface& e ); 
	~SdaiB_spline_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 36 ; } 
	const SCLP23(Integer) u_degree_() const;
	void u_degree_ (const SCLP23(Integer) x);

	const SCLP23(Integer) v_degree_() const;
	void v_degree_ (const SCLP23(Integer) x);

	const GenericAggregate_ptr control_points_list_() const;
	void control_points_list_ (const GenericAggregate_ptr x);

	const SdaiB_spline_surface_form_var surface_form_() const;
	void surface_form_ (const SdaiB_spline_surface_form_var x);

	const SCLLOG(Logical) u_closed_() const;
	void u_closed_ (const SCLLOG(Logical) x);

	const SCLLOG(Logical) v_closed_() const;
	void v_closed_ (const SCLLOG(Logical) x);

	const SCLLOG(Logical) self_intersect_() const;
	void self_intersect_ (const SCLLOG(Logical) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiB_spline_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiB_spline_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiB_spline_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiB_spline_surface ;  }
#else
inline SdaiB_spline_surface *
create_SdaiB_spline_surface () {  return  new SdaiB_spline_surface ;  }
#endif

/////////	 END_ENTITY b_spline_surface


/////////	 ENTITY uniform_surface


class SdaiUniform_surface  :    public SdaiB_spline_surface  {
 
#ifdef __OSTORE__
  friend void SdaiUniform_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiUniform_surface ( ); 
	SdaiUniform_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiUniform_surface (SdaiUniform_surface& e ); 
	~SdaiUniform_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 37 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiUniform_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiUniform_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiUniform_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiUniform_surface ;  }
#else
inline SdaiUniform_surface *
create_SdaiUniform_surface () {  return  new SdaiUniform_surface ;  }
#endif

/////////	 END_ENTITY uniform_surface


/////////	 ENTITY geometrically_bounded_surface_shape_representation


class SdaiGeometrically_bounded_surface_shape_representation  :    public SdaiShape_representation  {
 
#ifdef __OSTORE__
  friend void SdaiGeometrically_bounded_surface_shape_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiGeometrically_bounded_surface_shape_representation ( ); 
	SdaiGeometrically_bounded_surface_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiGeometrically_bounded_surface_shape_representation (SdaiGeometrically_bounded_surface_shape_representation& e ); 
	~SdaiGeometrically_bounded_surface_shape_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 38 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiGeometrically_bounded_surface_shape_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiGeometrically_bounded_surface_shape_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiGeometrically_bounded_surface_shape_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiGeometrically_bounded_surface_shape_representation ;  }
#else
inline SdaiGeometrically_bounded_surface_shape_representation *
create_SdaiGeometrically_bounded_surface_shape_representation () {  return  new SdaiGeometrically_bounded_surface_shape_representation ;  }
#endif

/////////	 END_ENTITY geometrically_bounded_surface_shape_representation


/////////	 ENTITY axis1_placement

extern AttrDescriptor *a_76axis;
extern Derived_attribute *a_77Dz;

class SdaiAxis1_placement  :    public SdaiPlacement  {
 
#ifdef __OSTORE__
  friend void SdaiAxis1_placement_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _axis ;    //  OPTIONAL
  public:  

	SdaiAxis1_placement ( ); 
	SdaiAxis1_placement (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAxis1_placement (SdaiAxis1_placement& e ); 
	~SdaiAxis1_placement ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 39 ; } 
	const SdaiDirection_ptr axis_() const;
	void axis_ (const SdaiDirection_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAxis1_placement_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAxis1_placement(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAxis1_placement () {  return (SCLP23(Application_instance_ptr)) new SdaiAxis1_placement ;  }
#else
inline SdaiAxis1_placement *
create_SdaiAxis1_placement () {  return  new SdaiAxis1_placement ;  }
#endif

/////////	 END_ENTITY axis1_placement


/////////	 ENTITY bounded_curve


class SdaiBounded_curve  :    public SdaiCurve  {
 
#ifdef __OSTORE__
  friend void SdaiBounded_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiBounded_curve ( ); 
	SdaiBounded_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiBounded_curve (SdaiBounded_curve& e ); 
	~SdaiBounded_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 40 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiBounded_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiBounded_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiBounded_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiBounded_curve ;  }
#else
inline SdaiBounded_curve *
create_SdaiBounded_curve () {  return  new SdaiBounded_curve ;  }
#endif

/////////	 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 Derived_attribute *a_83Dupper_index_on_control_points;
extern Derived_attribute *a_84Dcontrol_points;

class SdaiB_spline_curve  :    public SdaiBounded_curve  {
 
#ifdef __OSTORE__
  friend void SdaiB_spline_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Integer) _degree ;
	EntityAggregate _control_points_list ;	  //  of  cartesian_point

	SdaiB_spline_curve_form_var _curve_form ;
	SCLP23(LOGICAL) _closed_curve ;
	SCLP23(LOGICAL) _self_intersect ;
  public:  

	SdaiB_spline_curve ( ); 
	SdaiB_spline_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiB_spline_curve (SdaiB_spline_curve& e ); 
	~SdaiB_spline_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 41 ; } 
	const SCLP23(Integer) degree_() const;
	void degree_ (const SCLP23(Integer) x);

	const EntityAggregate_ptr control_points_list_() const;
	void control_points_list_ (const EntityAggregate_ptr x);

	const SdaiB_spline_curve_form_var curve_form_() const;
	void curve_form_ (const SdaiB_spline_curve_form_var x);

	const SCLLOG(Logical) closed_curve_() const;
	void closed_curve_ (const SCLLOG(Logical) x);

	const SCLLOG(Logical) self_intersect_() const;
	void self_intersect_ (const SCLLOG(Logical) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiB_spline_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiB_spline_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiB_spline_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiB_spline_curve ;  }
#else
inline SdaiB_spline_curve *
create_SdaiB_spline_curve () {  return  new SdaiB_spline_curve ;  }
#endif

/////////	 END_ENTITY b_spline_curve


/////////	 ENTITY rational_b_spline_curve

extern AttrDescriptor *a_85weights_data;
extern Derived_attribute *a_86Dweights;

class SdaiRational_b_spline_curve  :    public SdaiB_spline_curve  {
 
#ifdef __OSTORE__
  friend void SdaiRational_b_spline_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	RealAggregate _weights_data ;
  public:  

	SdaiRational_b_spline_curve ( ); 
	SdaiRational_b_spline_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiRational_b_spline_curve (SdaiRational_b_spline_curve& e ); 
	~SdaiRational_b_spline_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 42 ; } 
	const RealAggregate_ptr weights_data_() const;
	void weights_data_ (const RealAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiRational_b_spline_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiRational_b_spline_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiRational_b_spline_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiRational_b_spline_curve ;  }
#else
inline SdaiRational_b_spline_curve *
create_SdaiRational_b_spline_curve () {  return  new SdaiRational_b_spline_curve ;  }
#endif

/////////	 END_ENTITY rational_b_spline_curve


/////////	 ENTITY action_request_assignment

extern AttrDescriptor *a_87assigned_action_request;

class SdaiAction_request_assignment  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAction_request_assignment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _assigned_action_request ;
  public:  

	SdaiAction_request_assignment ( ); 
	SdaiAction_request_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAction_request_assignment (SdaiAction_request_assignment& e ); 
	~SdaiAction_request_assignment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 43 ; } 
	const SdaiVersioned_action_request_ptr assigned_action_request_() const;
	void assigned_action_request_ (const SdaiVersioned_action_request_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAction_request_assignment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAction_request_assignment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAction_request_assignment () {  return (SCLP23(Application_instance_ptr)) new SdaiAction_request_assignment ;  }
#else
inline SdaiAction_request_assignment *
create_SdaiAction_request_assignment () {  return  new SdaiAction_request_assignment ;  }
#endif

/////////	 END_ENTITY action_request_assignment


/////////	 ENTITY topological_representation_item


class SdaiTopological_representation_item  :    public SdaiRepresentation_item  {
 
#ifdef __OSTORE__
  friend void SdaiTopological_representation_item_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiTopological_representation_item ( ); 
	SdaiTopological_representation_item (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiTopological_representation_item (SdaiTopological_representation_item& e ); 
	~SdaiTopological_representation_item ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 44 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiTopological_representation_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiTopological_representation_item(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiTopological_representation_item () {  return (SCLP23(Application_instance_ptr)) new SdaiTopological_representation_item ;  }
#else
inline SdaiTopological_representation_item *
create_SdaiTopological_representation_item () {  return  new SdaiTopological_representation_item ;  }
#endif

/////////	 END_ENTITY topological_representation_item


/////////	 ENTITY face_bound

extern AttrDescriptor *a_88bound;
extern AttrDescriptor *a_89orientation;

class SdaiFace_bound  :    public SdaiTopological_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiFace_bound_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _bound ;
	SCLP23(BOOL) _orientation ;
  public:  

	SdaiFace_bound ( ); 
	SdaiFace_bound (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiFace_bound (SdaiFace_bound& e ); 
	~SdaiFace_bound ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 45 ; } 
	const SdaiLoop_ptr bound_() const;
	void bound_ (const SdaiLoop_ptr x);

	const SCLBOOL(Bool) orientation_() const;
	void orientation_ (const SCLBOOL(Bool) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiFace_bound_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiFace_bound(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiFace_bound () {  return (SCLP23(Application_instance_ptr)) new SdaiFace_bound ;  }
#else
inline SdaiFace_bound *
create_SdaiFace_bound () {  return  new SdaiFace_bound ;  }
#endif

/////////	 END_ENTITY face_bound


/////////	 ENTITY length_measure_with_unit


class SdaiLength_measure_with_unit  :    public SdaiMeasure_with_unit  {
 
#ifdef __OSTORE__
  friend void SdaiLength_measure_with_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiLength_measure_with_unit ( ); 
	SdaiLength_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiLength_measure_with_unit (SdaiLength_measure_with_unit& e ); 
	~SdaiLength_measure_with_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 46 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiLength_measure_with_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiLength_measure_with_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiLength_measure_with_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiLength_measure_with_unit ;  }
#else
inline SdaiLength_measure_with_unit *
create_SdaiLength_measure_with_unit () {  return  new SdaiLength_measure_with_unit ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiDated_effectivity_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _effectivity_start_date ;
	SCLP23(Application_instance_ptr) _effectivity_end_date ;    //  OPTIONAL
  public:  

	SdaiDated_effectivity ( ); 
	SdaiDated_effectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDated_effectivity (SdaiDated_effectivity& e ); 
	~SdaiDated_effectivity ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 47 ; } 
	const SdaiDate_and_time_ptr effectivity_start_date_() const;
	void effectivity_start_date_ (const SdaiDate_and_time_ptr x);

	const SdaiDate_and_time_ptr effectivity_end_date_() const;
	void effectivity_end_date_ (const SdaiDate_and_time_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDated_effectivity_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDated_effectivity(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDated_effectivity () {  return (SCLP23(Application_instance_ptr)) new SdaiDated_effectivity ;  }
#else
inline SdaiDated_effectivity *
create_SdaiDated_effectivity () {  return  new SdaiDated_effectivity ;  }
#endif

/////////	 END_ENTITY dated_effectivity


/////////	 ENTITY direction

extern AttrDescriptor *a_92direction_ratios;

class SdaiDirection  :    public SdaiGeometric_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiDirection_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	RealAggregate _direction_ratios ;
  public:  

	SdaiDirection ( ); 
	SdaiDirection (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDirection (SdaiDirection& e ); 
	~SdaiDirection ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 48 ; } 
	const RealAggregate_ptr direction_ratios_() const;
	void direction_ratios_ (const RealAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDirection_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDirection(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDirection () {  return (SCLP23(Application_instance_ptr)) new SdaiDirection ;  }
#else
inline SdaiDirection *
create_SdaiDirection () {  return  new SdaiDirection ;  }
#endif

/////////	 END_ENTITY direction


/////////	 ENTITY next_assembly_usage_occurrence


class SdaiNext_assembly_usage_occurrence  :    public SdaiAssembly_component_usage  {
 
#ifdef __OSTORE__
  friend void SdaiNext_assembly_usage_occurrence_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiNext_assembly_usage_occurrence ( ); 
	SdaiNext_assembly_usage_occurrence (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiNext_assembly_usage_occurrence (SdaiNext_assembly_usage_occurrence& e ); 
	~SdaiNext_assembly_usage_occurrence ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 49 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiNext_assembly_usage_occurrence_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiNext_assembly_usage_occurrence(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiNext_assembly_usage_occurrence () {  return (SCLP23(Application_instance_ptr)) new SdaiNext_assembly_usage_occurrence ;  }
#else
inline SdaiNext_assembly_usage_occurrence *
create_SdaiNext_assembly_usage_occurrence () {  return  new SdaiNext_assembly_usage_occurrence ;  }
#endif

/////////	 END_ENTITY next_assembly_usage_occurrence


/////////	 ENTITY edge

extern AttrDescriptor *a_93edge_start;
extern AttrDescriptor *a_94edge_end;

class SdaiEdge  :    public SdaiTopological_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiEdge_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _edge_start ;
	SCLP23(Application_instance_ptr) _edge_end ;
  public:  

	SdaiEdge ( ); 
	SdaiEdge (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiEdge (SdaiEdge& e ); 
	~SdaiEdge ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 50 ; } 
	const SdaiVertex_ptr edge_start_() const;
	void edge_start_ (const SdaiVertex_ptr x);

	const SdaiVertex_ptr edge_end_() const;
	void edge_end_ (const SdaiVertex_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiEdge_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiEdge(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiEdge () {  return (SCLP23(Application_instance_ptr)) new SdaiEdge ;  }
#else
inline SdaiEdge *
create_SdaiEdge () {  return  new SdaiEdge ;  }
#endif

/////////	 END_ENTITY edge


/////////	 ENTITY oriented_edge

extern AttrDescriptor *a_95edge_element;
extern AttrDescriptor *a_96orientation;
extern Derived_attribute *a_97Dedge_edge_start;
extern Derived_attribute *a_98Dedge_edge_end;

class SdaiOriented_edge  :    public SdaiEdge  {
 
#ifdef __OSTORE__
  friend void SdaiOriented_edge_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _edge_element ;
	SCLP23(BOOL) _orientation ;
  public:  

	SdaiOriented_edge ( ); 
	SdaiOriented_edge (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOriented_edge (SdaiOriented_edge& e ); 
	~SdaiOriented_edge ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 51 ; } 
	const SdaiEdge_ptr edge_element_() const;
	void edge_element_ (const SdaiEdge_ptr x);

	const SCLBOOL(Bool) orientation_() const;
	void orientation_ (const SCLBOOL(Bool) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOriented_edge_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOriented_edge(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOriented_edge () {  return (SCLP23(Application_instance_ptr)) new SdaiOriented_edge ;  }
#else
inline SdaiOriented_edge *
create_SdaiOriented_edge () {  return  new SdaiOriented_edge ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiPerson_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;
	SCLP23(String) _last_name ;    //  OPTIONAL
	SCLP23(String) _first_name ;    //  OPTIONAL
	StringAggregate _middle_names ;    //  OPTIONAL	  //  of  label

	StringAggregate _prefix_titles ;    //  OPTIONAL	  //  of  label

	StringAggregate _suffix_titles ;    //  OPTIONAL	  //  of  label

  public:  

	SdaiPerson ( ); 
	SdaiPerson (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPerson (SdaiPerson& e ); 
	~SdaiPerson ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 52 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiLabel last_name_() const;
	void last_name_ (const SdaiLabel x);

	const SdaiLabel first_name_() const;
	void first_name_ (const SdaiLabel x);

	const StringAggregate_ptr middle_names_() const;
	void middle_names_ (const StringAggregate_ptr x);

	const StringAggregate_ptr prefix_titles_() const;
	void prefix_titles_ (const StringAggregate_ptr x);

	const StringAggregate_ptr suffix_titles_() const;
	void suffix_titles_ (const StringAggregate_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPerson_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPerson(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPerson () {  return (SCLP23(Application_instance_ptr)) new SdaiPerson ;  }
#else
inline SdaiPerson *
create_SdaiPerson () {  return  new SdaiPerson ;  }
#endif

/////////	 END_ENTITY person


/////////	 ENTITY document

extern AttrDescriptor *a_105id;
extern AttrDescriptor *a_106name;
extern AttrDescriptor *a_107description;
extern AttrDescriptor *a_108kind;

class SdaiDocument  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiDocument_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _kind ;
  public:  

	SdaiDocument ( ); 
	SdaiDocument (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDocument (SdaiDocument& e ); 
	~SdaiDocument ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 53 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiDocument_type_ptr kind_() const;
	void kind_ (const SdaiDocument_type_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDocument_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDocument(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDocument () {  return (SCLP23(Application_instance_ptr)) new SdaiDocument ;  }
#else
inline SdaiDocument *
create_SdaiDocument () {  return  new SdaiDocument ;  }
#endif

/////////	 END_ENTITY document


/////////	 ENTITY document_with_class

extern AttrDescriptor *a_109class;

class SdaiDocument_with_class  :    public SdaiDocument  {
 
#ifdef __OSTORE__
  friend void SdaiDocument_with_class_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _class ;
  public:  

	SdaiDocument_with_class ( ); 
	SdaiDocument_with_class (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDocument_with_class (SdaiDocument_with_class& e ); 
	~SdaiDocument_with_class ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 54 ; } 
	const SdaiIdentifier class_() const;
	void class_ (const SdaiIdentifier x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDocument_with_class_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDocument_with_class(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDocument_with_class () {  return (SCLP23(Application_instance_ptr)) new SdaiDocument_with_class ;  }
#else
inline SdaiDocument_with_class *
create_SdaiDocument_with_class () {  return  new SdaiDocument_with_class ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiConversion_based_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(Application_instance_ptr) _conversion_factor ;
  public:  

	SdaiConversion_based_unit ( ); 
	SdaiConversion_based_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiConversion_based_unit (SdaiConversion_based_unit& e ); 
	~SdaiConversion_based_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 55 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiMeasure_with_unit_ptr conversion_factor_() const;
	void conversion_factor_ (const SdaiMeasure_with_unit_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiConversion_based_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiConversion_based_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiConversion_based_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiConversion_based_unit ;  }
#else
inline SdaiConversion_based_unit *
create_SdaiConversion_based_unit () {  return  new SdaiConversion_based_unit ;  }
#endif

/////////	 END_ENTITY conversion_based_unit


/////////	 ENTITY point


class SdaiPoint  :    public SdaiGeometric_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiPoint_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiPoint ( ); 
	SdaiPoint (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPoint (SdaiPoint& e ); 
	~SdaiPoint ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 56 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPoint_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPoint(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPoint () {  return (SCLP23(Application_instance_ptr)) new SdaiPoint ;  }
#else
inline SdaiPoint *
create_SdaiPoint () {  return  new SdaiPoint ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiPoint_on_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _basis_surface ;
	SCLP23(Real) _point_parameter_u ;
	SCLP23(Real) _point_parameter_v ;
  public:  

	SdaiPoint_on_surface ( ); 
	SdaiPoint_on_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPoint_on_surface (SdaiPoint_on_surface& e ); 
	~SdaiPoint_on_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 57 ; } 
	const SdaiSurface_ptr basis_surface_() const;
	void basis_surface_ (const SdaiSurface_ptr x);

	const SdaiParameter_value point_parameter_u_() const;
	void point_parameter_u_ (const SdaiParameter_value x);

	const SdaiParameter_value point_parameter_v_() const;
	void point_parameter_v_ (const SdaiParameter_value x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPoint_on_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPoint_on_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPoint_on_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiPoint_on_surface ;  }
#else
inline SdaiPoint_on_surface *
create_SdaiPoint_on_surface () {  return  new SdaiPoint_on_surface ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiProduct_definition_formation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _of_product ;
  public:  

	SdaiProduct_definition_formation ( ); 
	SdaiProduct_definition_formation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_definition_formation (SdaiProduct_definition_formation& e ); 
	~SdaiProduct_definition_formation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 58 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiProduct_ptr of_product_() const;
	void of_product_ (const SdaiProduct_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_definition_formation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_formation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_formation () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_formation ;  }
#else
inline SdaiProduct_definition_formation *
create_SdaiProduct_definition_formation () {  return  new SdaiProduct_definition_formation ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiPerson_and_organization_assignment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _assigned_person_and_organization ;
	SCLP23(Application_instance_ptr) _role ;
  public:  

	SdaiPerson_and_organization_assignment ( ); 
	SdaiPerson_and_organization_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPerson_and_organization_assignment (SdaiPerson_and_organization_assignment& e ); 
	~SdaiPerson_and_organization_assignment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 59 ; } 
	const SdaiPerson_and_organization_ptr assigned_person_and_organization_() const;
	void assigned_person_and_organization_ (const SdaiPerson_and_organization_ptr x);

	const SdaiPerson_and_organization_role_ptr role_() const;
	void role_ (const SdaiPerson_and_organization_role_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPerson_and_organization_assignment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPerson_and_organization_assignment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPerson_and_organization_assignment () {  return (SCLP23(Application_instance_ptr)) new SdaiPerson_and_organization_assignment ;  }
#else
inline SdaiPerson_and_organization_assignment *
create_SdaiPerson_and_organization_assignment () {  return  new SdaiPerson_and_organization_assignment ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiCc_design_person_and_organization_assignment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiPerson_organization_items _items ;	  //  of  person_organization_item

  public:  

	SdaiCc_design_person_and_organization_assignment ( ); 
	SdaiCc_design_person_and_organization_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCc_design_person_and_organization_assignment (SdaiCc_design_person_and_organization_assignment& e ); 
	~SdaiCc_design_person_and_organization_assignment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 60 ; } 
	const SdaiPerson_organization_items_ptr items_() const;
	void items_ (const SdaiPerson_organization_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCc_design_person_and_organization_assignment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCc_design_person_and_organization_assignment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCc_design_person_and_organization_assignment () {  return (SCLP23(Application_instance_ptr)) new SdaiCc_design_person_and_organization_assignment ;  }
#else
inline SdaiCc_design_person_and_organization_assignment *
create_SdaiCc_design_person_and_organization_assignment () {  return  new SdaiCc_design_person_and_organization_assignment ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiOffset_curve_3d_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _basis_curve ;
	SCLP23(Real) _distance ;
	SCLP23(LOGICAL) _self_intersect ;
	SCLP23(Application_instance_ptr) _ref_direction ;
  public:  

	SdaiOffset_curve_3d ( ); 
	SdaiOffset_curve_3d (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOffset_curve_3d (SdaiOffset_curve_3d& e ); 
	~SdaiOffset_curve_3d ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 61 ; } 
	const SdaiCurve_ptr basis_curve_() const;
	void basis_curve_ (const SdaiCurve_ptr x);

	const SdaiLength_measure distance_() const;
	void distance_ (const SdaiLength_measure x);

	const SCLLOG(Logical) self_intersect_() const;
	void self_intersect_ (const SCLLOG(Logical) x);

	const SdaiDirection_ptr ref_direction_() const;
	void ref_direction_ (const SdaiDirection_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOffset_curve_3d_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOffset_curve_3d(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOffset_curve_3d () {  return (SCLP23(Application_instance_ptr)) new SdaiOffset_curve_3d ;  }
#else
inline SdaiOffset_curve_3d *
create_SdaiOffset_curve_3d () {  return  new SdaiOffset_curve_3d ;  }
#endif

/////////	 END_ENTITY offset_curve_3d


/////////	 ENTITY approval

extern AttrDescriptor *a_125status;
extern AttrDescriptor *a_126level;

class SdaiApproval  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiApproval_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _status ;
	SCLP23(String) _level ;
  public:  

	SdaiApproval ( ); 
	SdaiApproval (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiApproval (SdaiApproval& e ); 
	~SdaiApproval ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 62 ; } 
	const SdaiApproval_status_ptr status_() const;
	void status_ (const SdaiApproval_status_ptr x);

	const SdaiLabel level_() const;
	void level_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiApproval_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiApproval(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiApproval () {  return (SCLP23(Application_instance_ptr)) new SdaiApproval ;  }
#else
inline SdaiApproval *
create_SdaiApproval () {  return  new SdaiApproval ;  }
#endif

/////////	 END_ENTITY approval


/////////	 ENTITY composite_curve

extern AttrDescriptor *a_127segments;
extern AttrDescriptor *a_128self_intersect;
extern Derived_attribute *a_129Dn_segments;
extern Derived_attribute *a_130Dclosed_curve;

class SdaiComposite_curve  :    public SdaiBounded_curve  {
 
#ifdef __OSTORE__
  friend void SdaiComposite_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _segments ;	  //  of  composite_curve_segment

	SCLP23(LOGICAL) _self_intersect ;
  public:  

	SdaiComposite_curve ( ); 
	SdaiComposite_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiComposite_curve (SdaiComposite_curve& e ); 
	~SdaiComposite_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 63 ; } 
	const EntityAggregate_ptr segments_() const;
	void segments_ (const EntityAggregate_ptr x);

	const SCLLOG(Logical) self_intersect_() const;
	void self_intersect_ (const SCLLOG(Logical) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiComposite_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiComposite_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiComposite_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiComposite_curve ;  }
#else
inline SdaiComposite_curve *
create_SdaiComposite_curve () {  return  new SdaiComposite_curve ;  }
#endif

/////////	 END_ENTITY composite_curve


/////////	 ENTITY composite_curve_on_surface

extern Derived_attribute *a_131Dbasis_surface;

class SdaiComposite_curve_on_surface  :    public SdaiComposite_curve  {
 
#ifdef __OSTORE__
  friend void SdaiComposite_curve_on_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiComposite_curve_on_surface ( ); 
	SdaiComposite_curve_on_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiComposite_curve_on_surface (SdaiComposite_curve_on_surface& e ); 
	~SdaiComposite_curve_on_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 64 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiComposite_curve_on_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiComposite_curve_on_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiComposite_curve_on_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiComposite_curve_on_surface ;  }
#else
inline SdaiComposite_curve_on_surface *
create_SdaiComposite_curve_on_surface () {  return  new SdaiComposite_curve_on_surface ;  }
#endif

/////////	 END_ENTITY composite_curve_on_surface


/////////	 ENTITY boundary_curve


class SdaiBoundary_curve  :    public SdaiComposite_curve_on_surface  {
 
#ifdef __OSTORE__
  friend void SdaiBoundary_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiBoundary_curve ( ); 
	SdaiBoundary_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiBoundary_curve (SdaiBoundary_curve& e ); 
	~SdaiBoundary_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 65 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiBoundary_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiBoundary_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiBoundary_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiBoundary_curve ;  }
#else
inline SdaiBoundary_curve *
create_SdaiBoundary_curve () {  return  new SdaiBoundary_curve ;  }
#endif

/////////	 END_ENTITY boundary_curve


/////////	 ENTITY representation_context

extern AttrDescriptor *a_132context_identifier;
extern AttrDescriptor *a_133context_type;
extern Inverse_attribute *a_134Irepresentations_in_context;

class SdaiRepresentation_context  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiRepresentation_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _context_identifier ;
	SCLP23(String) _context_type ;
	EntityAggregate _representations_in_context ;	  //  of  representation

  public:  

	SdaiRepresentation_context ( ); 
	SdaiRepresentation_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiRepresentation_context (SdaiRepresentation_context& e ); 
	~SdaiRepresentation_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 66 ; } 
	const SdaiIdentifier context_identifier_() const;
	void context_identifier_ (const SdaiIdentifier x);

	const SdaiText context_type_() const;
	void context_type_ (const SdaiText x);

	const EntityAggregate_ptr representations_in_context_() const;
	void representations_in_context_ (const EntityAggregate_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiRepresentation_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiRepresentation_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiRepresentation_context () {  return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_context ;  }
#else
inline SdaiRepresentation_context *
create_SdaiRepresentation_context () {  return  new SdaiRepresentation_context ;  }
#endif

/////////	 END_ENTITY representation_context


/////////	 ENTITY geometric_representation_context

extern AttrDescriptor *a_135coordinate_space_dimension;

class SdaiGeometric_representation_context  :    public SdaiRepresentation_context  {
 
#ifdef __OSTORE__
  friend void SdaiGeometric_representation_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Integer) _coordinate_space_dimension ;
  public:  

	SdaiGeometric_representation_context ( ); 
	SdaiGeometric_representation_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiGeometric_representation_context (SdaiGeometric_representation_context& e ); 
	~SdaiGeometric_representation_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 67 ; } 
	const SdaiDimension_count coordinate_space_dimension_() const;
	void coordinate_space_dimension_ (const SdaiDimension_count x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiGeometric_representation_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiGeometric_representation_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiGeometric_representation_context () {  return (SCLP23(Application_instance_ptr)) new SdaiGeometric_representation_context ;  }
#else
inline SdaiGeometric_representation_context *
create_SdaiGeometric_representation_context () {  return  new SdaiGeometric_representation_context ;  }
#endif

/////////	 END_ENTITY geometric_representation_context


/////////	 ENTITY action_status

extern AttrDescriptor *a_136status;
extern AttrDescriptor *a_137assigned_action;

class SdaiAction_status  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAction_status_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _status ;
	SCLP23(Application_instance_ptr) _assigned_action ;
  public:  

	SdaiAction_status ( ); 
	SdaiAction_status (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAction_status (SdaiAction_status& e ); 
	~SdaiAction_status ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 68 ; } 
	const SdaiLabel status_() const;
	void status_ (const SdaiLabel x);

	const SdaiExecuted_action_ptr assigned_action_() const;
	void assigned_action_ (const SdaiExecuted_action_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAction_status_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAction_status(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAction_status () {  return (SCLP23(Application_instance_ptr)) new SdaiAction_status ;  }
#else
inline SdaiAction_status *
create_SdaiAction_status () {  return  new SdaiAction_status ;  }
#endif

/////////	 END_ENTITY action_status


/////////	 ENTITY application_context

extern AttrDescriptor *a_138application;
extern Inverse_attribute *a_139Icontext_elements;

class SdaiApplication_context  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiApplication_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _application ;
	EntityAggregate _context_elements ;	  //  of  application_context_element

  public:  

	SdaiApplication_context ( ); 
	SdaiApplication_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiApplication_context (SdaiApplication_context& e ); 
	~SdaiApplication_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 69 ; } 
	const SdaiText application_() const;
	void application_ (const SdaiText x);

	const EntityAggregate_ptr context_elements_() const;
	void context_elements_ (const EntityAggregate_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiApplication_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiApplication_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiApplication_context () {  return (SCLP23(Application_instance_ptr)) new SdaiApplication_context ;  }
#else
inline SdaiApplication_context *
create_SdaiApplication_context () {  return  new SdaiApplication_context ;  }
#endif

/////////	 END_ENTITY application_context


/////////	 ENTITY change_request

extern AttrDescriptor *a_140items;

class SdaiChange_request  :    public SdaiAction_request_assignment  {
 
#ifdef __OSTORE__
  friend void SdaiChange_request_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiChange_request_items _items ;	  //  of  change_request_item

  public:  

	SdaiChange_request ( ); 
	SdaiChange_request (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiChange_request (SdaiChange_request& e ); 
	~SdaiChange_request ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 70 ; } 
	const SdaiChange_request_items_ptr items_() const;
	void items_ (const SdaiChange_request_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiChange_request_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiChange_request(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiChange_request () {  return (SCLP23(Application_instance_ptr)) new SdaiChange_request ;  }
#else
inline SdaiChange_request *
create_SdaiChange_request () {  return  new SdaiChange_request ;  }
#endif

/////////	 END_ENTITY change_request


/////////	 ENTITY date_and_time

extern AttrDescriptor *a_141date_component;
extern AttrDescriptor *a_142time_component;

class SdaiDate_and_time  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiDate_and_time_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _date_component ;
	SCLP23(Application_instance_ptr) _time_component ;
  public:  

	SdaiDate_and_time ( ); 
	SdaiDate_and_time (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDate_and_time (SdaiDate_and_time& e ); 
	~SdaiDate_and_time ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 71 ; } 
	const SdaiDate_ptr date_component_() const;
	void date_component_ (const SdaiDate_ptr x);

	const SdaiLocal_time_ptr time_component_() const;
	void time_component_ (const SdaiLocal_time_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDate_and_time_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDate_and_time(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDate_and_time () {  return (SCLP23(Application_instance_ptr)) new SdaiDate_and_time ;  }
#else
inline SdaiDate_and_time *
create_SdaiDate_and_time () {  return  new SdaiDate_and_time ;  }
#endif

/////////	 END_ENTITY date_and_time


/////////	 ENTITY approval_date_time

extern AttrDescriptor *a_143date_time;
extern AttrDescriptor *a_144dated_approval;

class SdaiApproval_date_time  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiApproval_date_time_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiDate_time_select _date_time ;
	SCLP23(Application_instance_ptr) _dated_approval ;
  public:  

	SdaiApproval_date_time ( ); 
	SdaiApproval_date_time (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiApproval_date_time (SdaiApproval_date_time& e ); 
	~SdaiApproval_date_time ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 72 ; } 
	const SdaiDate_time_select_ptr date_time_() const;
	void date_time_ (const SdaiDate_time_select_ptr x);

	const SdaiApproval_ptr dated_approval_() const;
	void dated_approval_ (const SdaiApproval_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiApproval_date_time_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiApproval_date_time(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiApproval_date_time () {  return (SCLP23(Application_instance_ptr)) new SdaiApproval_date_time ;  }
#else
inline SdaiApproval_date_time *
create_SdaiApproval_date_time () {  return  new SdaiApproval_date_time ;  }
#endif

/////////	 END_ENTITY approval_date_time


/////////	 ENTITY approval_role

extern AttrDescriptor *a_145role;

class SdaiApproval_role  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiApproval_role_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _role ;
  public:  

	SdaiApproval_role ( ); 
	SdaiApproval_role (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiApproval_role (SdaiApproval_role& e ); 
	~SdaiApproval_role ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 73 ; } 
	const SdaiLabel role_() const;
	void role_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiApproval_role_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiApproval_role(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiApproval_role () {  return (SCLP23(Application_instance_ptr)) new SdaiApproval_role ;  }
#else
inline SdaiApproval_role *
create_SdaiApproval_role () {  return  new SdaiApproval_role ;  }
#endif

/////////	 END_ENTITY approval_role


/////////	 ENTITY application_context_element

extern AttrDescriptor *a_146name;
extern AttrDescriptor *a_147frame_of_reference;

class SdaiApplication_context_element  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiApplication_context_element_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(Application_instance_ptr) _frame_of_reference ;
  public:  

	SdaiApplication_context_element ( ); 
	SdaiApplication_context_element (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiApplication_context_element (SdaiApplication_context_element& e ); 
	~SdaiApplication_context_element ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 74 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiApplication_context_ptr frame_of_reference_() const;
	void frame_of_reference_ (const SdaiApplication_context_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiApplication_context_element_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiApplication_context_element(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiApplication_context_element () {  return (SCLP23(Application_instance_ptr)) new SdaiApplication_context_element ;  }
#else
inline SdaiApplication_context_element *
create_SdaiApplication_context_element () {  return  new SdaiApplication_context_element ;  }
#endif

/////////	 END_ENTITY application_context_element


/////////	 ENTITY product_context

extern AttrDescriptor *a_148discipline_type;

class SdaiProduct_context  :    public SdaiApplication_context_element  {
 
#ifdef __OSTORE__
  friend void SdaiProduct_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _discipline_type ;
  public:  

	SdaiProduct_context ( ); 
	SdaiProduct_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_context (SdaiProduct_context& e ); 
	~SdaiProduct_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 75 ; } 
	const SdaiLabel discipline_type_() const;
	void discipline_type_ (const SdaiLabel x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_context () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_context ;  }
#else
inline SdaiProduct_context *
create_SdaiProduct_context () {  return  new SdaiProduct_context ;  }
#endif

/////////	 END_ENTITY product_context


/////////	 ENTITY elementary_surface

extern AttrDescriptor *a_149position;

class SdaiElementary_surface  :    public SdaiSurface  {
 
#ifdef __OSTORE__
  friend void SdaiElementary_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _position ;
  public:  

	SdaiElementary_surface ( ); 
	SdaiElementary_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiElementary_surface (SdaiElementary_surface& e ); 
	~SdaiElementary_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 76 ; } 
	const SdaiAxis2_placement_3d_ptr position_() const;
	void position_ (const SdaiAxis2_placement_3d_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiElementary_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiElementary_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiElementary_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiElementary_surface ;  }
#else
inline SdaiElementary_surface *
create_SdaiElementary_surface () {  return  new SdaiElementary_surface ;  }
#endif

/////////	 END_ENTITY elementary_surface


/////////	 ENTITY spherical_surface

extern AttrDescriptor *a_150radius;

class SdaiSpherical_surface  :    public SdaiElementary_surface  {
 
#ifdef __OSTORE__
  friend void SdaiSpherical_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Real) _radius ;
  public:  

	SdaiSpherical_surface ( ); 
	SdaiSpherical_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSpherical_surface (SdaiSpherical_surface& e ); 
	~SdaiSpherical_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 77 ; } 
	const SdaiPositive_length_measure radius_() const;
	void radius_ (const SdaiPositive_length_measure x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSpherical_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSpherical_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSpherical_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiSpherical_surface ;  }
#else
inline SdaiSpherical_surface *
create_SdaiSpherical_surface () {  return  new SdaiSpherical_surface ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiApplication_protocol_definition_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _status ;
	SCLP23(String) _application_interpreted_model_schema_name ;
	SCLP23(Integer) _application_protocol_year ;
	SCLP23(Application_instance_ptr) _application ;
  public:  

	SdaiApplication_protocol_definition ( ); 
	SdaiApplication_protocol_definition (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiApplication_protocol_definition (SdaiApplication_protocol_definition& e ); 
	~SdaiApplication_protocol_definition ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 78 ; } 
	const SdaiLabel status_() const;
	void status_ (const SdaiLabel x);

	const SdaiLabel application_interpreted_model_schema_name_() const;
	void application_interpreted_model_schema_name_ (const SdaiLabel x);

	const SdaiYear_number application_protocol_year_() const;
	void application_protocol_year_ (const SdaiYear_number x);

	const SdaiApplication_context_ptr application_() const;
	void application_ (const SdaiApplication_context_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiApplication_protocol_definition_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiApplication_protocol_definition(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiApplication_protocol_definition () {  return (SCLP23(Application_instance_ptr)) new SdaiApplication_protocol_definition ;  }
#else
inline SdaiApplication_protocol_definition *
create_SdaiApplication_protocol_definition () {  return  new SdaiApplication_protocol_definition ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiSpecified_higher_usage_occurrence_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _upper_usage ;
	SCLP23(Application_instance_ptr) _next_usage ;
  public:  

	SdaiSpecified_higher_usage_occurrence ( ); 
	SdaiSpecified_higher_usage_occurrence (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSpecified_higher_usage_occurrence (SdaiSpecified_higher_usage_occurrence& e ); 
	~SdaiSpecified_higher_usage_occurrence ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 79 ; } 
	const SdaiAssembly_component_usage_ptr upper_usage_() const;
	void upper_usage_ (const SdaiAssembly_component_usage_ptr x);

	const SdaiNext_assembly_usage_occurrence_ptr next_usage_() const;
	void next_usage_ (const SdaiNext_assembly_usage_occurrence_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSpecified_higher_usage_occurrence_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSpecified_higher_usage_occurrence(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSpecified_higher_usage_occurrence () {  return (SCLP23(Application_instance_ptr)) new SdaiSpecified_higher_usage_occurrence ;  }
#else
inline SdaiSpecified_higher_usage_occurrence *
create_SdaiSpecified_higher_usage_occurrence () {  return  new SdaiSpecified_higher_usage_occurrence ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiProduct_definition_formation_with_specified_source_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiSource_var _make_or_buy ;
  public:  

	SdaiProduct_definition_formation_with_specified_source ( ); 
	SdaiProduct_definition_formation_with_specified_source (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_definition_formation_with_specified_source (SdaiProduct_definition_formation_with_specified_source& e ); 
	~SdaiProduct_definition_formation_with_specified_source ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 80 ; } 
	const SdaiSource_var make_or_buy_() const;
	void make_or_buy_ (const SdaiSource_var x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_definition_formation_with_specified_source_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_formation_with_specified_source(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_formation_with_specified_source () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_formation_with_specified_source ;  }
#else
inline SdaiProduct_definition_formation_with_specified_source *
create_SdaiProduct_definition_formation_with_specified_source () {  return  new SdaiProduct_definition_formation_with_specified_source ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAction_request_solution_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _method ;
	SCLP23(Application_instance_ptr) _request ;
  public:  

	SdaiAction_request_solution ( ); 
	SdaiAction_request_solution (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAction_request_solution (SdaiAction_request_solution& e ); 
	~SdaiAction_request_solution ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 81 ; } 
	const SdaiAction_method_ptr method_() const;
	void method_ (const SdaiAction_method_ptr x);

	const SdaiVersioned_action_request_ptr request_() const;
	void request_ (const SdaiVersioned_action_request_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAction_request_solution_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAction_request_solution(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAction_request_solution () {  return (SCLP23(Application_instance_ptr)) new SdaiAction_request_solution ;  }
#else
inline SdaiAction_request_solution *
create_SdaiAction_request_solution () {  return  new SdaiAction_request_solution ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiUncertainty_measure_with_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
  public:  

	SdaiUncertainty_measure_with_unit ( ); 
	SdaiUncertainty_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiUncertainty_measure_with_unit (SdaiUncertainty_measure_with_unit& e ); 
	~SdaiUncertainty_measure_with_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 82 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiUncertainty_measure_with_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiUncertainty_measure_with_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiUncertainty_measure_with_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiUncertainty_measure_with_unit ;  }
#else
inline SdaiUncertainty_measure_with_unit *
create_SdaiUncertainty_measure_with_unit () {  return  new SdaiUncertainty_measure_with_unit ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiEdge_based_wireframe_model_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _ebwm_boundary ;	  //  of  connected_edge_set

  public:  

	SdaiEdge_based_wireframe_model ( ); 
	SdaiEdge_based_wireframe_model (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiEdge_based_wireframe_model (SdaiEdge_based_wireframe_model& e ); 
	~SdaiEdge_based_wireframe_model ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 83 ; } 
	const EntityAggregate_ptr ebwm_boundary_() const;
	void ebwm_boundary_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiEdge_based_wireframe_model_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiEdge_based_wireframe_model(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiEdge_based_wireframe_model () {  return (SCLP23(Application_instance_ptr)) new SdaiEdge_based_wireframe_model ;  }
#else
inline SdaiEdge_based_wireframe_model *
create_SdaiEdge_based_wireframe_model () {  return  new SdaiEdge_based_wireframe_model ;  }
#endif

/////////	 END_ENTITY edge_based_wireframe_model


/////////	 ENTITY path

extern AttrDescriptor *a_163edge_list;

class SdaiPath  :    public SdaiTopological_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiPath_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _edge_list ;	  //  of  oriented_edge

  public:  

	SdaiPath ( ); 
	SdaiPath (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPath (SdaiPath& e ); 
	~SdaiPath ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 84 ; } 
	const EntityAggregate_ptr edge_list_() const;
	void edge_list_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPath_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPath(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPath () {  return (SCLP23(Application_instance_ptr)) new SdaiPath ;  }
#else
inline SdaiPath *
create_SdaiPath () {  return  new SdaiPath ;  }
#endif

/////////	 END_ENTITY path


/////////	 ENTITY connected_face_set

extern AttrDescriptor *a_164cfs_faces;

class SdaiConnected_face_set  :    public SdaiTopological_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiConnected_face_set_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _cfs_faces ;	  //  of  face

  public:  

	SdaiConnected_face_set ( ); 
	SdaiConnected_face_set (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiConnected_face_set (SdaiConnected_face_set& e ); 
	~SdaiConnected_face_set ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 85 ; } 
	const EntityAggregate_ptr cfs_faces_() const;
	void cfs_faces_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiConnected_face_set_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiConnected_face_set(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiConnected_face_set () {  return (SCLP23(Application_instance_ptr)) new SdaiConnected_face_set ;  }
#else
inline SdaiConnected_face_set *
create_SdaiConnected_face_set () {  return  new SdaiConnected_face_set ;  }
#endif

/////////	 END_ENTITY connected_face_set


/////////	 ENTITY open_shell


class SdaiOpen_shell  :    public SdaiConnected_face_set  {
 
#ifdef __OSTORE__
  friend void SdaiOpen_shell_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiOpen_shell ( ); 
	SdaiOpen_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOpen_shell (SdaiOpen_shell& e ); 
	~SdaiOpen_shell ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 86 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOpen_shell_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOpen_shell(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOpen_shell () {  return (SCLP23(Application_instance_ptr)) new SdaiOpen_shell ;  }
#else
inline SdaiOpen_shell *
create_SdaiOpen_shell () {  return  new SdaiOpen_shell ;  }
#endif

/////////	 END_ENTITY open_shell


/////////	 ENTITY oriented_open_shell

extern AttrDescriptor *a_165open_shell_element;
extern AttrDescriptor *a_166orientation;
extern Derived_attribute *a_167Dconnected_face_set_cfs_faces;

class SdaiOriented_open_shell  :    public SdaiOpen_shell  {
 
#ifdef __OSTORE__
  friend void SdaiOriented_open_shell_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _open_shell_element ;
	SCLP23(BOOL) _orientation ;
  public:  

	SdaiOriented_open_shell ( ); 
	SdaiOriented_open_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOriented_open_shell (SdaiOriented_open_shell& e ); 
	~SdaiOriented_open_shell ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 87 ; } 
	const SdaiOpen_shell_ptr open_shell_element_() const;
	void open_shell_element_ (const SdaiOpen_shell_ptr x);

	const SCLBOOL(Bool) orientation_() const;
	void orientation_ (const SCLBOOL(Bool) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOriented_open_shell_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOriented_open_shell(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOriented_open_shell () {  return (SCLP23(Application_instance_ptr)) new SdaiOriented_open_shell ;  }
#else
inline SdaiOriented_open_shell *
create_SdaiOriented_open_shell () {  return  new SdaiOriented_open_shell ;  }
#endif

/////////	 END_ENTITY oriented_open_shell


/////////	 ENTITY solid_angle_unit


class SdaiSolid_angle_unit  :    public SdaiNamed_unit  {
 
#ifdef __OSTORE__
  friend void SdaiSolid_angle_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiSolid_angle_unit ( ); 
	SdaiSolid_angle_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSolid_angle_unit (SdaiSolid_angle_unit& e ); 
	~SdaiSolid_angle_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 88 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSolid_angle_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSolid_angle_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSolid_angle_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiSolid_angle_unit ;  }
#else
inline SdaiSolid_angle_unit *
create_SdaiSolid_angle_unit () {  return  new SdaiSolid_angle_unit ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiCoordinated_universal_time_offset_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Integer) _hour_offset ;
	SCLP23(Integer) _minute_offset ;    //  OPTIONAL
	SdaiAhead_or_behind_var _sense ;
  public:  

	SdaiCoordinated_universal_time_offset ( ); 
	SdaiCoordinated_universal_time_offset (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCoordinated_universal_time_offset (SdaiCoordinated_universal_time_offset& e ); 
	~SdaiCoordinated_universal_time_offset ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 89 ; } 
	const SdaiHour_in_day hour_offset_() const;
	void hour_offset_ (const SdaiHour_in_day x);

	const SdaiMinute_in_hour minute_offset_() const;
	void minute_offset_ (const SdaiMinute_in_hour x);

	const SdaiAhead_or_behind_var sense_() const;
	void sense_ (const SdaiAhead_or_behind_var x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCoordinated_universal_time_offset_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCoordinated_universal_time_offset(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCoordinated_universal_time_offset () {  return (SCLP23(Application_instance_ptr)) new SdaiCoordinated_universal_time_offset ;  }
#else
inline SdaiCoordinated_universal_time_offset *
create_SdaiCoordinated_universal_time_offset () {  return  new SdaiCoordinated_universal_time_offset ;  }
#endif

/////////	 END_ENTITY coordinated_universal_time_offset


/////////	 ENTITY curve_replica

extern AttrDescriptor *a_171parent_curve;
extern AttrDescriptor *a_172transformation;

class SdaiCurve_replica  :    public SdaiCurve  {
 
#ifdef __OSTORE__
  friend void SdaiCurve_replica_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _parent_curve ;
	SCLP23(Application_instance_ptr) _transformation ;
  public:  

	SdaiCurve_replica ( ); 
	SdaiCurve_replica (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCurve_replica (SdaiCurve_replica& e ); 
	~SdaiCurve_replica ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 90 ; } 
	const SdaiCurve_ptr parent_curve_() const;
	void parent_curve_ (const SdaiCurve_ptr x);

	const SdaiCartesian_transformation_operator_ptr transformation_() const;
	void transformation_ (const SdaiCartesian_transformation_operator_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCurve_replica_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCurve_replica(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCurve_replica () {  return (SCLP23(Application_instance_ptr)) new SdaiCurve_replica ;  }
#else
inline SdaiCurve_replica *
create_SdaiCurve_replica () {  return  new SdaiCurve_replica ;  }
#endif

/////////	 END_ENTITY curve_replica


/////////	 ENTITY quasi_uniform_surface


class SdaiQuasi_uniform_surface  :    public SdaiB_spline_surface  {
 
#ifdef __OSTORE__
  friend void SdaiQuasi_uniform_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiQuasi_uniform_surface ( ); 
	SdaiQuasi_uniform_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiQuasi_uniform_surface (SdaiQuasi_uniform_surface& e ); 
	~SdaiQuasi_uniform_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 91 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiQuasi_uniform_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiQuasi_uniform_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiQuasi_uniform_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiQuasi_uniform_surface ;  }
#else
inline SdaiQuasi_uniform_surface *
create_SdaiQuasi_uniform_surface () {  return  new SdaiQuasi_uniform_surface ;  }
#endif

/////////	 END_ENTITY quasi_uniform_surface


/////////	 ENTITY surface_curve

extern AttrDescriptor *a_173curve_3d;
extern AttrDescriptor *a_174associated_geometry;
extern AttrDescriptor *a_175master_representation;
extern Derived_attribute *a_176Dbasis_surface;

class SdaiSurface_curve  :    public SdaiCurve  {
 
#ifdef __OSTORE__
  friend void SdaiSurface_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _curve_3d ;
	SdaiPcurve_or_surfaces _associated_geometry ;	  //  of  pcurve_or_surface

	SdaiPreferred_surface_curve_representation_var _master_representation ;
  public:  

	SdaiSurface_curve ( ); 
	SdaiSurface_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSurface_curve (SdaiSurface_curve& e ); 
	~SdaiSurface_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 92 ; } 
	const SdaiCurve_ptr curve_3d_() const;
	void curve_3d_ (const SdaiCurve_ptr x);

	const SdaiPcurve_or_surfaces_ptr associated_geometry_() const;
	void associated_geometry_ (const SdaiPcurve_or_surfaces_ptr x);

	const SdaiPreferred_surface_curve_representation_var master_representation_() const;
	void master_representation_ (const SdaiPreferred_surface_curve_representation_var x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSurface_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSurface_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSurface_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiSurface_curve ;  }
#else
inline SdaiSurface_curve *
create_SdaiSurface_curve () {  return  new SdaiSurface_curve ;  }
#endif

/////////	 END_ENTITY surface_curve


/////////	 ENTITY action_request_status

extern AttrDescriptor *a_177status;
extern AttrDescriptor *a_178assigned_request;

class SdaiAction_request_status  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAction_request_status_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _status ;
	SCLP23(Application_instance_ptr) _assigned_request ;
  public:  

	SdaiAction_request_status ( ); 
	SdaiAction_request_status (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAction_request_status (SdaiAction_request_status& e ); 
	~SdaiAction_request_status ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 93 ; } 
	const SdaiLabel status_() const;
	void status_ (const SdaiLabel x);

	const SdaiVersioned_action_request_ptr assigned_request_() const;
	void assigned_request_ (const SdaiVersioned_action_request_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAction_request_status_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAction_request_status(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAction_request_status () {  return (SCLP23(Application_instance_ptr)) new SdaiAction_request_status ;  }
#else
inline SdaiAction_request_status *
create_SdaiAction_request_status () {  return  new SdaiAction_request_status ;  }
#endif

/////////	 END_ENTITY action_request_status


/////////	 ENTITY composite_curve_segment

extern AttrDescriptor *a_179transition;
extern AttrDescriptor *a_180same_sense;
extern AttrDescriptor *a_181parent_curve;
extern Inverse_attribute *a_182Iusing_curves;

class SdaiComposite_curve_segment  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiComposite_curve_segment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiTransition_code_var _transition ;
	SCLP23(BOOL) _same_sense ;
	SCLP23(Application_instance_ptr) _parent_curve ;
	EntityAggregate _using_curves ;	  //  of  composite_curve

  public:  

	SdaiComposite_curve_segment ( ); 
	SdaiComposite_curve_segment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiComposite_curve_segment (SdaiComposite_curve_segment& e ); 
	~SdaiComposite_curve_segment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 94 ; } 
	const SdaiTransition_code_var transition_() const;
	void transition_ (const SdaiTransition_code_var x);

	const SCLBOOL(Bool) same_sense_() const;
	void same_sense_ (const SCLBOOL(Bool) x);

	const SdaiCurve_ptr parent_curve_() const;
	void parent_curve_ (const SdaiCurve_ptr x);

	const EntityAggregate_ptr using_curves_() const;
	void using_curves_ (const EntityAggregate_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiComposite_curve_segment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiComposite_curve_segment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiComposite_curve_segment () {  return (SCLP23(Application_instance_ptr)) new SdaiComposite_curve_segment ;  }
#else
inline SdaiComposite_curve_segment *
create_SdaiComposite_curve_segment () {  return  new SdaiComposite_curve_segment ;  }
#endif

/////////	 END_ENTITY composite_curve_segment


/////////	 ENTITY reparametrised_composite_curve_segment

extern AttrDescriptor *a_183param_length;

class SdaiReparametrised_composite_curve_segment  :    public SdaiComposite_curve_segment  {
 
#ifdef __OSTORE__
  friend void SdaiReparametrised_composite_curve_segment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Real) _param_length ;
  public:  

	SdaiReparametrised_composite_curve_segment ( ); 
	SdaiReparametrised_composite_curve_segment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiReparametrised_composite_curve_segment (SdaiReparametrised_composite_curve_segment& e ); 
	~SdaiReparametrised_composite_curve_segment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 95 ; } 
	const SdaiParameter_value param_length_() const;
	void param_length_ (const SdaiParameter_value x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiReparametrised_composite_curve_segment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiReparametrised_composite_curve_segment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiReparametrised_composite_curve_segment () {  return (SCLP23(Application_instance_ptr)) new SdaiReparametrised_composite_curve_segment ;  }
#else
inline SdaiReparametrised_composite_curve_segment *
create_SdaiReparametrised_composite_curve_segment () {  return  new SdaiReparametrised_composite_curve_segment ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiRepresentation_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _rep_1 ;
	SCLP23(Application_instance_ptr) _rep_2 ;
  public:  

	SdaiRepresentation_relationship ( ); 
	SdaiRepresentation_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiRepresentation_relationship (SdaiRepresentation_relationship& e ); 
	~SdaiRepresentation_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 96 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiRepresentation_ptr rep_1_() const;
	void rep_1_ (const SdaiRepresentation_ptr x);

	const SdaiRepresentation_ptr rep_2_() const;
	void rep_2_ (const SdaiRepresentation_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiRepresentation_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiRepresentation_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiRepresentation_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_relationship ;  }
#else
inline SdaiRepresentation_relationship *
create_SdaiRepresentation_relationship () {  return  new SdaiRepresentation_relationship ;  }
#endif

/////////	 END_ENTITY representation_relationship


/////////	 ENTITY representation_relationship_with_transformation

extern AttrDescriptor *a_188transformation_operator;

class SdaiRepresentation_relationship_with_transformation  :    public SdaiRepresentation_relationship  {
 
#ifdef __OSTORE__
  friend void SdaiRepresentation_relationship_with_transformation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiTransformation _transformation_operator ;
  public:  

	SdaiRepresentation_relationship_with_transformation ( ); 
	SdaiRepresentation_relationship_with_transformation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiRepresentation_relationship_with_transformation (SdaiRepresentation_relationship_with_transformation& e ); 
	~SdaiRepresentation_relationship_with_transformation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 97 ; } 
	const SdaiTransformation_ptr transformation_operator_() const;
	void transformation_operator_ (const SdaiTransformation_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiRepresentation_relationship_with_transformation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiRepresentation_relationship_with_transformation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiRepresentation_relationship_with_transformation () {  return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_relationship_with_transformation ;  }
#else
inline SdaiRepresentation_relationship_with_transformation *
create_SdaiRepresentation_relationship_with_transformation () {  return  new SdaiRepresentation_relationship_with_transformation ;  }
#endif

/////////	 END_ENTITY representation_relationship_with_transformation


/////////	 ENTITY person_and_organization_role

extern AttrDescriptor *a_189name;

class SdaiPerson_and_organization_role  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiPerson_and_organization_role_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
  public:  

	SdaiPerson_and_organization_role ( ); 
	SdaiPerson_and_organization_role (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPerson_and_organization_role (SdaiPerson_and_organization_role& e ); 
	~SdaiPerson_and_organization_role ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 98 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPerson_and_organization_role_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPerson_and_organization_role(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPerson_and_organization_role () {  return (SCLP23(Application_instance_ptr)) new SdaiPerson_and_organization_role ;  }
#else
inline SdaiPerson_and_organization_role *
create_SdaiPerson_and_organization_role () {  return  new SdaiPerson_and_organization_role ;  }
#endif

/////////	 END_ENTITY person_and_organization_role


/////////	 ENTITY quasi_uniform_curve


class SdaiQuasi_uniform_curve  :    public SdaiB_spline_curve  {
 
#ifdef __OSTORE__
  friend void SdaiQuasi_uniform_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiQuasi_uniform_curve ( ); 
	SdaiQuasi_uniform_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiQuasi_uniform_curve (SdaiQuasi_uniform_curve& e ); 
	~SdaiQuasi_uniform_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 99 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiQuasi_uniform_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiQuasi_uniform_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiQuasi_uniform_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiQuasi_uniform_curve ;  }
#else
inline SdaiQuasi_uniform_curve *
create_SdaiQuasi_uniform_curve () {  return  new SdaiQuasi_uniform_curve ;  }
#endif

/////////	 END_ENTITY quasi_uniform_curve


/////////	 ENTITY swept_surface

extern AttrDescriptor *a_190swept_curve;

class SdaiSwept_surface  :    public SdaiSurface  {
 
#ifdef __OSTORE__
  friend void SdaiSwept_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _swept_curve ;
  public:  

	SdaiSwept_surface ( ); 
	SdaiSwept_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSwept_surface (SdaiSwept_surface& e ); 
	~SdaiSwept_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 100 ; } 
	const SdaiCurve_ptr swept_curve_() const;
	void swept_curve_ (const SdaiCurve_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSwept_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSwept_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSwept_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiSwept_surface ;  }
#else
inline SdaiSwept_surface *
create_SdaiSwept_surface () {  return  new SdaiSwept_surface ;  }
#endif

/////////	 END_ENTITY swept_surface


/////////	 ENTITY property_definition

extern AttrDescriptor *a_191name;
extern AttrDescriptor *a_192description;
extern AttrDescriptor *a_193definition;

class SdaiProperty_definition  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiProperty_definition_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SdaiCharacterized_definition _definition ;
  public:  

	SdaiProperty_definition ( ); 
	SdaiProperty_definition (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProperty_definition (SdaiProperty_definition& e ); 
	~SdaiProperty_definition ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 101 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiCharacterized_definition_ptr definition_() const;
	void definition_ (const SdaiCharacterized_definition_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProperty_definition_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProperty_definition(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProperty_definition () {  return (SCLP23(Application_instance_ptr)) new SdaiProperty_definition ;  }
#else
inline SdaiProperty_definition *
create_SdaiProperty_definition () {  return  new SdaiProperty_definition ;  }
#endif

/////////	 END_ENTITY property_definition


/////////	 ENTITY global_uncertainty_assigned_context

extern AttrDescriptor *a_194uncertainty;

class SdaiGlobal_uncertainty_assigned_context  :    public SdaiRepresentation_context  {
 
#ifdef __OSTORE__
  friend void SdaiGlobal_uncertainty_assigned_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _uncertainty ;	  //  of  uncertainty_measure_with_unit

  public:  

	SdaiGlobal_uncertainty_assigned_context ( ); 
	SdaiGlobal_uncertainty_assigned_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiGlobal_uncertainty_assigned_context (SdaiGlobal_uncertainty_assigned_context& e ); 
	~SdaiGlobal_uncertainty_assigned_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 102 ; } 
	const EntityAggregate_ptr uncertainty_() const;
	void uncertainty_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiGlobal_uncertainty_assigned_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiGlobal_uncertainty_assigned_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiGlobal_uncertainty_assigned_context () {  return (SCLP23(Application_instance_ptr)) new SdaiGlobal_uncertainty_assigned_context ;  }
#else
inline SdaiGlobal_uncertainty_assigned_context *
create_SdaiGlobal_uncertainty_assigned_context () {  return  new SdaiGlobal_uncertainty_assigned_context ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiOrganization_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _relating_organization ;
	SCLP23(Application_instance_ptr) _related_organization ;
  public:  

	SdaiOrganization_relationship ( ); 
	SdaiOrganization_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOrganization_relationship (SdaiOrganization_relationship& e ); 
	~SdaiOrganization_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 103 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiOrganization_ptr relating_organization_() const;
	void relating_organization_ (const SdaiOrganization_ptr x);

	const SdaiOrganization_ptr related_organization_() const;
	void related_organization_ (const SdaiOrganization_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOrganization_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOrganization_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOrganization_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiOrganization_relationship ;  }
#else
inline SdaiOrganization_relationship *
create_SdaiOrganization_relationship () {  return  new SdaiOrganization_relationship ;  }
#endif

/////////	 END_ENTITY organization_relationship


/////////	 ENTITY parabola

extern AttrDescriptor *a_199focal_dist;

class SdaiParabola  :    public SdaiConic  {
 
#ifdef __OSTORE__
  friend void SdaiParabola_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Real) _focal_dist ;
  public:  

	SdaiParabola ( ); 
	SdaiParabola (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiParabola (SdaiParabola& e ); 
	~SdaiParabola ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 104 ; } 
	const SdaiLength_measure focal_dist_() const;
	void focal_dist_ (const SdaiLength_measure x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiParabola_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiParabola(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiParabola () {  return (SCLP23(Application_instance_ptr)) new SdaiParabola ;  }
#else
inline SdaiParabola *
create_SdaiParabola () {  return  new SdaiParabola ;  }
#endif

/////////	 END_ENTITY parabola


/////////	 ENTITY rectangular_composite_surface

extern AttrDescriptor *a_200segments;
extern Derived_attribute *a_201Dn_u;
extern Derived_attribute *a_202Dn_v;

class SdaiRectangular_composite_surface  :    public SdaiBounded_surface  {
 
#ifdef __OSTORE__
  friend void SdaiRectangular_composite_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	GenericAggregate _segments ;	  //  of  surface_patch

  public:  

	SdaiRectangular_composite_surface ( ); 
	SdaiRectangular_composite_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiRectangular_composite_surface (SdaiRectangular_composite_surface& e ); 
	~SdaiRectangular_composite_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 105 ; } 
	const GenericAggregate_ptr segments_() const;
	void segments_ (const GenericAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiRectangular_composite_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiRectangular_composite_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiRectangular_composite_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiRectangular_composite_surface ;  }
#else
inline SdaiRectangular_composite_surface *
create_SdaiRectangular_composite_surface () {  return  new SdaiRectangular_composite_surface ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiLot_effectivity_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _effectivity_lot_id ;
	SCLP23(Application_instance_ptr) _effectivity_lot_size ;
  public:  

	SdaiLot_effectivity ( ); 
	SdaiLot_effectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiLot_effectivity (SdaiLot_effectivity& e ); 
	~SdaiLot_effectivity ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 106 ; } 
	const SdaiIdentifier effectivity_lot_id_() const;
	void effectivity_lot_id_ (const SdaiIdentifier x);

	const SdaiMeasure_with_unit_ptr effectivity_lot_size_() const;
	void effectivity_lot_size_ (const SdaiMeasure_with_unit_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiLot_effectivity_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiLot_effectivity(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiLot_effectivity () {  return (SCLP23(Application_instance_ptr)) new SdaiLot_effectivity ;  }
#else
inline SdaiLot_effectivity *
create_SdaiLot_effectivity () {  return  new SdaiLot_effectivity ;  }
#endif

/////////	 END_ENTITY lot_effectivity


/////////	 ENTITY surface_of_linear_extrusion

extern AttrDescriptor *a_205extrusion_axis;

class SdaiSurface_of_linear_extrusion  :    public SdaiSwept_surface  {
 
#ifdef __OSTORE__
  friend void SdaiSurface_of_linear_extrusion_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _extrusion_axis ;
  public:  

	SdaiSurface_of_linear_extrusion ( ); 
	SdaiSurface_of_linear_extrusion (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSurface_of_linear_extrusion (SdaiSurface_of_linear_extrusion& e ); 
	~SdaiSurface_of_linear_extrusion ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 107 ; } 
	const SdaiVector_ptr extrusion_axis_() const;
	void extrusion_axis_ (const SdaiVector_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSurface_of_linear_extrusion_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSurface_of_linear_extrusion(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSurface_of_linear_extrusion () {  return (SCLP23(Application_instance_ptr)) new SdaiSurface_of_linear_extrusion ;  }
#else
inline SdaiSurface_of_linear_extrusion *
create_SdaiSurface_of_linear_extrusion () {  return  new SdaiSurface_of_linear_extrusion ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiShell_based_surface_model_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiShells _sbsm_boundary ;	  //  of  shell

  public:  

	SdaiShell_based_surface_model ( ); 
	SdaiShell_based_surface_model (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiShell_based_surface_model (SdaiShell_based_surface_model& e ); 
	~SdaiShell_based_surface_model ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 108 ; } 
	const SdaiShells_ptr sbsm_boundary_() const;
	void sbsm_boundary_ (const SdaiShells_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiShell_based_surface_model_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiShell_based_surface_model(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiShell_based_surface_model () {  return (SCLP23(Application_instance_ptr)) new SdaiShell_based_surface_model ;  }
#else
inline SdaiShell_based_surface_model *
create_SdaiShell_based_surface_model () {  return  new SdaiShell_based_surface_model ;  }
#endif

/////////	 END_ENTITY shell_based_surface_model


/////////	 ENTITY uniform_curve


class SdaiUniform_curve  :    public SdaiB_spline_curve  {
 
#ifdef __OSTORE__
  friend void SdaiUniform_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiUniform_curve ( ); 
	SdaiUniform_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiUniform_curve (SdaiUniform_curve& e ); 
	~SdaiUniform_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 109 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiUniform_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiUniform_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiUniform_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiUniform_curve ;  }
#else
inline SdaiUniform_curve *
create_SdaiUniform_curve () {  return  new SdaiUniform_curve ;  }
#endif

/////////	 END_ENTITY uniform_curve


/////////	 ENTITY bezier_curve


class SdaiBezier_curve  :    public SdaiB_spline_curve  {
 
#ifdef __OSTORE__
  friend void SdaiBezier_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiBezier_curve ( ); 
	SdaiBezier_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiBezier_curve (SdaiBezier_curve& e ); 
	~SdaiBezier_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 110 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiBezier_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiBezier_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiBezier_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiBezier_curve ;  }
#else
inline SdaiBezier_curve *
create_SdaiBezier_curve () {  return  new SdaiBezier_curve ;  }
#endif

/////////	 END_ENTITY bezier_curve


/////////	 ENTITY loop


class SdaiLoop  :    public SdaiTopological_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiLoop_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiLoop ( ); 
	SdaiLoop (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiLoop (SdaiLoop& e ); 
	~SdaiLoop ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 111 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiLoop_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiLoop(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiLoop () {  return (SCLP23(Application_instance_ptr)) new SdaiLoop ;  }
#else
inline SdaiLoop *
create_SdaiLoop () {  return  new SdaiLoop ;  }
#endif

/////////	 END_ENTITY loop


/////////	 ENTITY edge_loop

extern Derived_attribute *a_207Dne;

class SdaiEdge_loop  :    public SdaiLoop  {
 
#ifdef __OSTORE__
  friend void SdaiEdge_loop_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiEdge_loop ( ); 
	SdaiEdge_loop (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiEdge_loop (SdaiEdge_loop& e ); 
	~SdaiEdge_loop ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 112 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0
	const EntityAggregate_ptr edge_list_() const;
	void edge_list_ (const EntityAggregate_ptr x);


#endif

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiEdge_loop_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiEdge_loop(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiEdge_loop () {  return (SCLP23(Application_instance_ptr)) new SdaiEdge_loop ;  }
#else
inline SdaiEdge_loop *
create_SdaiEdge_loop () {  return  new SdaiEdge_loop ;  }
#endif

/////////	 END_ENTITY edge_loop


/////////	 ENTITY date

extern AttrDescriptor *a_208year_component;

class SdaiDate  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiDate_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Integer) _year_component ;
  public:  

	SdaiDate ( ); 
	SdaiDate (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDate (SdaiDate& e ); 
	~SdaiDate ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 113 ; } 
	const SdaiYear_number year_component_() const;
	void year_component_ (const SdaiYear_number x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDate_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDate(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDate () {  return (SCLP23(Application_instance_ptr)) new SdaiDate ;  }
#else
inline SdaiDate *
create_SdaiDate () {  return  new SdaiDate ;  }
#endif

/////////	 END_ENTITY date


/////////	 ENTITY calendar_date

extern AttrDescriptor *a_209day_component;
extern AttrDescriptor *a_210month_component;

class SdaiCalendar_date  :    public SdaiDate  {
 
#ifdef __OSTORE__
  friend void SdaiCalendar_date_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Integer) _day_component ;
	SCLP23(Integer) _month_component ;
  public:  

	SdaiCalendar_date ( ); 
	SdaiCalendar_date (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCalendar_date (SdaiCalendar_date& e ); 
	~SdaiCalendar_date ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 114 ; } 
	const SdaiDay_in_month_number day_component_() const;
	void day_component_ (const SdaiDay_in_month_number x);

	const SdaiMonth_in_year_number month_component_() const;
	void month_component_ (const SdaiMonth_in_year_number x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCalendar_date_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCalendar_date(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCalendar_date () {  return (SCLP23(Application_instance_ptr)) new SdaiCalendar_date ;  }
#else
inline SdaiCalendar_date *
create_SdaiCalendar_date () {  return  new SdaiCalendar_date ;  }
#endif

/////////	 END_ENTITY calendar_date


/////////	 ENTITY toroidal_surface

extern AttrDescriptor *a_211major_radius;
extern AttrDescriptor *a_212minor_radius;

class SdaiToroidal_surface  :    public SdaiElementary_surface  {
 
#ifdef __OSTORE__
  friend void SdaiToroidal_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Real) _major_radius ;
	SCLP23(Real) _minor_radius ;
  public:  

	SdaiToroidal_surface ( ); 
	SdaiToroidal_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiToroidal_surface (SdaiToroidal_surface& e ); 
	~SdaiToroidal_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 115 ; } 
	const SdaiPositive_length_measure major_radius_() const;
	void major_radius_ (const SdaiPositive_length_measure x);

	const SdaiPositive_length_measure minor_radius_() const;
	void minor_radius_ (const SdaiPositive_length_measure x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiToroidal_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiToroidal_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiToroidal_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiToroidal_surface ;  }
#else
inline SdaiToroidal_surface *
create_SdaiToroidal_surface () {  return  new SdaiToroidal_surface ;  }
#endif

/////////	 END_ENTITY toroidal_surface


/////////	 ENTITY promissory_usage_occurrence


class SdaiPromissory_usage_occurrence  :    public SdaiAssembly_component_usage  {
 
#ifdef __OSTORE__
  friend void SdaiPromissory_usage_occurrence_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiPromissory_usage_occurrence ( ); 
	SdaiPromissory_usage_occurrence (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPromissory_usage_occurrence (SdaiPromissory_usage_occurrence& e ); 
	~SdaiPromissory_usage_occurrence ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 116 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPromissory_usage_occurrence_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPromissory_usage_occurrence(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPromissory_usage_occurrence () {  return (SCLP23(Application_instance_ptr)) new SdaiPromissory_usage_occurrence ;  }
#else
inline SdaiPromissory_usage_occurrence *
create_SdaiPromissory_usage_occurrence () {  return  new SdaiPromissory_usage_occurrence ;  }
#endif

/////////	 END_ENTITY promissory_usage_occurrence


/////////	 ENTITY approval_assignment

extern AttrDescriptor *a_213assigned_approval;

class SdaiApproval_assignment  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiApproval_assignment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _assigned_approval ;
  public:  

	SdaiApproval_assignment ( ); 
	SdaiApproval_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiApproval_assignment (SdaiApproval_assignment& e ); 
	~SdaiApproval_assignment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 117 ; } 
	const SdaiApproval_ptr assigned_approval_() const;
	void assigned_approval_ (const SdaiApproval_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiApproval_assignment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiApproval_assignment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiApproval_assignment () {  return (SCLP23(Application_instance_ptr)) new SdaiApproval_assignment ;  }
#else
inline SdaiApproval_assignment *
create_SdaiApproval_assignment () {  return  new SdaiApproval_assignment ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiConfiguration_item_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;
	SCLP23(String) _name ;
	SCLP23(String) _description ;    //  OPTIONAL
	SCLP23(Application_instance_ptr) _item_concept ;
	SCLP23(String) _purpose ;    //  OPTIONAL
  public:  

	SdaiConfiguration_item ( ); 
	SdaiConfiguration_item (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiConfiguration_item (SdaiConfiguration_item& e ); 
	~SdaiConfiguration_item ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 118 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiProduct_concept_ptr item_concept_() const;
	void item_concept_ (const SdaiProduct_concept_ptr x);

	const SdaiLabel purpose_() const;
	void purpose_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiConfiguration_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiConfiguration_item(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiConfiguration_item () {  return (SCLP23(Application_instance_ptr)) new SdaiConfiguration_item ;  }
#else
inline SdaiConfiguration_item *
create_SdaiConfiguration_item () {  return  new SdaiConfiguration_item ;  }
#endif

/////////	 END_ENTITY configuration_item


/////////	 ENTITY contract_assignment

extern AttrDescriptor *a_219assigned_contract;

class SdaiContract_assignment  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiContract_assignment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _assigned_contract ;
  public:  

	SdaiContract_assignment ( ); 
	SdaiContract_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiContract_assignment (SdaiContract_assignment& e ); 
	~SdaiContract_assignment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 119 ; } 
	const SdaiContract_ptr assigned_contract_() const;
	void assigned_contract_ (const SdaiContract_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiContract_assignment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiContract_assignment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiContract_assignment () {  return (SCLP23(Application_instance_ptr)) new SdaiContract_assignment ;  }
#else
inline SdaiContract_assignment *
create_SdaiContract_assignment () {  return  new SdaiContract_assignment ;  }
#endif

/////////	 END_ENTITY contract_assignment


/////////	 ENTITY vector

extern AttrDescriptor *a_220orientation;
extern AttrDescriptor *a_221magnitude;

class SdaiVector  :    public SdaiGeometric_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiVector_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _orientation ;
	SCLP23(Real) _magnitude ;
  public:  

	SdaiVector ( ); 
	SdaiVector (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiVector (SdaiVector& e ); 
	~SdaiVector ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 120 ; } 
	const SdaiDirection_ptr orientation_() const;
	void orientation_ (const SdaiDirection_ptr x);

	const SdaiLength_measure magnitude_() const;
	void magnitude_ (const SdaiLength_measure x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiVector_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiVector(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiVector () {  return (SCLP23(Application_instance_ptr)) new SdaiVector ;  }
#else
inline SdaiVector *
create_SdaiVector () {  return  new SdaiVector ;  }
#endif

/////////	 END_ENTITY vector


/////////	 ENTITY intersection_curve


class SdaiIntersection_curve  :    public SdaiSurface_curve  {
 
#ifdef __OSTORE__
  friend void SdaiIntersection_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiIntersection_curve ( ); 
	SdaiIntersection_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiIntersection_curve (SdaiIntersection_curve& e ); 
	~SdaiIntersection_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 121 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiIntersection_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiIntersection_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiIntersection_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiIntersection_curve ;  }
#else
inline SdaiIntersection_curve *
create_SdaiIntersection_curve () {  return  new SdaiIntersection_curve ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiTrimmed_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _basis_curve ;
	SdaiTrimming_selects _trim_1 ;	  //  of  trimming_select

	SdaiTrimming_selects _trim_2 ;	  //  of  trimming_select

	SCLP23(BOOL) _sense_agreement ;
	SdaiTrimming_preference_var _master_representation ;
  public:  

	SdaiTrimmed_curve ( ); 
	SdaiTrimmed_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiTrimmed_curve (SdaiTrimmed_curve& e ); 
	~SdaiTrimmed_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 122 ; } 
	const SdaiCurve_ptr basis_curve_() const;
	void basis_curve_ (const SdaiCurve_ptr x);

	const SdaiTrimming_selects_ptr trim_1_() const;
	void trim_1_ (const SdaiTrimming_selects_ptr x);

	const SdaiTrimming_selects_ptr trim_2_() const;
	void trim_2_ (const SdaiTrimming_selects_ptr x);

	const SCLBOOL(Bool) sense_agreement_() const;
	void sense_agreement_ (const SCLBOOL(Bool) x);

	const SdaiTrimming_preference_var master_representation_() const;
	void master_representation_ (const SdaiTrimming_preference_var x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiTrimmed_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiTrimmed_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiTrimmed_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiTrimmed_curve ;  }
#else
inline SdaiTrimmed_curve *
create_SdaiTrimmed_curve () {  return  new SdaiTrimmed_curve ;  }
#endif

/////////	 END_ENTITY trimmed_curve


/////////	 ENTITY product_definition_context

extern AttrDescriptor *a_227life_cycle_stage;

class SdaiProduct_definition_context  :    public SdaiApplication_context_element  {
 
#ifdef __OSTORE__
  friend void SdaiProduct_definition_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _life_cycle_stage ;
  public:  

	SdaiProduct_definition_context ( ); 
	SdaiProduct_definition_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_definition_context (SdaiProduct_definition_context& e ); 
	~SdaiProduct_definition_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 123 ; } 
	const SdaiLabel life_cycle_stage_() const;
	void life_cycle_stage_ (const SdaiLabel x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_definition_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_context () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_context ;  }
#else
inline SdaiProduct_definition_context *
create_SdaiProduct_definition_context () {  return  new SdaiProduct_definition_context ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiItem_defined_transformation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _transform_item_1 ;
	SCLP23(Application_instance_ptr) _transform_item_2 ;
  public:  

	SdaiItem_defined_transformation ( ); 
	SdaiItem_defined_transformation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiItem_defined_transformation (SdaiItem_defined_transformation& e ); 
	~SdaiItem_defined_transformation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 124 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiRepresentation_item_ptr transform_item_1_() const;
	void transform_item_1_ (const SdaiRepresentation_item_ptr x);

	const SdaiRepresentation_item_ptr transform_item_2_() const;
	void transform_item_2_ (const SdaiRepresentation_item_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiItem_defined_transformation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiItem_defined_transformation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiItem_defined_transformation () {  return (SCLP23(Application_instance_ptr)) new SdaiItem_defined_transformation ;  }
#else
inline SdaiItem_defined_transformation *
create_SdaiItem_defined_transformation () {  return  new SdaiItem_defined_transformation ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAction_method_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(String) _consequence ;
	SCLP23(String) _purpose ;
  public:  

	SdaiAction_method ( ); 
	SdaiAction_method (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAction_method (SdaiAction_method& e ); 
	~SdaiAction_method ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 125 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiText consequence_() const;
	void consequence_ (const SdaiText x);

	const SdaiText purpose_() const;
	void purpose_ (const SdaiText x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAction_method_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAction_method(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAction_method () {  return (SCLP23(Application_instance_ptr)) new SdaiAction_method ;  }
#else
inline SdaiAction_method *
create_SdaiAction_method () {  return  new SdaiAction_method ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiProduct_category_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _category ;
	SCLP23(Application_instance_ptr) _sub_category ;
  public:  

	SdaiProduct_category_relationship ( ); 
	SdaiProduct_category_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_category_relationship (SdaiProduct_category_relationship& e ); 
	~SdaiProduct_category_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 126 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiProduct_category_ptr category_() const;
	void category_ (const SdaiProduct_category_ptr x);

	const SdaiProduct_category_ptr sub_category_() const;
	void sub_category_ (const SdaiProduct_category_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_category_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_category_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_category_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_category_relationship ;  }
#else
inline SdaiProduct_category_relationship *
create_SdaiProduct_category_relationship () {  return  new SdaiProduct_category_relationship ;  }
#endif

/////////	 END_ENTITY product_category_relationship


/////////	 ENTITY plane_angle_measure_with_unit


class SdaiPlane_angle_measure_with_unit  :    public SdaiMeasure_with_unit  {
 
#ifdef __OSTORE__
  friend void SdaiPlane_angle_measure_with_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiPlane_angle_measure_with_unit ( ); 
	SdaiPlane_angle_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPlane_angle_measure_with_unit (SdaiPlane_angle_measure_with_unit& e ); 
	~SdaiPlane_angle_measure_with_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 127 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPlane_angle_measure_with_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPlane_angle_measure_with_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPlane_angle_measure_with_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiPlane_angle_measure_with_unit ;  }
#else
inline SdaiPlane_angle_measure_with_unit *
create_SdaiPlane_angle_measure_with_unit () {  return  new SdaiPlane_angle_measure_with_unit ;  }
#endif

/////////	 END_ENTITY plane_angle_measure_with_unit


/////////	 ENTITY vertex


class SdaiVertex  :    public SdaiTopological_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiVertex_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiVertex ( ); 
	SdaiVertex (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiVertex (SdaiVertex& e ); 
	~SdaiVertex ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 128 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiVertex_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiVertex(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiVertex () {  return (SCLP23(Application_instance_ptr)) new SdaiVertex ;  }
#else
inline SdaiVertex *
create_SdaiVertex () {  return  new SdaiVertex ;  }
#endif

/////////	 END_ENTITY vertex


/////////	 ENTITY representation_map

extern AttrDescriptor *a_240mapping_origin;
extern AttrDescriptor *a_241mapped_representation;
extern Inverse_attribute *a_242Imap_usage;

class SdaiRepresentation_map  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiRepresentation_map_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _mapping_origin ;
	SCLP23(Application_instance_ptr) _mapped_representation ;
	EntityAggregate _map_usage ;	  //  of  mapped_item

  public:  

	SdaiRepresentation_map ( ); 
	SdaiRepresentation_map (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiRepresentation_map (SdaiRepresentation_map& e ); 
	~SdaiRepresentation_map ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 129 ; } 
	const SdaiRepresentation_item_ptr mapping_origin_() const;
	void mapping_origin_ (const SdaiRepresentation_item_ptr x);

	const SdaiRepresentation_ptr mapped_representation_() const;
	void mapped_representation_ (const SdaiRepresentation_ptr x);

	const EntityAggregate_ptr map_usage_() const;
	void map_usage_ (const EntityAggregate_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiRepresentation_map_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiRepresentation_map(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiRepresentation_map () {  return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_map ;  }
#else
inline SdaiRepresentation_map *
create_SdaiRepresentation_map () {  return  new SdaiRepresentation_map ;  }
#endif

/////////	 END_ENTITY representation_map


/////////	 ENTITY product_definition_effectivity

extern AttrDescriptor *a_243usage;

class SdaiProduct_definition_effectivity  :    public SdaiEffectivity  {
 
#ifdef __OSTORE__
  friend void SdaiProduct_definition_effectivity_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _usage ;
  public:  

	SdaiProduct_definition_effectivity ( ); 
	SdaiProduct_definition_effectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_definition_effectivity (SdaiProduct_definition_effectivity& e ); 
	~SdaiProduct_definition_effectivity ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 130 ; } 
	const SdaiProduct_definition_relationship_ptr usage_() const;
	void usage_ (const SdaiProduct_definition_relationship_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_definition_effectivity_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_effectivity(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_effectivity () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_effectivity ;  }
#else
inline SdaiProduct_definition_effectivity *
create_SdaiProduct_definition_effectivity () {  return  new SdaiProduct_definition_effectivity ;  }
#endif

/////////	 END_ENTITY product_definition_effectivity


/////////	 ENTITY configuration_effectivity

extern AttrDescriptor *a_244configuration;

class SdaiConfiguration_effectivity  :    public SdaiProduct_definition_effectivity  {
 
#ifdef __OSTORE__
  friend void SdaiConfiguration_effectivity_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _configuration ;
  public:  

	SdaiConfiguration_effectivity ( ); 
	SdaiConfiguration_effectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiConfiguration_effectivity (SdaiConfiguration_effectivity& e ); 
	~SdaiConfiguration_effectivity ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 131 ; } 
	const SdaiConfiguration_design_ptr configuration_() const;
	void configuration_ (const SdaiConfiguration_design_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiConfiguration_effectivity_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiConfiguration_effectivity(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiConfiguration_effectivity () {  return (SCLP23(Application_instance_ptr)) new SdaiConfiguration_effectivity ;  }
#else
inline SdaiConfiguration_effectivity *
create_SdaiConfiguration_effectivity () {  return  new SdaiConfiguration_effectivity ;  }
#endif

/////////	 END_ENTITY configuration_effectivity


/////////	 ENTITY ellipse

extern AttrDescriptor *a_245semi_axis_1;
extern AttrDescriptor *a_246semi_axis_2;

class SdaiEllipse  :    public SdaiConic  {
 
#ifdef __OSTORE__
  friend void SdaiEllipse_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Real) _semi_axis_1 ;
	SCLP23(Real) _semi_axis_2 ;
  public:  

	SdaiEllipse ( ); 
	SdaiEllipse (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiEllipse (SdaiEllipse& e ); 
	~SdaiEllipse ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 132 ; } 
	const SdaiPositive_length_measure semi_axis_1_() const;
	void semi_axis_1_ (const SdaiPositive_length_measure x);

	const SdaiPositive_length_measure semi_axis_2_() const;
	void semi_axis_2_ (const SdaiPositive_length_measure x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiEllipse_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiEllipse(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiEllipse () {  return (SCLP23(Application_instance_ptr)) new SdaiEllipse ;  }
#else
inline SdaiEllipse *
create_SdaiEllipse () {  return  new SdaiEllipse ;  }
#endif

/////////	 END_ENTITY ellipse


/////////	 ENTITY context_dependent_unit

extern AttrDescriptor *a_247name;

class SdaiContext_dependent_unit  :    public SdaiNamed_unit  {
 
#ifdef __OSTORE__
  friend void SdaiContext_dependent_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
  public:  

	SdaiContext_dependent_unit ( ); 
	SdaiContext_dependent_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiContext_dependent_unit (SdaiContext_dependent_unit& e ); 
	~SdaiContext_dependent_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 133 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiContext_dependent_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiContext_dependent_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiContext_dependent_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiContext_dependent_unit ;  }
#else
inline SdaiContext_dependent_unit *
create_SdaiContext_dependent_unit () {  return  new SdaiContext_dependent_unit ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAlternate_product_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _alternate ;
	SCLP23(Application_instance_ptr) _base ;
	SCLP23(String) _basis ;
  public:  

	SdaiAlternate_product_relationship ( ); 
	SdaiAlternate_product_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAlternate_product_relationship (SdaiAlternate_product_relationship& e ); 
	~SdaiAlternate_product_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 134 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiProduct_ptr alternate_() const;
	void alternate_ (const SdaiProduct_ptr x);

	const SdaiProduct_ptr base_() const;
	void base_ (const SdaiProduct_ptr x);

	const SdaiText basis_() const;
	void basis_ (const SdaiText x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAlternate_product_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAlternate_product_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAlternate_product_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiAlternate_product_relationship ;  }
#else
inline SdaiAlternate_product_relationship *
create_SdaiAlternate_product_relationship () {  return  new SdaiAlternate_product_relationship ;  }
#endif

/////////	 END_ENTITY alternate_product_relationship


/////////	 ENTITY document_type

extern AttrDescriptor *a_253product_data_type;

class SdaiDocument_type  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiDocument_type_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _product_data_type ;
  public:  

	SdaiDocument_type ( ); 
	SdaiDocument_type (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDocument_type (SdaiDocument_type& e ); 
	~SdaiDocument_type ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 135 ; } 
	const SdaiLabel product_data_type_() const;
	void product_data_type_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDocument_type_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDocument_type(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDocument_type () {  return (SCLP23(Application_instance_ptr)) new SdaiDocument_type ;  }
#else
inline SdaiDocument_type *
create_SdaiDocument_type () {  return  new SdaiDocument_type ;  }
#endif

/////////	 END_ENTITY document_type


/////////	 ENTITY document_reference

extern AttrDescriptor *a_254assigned_document;
extern AttrDescriptor *a_255source;

class SdaiDocument_reference  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiDocument_reference_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _assigned_document ;
	SCLP23(String) _source ;
  public:  

	SdaiDocument_reference ( ); 
	SdaiDocument_reference (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDocument_reference (SdaiDocument_reference& e ); 
	~SdaiDocument_reference ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 136 ; } 
	const SdaiDocument_ptr assigned_document_() const;
	void assigned_document_ (const SdaiDocument_ptr x);

	const SdaiLabel source_() const;
	void source_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDocument_reference_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDocument_reference(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDocument_reference () {  return (SCLP23(Application_instance_ptr)) new SdaiDocument_reference ;  }
#else
inline SdaiDocument_reference *
create_SdaiDocument_reference () {  return  new SdaiDocument_reference ;  }
#endif

/////////	 END_ENTITY document_reference


/////////	 ENTITY mechanical_context


class SdaiMechanical_context  :    public SdaiProduct_context  {
 
#ifdef __OSTORE__
  friend void SdaiMechanical_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiMechanical_context ( ); 
	SdaiMechanical_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiMechanical_context (SdaiMechanical_context& e ); 
	~SdaiMechanical_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 137 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiMechanical_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiMechanical_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiMechanical_context () {  return (SCLP23(Application_instance_ptr)) new SdaiMechanical_context ;  }
#else
inline SdaiMechanical_context *
create_SdaiMechanical_context () {  return  new SdaiMechanical_context ;  }
#endif

/////////	 END_ENTITY mechanical_context


/////////	 ENTITY shell_based_wireframe_model

extern AttrDescriptor *a_256sbwm_boundary;

class SdaiShell_based_wireframe_model  :    public SdaiGeometric_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiShell_based_wireframe_model_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiShells _sbwm_boundary ;	  //  of  shell

  public:  

	SdaiShell_based_wireframe_model ( ); 
	SdaiShell_based_wireframe_model (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiShell_based_wireframe_model (SdaiShell_based_wireframe_model& e ); 
	~SdaiShell_based_wireframe_model ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 138 ; } 
	const SdaiShells_ptr sbwm_boundary_() const;
	void sbwm_boundary_ (const SdaiShells_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiShell_based_wireframe_model_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiShell_based_wireframe_model(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiShell_based_wireframe_model () {  return (SCLP23(Application_instance_ptr)) new SdaiShell_based_wireframe_model ;  }
#else
inline SdaiShell_based_wireframe_model *
create_SdaiShell_based_wireframe_model () {  return  new SdaiShell_based_wireframe_model ;  }
#endif

/////////	 END_ENTITY shell_based_wireframe_model


/////////	 ENTITY contract

extern AttrDescriptor *a_257name;
extern AttrDescriptor *a_258purpose;
extern AttrDescriptor *a_259kind;

class SdaiContract  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiContract_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _purpose ;
	SCLP23(Application_instance_ptr) _kind ;
  public:  

	SdaiContract ( ); 
	SdaiContract (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiContract (SdaiContract& e ); 
	~SdaiContract ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 139 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText purpose_() const;
	void purpose_ (const SdaiText x);

	const SdaiContract_type_ptr kind_() const;
	void kind_ (const SdaiContract_type_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiContract_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiContract(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiContract () {  return (SCLP23(Application_instance_ptr)) new SdaiContract ;  }
#else
inline SdaiContract *
create_SdaiContract () {  return  new SdaiContract ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiDimensional_exponents_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Real) _length_exponent ;
	SCLP23(Real) _mass_exponent ;
	SCLP23(Real) _time_exponent ;
	SCLP23(Real) _electric_current_exponent ;
	SCLP23(Real) _thermodynamic_temperature_exponent ;
	SCLP23(Real) _amount_of_substance_exponent ;
	SCLP23(Real) _luminous_intensity_exponent ;
  public:  

	SdaiDimensional_exponents ( ); 
	SdaiDimensional_exponents (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDimensional_exponents (SdaiDimensional_exponents& e ); 
	~SdaiDimensional_exponents ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 140 ; } 
	const SCLP23(Real) length_exponent_() const;
	void length_exponent_ (const SCLP23(Real) x);

	const SCLP23(Real) mass_exponent_() const;
	void mass_exponent_ (const SCLP23(Real) x);

	const SCLP23(Real) time_exponent_() const;
	void time_exponent_ (const SCLP23(Real) x);

	const SCLP23(Real) electric_current_exponent_() const;
	void electric_current_exponent_ (const SCLP23(Real) x);

	const SCLP23(Real) thermodynamic_temperature_exponent_() const;
	void thermodynamic_temperature_exponent_ (const SCLP23(Real) x);

	const SCLP23(Real) amount_of_substance_exponent_() const;
	void amount_of_substance_exponent_ (const SCLP23(Real) x);

	const SCLP23(Real) luminous_intensity_exponent_() const;
	void luminous_intensity_exponent_ (const SCLP23(Real) x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDimensional_exponents_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDimensional_exponents(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDimensional_exponents () {  return (SCLP23(Application_instance_ptr)) new SdaiDimensional_exponents ;  }
#else
inline SdaiDimensional_exponents *
create_SdaiDimensional_exponents () {  return  new SdaiDimensional_exponents ;  }
#endif

/////////	 END_ENTITY dimensional_exponents


/////////	 ENTITY start_request

extern AttrDescriptor *a_267items;

class SdaiStart_request  :    public SdaiAction_request_assignment  {
 
#ifdef __OSTORE__
  friend void SdaiStart_request_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiStart_request_items _items ;	  //  of  start_request_item

  public:  

	SdaiStart_request ( ); 
	SdaiStart_request (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiStart_request (SdaiStart_request& e ); 
	~SdaiStart_request ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 141 ; } 
	const SdaiStart_request_items_ptr items_() const;
	void items_ (const SdaiStart_request_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiStart_request_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiStart_request(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiStart_request () {  return (SCLP23(Application_instance_ptr)) new SdaiStart_request ;  }
#else
inline SdaiStart_request *
create_SdaiStart_request () {  return  new SdaiStart_request ;  }
#endif

/////////	 END_ENTITY start_request


/////////	 ENTITY cc_design_specification_reference

extern AttrDescriptor *a_268items;

class SdaiCc_design_specification_reference  :    public SdaiDocument_reference  {
 
#ifdef __OSTORE__
  friend void SdaiCc_design_specification_reference_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiSpecified_items _items ;	  //  of  specified_item

  public:  

	SdaiCc_design_specification_reference ( ); 
	SdaiCc_design_specification_reference (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCc_design_specification_reference (SdaiCc_design_specification_reference& e ); 
	~SdaiCc_design_specification_reference ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 142 ; } 
	const SdaiSpecified_items_ptr items_() const;
	void items_ (const SdaiSpecified_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCc_design_specification_reference_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCc_design_specification_reference(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCc_design_specification_reference () {  return (SCLP23(Application_instance_ptr)) new SdaiCc_design_specification_reference ;  }
#else
inline SdaiCc_design_specification_reference *
create_SdaiCc_design_specification_reference () {  return  new SdaiCc_design_specification_reference ;  }
#endif

/////////	 END_ENTITY cc_design_specification_reference


/////////	 ENTITY supplied_part_relationship


class SdaiSupplied_part_relationship  :    public SdaiProduct_definition_relationship  {
 
#ifdef __OSTORE__
  friend void SdaiSupplied_part_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiSupplied_part_relationship ( ); 
	SdaiSupplied_part_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSupplied_part_relationship (SdaiSupplied_part_relationship& e ); 
	~SdaiSupplied_part_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 143 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSupplied_part_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSupplied_part_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSupplied_part_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiSupplied_part_relationship ;  }
#else
inline SdaiSupplied_part_relationship *
create_SdaiSupplied_part_relationship () {  return  new SdaiSupplied_part_relationship ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiContext_dependent_shape_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _representation_relation ;
	SCLP23(Application_instance_ptr) _represented_product_relation ;
  public:  

	SdaiContext_dependent_shape_representation ( ); 
	SdaiContext_dependent_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiContext_dependent_shape_representation (SdaiContext_dependent_shape_representation& e ); 
	~SdaiContext_dependent_shape_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 144 ; } 
	const SdaiShape_representation_relationship_ptr representation_relation_() const;
	void representation_relation_ (const SdaiShape_representation_relationship_ptr x);

	const SdaiProduct_definition_shape_ptr represented_product_relation_() const;
	void represented_product_relation_ (const SdaiProduct_definition_shape_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiContext_dependent_shape_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiContext_dependent_shape_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiContext_dependent_shape_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiContext_dependent_shape_representation ;  }
#else
inline SdaiContext_dependent_shape_representation *
create_SdaiContext_dependent_shape_representation () {  return  new SdaiContext_dependent_shape_representation ;  }
#endif

/////////	 END_ENTITY context_dependent_shape_representation


/////////	 ENTITY ordinal_date

extern AttrDescriptor *a_271day_component;

class SdaiOrdinal_date  :    public SdaiDate  {
 
#ifdef __OSTORE__
  friend void SdaiOrdinal_date_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Integer) _day_component ;
  public:  

	SdaiOrdinal_date ( ); 
	SdaiOrdinal_date (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOrdinal_date (SdaiOrdinal_date& e ); 
	~SdaiOrdinal_date ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 145 ; } 
	const SdaiDay_in_year_number day_component_() const;
	void day_component_ (const SdaiDay_in_year_number x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOrdinal_date_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOrdinal_date(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOrdinal_date () {  return (SCLP23(Application_instance_ptr)) new SdaiOrdinal_date ;  }
#else
inline SdaiOrdinal_date *
create_SdaiOrdinal_date () {  return  new SdaiOrdinal_date ;  }
#endif

/////////	 END_ENTITY ordinal_date


/////////	 ENTITY face_outer_bound


class SdaiFace_outer_bound  :    public SdaiFace_bound  {
 
#ifdef __OSTORE__
  friend void SdaiFace_outer_bound_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiFace_outer_bound ( ); 
	SdaiFace_outer_bound (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiFace_outer_bound (SdaiFace_outer_bound& e ); 
	~SdaiFace_outer_bound ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 146 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiFace_outer_bound_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiFace_outer_bound(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiFace_outer_bound () {  return (SCLP23(Application_instance_ptr)) new SdaiFace_outer_bound ;  }
#else
inline SdaiFace_outer_bound *
create_SdaiFace_outer_bound () {  return  new SdaiFace_outer_bound ;  }
#endif

/////////	 END_ENTITY face_outer_bound


/////////	 ENTITY mass_measure_with_unit


class SdaiMass_measure_with_unit  :    public SdaiMeasure_with_unit  {
 
#ifdef __OSTORE__
  friend void SdaiMass_measure_with_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiMass_measure_with_unit ( ); 
	SdaiMass_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiMass_measure_with_unit (SdaiMass_measure_with_unit& e ); 
	~SdaiMass_measure_with_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 147 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiMass_measure_with_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiMass_measure_with_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiMass_measure_with_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiMass_measure_with_unit ;  }
#else
inline SdaiMass_measure_with_unit *
create_SdaiMass_measure_with_unit () {  return  new SdaiMass_measure_with_unit ;  }
#endif

/////////	 END_ENTITY mass_measure_with_unit


/////////	 ENTITY brep_with_voids

extern AttrDescriptor *a_272voids;

class SdaiBrep_with_voids  :    public SdaiManifold_solid_brep  {
 
#ifdef __OSTORE__
  friend void SdaiBrep_with_voids_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _voids ;	  //  of  oriented_closed_shell

  public:  

	SdaiBrep_with_voids ( ); 
	SdaiBrep_with_voids (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiBrep_with_voids (SdaiBrep_with_voids& e ); 
	~SdaiBrep_with_voids ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 148 ; } 
	const EntityAggregate_ptr voids_() const;
	void voids_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiBrep_with_voids_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiBrep_with_voids(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiBrep_with_voids () {  return (SCLP23(Application_instance_ptr)) new SdaiBrep_with_voids ;  }
#else
inline SdaiBrep_with_voids *
create_SdaiBrep_with_voids () {  return  new SdaiBrep_with_voids ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiWeek_of_year_and_day_date_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Integer) _week_component ;
	SCLP23(Integer) _day_component ;    //  OPTIONAL
  public:  

	SdaiWeek_of_year_and_day_date ( ); 
	SdaiWeek_of_year_and_day_date (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiWeek_of_year_and_day_date (SdaiWeek_of_year_and_day_date& e ); 
	~SdaiWeek_of_year_and_day_date ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 149 ; } 
	const SdaiWeek_in_year_number week_component_() const;
	void week_component_ (const SdaiWeek_in_year_number x);

	const SdaiDay_in_week_number day_component_() const;
	void day_component_ (const SdaiDay_in_week_number x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiWeek_of_year_and_day_date_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiWeek_of_year_and_day_date(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiWeek_of_year_and_day_date () {  return (SCLP23(Application_instance_ptr)) new SdaiWeek_of_year_and_day_date ;  }
#else
inline SdaiWeek_of_year_and_day_date *
create_SdaiWeek_of_year_and_day_date () {  return  new SdaiWeek_of_year_and_day_date ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiPoint_on_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _basis_curve ;
	SCLP23(Real) _point_parameter ;
  public:  

	SdaiPoint_on_curve ( ); 
	SdaiPoint_on_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPoint_on_curve (SdaiPoint_on_curve& e ); 
	~SdaiPoint_on_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 150 ; } 
	const SdaiCurve_ptr basis_curve_() const;
	void basis_curve_ (const SdaiCurve_ptr x);

	const SdaiParameter_value point_parameter_() const;
	void point_parameter_ (const SdaiParameter_value x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPoint_on_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPoint_on_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPoint_on_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiPoint_on_curve ;  }
#else
inline SdaiPoint_on_curve *
create_SdaiPoint_on_curve () {  return  new SdaiPoint_on_curve ;  }
#endif

/////////	 END_ENTITY point_on_curve


/////////	 ENTITY shell_based_wireframe_shape_representation


class SdaiShell_based_wireframe_shape_representation  :    public SdaiShape_representation  {
 
#ifdef __OSTORE__
  friend void SdaiShell_based_wireframe_shape_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiShell_based_wireframe_shape_representation ( ); 
	SdaiShell_based_wireframe_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiShell_based_wireframe_shape_representation (SdaiShell_based_wireframe_shape_representation& e ); 
	~SdaiShell_based_wireframe_shape_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 151 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiShell_based_wireframe_shape_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiShell_based_wireframe_shape_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiShell_based_wireframe_shape_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiShell_based_wireframe_shape_representation ;  }
#else
inline SdaiShell_based_wireframe_shape_representation *
create_SdaiShell_based_wireframe_shape_representation () {  return  new SdaiShell_based_wireframe_shape_representation ;  }
#endif

/////////	 END_ENTITY shell_based_wireframe_shape_representation


/////////	 ENTITY face

extern AttrDescriptor *a_277bounds;

class SdaiFace  :    public SdaiTopological_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiFace_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _bounds ;	  //  of  face_bound

  public:  

	SdaiFace ( ); 
	SdaiFace (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiFace (SdaiFace& e ); 
	~SdaiFace ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 152 ; } 
	const EntityAggregate_ptr bounds_() const;
	void bounds_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiFace_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiFace(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiFace () {  return (SCLP23(Application_instance_ptr)) new SdaiFace ;  }
#else
inline SdaiFace *
create_SdaiFace () {  return  new SdaiFace ;  }
#endif

/////////	 END_ENTITY face


/////////	 ENTITY face_surface

extern AttrDescriptor *a_278face_geometry;
extern AttrDescriptor *a_279same_sense;

class SdaiFace_surface  :    public SdaiFace  {
 
#ifdef __OSTORE__
  friend void SdaiFace_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _face_geometry ;
	SCLP23(BOOL) _same_sense ;
  public:  

	SdaiFace_surface ( ); 
	SdaiFace_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiFace_surface (SdaiFace_surface& e ); 
	~SdaiFace_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 153 ; } 
	const SdaiSurface_ptr face_geometry_() const;
	void face_geometry_ (const SdaiSurface_ptr x);

	const SCLBOOL(Bool) same_sense_() const;
	void same_sense_ (const SCLBOOL(Bool) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0

#endif

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiFace_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiFace_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiFace_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiFace_surface ;  }
#else
inline SdaiFace_surface *
create_SdaiFace_surface () {  return  new SdaiFace_surface ;  }
#endif

/////////	 END_ENTITY face_surface


/////////	 ENTITY oriented_face

extern AttrDescriptor *a_280face_element;
extern AttrDescriptor *a_281orientation;
extern Derived_attribute *a_282Dface_bounds;

class SdaiOriented_face  :    public SdaiFace  {
 
#ifdef __OSTORE__
  friend void SdaiOriented_face_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _face_element ;
	SCLP23(BOOL) _orientation ;
  public:  

	SdaiOriented_face ( ); 
	SdaiOriented_face (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOriented_face (SdaiOriented_face& e ); 
	~SdaiOriented_face ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 154 ; } 
	const SdaiFace_ptr face_element_() const;
	void face_element_ (const SdaiFace_ptr x);

	const SCLBOOL(Bool) orientation_() const;
	void orientation_ (const SCLBOOL(Bool) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOriented_face_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOriented_face(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOriented_face () {  return (SCLP23(Application_instance_ptr)) new SdaiOriented_face ;  }
#else
inline SdaiOriented_face *
create_SdaiOriented_face () {  return  new SdaiOriented_face ;  }
#endif

/////////	 END_ENTITY oriented_face


/////////	 ENTITY surface_of_revolution

extern AttrDescriptor *a_283axis_position;
extern Derived_attribute *a_284Daxis_line;

class SdaiSurface_of_revolution  :    public SdaiSwept_surface  {
 
#ifdef __OSTORE__
  friend void SdaiSurface_of_revolution_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _axis_position ;
  public:  

	SdaiSurface_of_revolution ( ); 
	SdaiSurface_of_revolution (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSurface_of_revolution (SdaiSurface_of_revolution& e ); 
	~SdaiSurface_of_revolution ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 155 ; } 
	const SdaiAxis1_placement_ptr axis_position_() const;
	void axis_position_ (const SdaiAxis1_placement_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSurface_of_revolution_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSurface_of_revolution(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSurface_of_revolution () {  return (SCLP23(Application_instance_ptr)) new SdaiSurface_of_revolution ;  }
#else
inline SdaiSurface_of_revolution *
create_SdaiSurface_of_revolution () {  return  new SdaiSurface_of_revolution ;  }
#endif

/////////	 END_ENTITY surface_of_revolution


/////////	 ENTITY advanced_brep_shape_representation


class SdaiAdvanced_brep_shape_representation  :    public SdaiShape_representation  {
 
#ifdef __OSTORE__
  friend void SdaiAdvanced_brep_shape_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiAdvanced_brep_shape_representation ( ); 
	SdaiAdvanced_brep_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAdvanced_brep_shape_representation (SdaiAdvanced_brep_shape_representation& e ); 
	~SdaiAdvanced_brep_shape_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 156 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAdvanced_brep_shape_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAdvanced_brep_shape_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAdvanced_brep_shape_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiAdvanced_brep_shape_representation ;  }
#else
inline SdaiAdvanced_brep_shape_representation *
create_SdaiAdvanced_brep_shape_representation () {  return  new SdaiAdvanced_brep_shape_representation ;  }
#endif

/////////	 END_ENTITY advanced_brep_shape_representation


/////////	 ENTITY edge_curve

extern AttrDescriptor *a_285edge_geometry;
extern AttrDescriptor *a_286same_sense;

class SdaiEdge_curve  :    public SdaiEdge  {
 
#ifdef __OSTORE__
  friend void SdaiEdge_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _edge_geometry ;
	SCLP23(BOOL) _same_sense ;
  public:  

	SdaiEdge_curve ( ); 
	SdaiEdge_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiEdge_curve (SdaiEdge_curve& e ); 
	~SdaiEdge_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 157 ; } 
	const SdaiCurve_ptr edge_geometry_() const;
	void edge_geometry_ (const SdaiCurve_ptr x);

	const SCLBOOL(Bool) same_sense_() const;
	void same_sense_ (const SCLBOOL(Bool) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0

#endif

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiEdge_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiEdge_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiEdge_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiEdge_curve ;  }
#else
inline SdaiEdge_curve *
create_SdaiEdge_curve () {  return  new SdaiEdge_curve ;  }
#endif

/////////	 END_ENTITY edge_curve


/////////	 ENTITY point_replica

extern AttrDescriptor *a_287parent_pt;
extern AttrDescriptor *a_288transformation;

class SdaiPoint_replica  :    public SdaiPoint  {
 
#ifdef __OSTORE__
  friend void SdaiPoint_replica_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _parent_pt ;
	SCLP23(Application_instance_ptr) _transformation ;
  public:  

	SdaiPoint_replica ( ); 
	SdaiPoint_replica (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPoint_replica (SdaiPoint_replica& e ); 
	~SdaiPoint_replica ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 158 ; } 
	const SdaiPoint_ptr parent_pt_() const;
	void parent_pt_ (const SdaiPoint_ptr x);

	const SdaiCartesian_transformation_operator_ptr transformation_() const;
	void transformation_ (const SdaiCartesian_transformation_operator_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPoint_replica_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPoint_replica(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPoint_replica () {  return (SCLP23(Application_instance_ptr)) new SdaiPoint_replica ;  }
#else
inline SdaiPoint_replica *
create_SdaiPoint_replica () {  return  new SdaiPoint_replica ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiProduct_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	EntityAggregate _frame_of_reference ;	  //  of  product_context

  public:  

	SdaiProduct ( ); 
	SdaiProduct (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct (SdaiProduct& e ); 
	~SdaiProduct ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 159 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const EntityAggregate_ptr frame_of_reference_() const;
	void frame_of_reference_ (const EntityAggregate_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct ;  }
#else
inline SdaiProduct *
create_SdaiProduct () {  return  new SdaiProduct ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiShape_aspect_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _relating_shape_aspect ;
	SCLP23(Application_instance_ptr) _related_shape_aspect ;
  public:  

	SdaiShape_aspect_relationship ( ); 
	SdaiShape_aspect_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiShape_aspect_relationship (SdaiShape_aspect_relationship& e ); 
	~SdaiShape_aspect_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 160 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiShape_aspect_ptr relating_shape_aspect_() const;
	void relating_shape_aspect_ (const SdaiShape_aspect_ptr x);

	const SdaiShape_aspect_ptr related_shape_aspect_() const;
	void related_shape_aspect_ (const SdaiShape_aspect_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiShape_aspect_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiShape_aspect_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiShape_aspect_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiShape_aspect_relationship ;  }
#else
inline SdaiShape_aspect_relationship *
create_SdaiShape_aspect_relationship () {  return  new SdaiShape_aspect_relationship ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiRectangular_trimmed_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _basis_surface ;
	SCLP23(Real) _u1 ;
	SCLP23(Real) _u2 ;
	SCLP23(Real) _v1 ;
	SCLP23(Real) _v2 ;
	SCLP23(BOOL) _usense ;
	SCLP23(BOOL) _vsense ;
  public:  

	SdaiRectangular_trimmed_surface ( ); 
	SdaiRectangular_trimmed_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiRectangular_trimmed_surface (SdaiRectangular_trimmed_surface& e ); 
	~SdaiRectangular_trimmed_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 161 ; } 
	const SdaiSurface_ptr basis_surface_() const;
	void basis_surface_ (const SdaiSurface_ptr x);

	const SdaiParameter_value u1_() const;
	void u1_ (const SdaiParameter_value x);

	const SdaiParameter_value u2_() const;
	void u2_ (const SdaiParameter_value x);

	const SdaiParameter_value v1_() const;
	void v1_ (const SdaiParameter_value x);

	const SdaiParameter_value v2_() const;
	void v2_ (const SdaiParameter_value x);

	const SCLBOOL(Bool) usense_() const;
	void usense_ (const SCLBOOL(Bool) x);

	const SCLBOOL(Bool) vsense_() const;
	void vsense_ (const SCLBOOL(Bool) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiRectangular_trimmed_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiRectangular_trimmed_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiRectangular_trimmed_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiRectangular_trimmed_surface ;  }
#else
inline SdaiRectangular_trimmed_surface *
create_SdaiRectangular_trimmed_surface () {  return  new SdaiRectangular_trimmed_surface ;  }
#endif

/////////	 END_ENTITY rectangular_trimmed_surface


/////////	 ENTITY plane


class SdaiPlane  :    public SdaiElementary_surface  {
 
#ifdef __OSTORE__
  friend void SdaiPlane_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiPlane ( ); 
	SdaiPlane (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPlane (SdaiPlane& e ); 
	~SdaiPlane ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 162 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPlane_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPlane(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPlane () {  return (SCLP23(Application_instance_ptr)) new SdaiPlane ;  }
#else
inline SdaiPlane *
create_SdaiPlane () {  return  new SdaiPlane ;  }
#endif

/////////	 END_ENTITY plane


/////////	 ENTITY action_assignment

extern AttrDescriptor *a_304assigned_action;

class SdaiAction_assignment  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAction_assignment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _assigned_action ;
  public:  

	SdaiAction_assignment ( ); 
	SdaiAction_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAction_assignment (SdaiAction_assignment& e ); 
	~SdaiAction_assignment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 163 ; } 
	const SdaiAction_ptr assigned_action_() const;
	void assigned_action_ (const SdaiAction_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAction_assignment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAction_assignment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAction_assignment () {  return (SCLP23(Application_instance_ptr)) new SdaiAction_assignment ;  }
#else
inline SdaiAction_assignment *
create_SdaiAction_assignment () {  return  new SdaiAction_assignment ;  }
#endif

/////////	 END_ENTITY action_assignment


/////////	 ENTITY change

extern AttrDescriptor *a_305items;

class SdaiChange  :    public SdaiAction_assignment  {
 
#ifdef __OSTORE__
  friend void SdaiChange_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiWork_items _items ;	  //  of  work_item

  public:  

	SdaiChange ( ); 
	SdaiChange (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiChange (SdaiChange& e ); 
	~SdaiChange ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 164 ; } 
	const SdaiWork_items_ptr items_() const;
	void items_ (const SdaiWork_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiChange_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiChange(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiChange () {  return (SCLP23(Application_instance_ptr)) new SdaiChange ;  }
#else
inline SdaiChange *
create_SdaiChange () {  return  new SdaiChange ;  }
#endif

/////////	 END_ENTITY change


/////////	 ENTITY circle

extern AttrDescriptor *a_306radius;

class SdaiCircle  :    public SdaiConic  {
 
#ifdef __OSTORE__
  friend void SdaiCircle_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Real) _radius ;
  public:  

	SdaiCircle ( ); 
	SdaiCircle (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCircle (SdaiCircle& e ); 
	~SdaiCircle ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 165 ; } 
	const SdaiPositive_length_measure radius_() const;
	void radius_ (const SdaiPositive_length_measure x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCircle_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCircle(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCircle () {  return (SCLP23(Application_instance_ptr)) new SdaiCircle ;  }
#else
inline SdaiCircle *
create_SdaiCircle () {  return  new SdaiCircle ;  }
#endif

/////////	 END_ENTITY circle


/////////	 ENTITY line

extern AttrDescriptor *a_307pnt;
extern AttrDescriptor *a_308dir;

class SdaiLine  :    public SdaiCurve  {
 
#ifdef __OSTORE__
  friend void SdaiLine_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _pnt ;
	SCLP23(Application_instance_ptr) _dir ;
  public:  

	SdaiLine ( ); 
	SdaiLine (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiLine (SdaiLine& e ); 
	~SdaiLine ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 166 ; } 
	const SdaiCartesian_point_ptr pnt_() const;
	void pnt_ (const SdaiCartesian_point_ptr x);

	const SdaiVector_ptr dir_() const;
	void dir_ (const SdaiVector_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiLine_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiLine(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiLine () {  return (SCLP23(Application_instance_ptr)) new SdaiLine ;  }
#else
inline SdaiLine *
create_SdaiLine () {  return  new SdaiLine ;  }
#endif

/////////	 END_ENTITY line


/////////	 ENTITY property_definition_representation

extern AttrDescriptor *a_309definition;
extern AttrDescriptor *a_310used_representation;

class SdaiProperty_definition_representation  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiProperty_definition_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _definition ;
	SCLP23(Application_instance_ptr) _used_representation ;
  public:  

	SdaiProperty_definition_representation ( ); 
	SdaiProperty_definition_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProperty_definition_representation (SdaiProperty_definition_representation& e ); 
	~SdaiProperty_definition_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 167 ; } 
	const SdaiProperty_definition_ptr definition_() const;
	void definition_ (const SdaiProperty_definition_ptr x);

	const SdaiRepresentation_ptr used_representation_() const;
	void used_representation_ (const SdaiRepresentation_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProperty_definition_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProperty_definition_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProperty_definition_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiProperty_definition_representation ;  }
#else
inline SdaiProperty_definition_representation *
create_SdaiProperty_definition_representation () {  return  new SdaiProperty_definition_representation ;  }
#endif

/////////	 END_ENTITY property_definition_representation


/////////	 ENTITY geometric_set

extern AttrDescriptor *a_311elements;

class SdaiGeometric_set  :    public SdaiGeometric_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiGeometric_set_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiGeometric_set_selects _elements ;	  //  of  geometric_set_select

  public:  

	SdaiGeometric_set ( ); 
	SdaiGeometric_set (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiGeometric_set (SdaiGeometric_set& e ); 
	~SdaiGeometric_set ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 168 ; } 
	const SdaiGeometric_set_selects_ptr elements_() const;
	void elements_ (const SdaiGeometric_set_selects_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiGeometric_set_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiGeometric_set(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiGeometric_set () {  return (SCLP23(Application_instance_ptr)) new SdaiGeometric_set ;  }
#else
inline SdaiGeometric_set *
create_SdaiGeometric_set () {  return  new SdaiGeometric_set ;  }
#endif

/////////	 END_ENTITY geometric_set


/////////	 ENTITY geometric_curve_set


class SdaiGeometric_curve_set  :    public SdaiGeometric_set  {
 
#ifdef __OSTORE__
  friend void SdaiGeometric_curve_set_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiGeometric_curve_set ( ); 
	SdaiGeometric_curve_set (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiGeometric_curve_set (SdaiGeometric_curve_set& e ); 
	~SdaiGeometric_curve_set ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 169 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiGeometric_curve_set_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiGeometric_curve_set(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiGeometric_curve_set () {  return (SCLP23(Application_instance_ptr)) new SdaiGeometric_curve_set ;  }
#else
inline SdaiGeometric_curve_set *
create_SdaiGeometric_curve_set () {  return  new SdaiGeometric_curve_set ;  }
#endif

/////////	 END_ENTITY geometric_curve_set


/////////	 ENTITY personal_address

extern AttrDescriptor *a_312people;
extern AttrDescriptor *a_313description;

class SdaiPersonal_address  :    public SdaiAddress  {
 
#ifdef __OSTORE__
  friend void SdaiPersonal_address_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _people ;	  //  of  person

	SCLP23(String) _description ;
  public:  

	SdaiPersonal_address ( ); 
	SdaiPersonal_address (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPersonal_address (SdaiPersonal_address& e ); 
	~SdaiPersonal_address ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 170 ; } 
	const EntityAggregate_ptr people_() const;
	void people_ (const EntityAggregate_ptr x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPersonal_address_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPersonal_address(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPersonal_address () {  return (SCLP23(Application_instance_ptr)) new SdaiPersonal_address ;  }
#else
inline SdaiPersonal_address *
create_SdaiPersonal_address () {  return  new SdaiPersonal_address ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiDocument_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _relating_document ;
	SCLP23(Application_instance_ptr) _related_document ;
  public:  

	SdaiDocument_relationship ( ); 
	SdaiDocument_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDocument_relationship (SdaiDocument_relationship& e ); 
	~SdaiDocument_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 171 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiDocument_ptr relating_document_() const;
	void relating_document_ (const SdaiDocument_ptr x);

	const SdaiDocument_ptr related_document_() const;
	void related_document_ (const SdaiDocument_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDocument_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDocument_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDocument_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiDocument_relationship ;  }
#else
inline SdaiDocument_relationship *
create_SdaiDocument_relationship () {  return  new SdaiDocument_relationship ;  }
#endif

/////////	 END_ENTITY document_relationship


/////////	 ENTITY pcurve

extern AttrDescriptor *a_318basis_surface;
extern AttrDescriptor *a_319reference_to_curve;

class SdaiPcurve  :    public SdaiCurve  {
 
#ifdef __OSTORE__
  friend void SdaiPcurve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _basis_surface ;
	SCLP23(Application_instance_ptr) _reference_to_curve ;
  public:  

	SdaiPcurve ( ); 
	SdaiPcurve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPcurve (SdaiPcurve& e ); 
	~SdaiPcurve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 172 ; } 
	const SdaiSurface_ptr basis_surface_() const;
	void basis_surface_ (const SdaiSurface_ptr x);

	const SdaiDefinitional_representation_ptr reference_to_curve_() const;
	void reference_to_curve_ (const SdaiDefinitional_representation_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPcurve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPcurve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPcurve () {  return (SCLP23(Application_instance_ptr)) new SdaiPcurve ;  }
#else
inline SdaiPcurve *
create_SdaiPcurve () {  return  new SdaiPcurve ;  }
#endif

/////////	 END_ENTITY pcurve


/////////	 ENTITY outer_boundary_curve


class SdaiOuter_boundary_curve  :    public SdaiBoundary_curve  {
 
#ifdef __OSTORE__
  friend void SdaiOuter_boundary_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiOuter_boundary_curve ( ); 
	SdaiOuter_boundary_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOuter_boundary_curve (SdaiOuter_boundary_curve& e ); 
	~SdaiOuter_boundary_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 173 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOuter_boundary_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOuter_boundary_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOuter_boundary_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiOuter_boundary_curve ;  }
#else
inline SdaiOuter_boundary_curve *
create_SdaiOuter_boundary_curve () {  return  new SdaiOuter_boundary_curve ;  }
#endif

/////////	 END_ENTITY outer_boundary_curve


/////////	 ENTITY shape_representation_relationship


class SdaiShape_representation_relationship  :    public SdaiRepresentation_relationship  {
 
#ifdef __OSTORE__
  friend void SdaiShape_representation_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiShape_representation_relationship ( ); 
	SdaiShape_representation_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiShape_representation_relationship (SdaiShape_representation_relationship& e ); 
	~SdaiShape_representation_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 174 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiShape_representation_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiShape_representation_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiShape_representation_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiShape_representation_relationship ;  }
#else
inline SdaiShape_representation_relationship *
create_SdaiShape_representation_relationship () {  return  new SdaiShape_representation_relationship ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAssembly_component_usage_substitute_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _base ;
	SCLP23(Application_instance_ptr) _substitute ;
  public:  

	SdaiAssembly_component_usage_substitute ( ); 
	SdaiAssembly_component_usage_substitute (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAssembly_component_usage_substitute (SdaiAssembly_component_usage_substitute& e ); 
	~SdaiAssembly_component_usage_substitute ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 175 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiAssembly_component_usage_ptr base_() const;
	void base_ (const SdaiAssembly_component_usage_ptr x);

	const SdaiAssembly_component_usage_ptr substitute_() const;
	void substitute_ (const SdaiAssembly_component_usage_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAssembly_component_usage_substitute_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAssembly_component_usage_substitute(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAssembly_component_usage_substitute () {  return (SCLP23(Application_instance_ptr)) new SdaiAssembly_component_usage_substitute ;  }
#else
inline SdaiAssembly_component_usage_substitute *
create_SdaiAssembly_component_usage_substitute () {  return  new SdaiAssembly_component_usage_substitute ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiDegenerate_pcurve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _basis_surface ;
	SCLP23(Application_instance_ptr) _reference_to_curve ;
  public:  

	SdaiDegenerate_pcurve ( ); 
	SdaiDegenerate_pcurve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDegenerate_pcurve (SdaiDegenerate_pcurve& e ); 
	~SdaiDegenerate_pcurve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 176 ; } 
	const SdaiSurface_ptr basis_surface_() const;
	void basis_surface_ (const SdaiSurface_ptr x);

	const SdaiDefinitional_representation_ptr reference_to_curve_() const;
	void reference_to_curve_ (const SdaiDefinitional_representation_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDegenerate_pcurve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDegenerate_pcurve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDegenerate_pcurve () {  return (SCLP23(Application_instance_ptr)) new SdaiDegenerate_pcurve ;  }
#else
inline SdaiDegenerate_pcurve *
create_SdaiDegenerate_pcurve () {  return  new SdaiDegenerate_pcurve ;  }
#endif

/////////	 END_ENTITY degenerate_pcurve


/////////	 ENTITY evaluated_degenerate_pcurve

extern AttrDescriptor *a_326equivalent_point;

class SdaiEvaluated_degenerate_pcurve  :    public SdaiDegenerate_pcurve  {
 
#ifdef __OSTORE__
  friend void SdaiEvaluated_degenerate_pcurve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _equivalent_point ;
  public:  

	SdaiEvaluated_degenerate_pcurve ( ); 
	SdaiEvaluated_degenerate_pcurve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiEvaluated_degenerate_pcurve (SdaiEvaluated_degenerate_pcurve& e ); 
	~SdaiEvaluated_degenerate_pcurve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 177 ; } 
	const SdaiCartesian_point_ptr equivalent_point_() const;
	void equivalent_point_ (const SdaiCartesian_point_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiEvaluated_degenerate_pcurve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiEvaluated_degenerate_pcurve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiEvaluated_degenerate_pcurve () {  return (SCLP23(Application_instance_ptr)) new SdaiEvaluated_degenerate_pcurve ;  }
#else
inline SdaiEvaluated_degenerate_pcurve *
create_SdaiEvaluated_degenerate_pcurve () {  return  new SdaiEvaluated_degenerate_pcurve ;  }
#endif

/////////	 END_ENTITY evaluated_degenerate_pcurve


/////////	 ENTITY solid_angle_measure_with_unit


class SdaiSolid_angle_measure_with_unit  :    public SdaiMeasure_with_unit  {
 
#ifdef __OSTORE__
  friend void SdaiSolid_angle_measure_with_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiSolid_angle_measure_with_unit ( ); 
	SdaiSolid_angle_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSolid_angle_measure_with_unit (SdaiSolid_angle_measure_with_unit& e ); 
	~SdaiSolid_angle_measure_with_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 178 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSolid_angle_measure_with_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSolid_angle_measure_with_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSolid_angle_measure_with_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiSolid_angle_measure_with_unit ;  }
#else
inline SdaiSolid_angle_measure_with_unit *
create_SdaiSolid_angle_measure_with_unit () {  return  new SdaiSolid_angle_measure_with_unit ;  }
#endif

/////////	 END_ENTITY solid_angle_measure_with_unit


/////////	 ENTITY connected_edge_set

extern AttrDescriptor *a_327ces_edges;

class SdaiConnected_edge_set  :    public SdaiTopological_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiConnected_edge_set_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _ces_edges ;	  //  of  edge

  public:  

	SdaiConnected_edge_set ( ); 
	SdaiConnected_edge_set (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiConnected_edge_set (SdaiConnected_edge_set& e ); 
	~SdaiConnected_edge_set ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 179 ; } 
	const EntityAggregate_ptr ces_edges_() const;
	void ces_edges_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiConnected_edge_set_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiConnected_edge_set(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiConnected_edge_set () {  return (SCLP23(Application_instance_ptr)) new SdaiConnected_edge_set ;  }
#else
inline SdaiConnected_edge_set *
create_SdaiConnected_edge_set () {  return  new SdaiConnected_edge_set ;  }
#endif

/////////	 END_ENTITY connected_edge_set


/////////	 ENTITY action

extern AttrDescriptor *a_328name;
extern AttrDescriptor *a_329description;
extern AttrDescriptor *a_330chosen_method;

class SdaiAction  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiAction_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _chosen_method ;
  public:  

	SdaiAction ( ); 
	SdaiAction (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAction (SdaiAction& e ); 
	~SdaiAction ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 180 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiAction_method_ptr chosen_method_() const;
	void chosen_method_ (const SdaiAction_method_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAction_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAction(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAction () {  return (SCLP23(Application_instance_ptr)) new SdaiAction ;  }
#else
inline SdaiAction *
create_SdaiAction () {  return  new SdaiAction ;  }
#endif

/////////	 END_ENTITY action


/////////	 ENTITY executed_action


class SdaiExecuted_action  :    public SdaiAction  {
 
#ifdef __OSTORE__
  friend void SdaiExecuted_action_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiExecuted_action ( ); 
	SdaiExecuted_action (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiExecuted_action (SdaiExecuted_action& e ); 
	~SdaiExecuted_action ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 181 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiExecuted_action_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiExecuted_action(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiExecuted_action () {  return (SCLP23(Application_instance_ptr)) new SdaiExecuted_action ;  }
#else
inline SdaiExecuted_action *
create_SdaiExecuted_action () {  return  new SdaiExecuted_action ;  }
#endif

/////////	 END_ENTITY executed_action


/////////	 ENTITY directed_action

extern AttrDescriptor *a_331directive;

class SdaiDirected_action  :    public SdaiExecuted_action  {
 
#ifdef __OSTORE__
  friend void SdaiDirected_action_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _directive ;
  public:  

	SdaiDirected_action ( ); 
	SdaiDirected_action (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDirected_action (SdaiDirected_action& e ); 
	~SdaiDirected_action ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 182 ; } 
	const SdaiAction_directive_ptr directive_() const;
	void directive_ (const SdaiAction_directive_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDirected_action_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDirected_action(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDirected_action () {  return (SCLP23(Application_instance_ptr)) new SdaiDirected_action ;  }
#else
inline SdaiDirected_action *
create_SdaiDirected_action () {  return  new SdaiDirected_action ;  }
#endif

/////////	 END_ENTITY directed_action


/////////	 ENTITY organizational_project

extern AttrDescriptor *a_332name;
extern AttrDescriptor *a_333description;
extern AttrDescriptor *a_334responsible_organizations;

class SdaiOrganizational_project  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiOrganizational_project_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	EntityAggregate _responsible_organizations ;	  //  of  organization

  public:  

	SdaiOrganizational_project ( ); 
	SdaiOrganizational_project (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOrganizational_project (SdaiOrganizational_project& e ); 
	~SdaiOrganizational_project ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 183 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const EntityAggregate_ptr responsible_organizations_() const;
	void responsible_organizations_ (const EntityAggregate_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOrganizational_project_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOrganizational_project(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOrganizational_project () {  return (SCLP23(Application_instance_ptr)) new SdaiOrganizational_project ;  }
#else
inline SdaiOrganizational_project *
create_SdaiOrganizational_project () {  return  new SdaiOrganizational_project ;  }
#endif

/////////	 END_ENTITY organizational_project


/////////	 ENTITY date_time_role

extern AttrDescriptor *a_335name;

class SdaiDate_time_role  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiDate_time_role_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
  public:  

	SdaiDate_time_role ( ); 
	SdaiDate_time_role (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDate_time_role (SdaiDate_time_role& e ); 
	~SdaiDate_time_role ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 184 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDate_time_role_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDate_time_role(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDate_time_role () {  return (SCLP23(Application_instance_ptr)) new SdaiDate_time_role ;  }
#else
inline SdaiDate_time_role *
create_SdaiDate_time_role () {  return  new SdaiDate_time_role ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiCurve_bounded_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _basis_surface ;
	EntityAggregate _boundaries ;	  //  of  boundary_curve

	SCLP23(BOOL) _implicit_outer ;
  public:  

	SdaiCurve_bounded_surface ( ); 
	SdaiCurve_bounded_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCurve_bounded_surface (SdaiCurve_bounded_surface& e ); 
	~SdaiCurve_bounded_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 185 ; } 
	const SdaiSurface_ptr basis_surface_() const;
	void basis_surface_ (const SdaiSurface_ptr x);

	const EntityAggregate_ptr boundaries_() const;
	void boundaries_ (const EntityAggregate_ptr x);

	const SCLBOOL(Bool) implicit_outer_() const;
	void implicit_outer_ (const SCLBOOL(Bool) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCurve_bounded_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCurve_bounded_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCurve_bounded_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiCurve_bounded_surface ;  }
#else
inline SdaiCurve_bounded_surface *
create_SdaiCurve_bounded_surface () {  return  new SdaiCurve_bounded_surface ;  }
#endif

/////////	 END_ENTITY curve_bounded_surface


/////////	 ENTITY closed_shell


class SdaiClosed_shell  :    public SdaiConnected_face_set  {
 
#ifdef __OSTORE__
  friend void SdaiClosed_shell_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiClosed_shell ( ); 
	SdaiClosed_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiClosed_shell (SdaiClosed_shell& e ); 
	~SdaiClosed_shell ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 186 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiClosed_shell_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiClosed_shell(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiClosed_shell () {  return (SCLP23(Application_instance_ptr)) new SdaiClosed_shell ;  }
#else
inline SdaiClosed_shell *
create_SdaiClosed_shell () {  return  new SdaiClosed_shell ;  }
#endif

/////////	 END_ENTITY closed_shell


/////////	 ENTITY design_make_from_relationship


class SdaiDesign_make_from_relationship  :    public SdaiProduct_definition_relationship  {
 
#ifdef __OSTORE__
  friend void SdaiDesign_make_from_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiDesign_make_from_relationship ( ); 
	SdaiDesign_make_from_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDesign_make_from_relationship (SdaiDesign_make_from_relationship& e ); 
	~SdaiDesign_make_from_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 187 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDesign_make_from_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDesign_make_from_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDesign_make_from_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiDesign_make_from_relationship ;  }
#else
inline SdaiDesign_make_from_relationship *
create_SdaiDesign_make_from_relationship () {  return  new SdaiDesign_make_from_relationship ;  }
#endif

/////////	 END_ENTITY design_make_from_relationship


/////////	 ENTITY definitional_representation


class SdaiDefinitional_representation  :    public SdaiRepresentation  {
 
#ifdef __OSTORE__
  friend void SdaiDefinitional_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiDefinitional_representation ( ); 
	SdaiDefinitional_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDefinitional_representation (SdaiDefinitional_representation& e ); 
	~SdaiDefinitional_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 188 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDefinitional_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDefinitional_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDefinitional_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiDefinitional_representation ;  }
#else
inline SdaiDefinitional_representation *
create_SdaiDefinitional_representation () {  return  new SdaiDefinitional_representation ;  }
#endif

/////////	 END_ENTITY definitional_representation


/////////	 ENTITY product_definition_shape


class SdaiProduct_definition_shape  :    public SdaiProperty_definition  {
 
#ifdef __OSTORE__
  friend void SdaiProduct_definition_shape_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiProduct_definition_shape ( ); 
	SdaiProduct_definition_shape (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_definition_shape (SdaiProduct_definition_shape& e ); 
	~SdaiProduct_definition_shape ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 189 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_definition_shape_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_shape(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_shape () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_shape ;  }
#else
inline SdaiProduct_definition_shape *
create_SdaiProduct_definition_shape () {  return  new SdaiProduct_definition_shape ;  }
#endif

/////////	 END_ENTITY product_definition_shape


/////////	 ENTITY si_unit

extern AttrDescriptor *a_339prefix;
extern AttrDescriptor *a_340name;
extern Derived_attribute *a_341Dnamed_unit_dimensions;

class SdaiSi_unit  :    public SdaiNamed_unit  {
 
#ifdef __OSTORE__
  friend void SdaiSi_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiSi_prefix_var _prefix ;    //  OPTIONAL
	SdaiSi_unit_name_var _name ;
  public:  

	SdaiSi_unit ( ); 
	SdaiSi_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSi_unit (SdaiSi_unit& e ); 
	~SdaiSi_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 190 ; } 
	const SdaiSi_prefix_var prefix_() const;
	void prefix_ (const SdaiSi_prefix_var x);

	const SdaiSi_unit_name_var name_() const;
	void name_ (const SdaiSi_unit_name_var x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSi_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSi_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSi_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiSi_unit ;  }
#else
inline SdaiSi_unit *
create_SdaiSi_unit () {  return  new SdaiSi_unit ;  }
#endif

/////////	 END_ENTITY si_unit


/////////	 ENTITY bezier_surface


class SdaiBezier_surface  :    public SdaiB_spline_surface  {
 
#ifdef __OSTORE__
  friend void SdaiBezier_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiBezier_surface ( ); 
	SdaiBezier_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiBezier_surface (SdaiBezier_surface& e ); 
	~SdaiBezier_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 191 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiBezier_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiBezier_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiBezier_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiBezier_surface ;  }
#else
inline SdaiBezier_surface *
create_SdaiBezier_surface () {  return  new SdaiBezier_surface ;  }
#endif

/////////	 END_ENTITY bezier_surface


/////////	 ENTITY certification_assignment

extern AttrDescriptor *a_342assigned_certification;

class SdaiCertification_assignment  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiCertification_assignment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _assigned_certification ;
  public:  

	SdaiCertification_assignment ( ); 
	SdaiCertification_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCertification_assignment (SdaiCertification_assignment& e ); 
	~SdaiCertification_assignment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 192 ; } 
	const SdaiCertification_ptr assigned_certification_() const;
	void assigned_certification_ (const SdaiCertification_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCertification_assignment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCertification_assignment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCertification_assignment () {  return (SCLP23(Application_instance_ptr)) new SdaiCertification_assignment ;  }
#else
inline SdaiCertification_assignment *
create_SdaiCertification_assignment () {  return  new SdaiCertification_assignment ;  }
#endif

/////////	 END_ENTITY certification_assignment


/////////	 ENTITY start_work

extern AttrDescriptor *a_343items;

class SdaiStart_work  :    public SdaiAction_assignment  {
 
#ifdef __OSTORE__
  friend void SdaiStart_work_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiWork_items _items ;	  //  of  work_item

  public:  

	SdaiStart_work ( ); 
	SdaiStart_work (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiStart_work (SdaiStart_work& e ); 
	~SdaiStart_work ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 193 ; } 
	const SdaiWork_items_ptr items_() const;
	void items_ (const SdaiWork_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiStart_work_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiStart_work(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiStart_work () {  return (SCLP23(Application_instance_ptr)) new SdaiStart_work ;  }
#else
inline SdaiStart_work *
create_SdaiStart_work () {  return  new SdaiStart_work ;  }
#endif

/////////	 END_ENTITY start_work


/////////	 ENTITY contract_type

extern AttrDescriptor *a_344description;

class SdaiContract_type  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiContract_type_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _description ;
  public:  

	SdaiContract_type ( ); 
	SdaiContract_type (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiContract_type (SdaiContract_type& e ); 
	~SdaiContract_type ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 194 ; } 
	const SdaiLabel description_() const;
	void description_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiContract_type_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiContract_type(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiContract_type () {  return (SCLP23(Application_instance_ptr)) new SdaiContract_type ;  }
#else
inline SdaiContract_type *
create_SdaiContract_type () {  return  new SdaiContract_type ;  }
#endif

/////////	 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 Derived_attribute *a_348Dupper_index_on_knots;

class SdaiB_spline_curve_with_knots  :    public SdaiB_spline_curve  {
 
#ifdef __OSTORE__
  friend void SdaiB_spline_curve_with_knots_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	IntAggregate _knot_multiplicities ;
	RealAggregate _knots ;	  //  of  parameter_value

	SdaiKnot_type_var _knot_spec ;
  public:  

	SdaiB_spline_curve_with_knots ( ); 
	SdaiB_spline_curve_with_knots (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiB_spline_curve_with_knots (SdaiB_spline_curve_with_knots& e ); 
	~SdaiB_spline_curve_with_knots ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 195 ; } 
	const IntAggregate_ptr knot_multiplicities_() const;
	void knot_multiplicities_ (const IntAggregate_ptr x);

	const RealAggregate_ptr knots_() const;
	void knots_ (const RealAggregate_ptr x);

	const SdaiKnot_type_var knot_spec_() const;
	void knot_spec_ (const SdaiKnot_type_var x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiB_spline_curve_with_knots_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiB_spline_curve_with_knots(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiB_spline_curve_with_knots () {  return (SCLP23(Application_instance_ptr)) new SdaiB_spline_curve_with_knots ;  }
#else
inline SdaiB_spline_curve_with_knots *
create_SdaiB_spline_curve_with_knots () {  return  new SdaiB_spline_curve_with_knots ;  }
#endif

/////////	 END_ENTITY b_spline_curve_with_knots


/////////	 ENTITY cc_design_approval

extern AttrDescriptor *a_349items;

class SdaiCc_design_approval  :    public SdaiApproval_assignment  {
 
#ifdef __OSTORE__
  friend void SdaiCc_design_approval_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiApproved_items _items ;	  //  of  approved_item

  public:  

	SdaiCc_design_approval ( ); 
	SdaiCc_design_approval (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCc_design_approval (SdaiCc_design_approval& e ); 
	~SdaiCc_design_approval ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 196 ; } 
	const SdaiApproved_items_ptr items_() const;
	void items_ (const SdaiApproved_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCc_design_approval_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCc_design_approval(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCc_design_approval () {  return (SCLP23(Application_instance_ptr)) new SdaiCc_design_approval ;  }
#else
inline SdaiCc_design_approval *
create_SdaiCc_design_approval () {  return  new SdaiCc_design_approval ;  }
#endif

/////////	 END_ENTITY cc_design_approval


/////////	 ENTITY edge_based_wireframe_shape_representation


class SdaiEdge_based_wireframe_shape_representation  :    public SdaiShape_representation  {
 
#ifdef __OSTORE__
  friend void SdaiEdge_based_wireframe_shape_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiEdge_based_wireframe_shape_representation ( ); 
	SdaiEdge_based_wireframe_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiEdge_based_wireframe_shape_representation (SdaiEdge_based_wireframe_shape_representation& e ); 
	~SdaiEdge_based_wireframe_shape_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 197 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiEdge_based_wireframe_shape_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiEdge_based_wireframe_shape_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiEdge_based_wireframe_shape_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiEdge_based_wireframe_shape_representation ;  }
#else
inline SdaiEdge_based_wireframe_shape_representation *
create_SdaiEdge_based_wireframe_shape_representation () {  return  new SdaiEdge_based_wireframe_shape_representation ;  }
#endif

/////////	 END_ENTITY edge_based_wireframe_shape_representation


/////////	 ENTITY geometrically_bounded_wireframe_shape_representation


class SdaiGeometrically_bounded_wireframe_shape_representation  :    public SdaiShape_representation  {
 
#ifdef __OSTORE__
  friend void SdaiGeometrically_bounded_wireframe_shape_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiGeometrically_bounded_wireframe_shape_representation ( ); 
	SdaiGeometrically_bounded_wireframe_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiGeometrically_bounded_wireframe_shape_representation (SdaiGeometrically_bounded_wireframe_shape_representation& e ); 
	~SdaiGeometrically_bounded_wireframe_shape_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 198 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiGeometrically_bounded_wireframe_shape_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiGeometrically_bounded_wireframe_shape_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiGeometrically_bounded_wireframe_shape_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiGeometrically_bounded_wireframe_shape_representation ;  }
#else
inline SdaiGeometrically_bounded_wireframe_shape_representation *
create_SdaiGeometrically_bounded_wireframe_shape_representation () {  return  new SdaiGeometrically_bounded_wireframe_shape_representation ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiProduct_concept_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _market_context ;
  public:  

	SdaiProduct_concept ( ); 
	SdaiProduct_concept (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_concept (SdaiProduct_concept& e ); 
	~SdaiProduct_concept ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 199 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiProduct_concept_context_ptr market_context_() const;
	void market_context_ (const SdaiProduct_concept_context_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_concept_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_concept(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_concept () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_concept ;  }
#else
inline SdaiProduct_concept *
create_SdaiProduct_concept () {  return  new SdaiProduct_concept ;  }
#endif

/////////	 END_ENTITY product_concept


/////////	 ENTITY cc_design_contract

extern AttrDescriptor *a_354items;

class SdaiCc_design_contract  :    public SdaiContract_assignment  {
 
#ifdef __OSTORE__
  friend void SdaiCc_design_contract_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiContracted_items _items ;	  //  of  contracted_item

  public:  

	SdaiCc_design_contract ( ); 
	SdaiCc_design_contract (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCc_design_contract (SdaiCc_design_contract& e ); 
	~SdaiCc_design_contract ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 200 ; } 
	const SdaiContracted_items_ptr items_() const;
	void items_ (const SdaiContracted_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCc_design_contract_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCc_design_contract(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCc_design_contract () {  return (SCLP23(Application_instance_ptr)) new SdaiCc_design_contract ;  }
#else
inline SdaiCc_design_contract *
create_SdaiCc_design_contract () {  return  new SdaiCc_design_contract ;  }
#endif

/////////	 END_ENTITY cc_design_contract


/////////	 ENTITY seam_curve


class SdaiSeam_curve  :    public SdaiSurface_curve  {
 
#ifdef __OSTORE__
  friend void SdaiSeam_curve_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiSeam_curve ( ); 
	SdaiSeam_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSeam_curve (SdaiSeam_curve& e ); 
	~SdaiSeam_curve ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 201 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSeam_curve_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSeam_curve(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSeam_curve () {  return (SCLP23(Application_instance_ptr)) new SdaiSeam_curve ;  }
#else
inline SdaiSeam_curve *
create_SdaiSeam_curve () {  return  new SdaiSeam_curve ;  }
#endif

/////////	 END_ENTITY seam_curve


/////////	 ENTITY axis2_placement_3d

extern AttrDescriptor *a_355axis;
extern AttrDescriptor *a_356ref_direction;
extern Derived_attribute *a_357Dp;

class SdaiAxis2_placement_3d  :    public SdaiPlacement  {
 
#ifdef __OSTORE__
  friend void SdaiAxis2_placement_3d_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _axis ;    //  OPTIONAL
	SCLP23(Application_instance_ptr) _ref_direction ;    //  OPTIONAL
  public:  

	SdaiAxis2_placement_3d ( ); 
	SdaiAxis2_placement_3d (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAxis2_placement_3d (SdaiAxis2_placement_3d& e ); 
	~SdaiAxis2_placement_3d ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 202 ; } 
	const SdaiDirection_ptr axis_() const;
	void axis_ (const SdaiDirection_ptr x);

	const SdaiDirection_ptr ref_direction_() const;
	void ref_direction_ (const SdaiDirection_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAxis2_placement_3d_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAxis2_placement_3d(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAxis2_placement_3d () {  return (SCLP23(Application_instance_ptr)) new SdaiAxis2_placement_3d ;  }
#else
inline SdaiAxis2_placement_3d *
create_SdaiAxis2_placement_3d () {  return  new SdaiAxis2_placement_3d ;  }
#endif

/////////	 END_ENTITY axis2_placement_3d


/////////	 ENTITY rational_b_spline_surface

extern AttrDescriptor *a_358weights_data;
extern Derived_attribute *a_359Dweights;

class SdaiRational_b_spline_surface  :    public SdaiB_spline_surface  {
 
#ifdef __OSTORE__
  friend void SdaiRational_b_spline_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	GenericAggregate _weights_data ;
  public:  

	SdaiRational_b_spline_surface ( ); 
	SdaiRational_b_spline_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiRational_b_spline_surface (SdaiRational_b_spline_surface& e ); 
	~SdaiRational_b_spline_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 203 ; } 
	const GenericAggregate_ptr weights_data_() const;
	void weights_data_ (const GenericAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiRational_b_spline_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiRational_b_spline_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiRational_b_spline_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiRational_b_spline_surface ;  }
#else
inline SdaiRational_b_spline_surface *
create_SdaiRational_b_spline_surface () {  return  new SdaiRational_b_spline_surface ;  }
#endif

/////////	 END_ENTITY rational_b_spline_surface


/////////	 ENTITY configuration_design

extern AttrDescriptor *a_360configuration;
extern AttrDescriptor *a_361design;

class SdaiConfiguration_design  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiConfiguration_design_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _configuration ;
	SCLP23(Application_instance_ptr) _design ;
  public:  

	SdaiConfiguration_design ( ); 
	SdaiConfiguration_design (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiConfiguration_design (SdaiConfiguration_design& e ); 
	~SdaiConfiguration_design ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 204 ; } 
	const SdaiConfiguration_item_ptr configuration_() const;
	void configuration_ (const SdaiConfiguration_item_ptr x);

	const SdaiProduct_definition_formation_ptr design_() const;
	void design_ (const SdaiProduct_definition_formation_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiConfiguration_design_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiConfiguration_design(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiConfiguration_design () {  return (SCLP23(Application_instance_ptr)) new SdaiConfiguration_design ;  }
#else
inline SdaiConfiguration_design *
create_SdaiConfiguration_design () {  return  new SdaiConfiguration_design ;  }
#endif

/////////	 END_ENTITY configuration_design


/////////	 ENTITY design_context


class SdaiDesign_context  :    public SdaiProduct_definition_context  {
 
#ifdef __OSTORE__
  friend void SdaiDesign_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiDesign_context ( ); 
	SdaiDesign_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDesign_context (SdaiDesign_context& e ); 
	~SdaiDesign_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 205 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDesign_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDesign_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDesign_context () {  return (SCLP23(Application_instance_ptr)) new SdaiDesign_context ;  }
#else
inline SdaiDesign_context *
create_SdaiDesign_context () {  return  new SdaiDesign_context ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiProduct_definition_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _formation ;
	SCLP23(Application_instance_ptr) _frame_of_reference ;
  public:  

	SdaiProduct_definition ( ); 
	SdaiProduct_definition (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_definition (SdaiProduct_definition& e ); 
	~SdaiProduct_definition ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 206 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiProduct_definition_formation_ptr formation_() const;
	void formation_ (const SdaiProduct_definition_formation_ptr x);

	const SdaiProduct_definition_context_ptr frame_of_reference_() const;
	void frame_of_reference_ (const SdaiProduct_definition_context_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_definition_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition ;  }
#else
inline SdaiProduct_definition *
create_SdaiProduct_definition () {  return  new SdaiProduct_definition ;  }
#endif

/////////	 END_ENTITY product_definition


/////////	 ENTITY product_definition_with_associated_documents

extern AttrDescriptor *a_366documentation_ids;

class SdaiProduct_definition_with_associated_documents  :    public SdaiProduct_definition  {
 
#ifdef __OSTORE__
  friend void SdaiProduct_definition_with_associated_documents_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _documentation_ids ;	  //  of  document

  public:  

	SdaiProduct_definition_with_associated_documents ( ); 
	SdaiProduct_definition_with_associated_documents (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_definition_with_associated_documents (SdaiProduct_definition_with_associated_documents& e ); 
	~SdaiProduct_definition_with_associated_documents ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 207 ; } 
	const EntityAggregate_ptr documentation_ids_() const;
	void documentation_ids_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_definition_with_associated_documents_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_with_associated_documents(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_definition_with_associated_documents () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_with_associated_documents ;  }
#else
inline SdaiProduct_definition_with_associated_documents *
create_SdaiProduct_definition_with_associated_documents () {  return  new SdaiProduct_definition_with_associated_documents ;  }
#endif

/////////	 END_ENTITY product_definition_with_associated_documents


/////////	 ENTITY organization

extern AttrDescriptor *a_367id;
extern AttrDescriptor *a_368name;
extern AttrDescriptor *a_369description;

class SdaiOrganization  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiOrganization_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _id ;    //  OPTIONAL
	SCLP23(String) _name ;
	SCLP23(String) _description ;
  public:  

	SdaiOrganization ( ); 
	SdaiOrganization (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOrganization (SdaiOrganization& e ); 
	~SdaiOrganization ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 208 ; } 
	const SdaiIdentifier id_() const;
	void id_ (const SdaiIdentifier x);

	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOrganization_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOrganization(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOrganization () {  return (SCLP23(Application_instance_ptr)) new SdaiOrganization ;  }
#else
inline SdaiOrganization *
create_SdaiOrganization () {  return  new SdaiOrganization ;  }
#endif

/////////	 END_ENTITY organization


/////////	 ENTITY cc_design_certification

extern AttrDescriptor *a_370items;

class SdaiCc_design_certification  :    public SdaiCertification_assignment  {
 
#ifdef __OSTORE__
  friend void SdaiCc_design_certification_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiCertified_items _items ;	  //  of  certified_item

  public:  

	SdaiCc_design_certification ( ); 
	SdaiCc_design_certification (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCc_design_certification (SdaiCc_design_certification& e ); 
	~SdaiCc_design_certification ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 209 ; } 
	const SdaiCertified_items_ptr items_() const;
	void items_ (const SdaiCertified_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCc_design_certification_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCc_design_certification(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCc_design_certification () {  return (SCLP23(Application_instance_ptr)) new SdaiCc_design_certification ;  }
#else
inline SdaiCc_design_certification *
create_SdaiCc_design_certification () {  return  new SdaiCc_design_certification ;  }
#endif

/////////	 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 Derived_attribute *a_376Dknot_u_upper;
extern Derived_attribute *a_377Dknot_v_upper;

class SdaiB_spline_surface_with_knots  :    public SdaiB_spline_surface  {
 
#ifdef __OSTORE__
  friend void SdaiB_spline_surface_with_knots_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	IntAggregate _u_multiplicities ;
	IntAggregate _v_multiplicities ;
	RealAggregate _u_knots ;	  //  of  parameter_value

	RealAggregate _v_knots ;	  //  of  parameter_value

	SdaiKnot_type_var _knot_spec ;
  public:  

	SdaiB_spline_surface_with_knots ( ); 
	SdaiB_spline_surface_with_knots (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiB_spline_surface_with_knots (SdaiB_spline_surface_with_knots& e ); 
	~SdaiB_spline_surface_with_knots ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 210 ; } 
	const IntAggregate_ptr u_multiplicities_() const;
	void u_multiplicities_ (const IntAggregate_ptr x);

	const IntAggregate_ptr v_multiplicities_() const;
	void v_multiplicities_ (const IntAggregate_ptr x);

	const RealAggregate_ptr u_knots_() const;
	void u_knots_ (const RealAggregate_ptr x);

	const RealAggregate_ptr v_knots_() const;
	void v_knots_ (const RealAggregate_ptr x);

	const SdaiKnot_type_var knot_spec_() const;
	void knot_spec_ (const SdaiKnot_type_var x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiB_spline_surface_with_knots_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiB_spline_surface_with_knots(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiB_spline_surface_with_knots () {  return (SCLP23(Application_instance_ptr)) new SdaiB_spline_surface_with_knots ;  }
#else
inline SdaiB_spline_surface_with_knots *
create_SdaiB_spline_surface_with_knots () {  return  new SdaiB_spline_surface_with_knots ;  }
#endif

/////////	 END_ENTITY b_spline_surface_with_knots


/////////	 ENTITY certification_type

extern AttrDescriptor *a_378description;

class SdaiCertification_type  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiCertification_type_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _description ;
  public:  

	SdaiCertification_type ( ); 
	SdaiCertification_type (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCertification_type (SdaiCertification_type& e ); 
	~SdaiCertification_type ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 211 ; } 
	const SdaiLabel description_() const;
	void description_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCertification_type_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCertification_type(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCertification_type () {  return (SCLP23(Application_instance_ptr)) new SdaiCertification_type ;  }
#else
inline SdaiCertification_type *
create_SdaiCertification_type () {  return  new SdaiCertification_type ;  }
#endif

/////////	 END_ENTITY certification_type


/////////	 ENTITY oriented_path

extern AttrDescriptor *a_379path_element;
extern AttrDescriptor *a_380orientation;
extern Derived_attribute *a_381Dpath_edge_list;

class SdaiOriented_path  :    public SdaiPath  {
 
#ifdef __OSTORE__
  friend void SdaiOriented_path_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _path_element ;
	SCLP23(BOOL) _orientation ;
  public:  

	SdaiOriented_path ( ); 
	SdaiOriented_path (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOriented_path (SdaiOriented_path& e ); 
	~SdaiOriented_path ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 212 ; } 
	const SdaiPath_ptr path_element_() const;
	void path_element_ (const SdaiPath_ptr x);

	const SCLBOOL(Bool) orientation_() const;
	void orientation_ (const SCLBOOL(Bool) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOriented_path_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOriented_path(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOriented_path () {  return (SCLP23(Application_instance_ptr)) new SdaiOriented_path ;  }
#else
inline SdaiOriented_path *
create_SdaiOriented_path () {  return  new SdaiOriented_path ;  }
#endif

/////////	 END_ENTITY oriented_path


/////////	 ENTITY security_classification

extern AttrDescriptor *a_382name;
extern AttrDescriptor *a_383purpose;
extern AttrDescriptor *a_384security_level;

class SdaiSecurity_classification  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiSecurity_classification_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _purpose ;
	SCLP23(Application_instance_ptr) _security_level ;
  public:  

	SdaiSecurity_classification ( ); 
	SdaiSecurity_classification (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSecurity_classification (SdaiSecurity_classification& e ); 
	~SdaiSecurity_classification ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 213 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText purpose_() const;
	void purpose_ (const SdaiText x);

	const SdaiSecurity_classification_level_ptr security_level_() const;
	void security_level_ (const SdaiSecurity_classification_level_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSecurity_classification_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSecurity_classification(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSecurity_classification () {  return (SCLP23(Application_instance_ptr)) new SdaiSecurity_classification ;  }
#else
inline SdaiSecurity_classification *
create_SdaiSecurity_classification () {  return  new SdaiSecurity_classification ;  }
#endif

/////////	 END_ENTITY security_classification


/////////	 ENTITY vertex_loop

extern AttrDescriptor *a_385loop_vertex;

class SdaiVertex_loop  :    public SdaiLoop  {
 
#ifdef __OSTORE__
  friend void SdaiVertex_loop_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _loop_vertex ;
  public:  

	SdaiVertex_loop ( ); 
	SdaiVertex_loop (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiVertex_loop (SdaiVertex_loop& e ); 
	~SdaiVertex_loop ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 214 ; } 
	const SdaiVertex_ptr loop_vertex_() const;
	void loop_vertex_ (const SdaiVertex_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiVertex_loop_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiVertex_loop(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiVertex_loop () {  return (SCLP23(Application_instance_ptr)) new SdaiVertex_loop ;  }
#else
inline SdaiVertex_loop *
create_SdaiVertex_loop () {  return  new SdaiVertex_loop ;  }
#endif

/////////	 END_ENTITY vertex_loop


/////////	 ENTITY approval_status

extern AttrDescriptor *a_386name;

class SdaiApproval_status  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiApproval_status_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
  public:  

	SdaiApproval_status ( ); 
	SdaiApproval_status (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiApproval_status (SdaiApproval_status& e ); 
	~SdaiApproval_status ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 215 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiApproval_status_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiApproval_status(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiApproval_status () {  return (SCLP23(Application_instance_ptr)) new SdaiApproval_status ;  }
#else
inline SdaiApproval_status *
create_SdaiApproval_status () {  return  new SdaiApproval_status ;  }
#endif

/////////	 END_ENTITY approval_status


/////////	 ENTITY cartesian_point

extern AttrDescriptor *a_387coordinates;

class SdaiCartesian_point  :    public SdaiPoint  {
 
#ifdef __OSTORE__
  friend void SdaiCartesian_point_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	RealAggregate _coordinates ;	  //  of  length_measure

  public:  

	SdaiCartesian_point ( ); 
	SdaiCartesian_point (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCartesian_point (SdaiCartesian_point& e ); 
	~SdaiCartesian_point ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 216 ; } 
	const RealAggregate_ptr coordinates_() const;
	void coordinates_ (const RealAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCartesian_point_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCartesian_point(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCartesian_point () {  return (SCLP23(Application_instance_ptr)) new SdaiCartesian_point ;  }
#else
inline SdaiCartesian_point *
create_SdaiCartesian_point () {  return  new SdaiCartesian_point ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiDate_and_time_assignment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _assigned_date_and_time ;
	SCLP23(Application_instance_ptr) _role ;
  public:  

	SdaiDate_and_time_assignment ( ); 
	SdaiDate_and_time_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDate_and_time_assignment (SdaiDate_and_time_assignment& e ); 
	~SdaiDate_and_time_assignment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 217 ; } 
	const SdaiDate_and_time_ptr assigned_date_and_time_() const;
	void assigned_date_and_time_ (const SdaiDate_and_time_ptr x);

	const SdaiDate_time_role_ptr role_() const;
	void role_ (const SdaiDate_time_role_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDate_and_time_assignment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDate_and_time_assignment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDate_and_time_assignment () {  return (SCLP23(Application_instance_ptr)) new SdaiDate_and_time_assignment ;  }
#else
inline SdaiDate_and_time_assignment *
create_SdaiDate_and_time_assignment () {  return  new SdaiDate_and_time_assignment ;  }
#endif

/////////	 END_ENTITY date_and_time_assignment


/////////	 ENTITY parametric_representation_context


class SdaiParametric_representation_context  :    public SdaiRepresentation_context  {
 
#ifdef __OSTORE__
  friend void SdaiParametric_representation_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiParametric_representation_context ( ); 
	SdaiParametric_representation_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiParametric_representation_context (SdaiParametric_representation_context& e ); 
	~SdaiParametric_representation_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 218 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiParametric_representation_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiParametric_representation_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiParametric_representation_context () {  return (SCLP23(Application_instance_ptr)) new SdaiParametric_representation_context ;  }
#else
inline SdaiParametric_representation_context *
create_SdaiParametric_representation_context () {  return  new SdaiParametric_representation_context ;  }
#endif

/////////	 END_ENTITY parametric_representation_context


/////////	 ENTITY product_concept_context

extern AttrDescriptor *a_390market_segment_type;

class SdaiProduct_concept_context  :    public SdaiApplication_context_element  {
 
#ifdef __OSTORE__
  friend void SdaiProduct_concept_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _market_segment_type ;
  public:  

	SdaiProduct_concept_context ( ); 
	SdaiProduct_concept_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiProduct_concept_context (SdaiProduct_concept_context& e ); 
	~SdaiProduct_concept_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 219 ; } 
	const SdaiLabel market_segment_type_() const;
	void market_segment_type_ (const SdaiLabel x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiProduct_concept_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiProduct_concept_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiProduct_concept_context () {  return (SCLP23(Application_instance_ptr)) new SdaiProduct_concept_context ;  }
#else
inline SdaiProduct_concept_context *
create_SdaiProduct_concept_context () {  return  new SdaiProduct_concept_context ;  }
#endif

/////////	 END_ENTITY product_concept_context


/////////	 ENTITY cartesian_transformation_operator_2d

extern Derived_attribute *a_391Du;

class SdaiCartesian_transformation_operator_2d  :    public SdaiCartesian_transformation_operator  {
 
#ifdef __OSTORE__
  friend void SdaiCartesian_transformation_operator_2d_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiCartesian_transformation_operator_2d ( ); 
	SdaiCartesian_transformation_operator_2d (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCartesian_transformation_operator_2d (SdaiCartesian_transformation_operator_2d& e ); 
	~SdaiCartesian_transformation_operator_2d ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 220 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCartesian_transformation_operator_2d_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCartesian_transformation_operator_2d(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCartesian_transformation_operator_2d () {  return (SCLP23(Application_instance_ptr)) new SdaiCartesian_transformation_operator_2d ;  }
#else
inline SdaiCartesian_transformation_operator_2d *
create_SdaiCartesian_transformation_operator_2d () {  return  new SdaiCartesian_transformation_operator_2d ;  }
#endif

/////////	 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 Inverse_attribute *a_397Iusing_surfaces;

class SdaiSurface_patch  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiSurface_patch_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _parent_surface ;
	SdaiTransition_code_var _u_transition ;
	SdaiTransition_code_var _v_transition ;
	SCLP23(BOOL) _u_sense ;
	SCLP23(BOOL) _v_sense ;
	EntityAggregate _using_surfaces ;	  //  of  rectangular_composite_surface

  public:  

	SdaiSurface_patch ( ); 
	SdaiSurface_patch (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSurface_patch (SdaiSurface_patch& e ); 
	~SdaiSurface_patch ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 221 ; } 
	const SdaiBounded_surface_ptr parent_surface_() const;
	void parent_surface_ (const SdaiBounded_surface_ptr x);

	const SdaiTransition_code_var u_transition_() const;
	void u_transition_ (const SdaiTransition_code_var x);

	const SdaiTransition_code_var v_transition_() const;
	void v_transition_ (const SdaiTransition_code_var x);

	const SCLBOOL(Bool) u_sense_() const;
	void u_sense_ (const SCLBOOL(Bool) x);

	const SCLBOOL(Bool) v_sense_() const;
	void v_sense_ (const SCLBOOL(Bool) x);

	const EntityAggregate_ptr using_surfaces_() const;
	void using_surfaces_ (const EntityAggregate_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSurface_patch_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSurface_patch(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSurface_patch () {  return (SCLP23(Application_instance_ptr)) new SdaiSurface_patch ;  }
#else
inline SdaiSurface_patch *
create_SdaiSurface_patch () {  return  new SdaiSurface_patch ;  }
#endif

/////////	 END_ENTITY surface_patch


/////////	 ENTITY length_unit


class SdaiLength_unit  :    public SdaiNamed_unit  {
 
#ifdef __OSTORE__
  friend void SdaiLength_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiLength_unit ( ); 
	SdaiLength_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiLength_unit (SdaiLength_unit& e ); 
	~SdaiLength_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 222 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiLength_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiLength_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiLength_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiLength_unit ;  }
#else
inline SdaiLength_unit *
create_SdaiLength_unit () {  return  new SdaiLength_unit ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiShape_aspect_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _of_shape ;
	SCLP23(LOGICAL) _product_definitional ;
  public:  

	SdaiShape_aspect ( ); 
	SdaiShape_aspect (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiShape_aspect (SdaiShape_aspect& e ); 
	~SdaiShape_aspect ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 223 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiProduct_definition_shape_ptr of_shape_() const;
	void of_shape_ (const SdaiProduct_definition_shape_ptr x);

	const SCLLOG(Logical) product_definitional_() const;
	void product_definitional_ (const SCLLOG(Logical) x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiShape_aspect_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiShape_aspect(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiShape_aspect () {  return (SCLP23(Application_instance_ptr)) new SdaiShape_aspect ;  }
#else
inline SdaiShape_aspect *
create_SdaiShape_aspect () {  return  new SdaiShape_aspect ;  }
#endif

/////////	 END_ENTITY shape_aspect


/////////	 ENTITY volume_measure_with_unit


class SdaiVolume_measure_with_unit  :    public SdaiMeasure_with_unit  {
 
#ifdef __OSTORE__
  friend void SdaiVolume_measure_with_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiVolume_measure_with_unit ( ); 
	SdaiVolume_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiVolume_measure_with_unit (SdaiVolume_measure_with_unit& e ); 
	~SdaiVolume_measure_with_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 224 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiVolume_measure_with_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiVolume_measure_with_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiVolume_measure_with_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiVolume_measure_with_unit ;  }
#else
inline SdaiVolume_measure_with_unit *
create_SdaiVolume_measure_with_unit () {  return  new SdaiVolume_measure_with_unit ;  }
#endif

/////////	 END_ENTITY volume_measure_with_unit


/////////	 ENTITY advanced_face


class SdaiAdvanced_face  :    public SdaiFace_surface  {
 
#ifdef __OSTORE__
  friend void SdaiAdvanced_face_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiAdvanced_face ( ); 
	SdaiAdvanced_face (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiAdvanced_face (SdaiAdvanced_face& e ); 
	~SdaiAdvanced_face ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 225 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiAdvanced_face_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiAdvanced_face(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiAdvanced_face () {  return (SCLP23(Application_instance_ptr)) new SdaiAdvanced_face ;  }
#else
inline SdaiAdvanced_face *
create_SdaiAdvanced_face () {  return  new SdaiAdvanced_face ;  }
#endif

/////////	 END_ENTITY advanced_face


/////////	 ENTITY security_classification_level

extern AttrDescriptor *a_402name;

class SdaiSecurity_classification_level  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiSecurity_classification_level_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
  public:  

	SdaiSecurity_classification_level ( ); 
	SdaiSecurity_classification_level (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSecurity_classification_level (SdaiSecurity_classification_level& e ); 
	~SdaiSecurity_classification_level ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 226 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSecurity_classification_level_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSecurity_classification_level(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSecurity_classification_level () {  return (SCLP23(Application_instance_ptr)) new SdaiSecurity_classification_level ;  }
#else
inline SdaiSecurity_classification_level *
create_SdaiSecurity_classification_level () {  return  new SdaiSecurity_classification_level ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiApproval_relationship_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(String) _name ;
	SCLP23(String) _description ;
	SCLP23(Application_instance_ptr) _relating_approval ;
	SCLP23(Application_instance_ptr) _related_approval ;
  public:  

	SdaiApproval_relationship ( ); 
	SdaiApproval_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiApproval_relationship (SdaiApproval_relationship& e ); 
	~SdaiApproval_relationship ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 227 ; } 
	const SdaiLabel name_() const;
	void name_ (const SdaiLabel x);

	const SdaiText description_() const;
	void description_ (const SdaiText x);

	const SdaiApproval_ptr relating_approval_() const;
	void relating_approval_ (const SdaiApproval_ptr x);

	const SdaiApproval_ptr related_approval_() const;
	void related_approval_ (const SdaiApproval_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiApproval_relationship_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiApproval_relationship(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiApproval_relationship () {  return (SCLP23(Application_instance_ptr)) new SdaiApproval_relationship ;  }
#else
inline SdaiApproval_relationship *
create_SdaiApproval_relationship () {  return  new SdaiApproval_relationship ;  }
#endif

/////////	 END_ENTITY approval_relationship


/////////	 ENTITY polyline

extern AttrDescriptor *a_407points;

class SdaiPolyline  :    public SdaiBounded_curve  {
 
#ifdef __OSTORE__
  friend void SdaiPolyline_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _points ;	  //  of  cartesian_point

  public:  

	SdaiPolyline ( ); 
	SdaiPolyline (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPolyline (SdaiPolyline& e ); 
	~SdaiPolyline ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 228 ; } 
	const EntityAggregate_ptr points_() const;
	void points_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPolyline_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPolyline(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPolyline () {  return (SCLP23(Application_instance_ptr)) new SdaiPolyline ;  }
#else
inline SdaiPolyline *
create_SdaiPolyline () {  return  new SdaiPolyline ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiApproval_person_organization_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiPerson_organization_select _person_organization ;
	SCLP23(Application_instance_ptr) _authorized_approval ;
	SCLP23(Application_instance_ptr) _role ;
  public:  

	SdaiApproval_person_organization ( ); 
	SdaiApproval_person_organization (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiApproval_person_organization (SdaiApproval_person_organization& e ); 
	~SdaiApproval_person_organization ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 229 ; } 
	const SdaiPerson_organization_select_ptr person_organization_() const;
	void person_organization_ (const SdaiPerson_organization_select_ptr x);

	const SdaiApproval_ptr authorized_approval_() const;
	void authorized_approval_ (const SdaiApproval_ptr x);

	const SdaiApproval_role_ptr role_() const;
	void role_ (const SdaiApproval_role_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiApproval_person_organization_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiApproval_person_organization(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiApproval_person_organization () {  return (SCLP23(Application_instance_ptr)) new SdaiApproval_person_organization ;  }
#else
inline SdaiApproval_person_organization *
create_SdaiApproval_person_organization () {  return  new SdaiApproval_person_organization ;  }
#endif

/////////	 END_ENTITY approval_person_organization


/////////	 ENTITY surface_replica

extern AttrDescriptor *a_411parent_surface;
extern AttrDescriptor *a_412transformation;

class SdaiSurface_replica  :    public SdaiSurface  {
 
#ifdef __OSTORE__
  friend void SdaiSurface_replica_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _parent_surface ;
	SCLP23(Application_instance_ptr) _transformation ;
  public:  

	SdaiSurface_replica ( ); 
	SdaiSurface_replica (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSurface_replica (SdaiSurface_replica& e ); 
	~SdaiSurface_replica ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 230 ; } 
	const SdaiSurface_ptr parent_surface_() const;
	void parent_surface_ (const SdaiSurface_ptr x);

	const SdaiCartesian_transformation_operator_3d_ptr transformation_() const;
	void transformation_ (const SdaiCartesian_transformation_operator_3d_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSurface_replica_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSurface_replica(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSurface_replica () {  return (SCLP23(Application_instance_ptr)) new SdaiSurface_replica ;  }
#else
inline SdaiSurface_replica *
create_SdaiSurface_replica () {  return  new SdaiSurface_replica ;  }
#endif

/////////	 END_ENTITY surface_replica


/////////	 ENTITY security_classification_assignment

extern AttrDescriptor *a_413assigned_security_classification;

class SdaiSecurity_classification_assignment  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiSecurity_classification_assignment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _assigned_security_classification ;
  public:  

	SdaiSecurity_classification_assignment ( ); 
	SdaiSecurity_classification_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiSecurity_classification_assignment (SdaiSecurity_classification_assignment& e ); 
	~SdaiSecurity_classification_assignment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 231 ; } 
	const SdaiSecurity_classification_ptr assigned_security_classification_() const;
	void assigned_security_classification_ (const SdaiSecurity_classification_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiSecurity_classification_assignment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiSecurity_classification_assignment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiSecurity_classification_assignment () {  return (SCLP23(Application_instance_ptr)) new SdaiSecurity_classification_assignment ;  }
#else
inline SdaiSecurity_classification_assignment *
create_SdaiSecurity_classification_assignment () {  return  new SdaiSecurity_classification_assignment ;  }
#endif

/////////	 END_ENTITY security_classification_assignment


/////////	 ENTITY cc_design_security_classification

extern AttrDescriptor *a_414items;

class SdaiCc_design_security_classification  :    public SdaiSecurity_classification_assignment  {
 
#ifdef __OSTORE__
  friend void SdaiCc_design_security_classification_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiClassified_items _items ;	  //  of  classified_item

  public:  

	SdaiCc_design_security_classification ( ); 
	SdaiCc_design_security_classification (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCc_design_security_classification (SdaiCc_design_security_classification& e ); 
	~SdaiCc_design_security_classification ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 232 ; } 
	const SdaiClassified_items_ptr items_() const;
	void items_ (const SdaiClassified_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCc_design_security_classification_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCc_design_security_classification(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCc_design_security_classification () {  return (SCLP23(Application_instance_ptr)) new SdaiCc_design_security_classification ;  }
#else
inline SdaiCc_design_security_classification *
create_SdaiCc_design_security_classification () {  return  new SdaiCc_design_security_classification ;  }
#endif

/////////	 END_ENTITY cc_design_security_classification


/////////	 ENTITY faceted_brep_shape_representation


class SdaiFaceted_brep_shape_representation  :    public SdaiShape_representation  {
 
#ifdef __OSTORE__
  friend void SdaiFaceted_brep_shape_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiFaceted_brep_shape_representation ( ); 
	SdaiFaceted_brep_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiFaceted_brep_shape_representation (SdaiFaceted_brep_shape_representation& e ); 
	~SdaiFaceted_brep_shape_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 233 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiFaceted_brep_shape_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiFaceted_brep_shape_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiFaceted_brep_shape_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiFaceted_brep_shape_representation ;  }
#else
inline SdaiFaceted_brep_shape_representation *
create_SdaiFaceted_brep_shape_representation () {  return  new SdaiFaceted_brep_shape_representation ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiDocument_usage_constraint_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _source ;
	SCLP23(String) _subject_element ;
	SCLP23(String) _subject_element_value ;
  public:  

	SdaiDocument_usage_constraint ( ); 
	SdaiDocument_usage_constraint (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiDocument_usage_constraint (SdaiDocument_usage_constraint& e ); 
	~SdaiDocument_usage_constraint ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 234 ; } 
	const SdaiDocument_ptr source_() const;
	void source_ (const SdaiDocument_ptr x);

	const SdaiLabel subject_element_() const;
	void subject_element_ (const SdaiLabel x);

	const SdaiText subject_element_value_() const;
	void subject_element_value_ (const SdaiText x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiDocument_usage_constraint_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiDocument_usage_constraint(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiDocument_usage_constraint () {  return (SCLP23(Application_instance_ptr)) new SdaiDocument_usage_constraint ;  }
#else
inline SdaiDocument_usage_constraint *
create_SdaiDocument_usage_constraint () {  return  new SdaiDocument_usage_constraint ;  }
#endif

/////////	 END_ENTITY document_usage_constraint


/////////	 ENTITY vertex_point

extern AttrDescriptor *a_418vertex_geometry;

class SdaiVertex_point  :    public SdaiVertex  {
 
#ifdef __OSTORE__
  friend void SdaiVertex_point_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _vertex_geometry ;
  public:  

	SdaiVertex_point ( ); 
	SdaiVertex_point (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiVertex_point (SdaiVertex_point& e ); 
	~SdaiVertex_point ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 235 ; } 
	const SdaiPoint_ptr vertex_geometry_() const;
	void vertex_geometry_ (const SdaiPoint_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0

#endif

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiVertex_point_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiVertex_point(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiVertex_point () {  return (SCLP23(Application_instance_ptr)) new SdaiVertex_point ;  }
#else
inline SdaiVertex_point *
create_SdaiVertex_point () {  return  new SdaiVertex_point ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiCc_design_date_and_time_assignment_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiDate_time_items _items ;	  //  of  date_time_item

  public:  

	SdaiCc_design_date_and_time_assignment ( ); 
	SdaiCc_design_date_and_time_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCc_design_date_and_time_assignment (SdaiCc_design_date_and_time_assignment& e ); 
	~SdaiCc_design_date_and_time_assignment ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 236 ; } 
	const SdaiDate_time_items_ptr items_() const;
	void items_ (const SdaiDate_time_items_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCc_design_date_and_time_assignment_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCc_design_date_and_time_assignment(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCc_design_date_and_time_assignment () {  return (SCLP23(Application_instance_ptr)) new SdaiCc_design_date_and_time_assignment ;  }
#else
inline SdaiCc_design_date_and_time_assignment *
create_SdaiCc_design_date_and_time_assignment () {  return  new SdaiCc_design_date_and_time_assignment ;  }
#endif

/////////	 END_ENTITY cc_design_date_and_time_assignment


/////////	 ENTITY oriented_closed_shell

extern AttrDescriptor *a_420closed_shell_element;
extern AttrDescriptor *a_421orientation;
extern Derived_attribute *a_422Dconnected_face_set_cfs_faces;

class SdaiOriented_closed_shell  :    public SdaiClosed_shell  {
 
#ifdef __OSTORE__
  friend void SdaiOriented_closed_shell_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _closed_shell_element ;
	SCLP23(BOOL) _orientation ;
  public:  

	SdaiOriented_closed_shell ( ); 
	SdaiOriented_closed_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOriented_closed_shell (SdaiOriented_closed_shell& e ); 
	~SdaiOriented_closed_shell ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 237 ; } 
	const SdaiClosed_shell_ptr closed_shell_element_() const;
	void closed_shell_element_ (const SdaiClosed_shell_ptr x);

	const SCLBOOL(Bool) orientation_() const;
	void orientation_ (const SCLBOOL(Bool) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOriented_closed_shell_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOriented_closed_shell(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOriented_closed_shell () {  return (SCLP23(Application_instance_ptr)) new SdaiOriented_closed_shell ;  }
#else
inline SdaiOriented_closed_shell *
create_SdaiOriented_closed_shell () {  return  new SdaiOriented_closed_shell ;  }
#endif

/////////	 END_ENTITY oriented_closed_shell


/////////	 ENTITY person_and_organization

extern AttrDescriptor *a_423the_person;
extern AttrDescriptor *a_424the_organization;

class SdaiPerson_and_organization  :    public SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiPerson_and_organization_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _the_person ;
	SCLP23(Application_instance_ptr) _the_organization ;
  public:  

	SdaiPerson_and_organization ( ); 
	SdaiPerson_and_organization (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPerson_and_organization (SdaiPerson_and_organization& e ); 
	~SdaiPerson_and_organization ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 238 ; } 
	const SdaiPerson_ptr the_person_() const;
	void the_person_ (const SdaiPerson_ptr x);

	const SdaiOrganization_ptr the_organization_() const;
	void the_organization_ (const SdaiOrganization_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPerson_and_organization_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPerson_and_organization(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPerson_and_organization () {  return (SCLP23(Application_instance_ptr)) new SdaiPerson_and_organization ;  }
#else
inline SdaiPerson_and_organization *
create_SdaiPerson_and_organization () {  return  new SdaiPerson_and_organization ;  }
#endif

/////////	 END_ENTITY person_and_organization


/////////	 ENTITY cylindrical_surface

extern AttrDescriptor *a_425radius;

class SdaiCylindrical_surface  :    public SdaiElementary_surface  {
 
#ifdef __OSTORE__
  friend void SdaiCylindrical_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Real) _radius ;
  public:  

	SdaiCylindrical_surface ( ); 
	SdaiCylindrical_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiCylindrical_surface (SdaiCylindrical_surface& e ); 
	~SdaiCylindrical_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 239 ; } 
	const SdaiPositive_length_measure radius_() const;
	void radius_ (const SdaiPositive_length_measure x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiCylindrical_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiCylindrical_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiCylindrical_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiCylindrical_surface ;  }
#else
inline SdaiCylindrical_surface *
create_SdaiCylindrical_surface () {  return  new SdaiCylindrical_surface ;  }
#endif

/////////	 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 SCLP23(Application_instance) {

#ifdef __OSTORE__
  friend void SdaiLocal_time_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Integer) _hour_component ;
	SCLP23(Integer) _minute_component ;    //  OPTIONAL
	SCLP23(Real) _second_component ;    //  OPTIONAL
	SCLP23(Application_instance_ptr) _zone ;
  public:  

	SdaiLocal_time ( ); 
	SdaiLocal_time (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiLocal_time (SdaiLocal_time& e ); 
	~SdaiLocal_time ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 240 ; } 
	const SdaiHour_in_day hour_component_() const;
	void hour_component_ (const SdaiHour_in_day x);

	const SdaiMinute_in_hour minute_component_() const;
	void minute_component_ (const SdaiMinute_in_hour x);

	const SdaiSecond_in_minute second_component_() const;
	void second_component_ (const SdaiSecond_in_minute x);

	const SdaiCoordinated_universal_time_offset_ptr zone_() const;
	void zone_ (const SdaiCoordinated_universal_time_offset_ptr x);


#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiLocal_time_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiLocal_time(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiLocal_time () {  return (SCLP23(Application_instance_ptr)) new SdaiLocal_time ;  }
#else
inline SdaiLocal_time *
create_SdaiLocal_time () {  return  new SdaiLocal_time ;  }
#endif

/////////	 END_ENTITY local_time


/////////	 ENTITY mass_unit


class SdaiMass_unit  :    public SdaiNamed_unit  {
 
#ifdef __OSTORE__
  friend void SdaiMass_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiMass_unit ( ); 
	SdaiMass_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiMass_unit (SdaiMass_unit& e ); 
	~SdaiMass_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 241 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiMass_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiMass_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiMass_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiMass_unit ;  }
#else
inline SdaiMass_unit *
create_SdaiMass_unit () {  return  new SdaiMass_unit ;  }
#endif

/////////	 END_ENTITY mass_unit


/////////	 ENTITY vertex_shell

extern AttrDescriptor *a_430vertex_shell_extent;

class SdaiVertex_shell  :    public SdaiTopological_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiVertex_shell_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _vertex_shell_extent ;
  public:  

	SdaiVertex_shell ( ); 
	SdaiVertex_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiVertex_shell (SdaiVertex_shell& e ); 
	~SdaiVertex_shell ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 242 ; } 
	const SdaiVertex_loop_ptr vertex_shell_extent_() const;
	void vertex_shell_extent_ (const SdaiVertex_loop_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiVertex_shell_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiVertex_shell(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiVertex_shell () {  return (SCLP23(Application_instance_ptr)) new SdaiVertex_shell ;  }
#else
inline SdaiVertex_shell *
create_SdaiVertex_shell () {  return  new SdaiVertex_shell ;  }
#endif

/////////	 END_ENTITY vertex_shell


/////////	 ENTITY poly_loop

extern AttrDescriptor *a_431polygon;

class SdaiPoly_loop  :    public SdaiLoop  {
 
#ifdef __OSTORE__
  friend void SdaiPoly_loop_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _polygon ;	  //  of  cartesian_point

  public:  

	SdaiPoly_loop ( ); 
	SdaiPoly_loop (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiPoly_loop (SdaiPoly_loop& e ); 
	~SdaiPoly_loop ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 243 ; } 
	const EntityAggregate_ptr polygon_() const;
	void polygon_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#if 0

#endif

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiPoly_loop_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiPoly_loop(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiPoly_loop () {  return (SCLP23(Application_instance_ptr)) new SdaiPoly_loop ;  }
#else
inline SdaiPoly_loop *
create_SdaiPoly_loop () {  return  new SdaiPoly_loop ;  }
#endif

/////////	 END_ENTITY poly_loop


/////////	 ENTITY wire_shell

extern AttrDescriptor *a_432wire_shell_extent;

class SdaiWire_shell  :    public SdaiTopological_representation_item  {
 
#ifdef __OSTORE__
  friend void SdaiWire_shell_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	EntityAggregate _wire_shell_extent ;	  //  of  loop

  public:  

	SdaiWire_shell ( ); 
	SdaiWire_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiWire_shell (SdaiWire_shell& e ); 
	~SdaiWire_shell ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 244 ; } 
	const EntityAggregate_ptr wire_shell_extent_() const;
	void wire_shell_extent_ (const EntityAggregate_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiWire_shell_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiWire_shell(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiWire_shell () {  return (SCLP23(Application_instance_ptr)) new SdaiWire_shell ;  }
#else
inline SdaiWire_shell *
create_SdaiWire_shell () {  return  new SdaiWire_shell ;  }
#endif

/////////	 END_ENTITY wire_shell


/////////	 ENTITY area_unit


class SdaiArea_unit  :    public SdaiNamed_unit  {
 
#ifdef __OSTORE__
  friend void SdaiArea_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiArea_unit ( ); 
	SdaiArea_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiArea_unit (SdaiArea_unit& e ); 
	~SdaiArea_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 245 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiArea_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiArea_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiArea_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiArea_unit ;  }
#else
inline SdaiArea_unit *
create_SdaiArea_unit () {  return  new SdaiArea_unit ;  }
#endif

/////////	 END_ENTITY area_unit


/////////	 ENTITY mapped_item

extern AttrDescriptor *a_433mapping_source;
extern AttrDescriptor *a_434mapping_target;

class SdaiMapped_item  :    public SdaiRepresentation_item  {
 
#ifdef __OSTORE__
  friend void SdaiMapped_item_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _mapping_source ;
	SCLP23(Application_instance_ptr) _mapping_target ;
  public:  

	SdaiMapped_item ( ); 
	SdaiMapped_item (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiMapped_item (SdaiMapped_item& e ); 
	~SdaiMapped_item ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 246 ; } 
	const SdaiRepresentation_map_ptr mapping_source_() const;
	void mapping_source_ (const SdaiRepresentation_map_ptr x);

	const SdaiRepresentation_item_ptr mapping_target_() const;
	void mapping_target_ (const SdaiRepresentation_item_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiMapped_item_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiMapped_item(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiMapped_item () {  return (SCLP23(Application_instance_ptr)) new SdaiMapped_item ;  }
#else
inline SdaiMapped_item *
create_SdaiMapped_item () {  return  new SdaiMapped_item ;  }
#endif

/////////	 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  {
 
#ifdef __OSTORE__
  friend void SdaiOffset_curve_2d_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Application_instance_ptr) _basis_curve ;
	SCLP23(Real) _distance ;
	SCLP23(LOGICAL) _self_intersect ;
  public:  

	SdaiOffset_curve_2d ( ); 
	SdaiOffset_curve_2d (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiOffset_curve_2d (SdaiOffset_curve_2d& e ); 
	~SdaiOffset_curve_2d ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 247 ; } 
	const SdaiCurve_ptr basis_curve_() const;
	void basis_curve_ (const SdaiCurve_ptr x);

	const SdaiLength_measure distance_() const;
	void distance_ (const SdaiLength_measure x);

	const SCLLOG(Logical) self_intersect_() const;
	void self_intersect_ (const SCLLOG(Logical) x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiOffset_curve_2d_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiOffset_curve_2d(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiOffset_curve_2d () {  return (SCLP23(Application_instance_ptr)) new SdaiOffset_curve_2d ;  }
#else
inline SdaiOffset_curve_2d *
create_SdaiOffset_curve_2d () {  return  new SdaiOffset_curve_2d ;  }
#endif

/////////	 END_ENTITY offset_curve_2d


/////////	 ENTITY shape_definition_representation


class SdaiShape_definition_representation  :    public SdaiProperty_definition_representation  {
 
#ifdef __OSTORE__
  friend void SdaiShape_definition_representation_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiShape_definition_representation ( ); 
	SdaiShape_definition_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiShape_definition_representation (SdaiShape_definition_representation& e ); 
	~SdaiShape_definition_representation ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 248 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiShape_definition_representation_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiShape_definition_representation(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiShape_definition_representation () {  return (SCLP23(Application_instance_ptr)) new SdaiShape_definition_representation ;  }
#else
inline SdaiShape_definition_representation *
create_SdaiShape_definition_representation () {  return  new SdaiShape_definition_representation ;  }
#endif

/////////	 END_ENTITY shape_definition_representation


/////////	 ENTITY volume_unit


class SdaiVolume_unit  :    public SdaiNamed_unit  {
 
#ifdef __OSTORE__
  friend void SdaiVolume_unit_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
  public:  

	SdaiVolume_unit ( ); 
	SdaiVolume_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiVolume_unit (SdaiVolume_unit& e ); 
	~SdaiVolume_unit ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 249 ; } 
	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiVolume_unit_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiVolume_unit(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiVolume_unit () {  return (SCLP23(Application_instance_ptr)) new SdaiVolume_unit ;  }
#else
inline SdaiVolume_unit *
create_SdaiVolume_unit () {  return  new SdaiVolume_unit ;  }
#endif

/////////	 END_ENTITY volume_unit


/////////	 ENTITY conical_surface

extern AttrDescriptor *a_438radius;
extern AttrDescriptor *a_439semi_angle;

class SdaiConical_surface  :    public SdaiElementary_surface  {
 
#ifdef __OSTORE__
  friend void SdaiConical_surface_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SCLP23(Real) _radius ;
	SCLP23(Real) _semi_angle ;
  public:  

	SdaiConical_surface ( ); 
	SdaiConical_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiConical_surface (SdaiConical_surface& e ); 
	~SdaiConical_surface ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 250 ; } 
	const SdaiLength_measure radius_() const;
	void radius_ (const SdaiLength_measure x);

	const SdaiPlane_angle_measure semi_angle_() const;
	void semi_angle_ (const SdaiPlane_angle_measure x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiConical_surface_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiConical_surface(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiConical_surface () {  return (SCLP23(Application_instance_ptr)) new SdaiConical_surface ;  }
#else
inline SdaiConical_surface *
create_SdaiConical_surface () {  return  new SdaiConical_surface ;  }
#endif

/////////	 END_ENTITY conical_surface


/////////	 ENTITY global_unit_assigned_context

extern AttrDescriptor *a_440units;

class SdaiGlobal_unit_assigned_context  :    public SdaiRepresentation_context  {
 
#ifdef __OSTORE__
  friend void SdaiGlobal_unit_assigned_context_access_hook_in(void *, 
	enum os_access_reason, void *, void *, void *);
#endif
  protected:
	SdaiUnits _units ;	  //  of  unit

  public:  

	SdaiGlobal_unit_assigned_context ( ); 
	SdaiGlobal_unit_assigned_context (SCLP23(Application_instance) *se, int *addAttrs = 0); 
	SdaiGlobal_unit_assigned_context (SdaiGlobal_unit_assigned_context& e ); 
	~SdaiGlobal_unit_assigned_context ();

#ifdef __O3DB__
	void oodb_reInit();
#endif

	int opcode ()  { return 251 ; } 
	const SdaiUnits_ptr units_() const;
	void units_ (const SdaiUnits_ptr x);

	/* The first parent's access functions are */
	/* above or covered by inherited functions. */

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
	virtual void Access_hook_in(void *object, 
		enum os_access_reason reason, void *user_data, 
		void *start_range, void *end_range);
#endif

};

#ifdef __OSTORE__
void SdaiGlobal_unit_assigned_context_access_hook_in(void *object, 
	enum os_access_reason reason, void *user_data, 
	void *start_range, void *end_range);
#endif

#ifdef __OSTORE__
SCLP23(Application_instance_ptr) 
create_SdaiGlobal_unit_assigned_context(os_database *db);

#elif __O3DB__
inline SCLP23(Application_instance_ptr) 
create_SdaiGlobal_unit_assigned_context () {  return (SCLP23(Application_instance_ptr)) new SdaiGlobal_unit_assigned_context ;  }
#else
inline SdaiGlobal_unit_assigned_context *
create_SdaiGlobal_unit_assigned_context () {  return  new SdaiGlobal_unit_assigned_context ;  }
#endif

/////////	 END_ENTITY global_unit_assigned_context


//	***** generate Model related pieces

class SdaiModel_contents_config_control_design : public SCLP23(Model_contents) {

  public:

#ifdef __OSTORE__
    SdaiModel_contents_config_control_design(os_database *db=0);
#else
    SdaiModel_contents_config_control_design();
#endif

    SdaiRepresentation_item__set_var SdaiRepresentation_item_get_extents();

    SdaiGeometric_representation_item__set_var SdaiGeometric_representation_item_get_extents();

    SdaiFunctionally_defined_transformation__set_var SdaiFunctionally_defined_transformation_get_extents();

    SdaiCartesian_transformation_operator__set_var SdaiCartesian_transformation_operator_get_extents();

    SdaiCartesian_transformation_operator_3d__set_var SdaiCartesian_transformation_operator_3d_get_extents();

    SdaiVersioned_action_request__set_var SdaiVersioned_action_request_get_extents();

    SdaiRepresentation__set_var SdaiRepresentation_get_extents();

    SdaiShape_representation__set_var SdaiShape_representation_get_extents();

    SdaiManifold_surface_shape_representation__set_var SdaiManifold_surface_shape_representation_get_extents();

    SdaiCertification__set_var SdaiCertification_get_extents();

    SdaiProduct_definition_relationship__set_var SdaiProduct_definition_relationship_get_extents();

    SdaiProduct_definition_usage__set_var SdaiProduct_definition_usage_get_extents();

    SdaiAssembly_component_usage__set_var SdaiAssembly_component_usage_get_extents();

    SdaiQuantified_assembly_component_usage__set_var SdaiQuantified_assembly_component_usage_get_extents();

    SdaiSolid_model__set_var SdaiSolid_model_get_extents();

    SdaiManifold_solid_brep__set_var SdaiManifold_solid_brep_get_extents();

    SdaiFaceted_brep__set_var SdaiFaceted_brep_get_extents();

    SdaiAction_directive__set_var SdaiAction_directive_get_extents();

    SdaiNamed_unit__set_var SdaiNamed_unit_get_extents();

    SdaiPlane_angle_unit__set_var SdaiPlane_angle_unit_get_extents();

    SdaiMeasure_with_unit__set_var SdaiMeasure_with_unit_get_extents();

    SdaiArea_measure_with_unit__set_var SdaiArea_measure_with_unit_get_extents();

    SdaiEffectivity__set_var SdaiEffectivity_get_extents();

    SdaiSerial_numbered_effectivity__set_var SdaiSerial_numbered_effectivity_get_extents();

    SdaiSurface__set_var SdaiSurface_get_extents();

    SdaiOffset_surface__set_var SdaiOffset_surface_get_extents();

    SdaiPlacement__set_var SdaiPlacement_get_extents();

    SdaiAxis2_placement_2d__set_var SdaiAxis2_placement_2d_get_extents();

    SdaiProduct_category__set_var SdaiProduct_category_get_extents();

    SdaiProduct_related_product_category__set_var SdaiProduct_related_product_category_get_extents();

    SdaiCurve__set_var SdaiCurve_get_extents();

    SdaiConic__set_var SdaiConic_get_extents();

    SdaiHyperbola__set_var SdaiHyperbola_get_extents();

    SdaiAddress__set_var SdaiAddress_get_extents();

    SdaiOrganizational_address__set_var SdaiOrganizational_address_get_extents();

    SdaiBounded_surface__set_var SdaiBounded_surface_get_extents();

    SdaiB_spline_surface__set_var SdaiB_spline_surface_get_extents();

    SdaiUniform_surface__set_var SdaiUniform_surface_get_extents();

    SdaiGeometrically_bounded_surface_shape_representation__set_var SdaiGeometrically_bounded_surface_shape_representation_get_extents();

    SdaiAxis1_placement__set_var SdaiAxis1_placement_get_extents();

    SdaiBounded_curve__set_var SdaiBounded_curve_get_extents();

    SdaiB_spline_curve__set_var SdaiB_spline_curve_get_extents();

    SdaiRational_b_spline_curve__set_var SdaiRational_b_spline_curve_get_extents();

    SdaiAction_request_assignment__set_var SdaiAction_request_assignment_get_extents();

    SdaiTopological_representation_item__set_var SdaiTopological_representation_item_get_extents();

    SdaiFace_bound__set_var SdaiFace_bound_get_extents();

    SdaiLength_measure_with_unit__set_var SdaiLength_measure_with_unit_get_extents();

    SdaiDated_effectivity__set_var SdaiDated_effectivity_get_extents();

    SdaiDirection__set_var SdaiDirection_get_extents();

    SdaiNext_assembly_usage_occurrence__set_var SdaiNext_assembly_usage_occurrence_get_extents();

    SdaiEdge__set_var SdaiEdge_get_extents();

    SdaiOriented_edge__set_var SdaiOriented_edge_get_extents();

    SdaiPerson__set_var SdaiPerson_get_extents();

    SdaiDocument__set_var SdaiDocument_get_extents();

    SdaiDocument_with_class__set_var SdaiDocument_with_class_get_extents();

    SdaiConversion_based_unit__set_var SdaiConversion_based_unit_get_extents();

    SdaiPoint__set_var SdaiPoint_get_extents();

    SdaiPoint_on_surface__set_var SdaiPoint_on_surface_get_extents();

    SdaiProduct_definition_formation__set_var SdaiProduct_definition_formation_get_extents();

    SdaiPerson_and_organization_assignment__set_var SdaiPerson_and_organization_assignment_get_extents();

    SdaiCc_design_person_and_organization_assignment__set_var SdaiCc_design_person_and_organization_assignment_get_extents();

    SdaiOffset_curve_3d__set_var SdaiOffset_curve_3d_get_extents();

    SdaiApproval__set_var SdaiApproval_get_extents();

    SdaiComposite_curve__set_var SdaiComposite_curve_get_extents();

    SdaiComposite_curve_on_surface__set_var SdaiComposite_curve_on_surface_get_extents();

    SdaiBoundary_curve__set_var SdaiBoundary_curve_get_extents();

    SdaiRepresentation_context__set_var SdaiRepresentation_context_get_extents();

    SdaiGeometric_representation_context__set_var SdaiGeometric_representation_context_get_extents();

    SdaiAction_status__set_var SdaiAction_status_get_extents();

    SdaiApplication_context__set_var SdaiApplication_context_get_extents();

    SdaiChange_request__set_var SdaiChange_request_get_extents();

    SdaiDate_and_time__set_var SdaiDate_and_time_get_extents();

    SdaiApproval_date_time__set_var SdaiApproval_date_time_get_extents();

    SdaiApproval_role__set_var SdaiApproval_role_get_extents();

    SdaiApplication_context_element__set_var SdaiApplication_context_element_get_extents();

    SdaiProduct_context__set_var SdaiProduct_context_get_extents();

    SdaiElementary_surface__set_var SdaiElementary_surface_get_extents();

    SdaiSpherical_surface__set_var SdaiSpherical_surface_get_extents();

    SdaiApplication_protocol_definition__set_var SdaiApplication_protocol_definition_get_extents();

    SdaiSpecified_higher_usage_occurrence__set_var SdaiSpecified_higher_usage_occurrence_get_extents();

    SdaiProduct_definition_formation_with_specified_source__set_var SdaiProduct_definition_formation_with_specified_source_get_extents();

    SdaiAction_request_solution__set_var SdaiAction_request_solution_get_extents();

    SdaiUncertainty_measure_with_unit__set_var SdaiUncertainty_measure_with_unit_get_extents();

    SdaiEdge_based_wireframe_model__set_var SdaiEdge_based_wireframe_model_get_extents();

    SdaiPath__set_var SdaiPath_get_extents();

    SdaiConnected_face_set__set_var SdaiConnected_face_set_get_extents();

    SdaiOpen_shell__set_var SdaiOpen_shell_get_extents();

    SdaiOriented_open_shell__set_var SdaiOriented_open_shell_get_extents();

    SdaiSolid_angle_unit__set_var SdaiSolid_angle_unit_get_extents();

    SdaiCoordinated_universal_time_offset__set_var SdaiCoordinated_universal_time_offset_get_extents();

    SdaiCurve_replica__set_var SdaiCurve_replica_get_extents();

    SdaiQuasi_uniform_surface__set_var SdaiQuasi_uniform_surface_get_extents();

    SdaiSurface_curve__set_var SdaiSurface_curve_get_extents();

    SdaiAction_request_status__set_var SdaiAction_request_status_get_extents();

    SdaiComposite_curve_segment__set_var SdaiComposite_curve_segment_get_extents();

    SdaiReparametrised_composite_curve_segment__set_var SdaiReparametrised_composite_curve_segment_get_extents();

    SdaiRepresentation_relationship__set_var SdaiRepresentation_relationship_get_extents();

    SdaiRepresentation_relationship_with_transformation__set_var SdaiRepresentation_relationship_with_transformation_get_extents();

    SdaiPerson_and_organization_role__set_var SdaiPerson_and_organization_role_get_extents();

    SdaiQuasi_uniform_curve__set_var SdaiQuasi_uniform_curve_get_extents();

    SdaiSwept_surface__set_var SdaiSwept_surface_get_extents();

    SdaiProperty_definition__set_var SdaiProperty_definition_get_extents();

    SdaiGlobal_uncertainty_assigned_context__set_var SdaiGlobal_uncertainty_assigned_context_get_extents();

    SdaiOrganization_relationship__set_var SdaiOrganization_relationship_get_extents();

    SdaiParabola__set_var SdaiParabola_get_extents();

    SdaiRectangular_composite_surface__set_var SdaiRectangular_composite_surface_get_extents();

    SdaiLot_effectivity__set_var SdaiLot_effectivity_get_extents();

    SdaiSurface_of_linear_extrusion__set_var SdaiSurface_of_linear_extrusion_get_extents();

    SdaiShell_based_surface_model__set_var SdaiShell_based_surface_model_get_extents();

    SdaiUniform_curve__set_var SdaiUniform_curve_get_extents();

    SdaiBezier_curve__set_var SdaiBezier_curve_get_extents();

    SdaiLoop__set_var SdaiLoop_get_extents();

    SdaiEdge_loop__set_var SdaiEdge_loop_get_extents();

    SdaiDate__set_var SdaiDate_get_extents();

    SdaiCalendar_date__set_var SdaiCalendar_date_get_extents();

    SdaiToroidal_surface__set_var SdaiToroidal_surface_get_extents();

    SdaiPromissory_usage_occurrence__set_var SdaiPromissory_usage_occurrence_get_extents();

    SdaiApproval_assignment__set_var SdaiApproval_assignment_get_extents();

    SdaiConfiguration_item__set_var SdaiConfiguration_item_get_extents();

    SdaiContract_assignment__set_var SdaiContract_assignment_get_extents();

    SdaiVector__set_var SdaiVector_get_extents();

    SdaiIntersection_curve__set_var SdaiIntersection_curve_get_extents();

    SdaiTrimmed_curve__set_var SdaiTrimmed_curve_get_extents();

    SdaiProduct_definition_context__set_var SdaiProduct_definition_context_get_extents();

    SdaiItem_defined_transformation__set_var SdaiItem_defined_transformation_get_extents();

    SdaiAction_method__set_var SdaiAction_method_get_extents();

    SdaiProduct_category_relationship__set_var SdaiProduct_category_relationship_get_extents();

    SdaiPlane_angle_measure_with_unit__set_var SdaiPlane_angle_measure_with_unit_get_extents();

    SdaiVertex__set_var SdaiVertex_get_extents();

    SdaiRepresentation_map__set_var SdaiRepresentation_map_get_extents();

    SdaiProduct_definition_effectivity__set_var SdaiProduct_definition_effectivity_get_extents();

    SdaiConfiguration_effectivity__set_var SdaiConfiguration_effectivity_get_extents();

    SdaiEllipse__set_var SdaiEllipse_get_extents();

    SdaiContext_dependent_unit__set_var SdaiContext_dependent_unit_get_extents();

    SdaiAlternate_product_relationship__set_var SdaiAlternate_product_relationship_get_extents();

    SdaiDocument_type__set_var SdaiDocument_type_get_extents();

    SdaiDocument_reference__set_var SdaiDocument_reference_get_extents();

    SdaiMechanical_context__set_var SdaiMechanical_context_get_extents();

    SdaiShell_based_wireframe_model__set_var SdaiShell_based_wireframe_model_get_extents();

    SdaiContract__set_var SdaiContract_get_extents();

    SdaiDimensional_exponents__set_var SdaiDimensional_exponents_get_extents();

    SdaiStart_request__set_var SdaiStart_request_get_extents();

    SdaiCc_design_specification_reference__set_var SdaiCc_design_specification_reference_get_extents();

    SdaiSupplied_part_relationship__set_var SdaiSupplied_part_relationship_get_extents();

    SdaiContext_dependent_shape_representation__set_var SdaiContext_dependent_shape_representation_get_extents();

    SdaiOrdinal_date__set_var SdaiOrdinal_date_get_extents();

    SdaiFace_outer_bound__set_var SdaiFace_outer_bound_get_extents();

    SdaiMass_measure_with_unit__set_var SdaiMass_measure_with_unit_get_extents();

    SdaiBrep_with_voids__set_var SdaiBrep_with_voids_get_extents();

    SdaiWeek_of_year_and_day_date__set_var SdaiWeek_of_year_and_day_date_get_extents();

    SdaiPoint_on_curve__set_var SdaiPoint_on_curve_get_extents();

    SdaiShell_based_wireframe_shape_representation__set_var SdaiShell_based_wireframe_shape_representation_get_extents();

    SdaiFace__set_var SdaiFace_get_extents();

    SdaiFace_surface__set_var SdaiFace_surface_get_extents();

    SdaiOriented_face__set_var SdaiOriented_face_get_extents();

    SdaiSurface_of_revolution__set_var SdaiSurface_of_revolution_get_extents();

    SdaiAdvanced_brep_shape_representation__set_var SdaiAdvanced_brep_shape_representation_get_extents();

    SdaiEdge_curve__set_var SdaiEdge_curve_get_extents();

    SdaiPoint_replica__set_var SdaiPoint_replica_get_extents();

    SdaiProduct__set_var SdaiProduct_get_extents();

    SdaiShape_aspect_relationship__set_var SdaiShape_aspect_relationship_get_extents();

    SdaiRectangular_trimmed_surface__set_var SdaiRectangular_trimmed_surface_get_extents();

    SdaiPlane__set_var SdaiPlane_get_extents();

    SdaiAction_assignment__set_var SdaiAction_assignment_get_extents();

    SdaiChange__set_var SdaiChange_get_extents();

    SdaiCircle__set_var SdaiCircle_get_extents();

    SdaiLine__set_var SdaiLine_get_extents();

    SdaiProperty_definition_representation__set_var SdaiProperty_definition_representation_get_extents();

    SdaiGeometric_set__set_var SdaiGeometric_set_get_extents();

    SdaiGeometric_curve_set__set_var SdaiGeometric_curve_set_get_extents();

    SdaiPersonal_address__set_var SdaiPersonal_address_get_extents();

    SdaiDocument_relationship__set_var SdaiDocument_relationship_get_extents();

    SdaiPcurve__set_var SdaiPcurve_get_extents();

    SdaiOuter_boundary_curve__set_var SdaiOuter_boundary_curve_get_extents();

    SdaiShape_representation_relationship__set_var SdaiShape_representation_relationship_get_extents();

    SdaiAssembly_component_usage_substitute__set_var SdaiAssembly_component_usage_substitute_get_extents();

    SdaiDegenerate_pcurve__set_var SdaiDegenerate_pcurve_get_extents();

    SdaiEvaluated_degenerate_pcurve__set_var SdaiEvaluated_degenerate_pcurve_get_extents();

    SdaiSolid_angle_measure_with_unit__set_var SdaiSolid_angle_measure_with_unit_get_extents();

    SdaiConnected_edge_set__set_var SdaiConnected_edge_set_get_extents();

    SdaiAction__set_var SdaiAction_get_extents();

    SdaiExecuted_action__set_var SdaiExecuted_action_get_extents();

    SdaiDirected_action__set_var SdaiDirected_action_get_extents();

    SdaiOrganizational_project__set_var SdaiOrganizational_project_get_extents();

    SdaiDate_time_role__set_var SdaiDate_time_role_get_extents();

    SdaiCurve_bounded_surface__set_var SdaiCurve_bounded_surface_get_extents();

    SdaiClosed_shell__set_var SdaiClosed_shell_get_extents();

    SdaiDesign_make_from_relationship__set_var SdaiDesign_make_from_relationship_get_extents();

    SdaiDefinitional_representation__set_var SdaiDefinitional_representation_get_extents();

    SdaiProduct_definition_shape__set_var SdaiProduct_definition_shape_get_extents();

    SdaiSi_unit__set_var SdaiSi_unit_get_extents();

    SdaiBezier_surface__set_var SdaiBezier_surface_get_extents();

    SdaiCertification_assignment__set_var SdaiCertification_assignment_get_extents();

    SdaiStart_work__set_var SdaiStart_work_get_extents();

    SdaiContract_type__set_var SdaiContract_type_get_extents();

    SdaiB_spline_curve_with_knots__set_var SdaiB_spline_curve_with_knots_get_extents();

    SdaiCc_design_approval__set_var SdaiCc_design_approval_get_extents();

    SdaiEdge_based_wireframe_shape_representation__set_var SdaiEdge_based_wireframe_shape_representation_get_extents();

    SdaiGeometrically_bounded_wireframe_shape_representation__set_var SdaiGeometrically_bounded_wireframe_shape_representation_get_extents();

    SdaiProduct_concept__set_var SdaiProduct_concept_get_extents();

    SdaiCc_design_contract__set_var SdaiCc_design_contract_get_extents();

    SdaiSeam_curve__set_var SdaiSeam_curve_get_extents();

    SdaiAxis2_placement_3d__set_var SdaiAxis2_placement_3d_get_extents();

    SdaiRational_b_spline_surface__set_var SdaiRational_b_spline_surface_get_extents();

    SdaiConfiguration_design__set_var SdaiConfiguration_design_get_extents();

    SdaiDesign_context__set_var SdaiDesign_context_get_extents();

    SdaiProduct_definition__set_var SdaiProduct_definition_get_extents();

    SdaiProduct_definition_with_associated_documents__set_var SdaiProduct_definition_with_associated_documents_get_extents();

    SdaiOrganization__set_var SdaiOrganization_get_extents();

    SdaiCc_design_certification__set_var SdaiCc_design_certification_get_extents();

    SdaiB_spline_surface_with_knots__set_var SdaiB_spline_surface_with_knots_get_extents();

    SdaiCertification_type__set_var SdaiCertification_type_get_extents();

    SdaiOriented_path__set_var SdaiOriented_path_get_extents();

    SdaiSecurity_classification__set_var SdaiSecurity_classification_get_extents();

    SdaiVertex_loop__set_var SdaiVertex_loop_get_extents();

    SdaiApproval_status__set_var SdaiApproval_status_get_extents();

    SdaiCartesian_point__set_var SdaiCartesian_point_get_extents();

    SdaiDate_and_time_assignment__set_var SdaiDate_and_time_assignment_get_extents();

    SdaiParametric_representation_context__set_var SdaiParametric_representation_context_get_extents();

    SdaiProduct_concept_context__set_var SdaiProduct_concept_context_get_extents();

    SdaiCartesian_transformation_operator_2d__set_var SdaiCartesian_transformation_operator_2d_get_extents();

    SdaiSurface_patch__set_var SdaiSurface_patch_get_extents();

    SdaiLength_unit__set_var SdaiLength_unit_get_extents();

    SdaiShape_aspect__set_var SdaiShape_aspect_get_extents();

    SdaiVolume_measure_with_unit__set_var SdaiVolume_measure_with_unit_get_extents();

    SdaiAdvanced_face__set_var SdaiAdvanced_face_get_extents();

    SdaiSecurity_classification_level__set_var SdaiSecurity_classification_level_get_extents();

    SdaiApproval_relationship__set_var SdaiApproval_relationship_get_extents();

    SdaiPolyline__set_var SdaiPolyline_get_extents();

    SdaiApproval_person_organization__set_var SdaiApproval_person_organization_get_extents();

    SdaiSurface_replica__set_var SdaiSurface_replica_get_extents();

    SdaiSecurity_classification_assignment__set_var SdaiSecurity_classification_assignment_get_extents();

    SdaiCc_design_security_classification__set_var SdaiCc_design_security_classification_get_extents();

    SdaiFaceted_brep_shape_representation__set_var SdaiFaceted_brep_shape_representation_get_extents();

    SdaiDocument_usage_constraint__set_var SdaiDocument_usage_constraint_get_extents();

    SdaiVertex_point__set_var SdaiVertex_point_get_extents();

    SdaiCc_design_date_and_time_assignment__set_var SdaiCc_design_date_and_time_assignment_get_extents();

    SdaiOriented_closed_shell__set_var SdaiOriented_closed_shell_get_extents();

    SdaiPerson_and_organization__set_var SdaiPerson_and_organization_get_extents();

    SdaiCylindrical_surface__set_var SdaiCylindrical_surface_get_extents();

    SdaiLocal_time__set_var SdaiLocal_time_get_extents();

    SdaiMass_unit__set_var SdaiMass_unit_get_extents();

    SdaiVertex_shell__set_var SdaiVertex_shell_get_extents();

    SdaiPoly_loop__set_var SdaiPoly_loop_get_extents();

    SdaiWire_shell__set_var SdaiWire_shell_get_extents();

    SdaiArea_unit__set_var SdaiArea_unit_get_extents();

    SdaiMapped_item__set_var SdaiMapped_item_get_extents();

    SdaiOffset_curve_2d__set_var SdaiOffset_curve_2d_get_extents();

    SdaiShape_definition_representation__set_var SdaiShape_definition_representation_get_extents();

    SdaiVolume_unit__set_var SdaiVolume_unit_get_extents();

    SdaiConical_surface__set_var SdaiConical_surface_get_extents();

    SdaiGlobal_unit_assigned_context__set_var SdaiGlobal_unit_assigned_context_get_extents();

#ifdef __OSTORE__
	static os_typespec* get_os_typespec();
#endif

};


typedef SdaiModel_contents_config_control_design * SdaiModel_contents_config_control_design_ptr;
typedef SdaiModel_contents_config_control_design_ptr SdaiModel_contents_config_control_design_var;

#ifdef __OSTORE__
SCLP23(Model_contents_ptr) create_SdaiModel_contents_config_control_design(os_database *db);
#else
SCLP23(Model_contents_ptr) create_SdaiModel_contents_config_control_design();
#endif

#endif
