Obtaining One Object Identifier from Another

AutoCAD AutoLISP & Visual LISP

 
Obtaining One Object Identifier from Another
 
 
 

You may find the same drawing object represented by different identifiers and data types such as a handle string, an ename, a VLA-object, or an ObjectARX object ID integer. To obtain the identifier with the data type your program requires, use the following strategies:

  • To find the handle associated with an ename, use the DXF 5 group of the ename's association list:

    _$ (setq handle-circle (cdr (assoc 5 (entget ename-circle))))

    "4F"

  • To find the ename associated with a handle, use the handent function:

    _$ (handent handle-circle)

    <Entity name: 27f0538>

  • To find the VLA-object associated with a handle, use the vla-handleToObject function:

    _$ (setq vla-circle (vla-handleToObject acadDocument

    handle-circle))

    #<VLA-OBJECT IAcadCircle 03642c24>

  • To find the handle associated with a VLA-object, use vla-get-handle to obtain the handle property:

    _$ (vla-get-handle vla-circle)

    "4F"

  • To find the ObjectARX object ID of a VLA-object, use vla-get-objectid to get the objectID property:

    _$ (setq objid-Circle (vla-get-objectid vla-circle))

    41878840

  • To find the VLA-object identified by an ObjectARX object ID, use the ObjectID-toObject method on the AutoCAD Document object:

    _$ (vla-ObjectIDtoObject acadDocument objid-circle)

    #<VLA-OBJECT IAcadCircle 03642c24>