Applies specified index operations to a drawing.
rtype
ade_dwgindex(
ade_id dwgID);
Returns RTNORM or an error code.
dwgID | The drawing ID for the drawing on which index operations will be performed. |
When you call ade_dwgindex, indexes in the specified drawing are created or removed in accordance with the current index operation definition created by one or more calls to ade_dwgindexdef. If there is no index operation definition, ade_dwgindex has no effect on the drawing and returns ADE_NULLID.
The following sample, first clears any existing index defenitions using ade_dwgindexdef() with an empty string, ("") for the indexType parameter. A location index and an object data index are then defined and executed against all active drawings in the current project using ade_dwgindex(). Resbufs are then released as required. For more samples, see Creating Index Operation Expressions.
char* pszIndexName = ""; struct resbuf* indexParams = acutBuildList(RTNIL, 0); int resultCode = ade_dwgindexdef( pszIndexName,// An empty string "" clears 0,// remove index indexParams); char* pszPropIndexName = "Location"; resultCode = ade_dwgindexdef( pszPropIndexName, 1, indexParams); struct resbuf* pOdIndexParamsRb = acutBuildList( RTLB, RTLB, RTSTR, "RIBLKGRP", RTSTR, "AMERI_ES", RTLE, RTLB, RTSTR, "RIRDS", RTLE, RTLE, 0); char* pszOdIndexName = "ObjData"; resultCode = ade_dwgindexdef( pszOdIndexName, 1, pOdIndexParamsRb); struct resbuf* pAttachedDwgsRb = ade_dslist(ADE_NULLID, ADE_FALSE); if (NULL != pAttachedDwgsRb) { struct resbuf* rb = pAttachedDwgsRb; while(NULL != rb) { resultCode = ade_dwgindex(rb->resval.rreal); rb = rb->rbnext; } } else { acutPrintf( "\nThere are no attached drawings in this project."); } acutRelRb(indexParams); acutRelRb(pAttachedDwgsRb);