void IfcRecurrencePattern::readStepArguments( const std::vector<std::wstring>& args, const std::map<int,shared_ptr<BuildingEntity> >& map )
{
	const size_t num_args = args.size();
	if( num_args != 8 ){ std::stringstream err; err << "Wrong parameter count for entity IfcRecurrencePattern, expecting 8, having " << num_args << ". Entity ID: " << m_entity_id << std::endl; throw BuildingException( err.str().c_str() ); }
	m_RecurrenceType = IfcRecurrenceTypeEnum::createObjectFromSTEP( args[0], map );
	readTypeOfIntegerList( args[1], m_DayComponent );
	readTypeOfIntegerList( args[2], m_WeekdayComponent );
	readTypeOfIntegerList( args[3], m_MonthComponent );
	m_Position = IfcInteger::createObjectFromSTEP( args[4], map );
	m_Interval = IfcInteger::createObjectFromSTEP( args[5], map );
	m_Occurrences = IfcInteger::createObjectFromSTEP( args[6], map );
	readEntityReferenceList( args[7], m_TimePeriods, map );
}
void IfcBSplineSurfaceWithKnots::readStepArguments( const std::vector<std::wstring>& args, const std::map<int,shared_ptr<BuildingEntity> >& map )
{
	const size_t num_args = args.size();
	if( num_args != 12 ){ std::stringstream err; err << "Wrong parameter count for entity IfcBSplineSurfaceWithKnots, expecting 12, having " << num_args << ". Entity ID: " << m_entity_id << std::endl; throw BuildingException( err.str().c_str() ); }
	m_UDegree = IfcInteger::createObjectFromSTEP( args[0], map );
	m_VDegree = IfcInteger::createObjectFromSTEP( args[1], map );
	readEntityReferenceList2D( args[2], m_ControlPointsList, map );
	m_SurfaceForm = IfcBSplineSurfaceForm::createObjectFromSTEP( args[3], map );
	m_UClosed = IfcLogical::createObjectFromSTEP( args[4], map );
	m_VClosed = IfcLogical::createObjectFromSTEP( args[5], map );
	m_SelfIntersect = IfcLogical::createObjectFromSTEP( args[6], map );
	readTypeOfIntegerList( args[7], m_UMultiplicities );
	readTypeOfIntegerList( args[8], m_VMultiplicities );
	readTypeOfRealList( args[9], m_UKnots );
	readTypeOfRealList( args[10], m_VKnots );
	m_KnotSpec = IfcKnotType::createObjectFromSTEP( args[11], map );
}
void IfcPolygonalFaceSet::readStepArguments( const std::vector<std::wstring>& args, const std::map<int,shared_ptr<BuildingEntity> >& map )
{
	const size_t num_args = args.size();
	if( num_args != 4 ){ std::stringstream err; err << "Wrong parameter count for entity IfcPolygonalFaceSet, expecting 4, having " << num_args << ". Entity ID: " << m_entity_id << std::endl; throw BuildingException( err.str().c_str() ); }
	readEntityReference( args[0], m_Coordinates, map );
	m_Closed = IfcBoolean::createObjectFromSTEP( args[1], map );
	readEntityReferenceList( args[2], m_Faces, map );
	readTypeOfIntegerList( args[3], m_PnIndex );
}
void IfcIndexedPolygonalFace::readStepArguments( const std::vector<std::wstring>& args, const std::map<int,shared_ptr<BuildingEntity> >& map )
{
	const size_t num_args = args.size();
	if( num_args != 1 ){ std::stringstream err; err << "Wrong parameter count for entity IfcIndexedPolygonalFace, expecting 1, having " << num_args << ". Entity ID: " << m_entity_id << std::endl; throw BuildingException( err.str().c_str() ); }
	readTypeOfIntegerList( args[0], m_CoordIndex );
}