public Result Execute(
            ExternalCommandData commandData,
            ref string message,
            ElementSet elements)
        {
            Result rc = Result.Failed;

            ViewPlan view = commandData.View as ViewPlan;

            if (null == view ||
                view.ViewType != ViewType.AreaPlan)
            {
                message = "Please run this command in an area plan view.";
                return(rc);
            }

            UIApplication app   = commandData.Application;
            UIDocument    uidoc = app.ActiveUIDocument;
            Document      doc   = uidoc.Document;

            Element room = Util.GetSingleSelectedElement(uidoc);

            if (null == room || !(room is Room))
            {
                room = Util.SelectSingleElement(uidoc, "a room");
            }

            if (null == room || !(room is Room))
            {
                message = "Please select a single room element.";
            }
            else
            {
                using (Transaction t = new Transaction(doc))
                {
                    t.Start("Create New Area");

                    Location      loc  = room.Location;
                    LocationPoint lp   = loc as LocationPoint;
                    XYZ           p    = lp.Point;
                    UV            q    = new UV(p.X, p.Y);
                    Area          area = doc.Create.NewArea(view, q);
                    rc = Result.Succeeded;
                    t.Commit();
                }
            }
            return(rc);
        }