I am new to Grasshopper and have been trying to find a way to assign a specific z axis extrusion value to a specific layer in Rhino. I have a list of 100+ layers and each will have a unique z-axis extrusion value. I have been able to extrude layers separately using the Geometry Pipeline. But because I have so many layers to extrude, I need to be able to match each layer with its corresponding extrusion value.
I installed the Human plugin thinking that this would give me more control of Rhino layers within Grasshopper, but still no luck. Any help anyone might give is greatly appreciated!
Welcome Please provide more info.
163 WOLCOTT_MAP.gh (12.1 KB)
Here is the Grasshopper file I’ve been working with. The panel on the top has all the layers in the project. (I only need the layers with the numbers, not the last two: streets, shoreline). The panel below has all of the z values. the position in the panels are already matching up (ie the layer 517 of value 1 needs to be extruded 58.5 of value 1).
I need each surface to extrude the prescribed amount, so I need each panel to be correlated to each other and then run through the extrusion command.
Your .gh file is not very useful to us without your layers and breps. As you can’t bake the breps into the geometry pipeline (baking normally being the preferred way to share with the forum the objects a .gh file is to work with) could you post the rhino drawing file here too?
you have 97 layer values (sans streets and shoreline) & 1116 z values. How exactly do they match up again?
Ah yes, this is something I had overlooked.
In Rhino I combined all of the lots with the same block into one layer named for its block. That’s why there are only 97 layer values. I have a longer list of blocks in Excel that has all 1116 block values. I combined the lots of the same block into one layer because every lot in the block will be extruded by the same z value. Would it be better to provide the extended list of blocks and z values (rather than the list of Rhino layers) or would it be better to shorten the z value list by eliminating repeat values for the same block?
you could do it a number of ways. The best to resolve the immediate question would be to have a list of 97 Z values that is in the same order as the Layer names…
or the excel in its entirety if you want to see it done that way.
Thank you. I am providing an updated Grasshopper file that has corresponding z values in a panel. These values are different from the panel I provided before, but I want to use them for the sake of the exercise to stand in for the actual values (the other values were also stand-in values). Once I understand the methodology, I can plug in the correct corresponding Z values that my team determines.
163 WOLCOTT_MAP.gh (12.2 KB)
hmm well thats boring. post the entire excel.
The layer names come in as text but will cast to number
I’m not sure what format works-- let’s try text.blocks only.txt (9.2 KB)
hmm you have some data matching issues. But i think you get the point.
one option would be to put the values into the rhino geometry and fix there and then do a round trip in excel if need be.
Re_wolcott_Map.gh (12.8 KB)
oops, can’t upload excel. just put your .txt to into excel and save as .xls (97 compatible)
The excel plugin i used
This uses components from Human to give a simple solution, recognising which layers the objects are in, making it easy to extend the model:
Does the output look right (from your second set of data)?
Note the use of simplify and graft to match trees up.
163 WOLCOTT_MAP_v2Data_HumanSolution.gh (26.6 KB)
Wow thank you for all your responses!
I need to be able to have each block extrude with the same z value.
So when I determine what all the z values will be for each block, and I want to edit the Z panel, how do I know which block I am changing the value for?
Jeremy: as a test, I changed a few values and it seems that some of the z values are controlling more than one block.
I’ll take another look. Just to be clear: a block is a city block and is comprised of one or more breps on a single layer and said layer represents just that one block?
Thanks-- yes that’s correct.
My bad with the last one. Here’s a slightly more thought through version…
163 WOLCOTT_MAP_v2Data_HumanSolution2.gh (36.4 KB)
Great thanks! This does exactly what I want it to do. Now my team and I can plug in whatever Z values we calculate for each block, and just plug it into this.