One of the most recent gadgets that I've picked up is the Elgato Stream Deck, a programmable keypad with mini LCD displays built into keys. Designed primarily for video game streamers, the pad 3 x 5 grid of keys with built in LCD screens can change based on the mode for the pad. In spite of the intended design, the Stream Deck ends up being great for other uses with the easily relabeled keys. This solves one of my biggest problems in the past with other key pads because they end up becoming application specific due to the time and difficulty of changing labels. The Stream Deck solves this by being able to change the labels through the included software which must be run with the pad. The one downside of this is that it prevents the Stream Deck from being an HID device that won't run without the software. Aside from needing the software, the Stream Deck is great for users on the go that want to be able to have programmable user keys for whatever program they are using.
The included software for the Stream Deck is easy to work with and makes very easy to set up hot key functions, though it can be a bit limiting if you need more steps than a single key-press. At its heart the Stream Deck is designed to aid video game streamers using Twitch and similar services so majority of the software settings are designed around it but it still offers ways to control things through application hot keys. The programming structure is centered around Profiles which can be application specific and switch to things when that application is in the foreground. Within a profile you can add folders which expand the 15 keys to another 15 in each folder giving you quite a bit of depth to play with. I order to setup a you find what you want from the list of options available on the left panel and drag it onto the space you want to use. You then have the option of entering a label text or dropping picture onto the key. Elgato does offer an online tool for generating your own labels but I just ended up using Photoshop to generate my own. As you work through creating keys they are automatically added to pad for use. The one thing that I found was lacking in the ability to do more complex key macros that can be done in X-Keys.
Here is an example of how I have two pages (folders) set up to work with Vectorworks. One is for working in 3D and the other is more for general lighting/ use with the Lightning Tapes plugin. The top part is the action and bottom is the keyboard setup. There may be custom key bindings set in Vectorworks so your mileage may vary