#include "stdafx.h" #include "TDbHImpFittingCreatorService.h" #include "TDbXDataMap.h" #include "THImpHvacDuct.h" #include "THImpHvacElbow.h" #include "THImpHvacReducer.h" #include "THImpHvacTee.h" #include "THImpHvacCross.h" #include "THImpHvacFlange.h" #include "THImpHvacOffset.h" #include "THImpHvacValve.h" #include "THImpHvacAirlets.h" #include "THImpHvacEquipment.h" #include "THImpHvacFan.h" #include "THImpHvacEGroup.h" #include "THImpHvacVRVBrPipe.h" #include "THImpHvacVRVEqu.h" #include "THImpHvacDeDustCover.h" #include "THImpHvacBroSymbol.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ACRX_CONS_DEFINE_MEMBERS(TDbHImpFittingCreatorService,TDbFittingCreatorService, 0) TDbHImpFittingCreatorService::TDbHImpFittingCreatorService() { } TDbHImpFittingCreatorService::~TDbHImpFittingCreatorService() { } TImpSpecFitting* TDbHImpFittingCreatorService::CreateSpecialFitting(TDbXDataMap* pXDataMap, AcDbEntity* pOwner) { TImpSpecFitting* pNewFitting = NULL; if (pXDataMap != NULL) { int nKind = -1; pXDataMap->GetAt(KEY_RUNTIME, nKind); try { switch(nKind) { case TDb::eElbow: pNewFitting = new THImpHvacElbow; pNewFitting->m_pXDataMap = pXDataMap; pNewFitting->m_pOwnerEnt = pOwner; break; case TDb::eReduce: { pNewFitting = new THImpHvacReducer; pNewFitting->m_pXDataMap = pXDataMap; pNewFitting->m_pOwnerEnt = pOwner; } break; case TDb::eTee: { pNewFitting = new THImpHvacTee; pNewFitting->m_pXDataMap = pXDataMap; pNewFitting->m_pOwnerEnt = pOwner; break; } case TDb::eCross: { pNewFitting = new THImpHvacCross; pNewFitting->m_pXDataMap = pXDataMap; pNewFitting->m_pOwnerEnt = pOwner; break; } case TDb::eFlange: { pNewFitting = new THImpHvacFlange; pNewFitting->m_pXDataMap = pXDataMap; pNewFitting->m_pOwnerEnt = pOwner; break; } case TDb::eOffset: // mcl add, 08.11.24 { pNewFitting = new THImpHvacOffset; pNewFitting->m_pXDataMap = pXDataMap; pNewFitting->m_pOwnerEnt = pOwner; break; } case TDb::eBroSymbol:// zh add, 2013.7.23 { pNewFitting = new THImpHvacBroSymbol; pNewFitting->m_pXDataMap = pXDataMap; pNewFitting->m_pOwnerEnt = pOwner; break; } default: break; } } catch (...) { acedAlert(_T("系统内存不足! new 失败!")); return NULL; } } return pNewFitting; } TDbImpPipeBase* TDbHImpFittingCreatorService::CreateSpecialPipe(TDbXDataMap* pXDataMap,AcDbEntity* pOwner) { TDbImpPipeBase* pNewPipe = NULL; if (pXDataMap != NULL) { int nKind = -1; pXDataMap->GetAt(KEY_RUNTIME, nKind); if (nKind == TDb::ePipe) { pNewPipe = new THImpHvacDuct; pNewPipe->m_pXDataMap = pXDataMap; pNewPipe->m_pOwnerEnt = pOwner; } } return pNewPipe; } TImpSpecEquipment* TDbHImpFittingCreatorService::CreateSpecialEquipment(TDbXDataMap* pXDataMap,AcDbEntity* pOwner) { TImpSpecEquipment* pNewEquipment = NULL; if (pXDataMap != NULL) { int nKind = -1; pXDataMap->GetAt(KEY_RUNTIME, nKind); try { switch(nKind) { case TDb::eValve: { pNewEquipment = new THImpHvacValve; pNewEquipment->m_pXDataMap = pXDataMap; pNewEquipment->m_pOwnerEnt = pOwner; break; } case TDb::eAirlets: { pNewEquipment = new THImpHvacAirlets; pNewEquipment->m_pXDataMap = pXDataMap; pNewEquipment->m_pOwnerEnt = pOwner; break; } case TDb::eFan: { pNewEquipment = new THImpHvacFan; pNewEquipment->m_pXDataMap = pXDataMap; pNewEquipment->m_pOwnerEnt = pOwner; break; } case TDb::eEquipment: { pNewEquipment = new THImpHvacEquipment; pNewEquipment->m_pXDataMap = pXDataMap; pNewEquipment->m_pOwnerEnt = pOwner; break; } case TDb::eAirHanding: { pNewEquipment = new THImpHvacEGroup; pNewEquipment->m_pXDataMap = pXDataMap; pNewEquipment->m_pOwnerEnt = pOwner; break; } case TDb::eVRVEqu: { pNewEquipment = new THImpHvacVRVEqu; pNewEquipment->m_pXDataMap = pXDataMap; pNewEquipment->m_pOwnerEnt = pOwner; break; } case TDb::eVRVBrPipe: { pNewEquipment = new THImpHvacVRVBrPipe; pNewEquipment->m_pXDataMap = pXDataMap; pNewEquipment->m_pOwnerEnt = pOwner; break; } case TDb::eDeDustCover: { pNewEquipment = new THImpHvacDeDustCover; pNewEquipment->m_pXDataMap = pXDataMap; pNewEquipment->m_pOwnerEnt = pOwner; break; } } } catch(...) { acedAlert(_T("系统内存不足! new 失败!")); return NULL; } } return pNewEquipment; } TImpSpecPart* TDbHImpFittingCreatorService::CreateSpecialPart(TDbXDataMap* pXDataMap,AcDbEntity* pOwner) { return NULL; }