Drawing Set Sample
Drawing Set Sample
The following sample demonstrates drawing set operations.
void editDSet(){AcMapSession *mapApi;AcMapProject *pProj;AcMapDrawingSet *pDSet;char res[32];do {mapApi = AcMapGetSession();if (mapApi == NULL){acutPrintf ("\nCan't connect MAP") ;break ;}if (mapApi->GetProject(pProj) == Adesk::kFalse){break ;}if (pProj->GetDrawingSet(pDSet) == Adesk::kFalse){acutPrintf ("\nCan't get drawing set") ;break ;}do {// SetupprintDSet(pDSet) ;*res = EOS ;acedInitGet(0,"eXit aTtach Detach Activate deaCtivate SettingsgettaBle aLiases View Preview Report Query Zoom") ;if (acedGetKword("\naTtach/Detach/Activate/deaCtivate/Settings/gettaBle/aLiases/View/Preview/Report/Query/Zoom/<eXit>: ",res) == RTNORM){if (*res == EOS || !(strcmp(res, "eXit"))){break ;}// Attach a drawingelse if (!strcmp(res, "aTtach")){if (acedGetString (1,"Enter alias path: ",res) == RTNORM){AcMapAttachedDrawing *pDwg = NULL ;if (pDSet->AttachDrawing(pDwg, res) == AcMap::kOk){delete pDwg ;}}}// Detach a drawingelse if (!strcmp(res, "Detach")){acedGetString(1, "Enter drawing path ", res) ;AcMapAttachedDrawing *pDwg = NULL ;pDSet->DetachDrawing(res) ;}// Activate a drawingelse if (!strcmp(res, "Activate")){acedGetString(1, "Enter drawing path ", res) ;AcMapAttachedDrawing *pDwg = NULL ;if (pDSet->GetDrawing(pDwg,res,Adesk::kFalse) == AcMap::kOk){pDwg->Activate() ;delete pDwg ;}}// Deactivate a drawingelse if (!strcmp(res, "deaCtivate")){acedGetString(1, "Enter drawing path ", res) ;AcMapAttachedDrawing *pDwg = NULL ;if (pDSet->GetDrawing(pDwg,res,Adesk::kFalse) == AcMap::kOk){pDwg->Deactivate() ;delete pDwg ;}}// Get a drawing's symbol tableelse if (!strcmp(res, "gettaBle")){acedGetString(1, "Enter drawing path ", res) ;AcMapAttachedDrawing *pDwg = NULL ;if (pDSet->GetDrawing(pDwg,res,Adesk::kFalse) == AcMap::kOk){getTable(pDwg) ;delete pDwg ;}}// Edit a drawing's settingselse if (!strcmp(res, "Settings")){acedGetString(1, "Enter drawing path ", res) ;AcMapAttachedDrawing *pDwg = NULL ;if (pDSet->GetDrawing(pDwg,res,Adesk::kFalse) == AcMap::kOk){editSettings(pDwg) ;delete pDwg ;}}// Preview all of a drawingelse if (!strcmp(res, "View")){acedGetString(1, "Enter drawing path ", res) ;AcMapAttachedDrawing *pDwg = NULL ;if (pDSet->GetDrawing(pDwg,res,Adesk::kFalse) == AcMap::kOk){pDwg->Preview() ;delete pDwg ;}}// Preview queried objects in a drawingelse if (!strcmp(res, "Preview")){acedGetString(1, "Enter drawing path ", res) ;AcMapAttachedDrawing *pDwg = NULL ;if (pDSet->GetDrawing(pDwg,res,Adesk::kFalse) == AcMap::kOk){AcDbObjectIdArray tIds ;pDwg->ApplyQuery(tIds) ;pDwg->Preview(tIds) ;delete pDwg ;}}// Create a report of the queried objects in a drawingelse if (!strcmp(res, "Report")){acedGetString(1, "Enter drawing path ", res) ;AcMapAttachedDrawing *pDwg = NULL ;if (pDSet->GetDrawing(pDwg,res,Adesk::kFalse) == AcMap::kOk){AcDbObjectIdArray tIds ;pDwg->ApplyQuery(tIds) ;pDwg->Report(tIds) ;delete pDwg ;}}// Copy the drawing objects matching the// current query to the project drawingelse if (!strcmp(res, "Query")){acedGetString(1, "Enter drawing path ", res) ;AcMapAttachedDrawing *pDwg = NULL ;if (pDSet->GetDrawing(pDwg,res, Adesk::kFalse) == AcMap::kOk){AcDbObjectIdArray tIds ;pDwg->ApplyQuery(tIds) ;pDwg->QueryIn(tIds) ;delete pDwg ;}}// Zoom the drawings to the maximumelse if (!strcmp(res, "Zoom")){pDSet->ZoomExtents() ;}}else{break ;}printErrStack() ;} while(1) ;} while (0) ;}