Yes and no Most “real” plug-ins are written in C# or VB. Reasons are probably that it’s faster than python, that Grasshopper components can update themselves to the new plug-in version if the new .gha is installed, you can work in Visual Studio, yadda yadda.
But there are also a few things to note here:
- There are Grasshopper plug-ins written in python and distributed as
UserObjects
. This is not quite so comfortable as distributing/shipping a C# compiled .gha assembly but it is possible. An example would be the legacy ladybug tools. - It’s now also possible to compile ghpython components in to a .ghpy assembly. This is basically a .gha but using python. With this, python plug-ins can be shipped as an assembly rather than
UserObjects
.
I hope I understand your question right.
If you mean “Can I use RhinoCommon in a regular Python script?” Yes, but only using the new Rhino.Inside CPython feature.
COMPAS gets around that because it actually defines its own datastructures/classes/types for geometry. When compas is used in Rhino, it can convert between its own formats and the Rhino formats. That’s the reason why COMPAS also works completely without Rhino.
Yes, you’re probably right. I’m already so used to the editor that I somehow found my peace with it. If you absolutely hate it, this guide about debugging ghpython in VS might be helpful.
Finally, here is some more ghpython goodness. I think it depends on how you define the term “plug-in” but these are at least very useful UserObjects
written in ghpython: