/// <summary>
 /// Exports IFC type base implementation.
 /// </summary>
 /// <param name="file">The IFC file.</param>
 /// <param name="type">The export type.</param>
 /// <param name="ifcEnumType">The string value represents the IFC type.</param>
 /// <param name="guid">The guid.</param>
 /// <param name="ownerHistory">The owner history handle.</param>
 /// <param name="name">The name.</param>
 /// <param name="description">The description.</param>
 /// <param name="applicableOccurrence">The optional data type of the entity.</param>
 /// <param name="propertySets">The property sets.</param>
 /// <param name="representationMapList">List of representations.</param>
 /// <param name="elemId">The element id label.</param>
 /// <param name="typeName">The IFCPlacementSetter.</param>
 /// <param name="instance">The family instance.</param>
 /// <param name="symbol">The element type.</param>
 /// <returns>The handle.</returns>
 private static IFCAnyHandle ExportGenericTypeBase(IFCFile file,
    IFCExportType type,
    string ifcEnumType,
    IFCLabel guid,
    IFCAnyHandle ownerHistory,
    IFCLabel name,
    IFCLabel description,
    IFCLabel applicableOccurrence,
    HashSet<IFCAnyHandle> propertySets,
    IList<IFCAnyHandle> representationMapList,
    IFCLabel elemId,
    IFCLabel typeName,
    Element instance,
    ElementType symbol)
 {
     switch (type)
     {
         case IFCExportType.ExportActuatorType:
             return file.CreateActuatorType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportAirTerminalBoxType:
             return file.CreateAirTerminalBoxType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportAirTerminalType:
             return file.CreateAirTerminalType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportAirToAirHeatRecoveryType:
             return file.CreateAirToAirHeatRecoveryType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportAlarmType:
             return file.CreateAlarmType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportBoilerType:
             return file.CreateBoilerType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportCableCarrierFittingType:
             return file.CreateCableCarrierFittingType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportCableCarrierSegmentType:
             return file.CreateCableCarrierSegmentType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportCableSegmentType:
             return file.CreateCableSegmentType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportChillerType:
             return file.CreateChillerType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportCoilType:
             return file.CreateCoilType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportCompressorType:
             return file.CreateCompressorType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportCondenserType:
             return file.CreateCondenserType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportControllerType:
             return file.CreateControllerType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportCooledBeamType:
             return file.CreateCooledBeamType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportCoolingTowerType:
             return file.CreateCoolingTowerType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportDamperType:
             return file.CreateDamperType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportDistributionChamberElementType:
             return file.CreateDistributionChamberElementType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportDuctFittingType:
             return file.CreateDuctFittingType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportDuctSegmentType:
             return file.CreateDuctSegmentType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportDuctSilencerType:
             return file.CreateDuctSilencerType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportElectricApplianceType:
             return file.CreateElectricApplianceType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportElectricFlowStorageDeviceType:
             return file.CreateElectricFlowStorageDeviceType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportElectricGeneratorType:
             return file.CreateElectricGeneratorType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportElectricHeaterType:
             return file.CreateElectricHeaterType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportElectricMotorType:
             return file.CreateElectricMotorType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportElectricTimeControlType:
             return file.CreateElectricTimeControlType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportEvaporativeCoolerType:
             return file.CreateEvaporativeCoolerType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportEvaporatorType:
             return file.CreateEvaporatorType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportFanType:
             return file.CreateFanType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportFilterType:
             return file.CreateFilterType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportFireSuppressionTerminalType:
             return file.CreateFireSuppressionTerminalType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportFlowInstrumentType:
             return file.CreateFlowInstrumentType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportFlowMeterType:
             return file.CreateFlowMeterType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportFurnitureType:
             return file.CreateFurnitureType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportGasTerminalType:
             return file.CreateGasTerminalType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportHeatExchangerType:
             return file.CreateHeatExchangerType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportHumidifierType:
             return file.CreateHumidifierType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportJunctionBoxType:
             return file.CreateJunctionBoxType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportLampType:
             return file.CreateLampType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportLightFixtureType:
             return file.CreateLightFixtureType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportMemberType:
             return file.CreateMemberType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportMotorConnectionType:
             return file.CreateMotorConnectionType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportOutletType:
             return file.CreateOutletType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportPlateType:
             return file.CreatePlateType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportPipeFittingType:
             return file.CreatePipeFittingType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportPipeSegmentType:
             return file.CreatePipeSegmentType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportProtectiveDeviceType:
             return file.CreateProtectiveDeviceType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportPumpType:
             return file.CreatePumpType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportSanitaryTerminalType:
             return file.CreateSanitaryTerminalType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportSensorType:
             return file.CreateSensorType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportSpaceHeaterType:
             return file.CreateSpaceHeaterType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportStackTerminalType:
             return file.CreateStackTerminalType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportSwitchingDeviceType:
             return file.CreateSwitchingDeviceType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportTankType:
             return file.CreateTankType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportTransformerType:
             return file.CreateTransformerType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportTransportElementType:
             return file.CreateTransportElementType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportTubeBundleType:
             return file.CreateTubeBundleType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportUnitaryEquipmentType:
             return file.CreateUnitaryEquipmentType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportValveType:
             return file.CreateValveType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         case IFCExportType.ExportWasteTerminalType:
             return file.CreateWasteTerminalType(ifcEnumType, guid, ownerHistory, name,
                description, applicableOccurrence, propertySets, representationMapList, elemId,
                typeName, instance, symbol);
         default:
             return IFCAnyHandle.Create();
     }
 }