tpm_editdelelem

Land Desktop Development ARX CPP SDK

Up a level
tpm_editdelelem
 
 

Deletes an element from a topology.

int

tpm_editdelelem(

ade_id tpm_id,

ade_id elem_id,

int delobj);

Returns RTNORM or an error code.

tpm_id The topology ID.
elem_id The ID of the desired element.
delobj Delete status, either 0 (deletes the object from the topology only) or non-zero (deletes the object from the drawing also).

The following example deletes from memory and erases all the links of a network topology and counts the number of successful deletions.

void Delete_links()
{
   int indx = 0;     // Element index 
   int dindx = 0;    // Deleted element count 
   long qty = 0; 
   ade_id tpm_id = ADE_NULLID; 
   ade_id elm_id = ADE_NULLID; 
   int result = 0; 
 
   // load or build a network topology here 
   // and also use tpm_acopen to assign a tpm_id for the topology 
 
   // get the number of links 
   tpm_elemqty (tpm_id, 2, &qty;); 
 
   // delete all of the topology links 
 
   for ( ; indx < qty ; ) { 
         // get the links ID 
         elm_id = tpm_elemid(tpm_id, 2, indx); 
         if ( elm_id == ADE_NULLID ) { 
               indx++; 
               ads_printf("\nUnable to obtain an element ID."); 
         } 
         else { 
               // delete element and erase object 
               result = tpm_editdelelem(tpm_id, elm_id, 1); 
 
               if ( result == RTNORM ) 
                  dindx++; 
               else 
                  indx++; 
         } 
   } 
 
} // delete_links

Notes and Warnings 

  • This function does not erase corresponding entities in the drawing unless the delobj argument is set to something other than 0.
  • Deleting an element can cause other deletions.
    • If you delete a node, you delete any link or polygon that contains it.
    • If you delete a link, you delete only the nodes belonging to that link. If the link belongs to one polygon only, you delete the polygon. If the link is shared by two polygons, you merge the polygons.
    • If you delete a polygon, you delete any node or link belonging to that polygon only.