For Simple Designs with only Thru-Hole Vias
Scope1 Expression
InNetClass('HV') And Not OnMid
Scope2 Expression
InNetClass('LV') And Not OnMid
For Complex Designs with Thru-Hole and Blind, Buried or uVIAs use ExistsOnLayer
Scope1 Expression
InNetClass('HV') And (ExistsOnLayer('Top Layer') Or ExistsOnLayer('Bottom Layer'))
Scope2 Expression
Scope1 Expression
InNetClass('LV') And (ExistsOnLayer('Top Layer') Or ExistsOnLayer('Bottom Layer'))
MId Layer Rule HV to LV :
Scope1 Expression
InNetClass('HV') AND (OnMid or OnMultiLayer)
Scope2 Expression
InNetClass('LV') AND (OnMid or OnMultiLayer)
Notes:
ExistsOnLayer Includes Thru-Hole pads and Vias that connect to outer layers. When using ExistsOnLayer the Top and Bottom layer names must match the long layer user defined layer names in the stackup.
As of AD24.1.2 and older versions ExistsOnLayer is the only reliable solution for designs to use with uVias, Blind and Buried Vias.
That's it !