Legacy GH Support

David, I’ve been thinking about support in GH2 for “legacy” components. Do you want to support these at all or is GH2 a completely different product?

There is zero overlap in the SDK between GH1 and GH2. But what’s your idea?

Not sure yet, but it seems like a possibility. Even with zero overlap, I would assume that the concept of components that define inputs/outputs and provide a solve function still exist in GH2.

As long as we keep the names of DLLs unique between GH1 and GH2, we might be able to set up a simple proxy system to have GH2 instantiate and execute legacy components.

Yes, as long as GH1 is installed and loaded, components could be invoked via that detour. It will require a fair number of additions to GH1 code, but that’s not in itself a problem.

The basic idea of components is indeed still a single method which takes a data access object which provides both the input for that iteration, can store the output for that iteration, and give some basic information about ‘where’ in the solution you currently are. The GH2 approach will have to be completely threadsafe, but other than that the broad design remains unchanged.

I don’t see how it would work without GH1 being available, which is a constraint we’re going to have to drop at some point.

There are btw corner cases that will not work without handling them individually. For example when components have additional behavioural options in their menu, harvest input data or modify output data in a non-standard way, or override their display. Furthermore there will be some issues with parameter modifiers (Simplify, Expression, …) since these will behave differently between GH1 and GH2.

Yeah we have to make sure that GH1 and GH2 can be loaded simultaneously because switching to the first GH2 WIP will not be a continuous sensation.

That is way too far out into the future for my crystal ball. I don’t see any reason to not ship GH1 with all future versions of Rhino.

Most of these can probably be solved if/when they become an issue.

Good; that is the first required step that we know needs to be done for any of this.

2 posts were split to a new topic: Relay wires opened in GH 0.9

This definition goes directly to the “citation library” of my research…