🔵

Example: Creating Parametric Building Forms using Dynamo

Videos

‣
Step 1A - Create Profiles and Loft a Building Form
‣
Step 1B - Follow these Additional Steps for Surfaces Lofted from Regular Polygons (with straight line edges) that will be Panelized
💡
Lofting curves compose of straight line segments (for example, the sides of a regular polygon) takes a few extra steps. You can loft the polygons themselves, but the resulting surface won’t panelize as expected. All of the panels will be placed on one edge of the polygons.

So, we’ll use another strategy:

  • Breaking the polygons into a series of line segments.
  • Then, grouping and lofting the line segments on each side.
‣
Follow these steps:
  • Use the Curves.DeconstructPolyCurve node to break each polygon into a series of segments — one segment for each side.
  • Use List.Create to create a list of these lists of segments.
  • Use the Lift.Transpose node to reorganize the lists of segments.
    • From 3 lists of 5 segments(if you used a pentagon) at each level.
    • To 5 lists of 3 segments on each side.
  • Use.Surface.ByLoft to create 5 surfaces — one for each group of segments.
  • image
  • After you panelize the individual side surfaces using one of the panelization nodes (for example Panel.PanelQuad or Panel.Triangl),flatten the outputs from the panelization node by one level to combine all of the Panels and Points (from all the sides) into single lists that include the entire lofted surface.
image
💡
We need to do this, because we created each surface separately. This step just recombines the outputs.

‣
Step 2 - Create Evaluators to Report Key Metrics
💡
Important Update:  The workflow for creating an evaluator that calculates the surface area at each floor level needed to be updated to work with the latest release of Dynamo.  The original method demonstrated in the video -- creating a series of XY planes that can be intersected with the tower form -- no longer works properly.  It now returns only the portion of the intersection in the first quadrant (where X and Y  are greater than 0), so you cannot use this intersection to compute the area of each floor, because the curves are incomplete.

The example files now illustrate a revised approach that creates a rectangle object at the origin as a substitute for the XY plane, then uses these translated rectangles to intersect with the building form.  The intersection of these rectangles with the building form returns the full path of the intersection, and this allows the logic of using these closed paths to create surfaces and report the areas works properly in this approach.

image

So, be sure to download the latest files for this example from our shared Google Drive using the link above.

‣
Step 3 - Create a Custom Node (Function) to Flex
💡
Important Update:  The updated node logic (for intersecting rectangles to compute the floor areas) described in Step 2 above is now also updated in the Custom Node.  So, be sure to download the latest files for this example from our shared Google Drive using the link above.

Download Files

Use the Google Drive menu to ZIP the files in this shared folder and download them as a single ZIP file: