Hi @d_stapleton. The 'protection level' phrase you see in the error messages are usually just referring to 'scope' issues. What I mean is, the level at which the variable was 'declared' (using Dim or similar). Blocks of code will only recognize a variable that was either declared within that same block of code, or within a 'parent' block of code level. When it sees you using a variable within a block of code, and it does not recognize it, or can not determine where it was declared, it will give an error or warning like that.
Both your code, and the error message shown are just images, so I can not select the text of the code to copy it over into another code window for testing. It is usually best if you use the 'Insert/Edit code sample' tool in the forum reply tools, to create a code window within your forum reply, then copy your source code, and paste it into that forum code window. Or, copy the code into a Notepad text file, then save it to C:\Temp, then attach it to the forum reply, as an attachment. That way we can copy the code into our own code window for quick testing.
You obviously did not show all of the code in your rule, because the 'End Class' line is not present. But if that is all your code except for that one last line of code, then yes, I do see issues that will need to be fixed.
This Sub routine looks like it was designed to be an event handler, but where is the 'PictureBox1' object variable declared?...and where is the line of code specifying that this Sub routine is supposed to be 'handling' that event?

Same questions about this Sub routine:

Where is the 'tbThickness' object variable declared/defined, and did you use WithEvents in the line of code where it is declared/defined?
There are two different ways to define what Sub routine will be handling an event.
- Using 'WithEvents' while declaring/defining the variable of the object that has events, then using the 'Handles' specifier at the end of the Sub routine's signature/definition line, is one of those ways.
- Using 'AddHandler Object.Event, AddressOf Object_Event' is another way to do it. The first part specifies the exact event, the second part specified which specific Sub routine will be handling that event. And if done this way, we also have the option of using the 'RemoveHandler Object.Event, AddressOf Object_Event' phrase to disconnect/remove that event handler. (Where 'Object' is your 'variable' that represents an object which has an event)
Then there is this line of code within your Sub routine:

Where was the variable 'lblParamThickness' declared/defined?
Wesley Crihfield

(Not an Autodesk Employee)