In vb.net, it has been my experience so far, that you generally do not need to instantiate a variable that represents one of the Autodesk.iLogic.Interface.... Interface objects, you just need to fully declare that Type of variable ahead of time. Then you can simply use that variable similarly to how you would in an iLogic rule. For example:
Dim iLogicAuto As Autodesk.iLogic.Interfaces.IiLogicAutomation
...then do not set a value to that 'iLogicAuto' variable, just use it to access its 'Rules' property as you would normally.
I do something similar in my 'extension' external iLogic rules that are set to 'Straight VB Code', so that I can use the 'iLogic Logger'.
Private Logger As Autodesk.iLogic.Interfaces.IRuleLogger
...(above is the normal way, then below is an alternate way)
Private Logger As Autodesk.iLogic.Interfaces.LogControl
...then, to use it, I use a line similar to this:
Logger.Log(LogLevel.Error, "XXXX method encountered an Error")
Some of these types of things that seem native to iLogic can be found at this Link. Those are basically just variables that have created for us in the background, within the ThisRule Class (that is also automatically created for us in the background for our rules). Some of those are just direct references to these Interface type tools.
Wesley Crihfield

(Not an Autodesk Employee)