Note that currently, as far as I can tell, there is no way to get the current editable layer(s). See: http://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 the 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) with arcpy.da.InsertCursor(layer, "SHAPE@") as cursor: cursor.insertRow((rect,)) 2. Implement an [`Extension`][4] class that listens for `onStartEditing`, `onStopEditing`. Enable and disable your tool class when the edit session starts and stops. 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. 3. 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, into the function above. [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