Dynamo, Revit, and capability for step-based tools?

I want to use Dynamo with Revit to create tools, such as a tool that "extends columns to the base offset of a user-specified wall"
but I don’t want it to be fully automatic, I want the user to be able to select a bunch of columns, and then press a tool button, and have code prompt the user to select a target wall to extend the columns to.

So,

  1. Can dynamo make code-snippets into Revit buttons on a custom ribbon interface tab?
  2. Can dynamo prompt the user to select something, wait for them to do so, and then use the active selection for an algorithm?
  3. Can dynamo incorporate error handling (so that if the user selects the wrong element type, Revit/Dynamo displays an error message)?