Question: I have a push button in a Revit plug-in. When I click on it I would like to invoke two different commands (custom commands). Is that possible?

I use Revit 2012 Architecture API and my platform is C# .NET

Answer: 
If your two commands are IExternalCommand implementations then certainly.

Create another IExternalCommand interface, and just have it call the entry points of the two commands you want (same as calling any other class method).

You may need to ensure that your transaction management is correct between the three commands.
If you're using the Revit 2012 API calling the entry points of the required commands is the only way I see.
You may consider upgrading to the Revit 2014 API or later though, as they have provided an approach to External Commands.

More info: <http://thebuildingcoder.typepad.com/blog/2013/10/programmatic-custom-add-in-external-command-launch.html>