Assigning Lineweights via Edge Angles

Hey! I’m new to Grasshopper but I was thinking I could probably automate my system of assigning lineweights using it. I assign my lineweights mostly based off of the angle of the edge in question, so was wondering how I could select edges based off of the angle between their two relevant surfaces (for example, all edges with angles from 90-70 degrees). I’ve so far found how to get the angle between two surfaces, but I’m not sure how to generalize that so that the surfaces could be selected from the edge that connects them.

I also use a lineweight which overrides others for edges that connect to surfaces which don’t show up on the viewport, whether they’re parallel to it or behind other surfaces. Is there a way to use the viewport angle to figure out whether a surface connected to a relevant edge is visible or not?

Thanks for all the help