Solve adjacencies - duplicate zone names

hbzones
solve-adjacencies

#1

Hello,

I would have a question about the Solve adjacencies component: is there any way that the component could solve the “There zone called XYZ a duplicate zone name. Rename the zones and try again!” by itself asnd probabyl just notify about having renamed the zones?

My context: I have decided to use the grasshopper capabilities to create a dynamic geometry. In the optimization study I am trying to create, there is one zone with a rather complicated geometry with several dimensional parameters. Another parameter of the study is the number of times, this zone is repeated above itself. Therefore my idea was to create the geometry using Grasshopper, then create the zone from separate surfaces and then using grasshopper again, move the created brep to different locations. But then I have several zones with the same name and using the same surfaces names. Is there any easy way how to solve this porblem, or am I creating a larger one by repeating the same geometry?

Thanks a lot for any insight.


#2

You can generate new names based on the number of zone and use this component to set a new name for each zone.


#3

Thank you, @mostapha,

I have tried it, but oddly enough, it creates multiple zone breps at the same place (the place where I have created the zone before moving it). When I bake the brep collection which I connect into the Get or Set HB object name, it gets baked into the right position, howewer baking the result of the component bakes them all overlaying at one point. Does this mean, that the already created HB zone can’t be moved using the Grasshopper’s Move component? Would I need to also move the HB surfaces and source geometries? Which would mean, that I would have to construct the new HB zones from the moved surfaces manually and one by one.


#4

@zdenom ,

There are multiple ways to solve this issue and all of them are better than overwriting the names of zones within solve adjacency, which effectively breaks the ability to use zone names to track your zones through your script.

@mostapha was suggesting you create all of your geometries (moved or otherwise), turn them into zones, then you change all of their names before passing them into solve adjacency.

To answer your question about the native GH move component, No. You cannot use the native grasshopper move component on a zone after it has already been created as a Honeybee zone. To put it another way, all such geometry operations will not be taken into account in the simulation if they are done after the zone is created. All geometric transformations (move, rotate, mirror, scale) have to either happen before you create the zone or you have to use one of the Honeybee transform components like the Move_Honeybee component to do so. You will see that those transform components also change the name so that you don’t end up with duplicate names in Solve Adjacency. It seems that is probably the method that I would suggest for your case here.