Here's how the instantiator can be used:
firstPartStudio::import(...); // These imports are created using the import button in the Feature Studio
secondPartStudio::import(...);
// later, in a feature
const instantiator = newInstantiator(id + "myId");
var firstQuery = addInstance(instantiator, firstPartStudio::build, { "configurationInput" : configurationValue }, transform(vector(1, 2, 3) * inch)));
var secondQuery = addInstance(instantiator, secondPartStudio::build, secondConfiguration, someOtherTransform));
// repeat the above as necessary
instantiate(context, instantiator); // This actually brings in the bodies
// Now firstQuery and secondQuery will resolve to the instantiated geometry
The document contains an example feature for adding keys to a keyboard that becomes much easier to create with the instantiator:
Please post feedback on the instantiator here!
Ilya
P.S. The instantiator internally takes care of some efficiency concerns, deriving the first instance in a given configuration and body-patterning the rest. User-overridable tolerances are used to determine which configurations are considered "the same."












