# \[code\] Example of Context Menu Command during SelectionTool

**URL:** <https://forums.sketchup.com/t/code-example-of-context-menu-command-during-selectiontool/38058>\
**Category:** Ruby API\
**Tags:** selectiontool, command, context\_menu, selection, ui::command\
**Created:** [January 27, 2017, 7:41pm UTC](https://forums.sketchup.com/t/code-example-of-context-menu-command-during-selectiontool/38058 "2017-01-27T19:41:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![DanRathbun](https://sea2.discourse-cdn.com/sketchup/user_avatar/forums.sketchup.com/danrathbun/32/500_2.png) [@DanRathbun](https://forums.sketchup.com/u/DanRathbun)\
**Post date:** [January 27, 2017, 7:41pm UTC](https://forums.sketchup.com/t/code-example-of-context-menu-command-during-selectiontool/38058/1 "2017-01-27T19:41:32Z")

</div>

Continuing the discussion from [Sketchup tool cl@ss name](https://forums.sketchup.com/t/sketchup-tool-cl-ss-name/38041/3):

* * *

**Example of Context Menu Command during SelectionTool**

[Selection\_Context\_Menu\_Command.rb](https://forums.sketchup.com/uploads/short-url/rUSocyohHpNelbHKEAjdxGi68fV.rb) (638 Bytes)

Which looks like:

```ruby
# encoding : UTF-8

module Author
  module SomePlugin

    extend self

    @@loaded ||= false
    
    COMMAND_NAME = "My Command"

    def my_menu_command(selection)
      # ..code
    end

    if !@@loaded
    
      CMD = UI::Command::new(COMMAND_NAME) {
        my_menu_command(Sketchup.active_model.selection) 
      }
      CMD.set_validation_proc {
        Sketchup.active_model.selection.empty? ? MF_GRAYED : MF_ENABLED
      }

      UI.context_menu_handler {|popup|
        if Sketchup.active_model.tools.active_tool_id == CMD_SELECT
          popup.add_item(CMD)
        end
      }

      @@loaded = true

    end

  end
end

```
