/// <summary> /// Modified version with changes to use WindowSelect, by Tao (Tau) Yang, Autodesk. /// </summary> public Result Execute2( ExternalCommandData commandData, ref string message, ElementSet elements) { if (null == _hWndRevit) { Process process = Process.GetCurrentProcess(); IntPtr h = process.MainWindowHandle; _hWndRevit = new WindowHandle(h); } UIApplication app = commandData.Application; UIDocument uidoc = app.ActiveUIDocument; Document doc = uidoc.Document; Selection sel = uidoc.Selection; using (CmdWindowHandleForm f = new CmdWindowHandleForm()) { f.Show(_hWndRevit); bool go = true; while (go) { #if _2010 sel.StatusbarTip = _prompt; go = sel.WindowSelect(); #endif // _2010 IList <Element> a = sel.PickElementsByRectangle(_prompt); go = 0 < a.Count; //SelElementSet ss = sel.Elements; // 2014 //int n = ss.Size; ICollection <ElementId> ids = sel.GetElementIds(); // 2015 int n = ids.Count; string s = string.Format( "{0} element{1} selected{2}", n, Util.PluralSuffix(n), ((0 == n) ? ";\n" + _prompt : ":")); //foreach( Element e in ss ) foreach (ElementId id in ids) { s += "\n"; s += Util.ElementDescription( doc.GetElement(id)); } f.LabelText = s; Debug.Print("go = " + go.ToString()); } } return(Result.Failed); }
public Result Execute( ExternalCommandData commandData, ref string message, ElementSet elements) { if (null == _hWndRevit) { //Process[] processes // = Process.GetProcessesByName( "Revit" ); //if( 0 < processes.Length ) //{ // IntPtr h = processes[0].MainWindowHandle; // _hWndRevit = new WindowHandle( h ); //} Process process = Process.GetCurrentProcess(); IntPtr h = process.MainWindowHandle; _hWndRevit = new WindowHandle(h); } UIApplication app = commandData.Application; UIDocument uidoc = app.ActiveUIDocument; Document doc = uidoc.Document; Selection sel = uidoc.Selection; using (CmdWindowHandleForm f = new CmdWindowHandleForm()) { f.Show(_hWndRevit); bool go = true; while (go) { //SelElementSet ss = sel.Elements; // 2014 //int n = ss.Size; ICollection <ElementId> ids = sel.GetElementIds(); // 2015 int n = ids.Count; string s = string.Format( "{0} element{1} selected{2}", n, Util.PluralSuffix(n), ((0 == n) ? ";\n" + _prompt : ":")); foreach (ElementId id in ids) { s += "\n"; s += Util.ElementDescription( doc.GetElement(id)); } f.LabelText = s; #if _2010 sel.StatusbarTip = _prompt; go = sel.PickOne(); #endif // _2010 Reference r = uidoc.Selection.PickObject( ObjectType.Element, _prompt); go = null != r; Debug.Print("go = " + go.ToString()); } } return(Result.Failed); }
public Result Execute( ExternalCommandData commandData, ref string message, ElementSet elements) { if( null == _hWndRevit ) { //Process[] processes // = Process.GetProcessesByName( "Revit" ); //if( 0 < processes.Length ) //{ // IntPtr h = processes[0].MainWindowHandle; // _hWndRevit = new WindowHandle( h ); //} Process process = Process.GetCurrentProcess(); IntPtr h = process.MainWindowHandle; _hWndRevit = new WindowHandle( h ); } UIApplication app = commandData.Application; UIDocument uidoc = app.ActiveUIDocument; Document doc = uidoc.Document; Selection sel = uidoc.Selection; using( CmdWindowHandleForm f = new CmdWindowHandleForm() ) { f.Show( _hWndRevit ); bool go = true; while( go ) { SelElementSet ss = sel.Elements; int n = ss.Size; string s = string.Format( "{0} element{1} selected{2}", n, Util.PluralSuffix( n ), ((0 == n) ? ";\n" + _prompt : ":" ) ); foreach( Element e in ss ) { s += "\n"; s += Util.ElementDescription( e ); } f.LabelText = s; #if _2010 sel.StatusbarTip = _prompt; go = sel.PickOne(); #endif // _2010 Reference r = uidoc.Selection.PickObject( ObjectType.Element, _prompt ); go = null != r; Debug.Print( "go = " + go.ToString() ); } } return Result.Failed; }
/// <summary> /// Modified version with changes to use WindowSelect, by Tao (Tau) Yang, Autodesk. /// </summary> public Result Execute2( ExternalCommandData commandData, ref string message, ElementSet elements) { if( null == _hWndRevit ) { Process process = Process.GetCurrentProcess(); IntPtr h = process.MainWindowHandle; _hWndRevit = new WindowHandle( h ); } UIApplication app = commandData.Application; UIDocument uidoc = app.ActiveUIDocument; Document doc = uidoc.Document; Selection sel = uidoc.Selection; using( CmdWindowHandleForm f = new CmdWindowHandleForm() ) { f.Show( _hWndRevit ); bool go = true; while( go ) { #if _2010 sel.StatusbarTip = _prompt; go = sel.WindowSelect(); #endif // _2010 IList<Element> a = sel.PickElementsByRectangle( _prompt ); go = 0 < a.Count; SelElementSet ss = sel.Elements; int n = ss.Size; string s = string.Format( "{0} element{1} selected{2}", n, Util.PluralSuffix( n ), ( ( 0 == n ) ? ";\n" + _prompt : ":" ) ); foreach( Element e in ss ) { s += "\n"; s += Util.ElementDescription( e ); } f.LabelText = s; Debug.Print( "go = " + go.ToString() ); } } return Result.Failed; }