‣
Stage 2 - Gonna Need Shades (for 3 or more units)
For Stage 2, you’ll create a model of a simple building form and panelize the wall surfaces. Then evaluate the orientation of the wall panels (relative to the sun position) and use this data to adjust parameters of the wall panels.
‣
‣
- Use the Rectangle.ByWidthLength node to create a rectangle that is centered on the origin.
- Provide sliders that will allow users to quickly change:
- the building length at the lower level
- the building depth at the lower level
- the height of the lower level walls
- Use the Surface.ByPatch and Surface.PerimeterCurves to break the rectangle sides into separate curves.
- Extrude these four curves to the height of the lower level walls.
‣
- Provide sliders that will allow users to quickly change:
- the offset distance of the upper level walls relative to the lower level.
- the height of the upper level walls
- Extrude the four curves of this upper level rectangle to the height of the upper level walls.
đź’ˇ
This distance could be positive (to specify that the upper level walls extend outside the lower level walls) or negative (to specify that the upper level walls are inset from the lower level walls.
‣
- Use the Lunchbox Panel.PanelQuad node to divide the wall surfaces into rectangular panels.
- Set the u and v inputs to create a pattern of tall rectangular panels - similar to the glazing panes of a curtain wall.
- For simplicity, specify that your panelized walls surfaces will be 1 panel tall.
- Create a formula based on the length of each wall segment to determine the number of panels in the horizontal direction for that segment.
- Provide a slider to set the desired panel width.
- Divide the wall segment length by the desired panel width to compute the number of whole panels that could fit into this length.
- Use a Ceiling node to round this number up to the next whole integer.
- Use this number to specify the number of panels.
- Add a List.Flatten node to remove 1 level of hierarchy from the output list of Panels.
- Add a similar List.Flatten node to remove 1 level of hierarchy from the output list of panel Points.
đź’ˇ
Flattening these lists will allow each panel to be evaluated independently, regardless of which wall surface generated the panel.
‣
‣
- Use the panel points to place adaptive panel components at each wall panel location in Revit.
- Use one of these adaptive panel component families from the CEE 120C/220C Shared Library:
- Rect_Panel with Rotating Shade
- Rect_Seamless Panel with Folded Surfaces
- Rect_Seamless Panel with Peak
- Rotate the adaptive panel placement points to create the desired rotation of the panels.
- Copy the QuadPoint_Rotate custom node from the CEE 120C/220C Shared Library into the same folder as your main Dynamo Graph:
- Place this custom node in your graph and set the inputs as follows:
- listOfQuadPoints = the Points output from Panel.PanelQuad
- desiredRotation
- 0 = No rotation
- 1 = 90 degrees clockwise
- 2 = 180 degrees clockwise
- 3 = 270 degrees clockwise
- Choose the desiredRotation based on the adaptive panel you’re using:
- For the Rect_Panel with Rotating Shade
- Choose 1 to place the hinges on the left side of the panel
- Choose 3 to place the hinges on the right side of the panel
- For Rectangle_Seamless Panel with Folded Surfaces
- Choose 0 or 2 to have the panels fold horizontally.
- Use the output of the QuadPoints_Rotate custom node as the input points for your AdaptiveComponent.ByPoints node.
‣
- Create geometry to represent the shading elements by following the workflows in one of these examples:
‣
‣
- Use the SunSettings.Current and SunSettings.Direction nodes to get a vector representing the sun’s position from your Revit project settings.
‣
‣
- Add a Sun.Settings.Current node to your main graph to capture the current sun position in your Revit project.
- Create node logic to evaluate the directness of each surface panel to the sun using the dot product logic illustrated in the examples.
- Copy all 3 of these custom nodes from the the CEE 120C/220C Shared Library into the same folder as your main Dynamo graph:
- Use the Panels.ComputeSunDirectnessOutwardNormals.dyf custom node to point all the panel normals toward the outside of the building. This will allow us to evaluate the sun is oriented relative to the outer face of the panels (flipping the normals if needed).
- Input the flattened list of panel surfaces.
- Use the output fro Sun.SettingsCurrent as the input for projectSunSettings.
- Map the computed directness values to a new range with:
- 0 representing the least direct orientation.
- 1 representing the most direct orientation.
đź’ˇ
Use our class examples as a starting point for building the logic in your graph.
‣
- Create node logic to map the computed directness values to a range of colors – for example:
- Choose a dark color to indicate the panels with the least direct orientation.
- Chose a bright color to indicate the panels with the most direct orientation.
- Set the color of the surface panel elements based on the computed directness values.
‣
- Adjust the parameters of each panel based on the computed directness values.
‣
- Use the panel points to place adaptive panel components at each wall panel location in Revit.
- Set the instance parameters available, based on the adaptive panel component family used:
- Rect_Panel with Rotating Shade
- Set the Shade Rotation (0 to 89 degrees)
- Set the Shade Width (any positive distance)
- Set the Shade Height to match your panel height
- Rect_Seamless Panel with Folded Surfaces
- Set the Fold Distance (0.05 to 0.95)
- Set the Fold Outdent (any positive or negative distance)
- Rect_Seamless Panel with Peak
- Set the Peak Outdent (any positive or negative distance)
‣
- Adjust the geometry representing the shading elements by following the workflows in one of these examples:
‣
- Save a screenshot showing your model geometry with the wall panels responding to the sun location at two different times of day.
- Save your files for this part of the assignment using a file name that ends with “_Stage2”