shared_ptr<IfcActionSourceTypeEnum> IfcActionSourceTypeEnum::createObjectFromSTEP( const std::wstring& arg, const std::map<int,shared_ptr<BuildingEntity> >& map )
{
	if( arg.compare( L"$" ) == 0 ) { return shared_ptr<IfcActionSourceTypeEnum>(); }
	if( arg.compare( L"*" ) == 0 ) { return shared_ptr<IfcActionSourceTypeEnum>(); }
	shared_ptr<IfcActionSourceTypeEnum> type_object( new IfcActionSourceTypeEnum() );
	if( boost::iequals( arg, L".DEAD_LOAD_G." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_DEAD_LOAD_G;
	}
	else if( boost::iequals( arg, L".COMPLETION_G1." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_COMPLETION_G1;
	}
	else if( boost::iequals( arg, L".LIVE_LOAD_Q." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_LIVE_LOAD_Q;
	}
	else if( boost::iequals( arg, L".SNOW_S." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_SNOW_S;
	}
	else if( boost::iequals( arg, L".WIND_W." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_WIND_W;
	}
	else if( boost::iequals( arg, L".PRESTRESSING_P." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_PRESTRESSING_P;
	}
	else if( boost::iequals( arg, L".SETTLEMENT_U." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_SETTLEMENT_U;
	}
	else if( boost::iequals( arg, L".TEMPERATURE_T." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_TEMPERATURE_T;
	}
	else if( boost::iequals( arg, L".EARTHQUAKE_E." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_EARTHQUAKE_E;
	}
	else if( boost::iequals( arg, L".FIRE." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_FIRE;
	}
	else if( boost::iequals( arg, L".IMPULSE." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_IMPULSE;
	}
	else if( boost::iequals( arg, L".IMPACT." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_IMPACT;
	}
	else if( boost::iequals( arg, L".TRANSPORT." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_TRANSPORT;
	}
	else if( boost::iequals( arg, L".ERECTION." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_ERECTION;
	}
	else if( boost::iequals( arg, L".PROPPING." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_PROPPING;
	}
	else if( boost::iequals( arg, L".SYSTEM_IMPERFECTION." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_SYSTEM_IMPERFECTION;
	}
	else if( boost::iequals( arg, L".SHRINKAGE." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_SHRINKAGE;
	}
	else if( boost::iequals( arg, L".CREEP." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_CREEP;
	}
	else if( boost::iequals( arg, L".LACK_OF_FIT." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_LACK_OF_FIT;
	}
	else if( boost::iequals( arg, L".BUOYANCY." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_BUOYANCY;
	}
	else if( boost::iequals( arg, L".ICE." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_ICE;
	}
	else if( boost::iequals( arg, L".CURRENT." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_CURRENT;
	}
	else if( boost::iequals( arg, L".WAVE." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_WAVE;
	}
	else if( boost::iequals( arg, L".RAIN." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_RAIN;
	}
	else if( boost::iequals( arg, L".BRAKES." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_BRAKES;
	}
	else if( boost::iequals( arg, L".USERDEFINED." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_USERDEFINED;
	}
	else if( boost::iequals( arg, L".NOTDEFINED." ) )
	{
		type_object->m_enum = IfcActionSourceTypeEnum::ENUM_NOTDEFINED;
	}
	return type_object;
}
Example #2
0
shared_ptr<IfcSIUnitName> IfcSIUnitName::createObjectFromSTEP( const std::wstring& arg )
{
	// read TYPE
	if( arg.compare( L"$" ) == 0 ) { return shared_ptr<IfcSIUnitName>(); }
	else if( arg.compare( L"*" ) == 0 ) { return shared_ptr<IfcSIUnitName>(); }
	shared_ptr<IfcSIUnitName> type_object( new IfcSIUnitName() );
	if( boost::iequals( arg, L".AMPERE." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_AMPERE;
	}
	else if( boost::iequals( arg, L".BECQUEREL." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_BECQUEREL;
	}
	else if( boost::iequals( arg, L".CANDELA." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_CANDELA;
	}
	else if( boost::iequals( arg, L".COULOMB." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_COULOMB;
	}
	else if( boost::iequals( arg, L".CUBIC_METRE." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_CUBIC_METRE;
	}
	else if( boost::iequals( arg, L".DEGREE_CELSIUS." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_DEGREE_CELSIUS;
	}
	else if( boost::iequals( arg, L".FARAD." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_FARAD;
	}
	else if( boost::iequals( arg, L".GRAM." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_GRAM;
	}
	else if( boost::iequals( arg, L".GRAY." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_GRAY;
	}
	else if( boost::iequals( arg, L".HENRY." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_HENRY;
	}
	else if( boost::iequals( arg, L".HERTZ." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_HERTZ;
	}
	else if( boost::iequals( arg, L".JOULE." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_JOULE;
	}
	else if( boost::iequals( arg, L".KELVIN." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_KELVIN;
	}
	else if( boost::iequals( arg, L".LUMEN." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_LUMEN;
	}
	else if( boost::iequals( arg, L".LUX." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_LUX;
	}
	else if( boost::iequals( arg, L".METRE." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_METRE;
	}
	else if( boost::iequals( arg, L".MOLE." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_MOLE;
	}
	else if( boost::iequals( arg, L".NEWTON." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_NEWTON;
	}
	else if( boost::iequals( arg, L".OHM." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_OHM;
	}
	else if( boost::iequals( arg, L".PASCAL." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_PASCAL;
	}
	else if( boost::iequals( arg, L".RADIAN." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_RADIAN;
	}
	else if( boost::iequals( arg, L".SECOND." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_SECOND;
	}
	else if( boost::iequals( arg, L".SIEMENS." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_SIEMENS;
	}
	else if( boost::iequals( arg, L".SIEVERT." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_SIEVERT;
	}
	else if( boost::iequals( arg, L".SQUARE_METRE." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_SQUARE_METRE;
	}
	else if( boost::iequals( arg, L".STERADIAN." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_STERADIAN;
	}
	else if( boost::iequals( arg, L".TESLA." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_TESLA;
	}
	else if( boost::iequals( arg, L".VOLT." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_VOLT;
	}
	else if( boost::iequals( arg, L".WATT." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_WATT;
	}
	else if( boost::iequals( arg, L".WEBER." ) )
	{
		type_object->m_enum = IfcSIUnitName::ENUM_WEBER;
	}
	return type_object;
}
shared_ptr<IfcDerivedUnitEnum> IfcDerivedUnitEnum::createObjectFromSTEP( const std::wstring& arg, const std::map<int,shared_ptr<BuildingEntity> >& map )
{
	if( arg.compare( L"$" ) == 0 ) { return shared_ptr<IfcDerivedUnitEnum>(); }
	else if( arg.compare( L"*" ) == 0 ) { return shared_ptr<IfcDerivedUnitEnum>(); }
	shared_ptr<IfcDerivedUnitEnum> type_object( new IfcDerivedUnitEnum() );
	if( boost::iequals( arg, L".ANGULARVELOCITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_ANGULARVELOCITYUNIT;
	}
	else if( boost::iequals( arg, L".AREADENSITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_AREADENSITYUNIT;
	}
	else if( boost::iequals( arg, L".COMPOUNDPLANEANGLEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_COMPOUNDPLANEANGLEUNIT;
	}
	else if( boost::iequals( arg, L".DYNAMICVISCOSITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_DYNAMICVISCOSITYUNIT;
	}
	else if( boost::iequals( arg, L".HEATFLUXDENSITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_HEATFLUXDENSITYUNIT;
	}
	else if( boost::iequals( arg, L".INTEGERCOUNTRATEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_INTEGERCOUNTRATEUNIT;
	}
	else if( boost::iequals( arg, L".ISOTHERMALMOISTURECAPACITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_ISOTHERMALMOISTURECAPACITYUNIT;
	}
	else if( boost::iequals( arg, L".KINEMATICVISCOSITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_KINEMATICVISCOSITYUNIT;
	}
	else if( boost::iequals( arg, L".LINEARVELOCITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_LINEARVELOCITYUNIT;
	}
	else if( boost::iequals( arg, L".MASSDENSITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_MASSDENSITYUNIT;
	}
	else if( boost::iequals( arg, L".MASSFLOWRATEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_MASSFLOWRATEUNIT;
	}
	else if( boost::iequals( arg, L".MOISTUREDIFFUSIVITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_MOISTUREDIFFUSIVITYUNIT;
	}
	else if( boost::iequals( arg, L".MOLECULARWEIGHTUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_MOLECULARWEIGHTUNIT;
	}
	else if( boost::iequals( arg, L".SPECIFICHEATCAPACITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_SPECIFICHEATCAPACITYUNIT;
	}
	else if( boost::iequals( arg, L".THERMALADMITTANCEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_THERMALADMITTANCEUNIT;
	}
	else if( boost::iequals( arg, L".THERMALCONDUCTANCEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_THERMALCONDUCTANCEUNIT;
	}
	else if( boost::iequals( arg, L".THERMALRESISTANCEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_THERMALRESISTANCEUNIT;
	}
	else if( boost::iequals( arg, L".THERMALTRANSMITTANCEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_THERMALTRANSMITTANCEUNIT;
	}
	else if( boost::iequals( arg, L".VAPORPERMEABILITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_VAPORPERMEABILITYUNIT;
	}
	else if( boost::iequals( arg, L".VOLUMETRICFLOWRATEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_VOLUMETRICFLOWRATEUNIT;
	}
	else if( boost::iequals( arg, L".ROTATIONALFREQUENCYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_ROTATIONALFREQUENCYUNIT;
	}
	else if( boost::iequals( arg, L".TORQUEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_TORQUEUNIT;
	}
	else if( boost::iequals( arg, L".MOMENTOFINERTIAUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_MOMENTOFINERTIAUNIT;
	}
	else if( boost::iequals( arg, L".LINEARMOMENTUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_LINEARMOMENTUNIT;
	}
	else if( boost::iequals( arg, L".LINEARFORCEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_LINEARFORCEUNIT;
	}
	else if( boost::iequals( arg, L".PLANARFORCEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_PLANARFORCEUNIT;
	}
	else if( boost::iequals( arg, L".MODULUSOFELASTICITYUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_MODULUSOFELASTICITYUNIT;
	}
	else if( boost::iequals( arg, L".SHEARMODULUSUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_SHEARMODULUSUNIT;
	}
	else if( boost::iequals( arg, L".LINEARSTIFFNESSUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_LINEARSTIFFNESSUNIT;
	}
	else if( boost::iequals( arg, L".ROTATIONALSTIFFNESSUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_ROTATIONALSTIFFNESSUNIT;
	}
	else if( boost::iequals( arg, L".MODULUSOFSUBGRADEREACTIONUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_MODULUSOFSUBGRADEREACTIONUNIT;
	}
	else if( boost::iequals( arg, L".ACCELERATIONUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_ACCELERATIONUNIT;
	}
	else if( boost::iequals( arg, L".CURVATUREUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_CURVATUREUNIT;
	}
	else if( boost::iequals( arg, L".HEATINGVALUEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_HEATINGVALUEUNIT;
	}
	else if( boost::iequals( arg, L".IONCONCENTRATIONUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_IONCONCENTRATIONUNIT;
	}
	else if( boost::iequals( arg, L".LUMINOUSINTENSITYDISTRIBUTIONUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_LUMINOUSINTENSITYDISTRIBUTIONUNIT;
	}
	else if( boost::iequals( arg, L".MASSPERLENGTHUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_MASSPERLENGTHUNIT;
	}
	else if( boost::iequals( arg, L".MODULUSOFLINEARSUBGRADEREACTIONUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_MODULUSOFLINEARSUBGRADEREACTIONUNIT;
	}
	else if( boost::iequals( arg, L".MODULUSOFROTATIONALSUBGRADEREACTIONUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_MODULUSOFROTATIONALSUBGRADEREACTIONUNIT;
	}
	else if( boost::iequals( arg, L".PHUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_PHUNIT;
	}
	else if( boost::iequals( arg, L".ROTATIONALMASSUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_ROTATIONALMASSUNIT;
	}
	else if( boost::iequals( arg, L".SECTIONAREAINTEGRALUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_SECTIONAREAINTEGRALUNIT;
	}
	else if( boost::iequals( arg, L".SECTIONMODULUSUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_SECTIONMODULUSUNIT;
	}
	else if( boost::iequals( arg, L".SOUNDPOWERLEVELUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_SOUNDPOWERLEVELUNIT;
	}
	else if( boost::iequals( arg, L".SOUNDPOWERUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_SOUNDPOWERUNIT;
	}
	else if( boost::iequals( arg, L".SOUNDPRESSURELEVELUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_SOUNDPRESSURELEVELUNIT;
	}
	else if( boost::iequals( arg, L".SOUNDPRESSUREUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_SOUNDPRESSUREUNIT;
	}
	else if( boost::iequals( arg, L".TEMPERATUREGRADIENTUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_TEMPERATUREGRADIENTUNIT;
	}
	else if( boost::iequals( arg, L".TEMPERATURERATEOFCHANGEUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_TEMPERATURERATEOFCHANGEUNIT;
	}
	else if( boost::iequals( arg, L".THERMALEXPANSIONCOEFFICIENTUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_THERMALEXPANSIONCOEFFICIENTUNIT;
	}
	else if( boost::iequals( arg, L".WARPINGCONSTANTUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_WARPINGCONSTANTUNIT;
	}
	else if( boost::iequals( arg, L".WARPINGMOMENTUNIT." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_WARPINGMOMENTUNIT;
	}
	else if( boost::iequals( arg, L".USERDEFINED." ) )
	{
		type_object->m_enum = IfcDerivedUnitEnum::ENUM_USERDEFINED;
	}
	return type_object;
}
shared_ptr<IfcCompressorTypeEnum> IfcCompressorTypeEnum::createObjectFromSTEP( const std::wstring& arg, const std::map<int,shared_ptr<BuildingEntity> >& map )
{
	if( arg.compare( L"$" ) == 0 ) { return shared_ptr<IfcCompressorTypeEnum>(); }
	if( arg.compare( L"*" ) == 0 ) { return shared_ptr<IfcCompressorTypeEnum>(); }
	shared_ptr<IfcCompressorTypeEnum> type_object( new IfcCompressorTypeEnum() );
	if( boost::iequals( arg, L".DYNAMIC." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_DYNAMIC;
	}
	else if( boost::iequals( arg, L".RECIPROCATING." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_RECIPROCATING;
	}
	else if( boost::iequals( arg, L".ROTARY." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_ROTARY;
	}
	else if( boost::iequals( arg, L".SCROLL." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_SCROLL;
	}
	else if( boost::iequals( arg, L".TROCHOIDAL." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_TROCHOIDAL;
	}
	else if( boost::iequals( arg, L".SINGLESTAGE." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_SINGLESTAGE;
	}
	else if( boost::iequals( arg, L".BOOSTER." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_BOOSTER;
	}
	else if( boost::iequals( arg, L".OPENTYPE." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_OPENTYPE;
	}
	else if( boost::iequals( arg, L".HERMETIC." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_HERMETIC;
	}
	else if( boost::iequals( arg, L".SEMIHERMETIC." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_SEMIHERMETIC;
	}
	else if( boost::iequals( arg, L".WELDEDSHELLHERMETIC." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_WELDEDSHELLHERMETIC;
	}
	else if( boost::iequals( arg, L".ROLLINGPISTON." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_ROLLINGPISTON;
	}
	else if( boost::iequals( arg, L".ROTARYVANE." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_ROTARYVANE;
	}
	else if( boost::iequals( arg, L".SINGLESCREW." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_SINGLESCREW;
	}
	else if( boost::iequals( arg, L".TWINSCREW." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_TWINSCREW;
	}
	else if( boost::iequals( arg, L".USERDEFINED." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_USERDEFINED;
	}
	else if( boost::iequals( arg, L".NOTDEFINED." ) )
	{
		type_object->m_enum = IfcCompressorTypeEnum::ENUM_NOTDEFINED;
	}
	return type_object;
}
		shared_ptr<IfcLaborResourceTypeEnum> IfcLaborResourceTypeEnum::readStepData( std::string& arg )
		{
			// read TYPE
			if( arg.compare( "$" ) == 0 ) { return shared_ptr<IfcLaborResourceTypeEnum>(); }
			shared_ptr<IfcLaborResourceTypeEnum> type_object( new IfcLaborResourceTypeEnum() );
			if( _stricmp( arg.c_str(), ".ADMINISTRATION." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_ADMINISTRATION;
			}
			else if( _stricmp( arg.c_str(), ".CARPENTRY." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_CARPENTRY;
			}
			else if( _stricmp( arg.c_str(), ".CLEANING." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_CLEANING;
			}
			else if( _stricmp( arg.c_str(), ".CONCRETE." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_CONCRETE;
			}
			else if( _stricmp( arg.c_str(), ".DRYWALL." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_DRYWALL;
			}
			else if( _stricmp( arg.c_str(), ".ELECTRIC." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_ELECTRIC;
			}
			else if( _stricmp( arg.c_str(), ".FINISHING." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_FINISHING;
			}
			else if( _stricmp( arg.c_str(), ".FLOORING." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_FLOORING;
			}
			else if( _stricmp( arg.c_str(), ".GENERAL." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_GENERAL;
			}
			else if( _stricmp( arg.c_str(), ".HVAC." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_HVAC;
			}
			else if( _stricmp( arg.c_str(), ".LANDSCAPING." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_LANDSCAPING;
			}
			else if( _stricmp( arg.c_str(), ".MASONRY." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_MASONRY;
			}
			else if( _stricmp( arg.c_str(), ".PAINTING." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_PAINTING;
			}
			else if( _stricmp( arg.c_str(), ".PAVING." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_PAVING;
			}
			else if( _stricmp( arg.c_str(), ".PLUMBING." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_PLUMBING;
			}
			else if( _stricmp( arg.c_str(), ".ROOFING." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_ROOFING;
			}
			else if( _stricmp( arg.c_str(), ".SITEGRADING." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_SITEGRADING;
			}
			else if( _stricmp( arg.c_str(), ".STEELWORK." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_STEELWORK;
			}
			else if( _stricmp( arg.c_str(), ".SURVEYING." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_SURVEYING;
			}
			else if( _stricmp( arg.c_str(), ".USERDEFINED." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_USERDEFINED;
			}
			else if( _stricmp( arg.c_str(), ".NOTDEFINED." ) == 0 )
			{
				type_object->m_enum = IfcLaborResourceTypeEnum::ENUM_NOTDEFINED;
			}
			return type_object;
		}