Note that currently, as far as I can tell, there is no way to get the current editable layer(s). See: https://gis.stackexchange.com/q/77881/753

So as an alternative you could have the user select a layer from the TOC and use the `GetSelectedTOCLayerOrDataFrame` method in the [`pythonaddins`][1] module to retrieve it.

If you can get over that, here is how you could implement the rest in a Python add-in:

 1. Implement a function that takes an x and y map coordinate, width and height dimensions for a rectangle, and a layer/feature class. The function then opens an [`InsertCursor`][2] on the layer, creates a new [`Polygon`][3] from the input coordinates and width and height, and inserts it using the cursor's `insertRow` method. Test this method outside of the add-in framework until you are sure it works as you expect.

    Below is a function I came up with that seems to work (it considers the x and y arguments to be the lower-left corner of the rectangle):

        def createRectangleAtPoint(x, y, width, height, layer):
            desc = arcpy.Describe(layer)
            bottom_left = (x, y)
            top_left = (x, y + height)
            top_right = (x + width, y + height)
            bottom_right = (x + width, y)
            array = arcpy.Array([arcpy.Point(*coords) for coords in [bottom_left, top_left, top_right, bottom_right, bottom_left]])
            rect = arcpy.Polygon(array, desc.spatialReference)
            with arcpy.da.InsertCursor(layer, "SHAPE@") as cursor:
               cursor.insertRow((rect,))

 2. In the implementation for your [`Tool`][5] class, listen for `onMouseUpMap`, retrieve the `x` and `y` coordinate arguments, and pass these in, along with the desired dimensions and layer, into the function above.


 3. Implement an [`Extension`][4] class that listens for `onStartEditing`, `onStopEditing`. Enable and disable your tool object when the edit session starts and stops.

  **Note:** Consider this step optional since this doesn't really prevent the user from running the code on a non-editable layer or one outside of the current edit session though, so there isn't that much point right now.


  [1]: http://resources.arcgis.com/en/help/main/10.1/index.html#/The_pythonaddins_module/014p00000021000000/
  [2]: http://resources.arcgis.com/en/help/main/10.1/index.html#//018w0000000t000000
  [3]: http://resources.arcgis.com/en/help/main/10.1/index.html#//018z00000061000000
  [4]: http://resources.arcgis.com/en/help/main/10.2/index.html#/Application_Extension/014p00000019000000/
  [5]: http://resources.arcgis.com/en/help/main/10.2/index.html#//014p00000027000000