Bulding mass generator with boundaries

Long time Revit user, super-beginner in dynamo.
There’s something I’d like to try with generative design and dynamo, but I have NO clue where to begin… Please help…

So in a nutshell, this is similar to what I want to do, a “building mass generator”
But I’d also like to add some more “bounadries” set by the user.
It’s a building law in my country, it basically limits the height of the building depending on things like the road width and how much the building is offset from the site boundary line. You have to build your building within that boundary.

So below are the steps I had in mind. Please see the attached PDF for visual explanations.

Let’s say there’s a site with 4 sides, 2 facing roads and 2 facing other sides.
Gray shows roads, brown shows site, and yellow shows the building.
To make it simple, I’ll assume that the building is offset by 2m from all sides.

Similar to the “building mass generator” study, I’d like the user to be able to draw site boundary lines in revit and select those elements in the study.

Then, using the two endpoints of each site boundary line, I’d like to specify points to create a surface.
There are two types of height limitations. Road Height, and Site Line Height. On the left is the Road Height and right is the Site Line Height.
The coordinates of the red points for Road Height are determined by offset distance of building, road width, and Rise/Run values.
The coordinates of the red points for Site Line Height are determined by offset distance of building, initial height (marked 20m or 31m in picture), and Rise/Run values.
I’d like the user to be able to adjust all these.
Also, the red points need to be perpendicular to the site line, since most actual sites aren’t perfect squares like in this example.

Create a surface with the points specified above. (4 points for Road Height, 6 points for Site Line Height)

Repeat 2~3 with all lines taken from Revit model
Also, based on the value used for building offest from site line, I also need to specify a boundary surface based on that

Now I want to take all thse boundary surfaces, get all the lines that interesect one another, and create a shape.
This becomes the boundary that the building cannot go outside of.
And within this shape, I’d like to run something similar to the buildingmassgenerator study mentioned in the beginning.

Thank you for taking the time to read my question.
So having said all that, I’d like some input on what kind of nodes I should use, structure of the dyanmo graph, etc.
Please point me in a direction, I am lost in the dark right now…
And since English isn’t my first language, sorry if there were difficult parts to understand.
If you need clarifications on certain things, please let me know and I’ll do my best to explain further.

Thank you again.visualexplanation.pdf (394.5 KB)

A few questions…

  1. When selecting 1.25 or 1.5 for the triangle that defines the slope of the plane, do you use the same on all roads or does each road need a it’s own angle?

  2. When selecting 20 or 31m for the ‘vertical’ wall, does each side need it’s own distance or is it the same?

  3. When setting the adjacent lot’s offset from site line, how do you know that distance?

  4. When setting the offset for site line for your lot, will you want to vary the 2m or will that always be the value?

I recommend starting this exercise as a sandbox exploration, leaving the Revit and UI for later. Pass your data as dictionaries to reduce runtime and loss of content, and remember to serialized as much as you can (everything which doesn’t require a variable) into a Remember node before you work on any degree of variation.


Hello, thank you for your reply.

  1. It’s either 1.25 or 1.5 for all roads, regardless of road width.
  2. 20m or 31m is determined by where the building is being built. But once that’s been determined, it goes up the same amount from both sides.
  3. The offset distance is determined by how much the building is offset from the site boundary line.
  4. I’d like to make it a variable users can play around with. And in most cases, it won’t be the same number for all site boundary lines.

And thank you also for your advise.
Today I went through the dynamo primer, stopped around the end of #6, lists.
I also played around with the “02-01_Building-generator.dyn” to see what kind of nodes were being used.

I understood how to specify points and generate a surface with those points.
However, I’m still not sure how to use the endpoints taken from the site boundary line taken from Revit as a starting point when specifying points… And how to make it perpendicular to the line…

Anyways, thank you for taking the time to read my query.
If you could help me with example graphs to give shape to my ideas, that would be great too!
Again, thank you and have a nice day.