(Question) Feeding GH bake result as input for GH

unhandled

(IVELIN PEYCHEV) #1

Is it possible to feed GH bake result as input.

One scenario could be - Iterative way of working alowing user interaction in between and GH updating the input when baking. I guess using UUID or transfer user attribute from the input to the bake. And if baked it will update the input objects rather than deleting them and creating new ones.

I understand there may be fear of infinite loop, but the update will only happen when ‘bake’ is used.


(Tim Stark) #2

Isn‘t it the same?

When I understand you right, I would load objects on a specific layer via custom script or plugin into gh. In the end I would clear the layer and bake them again on that layer.


(IVELIN PEYCHEV) #3

the UUID will be different if you delete them, plus you will break the GH script if you delete the inputs.


(Tim Stark) #4

That’s why working with layer. If you don‘t need the ID for the script. Oops, may bake and than clear all elements which weren‘t backed in last step. Very interesting. I will have a look at this as soon as I can.


(Tim Stark) #5

Still had no time for that.
But data dam could be a solution. It will store the initial object after deleting it, so the script don’t break. Than bake and update data dam before deleting again.


(IVELIN PEYCHEV) #6

What is that?


(Tim Stark) #7

a component?
like a button you can click on. if click on it, the input will be updated. Mostly used for large definitions, so you can change something in the beginning, without instant calculating the part after the data dam. when clicking on it, the output will be updated, so the rest of the scripts also changes.It’s like a storage, which gets updated when you click on it.


(Rickson) #8

Isn’t that what Elefront, Human and others do??


(Tim Stark) #9

Just used Human to transfer data between two scripts. Never used it in the same script for updating. So maybe possible. But to be true, I don’t know why I would do that. I mean, if want to loop something I will use Anemone and not always bake, load, delete again. But whatever.

Here’s something which is working, but not bulletproof. Geometry Pipeline to load objects from layer. Now you can modify them. Now you click 3 buttons. 1. Update data dam; 2. Delete objects; 3. Bake objects again.

update geo.gh (9.3 KB)

May it’s helping…


(IVELIN PEYCHEV) #10

I have to mention I cannot figure out how to work with this “pipeline”. Instead, I directly added a surface to the “input” brep.

After clicking on the first button, the surface is deleted. Second button does nothing (I assume this is supposed to pass the rotated surface to the last script, but it throws an error (see below)


(Tim Stark) #11

Pipeline links all geometry’s on a specific Layer. You can choose layer by name. So you break it, if you remove pipeline.
Make sure the layer name for baking = layername for pipeline.

I ordered and named the buttons you have to press from 1-3. you can ignore error.


(IVELIN PEYCHEV) #12

EDIT:
Ok, I think I got the hang of it.

Unfortunately, if I bake Pipeline catches both the original and the baked one. I assume this is what your script was supposed to delete.

That Pipeline though, really cool thing, didn’t even know it existed, thanks a lot Tim


(IVELIN PEYCHEV) #13

I kind of wanna stick with the OOTB components.

I remember reading somewhere a different method to access user attributes (besides Elefront)


(Rickson) #14

If you don’t know, now you know.

elefrontquick elefront.3dm (37.3 KB)
quick elefront.gh (10.2 KB)


(IVELIN PEYCHEV) #15

Thanks Rickson, but I really don’t want to use Elefront.


(Tim Stark) #16

Yes…

If you don‘t like elefront, try human as @Rickson mentioned.


(IVELIN PEYCHEV) #17

One is understood though, GUID will always be different after every bake.

It’s not that I don’t like it, obviously it has its apllications, but I wanna stick to OOTB components as much as possible, so I can learn how to do it, and not rely on stuff I have no control of. If it’s an open source tool - ok, but if it’s closed, I don’t know how it works and if I need something slightly different I cannot change it.

Not to meniton that Human UI (if this is what you mean by “human”) is a complete mess I don’t know where to begin.


(Tim Stark) #18

Edit the bake c# so it bakes the objects with the initial id‘s.

I assume you know how to script c#, vb. or whatever. Because I don‘t know any standard component to edit attributes if you don‘t want to use plugins.

No, I mean human.


(IVELIN PEYCHEV) #19

I don’t know that one, I’ll check.

Not in depth but I’ll figure it out. I am trying currently to copy properties from one object to another using python.


(Tim Stark) #20

I don‘t know if you need the exact id for something, but if not, you can import Initial attributes like name, color, layer etc and bake the edited geometry with these attributes. So the id changes, but Name etc will be the same.