Set up your alert conditions such that vm status =down and host status != down. There may be some cases where the polling doesnt exactly match up and a vm shows as down before Solarwinds realizes its host is down but that should be good enough to quiet the majority of the possible spam. No need to mess the with dependencies because Solarwinds should already know the relationship between vm's and their hosts from the periodic configuration polling.
If that VM is also a monitored node then it gets a little more complicated as the alerts interface UI doesnt give you the options to connect a node to a vm host. There are a few ways to make this work, but I'd probably just rewrite the node down alert as a custom swql like so
That will join you from the nodes table to the vm, its host, and back to the host status from NPM (I opted not to use the status from the VIM tables because I'm not sure if they are updated as frequently as the NPM based polling. I believe the default value there would be 5 mins)
Let me know if any of that doesn't make sense.
Loop1 Systems: SolarWinds Training and Professional Services