Hi -
It might be easier to use the For/Next syntax for V3 language, something like this:
Rule %NoseParts as List
%NoseParts = {}
For Each p As Part in %NoseRawParts
if Not p.IsNull? Then %NoseParts = %NoseParts + { p }
Next p
End Rule
I haven't run this, so I'm not 100% confident that it will work exactly as-is, but it's close, and should point you in the right direction.
BTW, to fix what you have, you'll need to add %% prefixes to the legacy keywords like for, collect, and loop.
Jeff