Baking Component Changes Original Referenced Geometry (bug? feature?)

Hello,

If I reference model objects from the document, say, some polylines, and then perform some logic on them and try to bake the result it will actually modify the original referenced model objects in the baking process.

So as an example, if my polylines are on layers “Original Reference” and I want to offset said lines and bake the offset results as a new set of objects, I bake and choose a different layer like “New Baked Objects”.

I expect to get 2 separate objects in the Rhino document now, 1. original set of polylines on the Floors layer, 2. new baked set of polylines on the “New Baked Objects” layer.

However, instead I get the original polylines modified and moved to the new “New Baked Objects” layer.

So essentially the baker is modifying the content based on its model id or GUID and updating the original content.

While this could be incredibly useful in certain situations, I believe it needs to have some kind of “Make Unique” option and then retain the update functionality moving forward so that anytime the “New Baked Objects” geometry changes, it will update the unique set of geometry and make no changes to the original referenced geometry on “Original Reference” layer.

Example:

A. Original Reference & Expectation:

A. Graph Prior To Baking

B. Result From Baking:

B. Graph After Baking

C. Expected Baking Habit:

Note how in B, the baker has actually overwritten the original model object reference and baked it to the “New Baked Objects” layer, resulting in two overlapping curves on that layer without the offset logic included and effectively breaking the Original Reference link.

In C, the original reference (OR) is preserved and new model object curves are created in the baking process.

Again, I think there are use cases where updating the original content is important, such as a one time reference where you want to move referenced geometry to a new layer or do some logic and delete the input automatically.

However, I think there needs to be an option to toggle this feature on or off, something like “Make Unique” “Make New Model Objects” or “Generate New GUIDs” or something like that.

FYI I tried the Insert mode of the baker but that isn’t correct for this use case.

D. Also if I bake the Geometry output of the Model Object(s) I do get the new offset curves and a modified original reference curve (3 curves total, the original reference gets overwritten) but the layers don’t work here. I end up with the original reference curve now being modified to be moved to the “New Baked Objects” layer, and the offset curves get assigned to the pink “Grasshopper” layer instead.

Example D:


Please let me know your thoughts or if I’m overlooking how to properly work with model objects and the new baker.

I have attached the example files.
20230515_Bake_Content_Unexpected_Results_01a.3dm (99.7 KB)
20230515_Bake_Content_Unexpected_Results_01a.gh (7.8 KB)

Thank you!

I did figure out a short term work around.

By adding a second model object component after the first, I can grab the geometry of the first and then set model object parameters assigned to that geometry, effectively creating new model objects to get baked that won’t overwrite the original referenced model object.

Is this how it is intended to be though?