Please try this and tell me the result:
#region Namespaces using System; using System.Text; using System.Linq; using System.Xml; using System.Reflection; using System.ComponentModel; using System.Collections; using System.Collections.Generic; using System.Windows; using System.Windows.Media.Imaging; using System.Windows.Forms; using System.IO; using Autodesk.Revit.ApplicationServices; using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.DB.Events; using Autodesk.Revit.DB.Architecture; using Autodesk.Revit.DB.Structure; using Autodesk.Revit.DB.Mechanical; using Autodesk.Revit.DB.Electrical; using Autodesk.Revit.DB.Plumbing; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; using Autodesk.Revit.UI.Events; //using Autodesk.Revit.Collections; using Autodesk.Revit.Exceptions; using Autodesk.Revit.Utility; using RvtApplication = Autodesk.Revit.ApplicationServices.Application; using RvtDocument = Autodesk.Revit.DB.Document; #endregion namespace RevitAddinCS5 { [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] public class ExtCmd : IExternalCommand { #region Cached Variables private static ExternalCommandData _cachedCmdData; public static UIApplication CachedUiApp { get { return _cachedCmdData.Application; } } public static RvtApplication CachedApp { get { return CachedUiApp.Application; } } public static RvtDocument CachedDoc { get { return CachedUiApp.ActiveUIDocument.Document; } } #endregion #region IExternalCommand Members public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elemSet) { _cachedCmdData = cmdData; try { FilteredElementCollector collector = new FilteredElementCollector(CachedDoc); collector.OfCategory(BuiltInCategory.OST_IOSModelGroups).WhereElementIsNotElementType(); List<Element> els = collector.Cast<Element>().ToList(); Element el = els.First(); Group g = el as Group; BoundingBoxXYZ box = g.get_BoundingBox(CachedDoc.ActiveView); XYZ p1 = box.Max.Add(box.Min) / 2; XYZ p2 = p1.Add(new XYZ(0, 0, 1)); Line ln = Line.CreateBound(p1, p2); using (Transaction t = new Transaction(CachedDoc, "Revit")) { t.Start(); ElementTransformUtils.RotateElement(CachedDoc, el.Id, ln, Math.PI / 2); t.Commit(); } return Result.Succeeded; } catch (Exception ex) { msg = ex.ToString(); return Result.Failed; } } #endregion } }