/* Code generated by IfcQuery EXPRESS generator, www.ifcquery.com */

#pragma once
#include <vector>
#include <map>
#include <sstream>
#include <string>
#include "ifcpp/model/GlobalDefines.h"
#include "ifcpp/model/BasicTypes.h"
#include "ifcpp/model/BuildingObject.h"

// TYPE IfcSensorTypeEnum = ENUMERATION OF	(COSENSOR	,CO2SENSOR	,CONDUCTANCESENSOR	,CONTACTSENSOR	,FIRESENSOR	,FLOWSENSOR	,FROSTSENSOR	,GASSENSOR	,HEATSENSOR	,HUMIDITYSENSOR	,IDENTIFIERSENSOR	,IONCONCENTRATIONSENSOR	,LEVELSENSOR	,LIGHTSENSOR	,MOISTURESENSOR	,MOVEMENTSENSOR	,PHSENSOR	,PRESSURESENSOR	,RADIATIONSENSOR	,RADIOACTIVITYSENSOR	,SMOKESENSOR	,SOUNDSENSOR	,TEMPERATURESENSOR	,WINDSENSOR	,USERDEFINED	,NOTDEFINED);
class IFCQUERY_EXPORT IfcSensorTypeEnum : virtual public BuildingObject
{
public:
	enum IfcSensorTypeEnumEnum
	{
		ENUM_COSENSOR,
		ENUM_CO2SENSOR,
		ENUM_CONDUCTANCESENSOR,
		ENUM_CONTACTSENSOR,
		ENUM_FIRESENSOR,
		ENUM_FLOWSENSOR,
		ENUM_FROSTSENSOR,
		ENUM_GASSENSOR,
		ENUM_HEATSENSOR,
		ENUM_HUMIDITYSENSOR,
		ENUM_IDENTIFIERSENSOR,
		ENUM_IONCONCENTRATIONSENSOR,
		ENUM_LEVELSENSOR,
		ENUM_LIGHTSENSOR,
		ENUM_MOISTURESENSOR,
		ENUM_MOVEMENTSENSOR,
		ENUM_PHSENSOR,
		ENUM_PRESSURESENSOR,
		ENUM_RADIATIONSENSOR,
		ENUM_RADIOACTIVITYSENSOR,
		ENUM_SMOKESENSOR,
		ENUM_SOUNDSENSOR,
		ENUM_TEMPERATURESENSOR,
		ENUM_WINDSENSOR,
		ENUM_USERDEFINED,
		ENUM_NOTDEFINED
	};

	IfcSensorTypeEnum() = default;
	IfcSensorTypeEnum( IfcSensorTypeEnumEnum e ) { m_enum = e; }
	~IfcSensorTypeEnum();
	virtual const char* className() const { return "IfcSensorTypeEnum"; }
	virtual shared_ptr<BuildingObject> getDeepCopy( BuildingCopyOptions& options );
	virtual void getStepParameter( std::stringstream& stream, bool is_select_type = false ) const;
	virtual const std::wstring toString() const;
	static shared_ptr<IfcSensorTypeEnum> createObjectFromSTEP( const std::wstring& arg, const std::map<int,shared_ptr<BuildingEntity> >& map );
	IfcSensorTypeEnumEnum m_enum;
};

