Yes you probably want to use smartselect. Here's an example:
['Select mobile land direct fire units on screen'] = {
order = 8,
action = 'UI_Lua import("/lua/keymap/smartSelection.lua").smartSelect ("+inview +excludeengineers MOBILE LAND DIRECTFIRE OVERLAYDIRECTFIRE -SCOUT")',
category = 'All land onscreen'
},
Put that in your game.prefs file in the UserKeyActions section (back up before you edit it in case you mess it up). You should then be able to define a key in game. Ideally you don't want identical order values in the same category (I think this might cause issues but I'm not 100% sure).
You can also use the 'idle' descriptor and you can also add or eliminate specific units using a portion of their unit name e.g. -ura0401 eliminates the soul ripper from the selection. There is more info in the link Nex provided.
In order to make your own you may need to look at this file:
https://github.com/FAForever/fa/blob/master/engine/Core/Categories.lua
which lists all the categories, and perhaps extract (unzip) the unit.nx2 file which can be found in C:\ProgramData\FAForever\gamedata (or whatever drive you have FAForever on). You can then find the categories for all units in their blue prints (.bp files). Or use a text editor which can search within files such as Notepad++ or VScode (or a command line utility) to find all the units which match a specific category you are interested in.