Duplicate surface based on parameters and values



I’m trying to build a simple and standard Dynamo script for feasibility studies (for urban planning / building mass) and I’m missing the last part of it. Suggestion and help are more than welcome! :slight_smile:

So far in this case study…

  1. Property Line (Revit) as a starting reference.
    *[ Each case study will have its own property line geometry ]
  2. Create a surface based on the boundary lines/curves.
  3. Calculate surface area.
  4. Input “Development Planning Provisions”. (Density, Coverage, Floor, Height) that is calculated based on (3).
    *[ Each case study will have different provisions ]
    5. Duplicate surface based on parameters and values on Z-axis.

For the 5th part, the target is:

(a) Offset the property/boundary line (internally) by some editable distance;
(b) Create a surface duplication(s) according to the number of the provisional “Floors”;
© Each duplication shall not be more than the calculated provision for “Coverage”;
(d) That in total; (of each duplicated surface) shall not exceed the calculated provision for “Density”.

–> I was thinking and trying/testing to use “Surface.Offset” with “Surface” and “Distance” as inputs, and place a formula on the “Distance” input section in order to achieve this target.

As I said before suggestions and support are more than welcome!

Thank you for your time!

() Using Revit 2020 & Dynamo 2.1*

Duplicate surface based on parameters and values. .dyn (31.9 KB)


Typically it’s easier to extrude the curve into a solid, make any changes/edits to the form, and intersect that with a series of planes copied along the Z axis by the various floor heights. Geometry.TranslateByDirectionDistance would work with a direction of the Z axis and a distances define in a close block like this: 0…MaxHeight…StepDistance;