I have a code that works perfectly fine in the C# component in grasshopper, but when I copy it over to VS, it gives me error CS0103
The name ‘GrasshopperDocument’ does not exist in the current context
I Understand that things are handled slightly differently between C# component and VS.
So how would I change these following code so it’d work in VS?
This is Visual Studio, not a VB component, which is what I thought you were doing.
You’re clearly working in a C# project, so no VB code allowed. Visual Studio does not allow you to mix and match programming languages within a single project.
Also the code you write inside a script component cannot be siphoned over into Visual Studio. GrasshopperDocument does not exist within classes that derive from GH_Component. You have to use (in C#):
GH_Document doc = OnPingDocument();
if (doc == null)
return; // document may be null, you need to decide how to continue when that happens.
Ok, so VB was a typo, VS was meant.
Now I understand the problem. The OnPingDocument method is what you need when developing within Visual Studio. Something along these lines:
private IGH_DocumentObject[] AllCanvasObjects()
{
var doc = OnPingDocument();
if (doc == null)
return new IGH_DocumentObject[0];
return doc.Objects.ToArray();
}