All SmartObjects have common capabilities which allow them to interact in an application. All SmartObjects can:

  • Initialize and destroy themselves
  • Get and set attributes
  • Add and remove SmartLinks
  • Communicate using the Application Data Models (ADM) standard communication interface (mainly using the notify and dispatch methods)

These capabilities provide a standard interface for creating and destroying SmartObject instances and for making SmartObjects interact. Unless a procedure object has these capabilities, it is not a SmartObject.