Geometry best practices & conventions

As a result of this thread:

I will now use SIMPLIFY after every shatter or sub curve operation.

and notwithstanding this thread:

I would like to hear your typical solutions to geometry generation particularly at the begging of a chain that leads to an important surface:

Also general conventions like curve direction

Since curve direction affects many things downstream, I make all my curves run front to back +ve X and +ve Y and +ve Z. that way I dont have to test them and know what to expect when splitting or generating surfaces and extruding.

Your turn )

I think the question is asked very generic, but I usually differ between concept and refinement when creating a GH definition.

In concept phase I build a geometry in multiple ways, not caring about any best practise. It’s just to find out which approach works best. In refinement phase I begin to limit Parameters, creating as many constants as possible. Furthermore I combine functionality in script components, because by writing code you can handle edge cases much better. I rather do care about Surface and Curve direction but some components may lead to loosing that order. So in my definitions its likely to find functionality to sort geometry. A positive side effect of introducing script components is the reduction of necessary tree manipulation. And then the right level of encapsulation and documentation is important as well. Furthermore I would advise not to do anything in Grasshopper, but use GH definition as an assisting tool. It may lead to a bit of repetitive work at some point, but it always leads to better geometry in the end. And as a general advise, I care about details from beginning on. Work as simple as possible but as complicated as required. For geometry, especially for Surfaces this means that the properties of my geometry should not contain more information to represent a shape as required.