BuildingCoder.CmdPlaceFamilyInstance.OnDocumentChanged C# (CSharp) Метод

OnDocumentChanged() статический приватный Метод

static private OnDocumentChanged ( object sender, DocumentChangedEventArgs e ) : void
sender object
e DocumentChangedEventArgs
Результат void
        void OnDocumentChanged(
            object sender,
            DocumentChangedEventArgs e)
        {
            ICollection<ElementId> idsAdded
            = e.GetAddedElementIds();

              int n = idsAdded.Count;

              Debug.Print( "{0} id{1} added.",
            n, Util.PluralSuffix( n ) );

              // This does not work, because the handler will
              // be called each time a new instance is added,
              // overwriting the previous ones recorded:

              //_added_element_ids = e.GetAddedElementIds();

              _added_element_ids.AddRange( idsAdded );

              if( _place_one_single_instance_then_abort
            && 0 < n )
              {
            // Why do we send the WM_KEYDOWN message twice?
            // I tried sending it once only, and that does
            // not work. Maybe the proper thing to do would
            // be something like the Press.OneKey method...
            //
            //Press.OneKey( _revit_window.Handle,
            //  (char) Keys.Escape );
            //
            // Nope, that did not work.
            //
            // Answer: When you place instances with
            // PromptForFamilyInstancePlacement, the previous
            // one remains selected just until you drop the
            // next one. The first esc key hit removes that
            // selection while still allowing you to continue
            // adding instances to the model. Only a second
            // esc hit aborts the command.

            Press.PostMessage( _revit_window.Handle,
              (uint) Press.KEYBOARD_MSG.WM_KEYDOWN,
              (uint) Keys.Escape, 0 );

            Press.PostMessage( _revit_window.Handle,
              (uint) Press.KEYBOARD_MSG.WM_KEYDOWN,
              (uint) Keys.Escape, 0 );
              }
        }
CmdPlaceFamilyInstance