Retrieving the dimensions of a floor (Only Area and Perimeter are available)

Hello guys,

I am trying to create a code that assesses the regularity of a building in elevation. To do so, I need to check for the occurrence of setbacks in a floor. The solution I came up with is to retrieve the length and width of a floor and compare it with the one above. However, this is not possible since Revit only gives the Area and Perimeter of a floor (integration).

For simplification, I want to only get the length and width at the geometric centroid of a floor. I thought to do so by cutting or slicing each floor at the middle and take the dimension of that section. I tried to do by geometry split but I still get a surface which is not helpful.

I would really appreciate any suggestions from technical or the way I am approaching this problem.

Thanks in advance

This is what I mean by setbacks in a building

I do not agree with the premise that regularity in plan equates regularity in plan. Imagine two of the same LEGO blocks, where they are stacked so one block cantaleavers over the other. Dimensionally they are the same, but they clearly don’t align on top of each other.

That said, to check plan regularity, get the sketch lines of the floor, shift the index so you start with the curve closes to the surfaces’s point at parameter 0,0.125, convert the objects to a string, and use a string.join node to produce a single string per floor. Now you can group your floors by the string elements, giving you a ‘consistency’ check so you know how many of each floor type you have. Bad modeling (ie: spliting a line because it seemed like a good idea) can ruin this but that is the case for any automation.

A better way to test dimensional regularity in elevation would be done by ray bouncing a grid of points from the elevation plane to the exterior walls on that elevation, or comparing the X/Y components of vectors built from the elevation’s view plane origin to a grid of points on each exterior wall in that elevation. Both of those will account for slanting walls, curving walls, and bays if you increase the resolution of the point grids to a high enough value.

I totally agree with you. For this, I am checking two things. Symmetry and existence of set-backs where a symmetric building does not exclude existence of set-backs.

For symmetry, I am retrieving the geometric center of each floor and comparing each two adjacent floors in X and Y directions.

For checking the set-backs I am planning to find the length at the geometric center in both direction and compare them between two adjacent floors and here where my problem is.

What I am doing here is simply coding some rules of the Eurocode 8 to be checked automatically. Those rules are already simplified enough to be used by engineers for design. My mission here is simply translate these rules into Dynamo.

Careful that you don’t oversimplify it. Every one of these surfaces has the same XY geometric center, but they certainly aren’t the same. image

1 Like

I honestly did not think of this scenario but still I am not aiming to check rules for a relatively complicated structure. The moment, the structure has a tweak like this, it doesn’t make sense to analyse it with Dynamo. The designer has to jump to a finite element software and run some analysis there.

I am focusing on simple masonry structures of 4 to 5 stories within the scope of my project and will keep the complexity of rules limited to same level of the code. If these rules work, then it is possible to implement more complicated ones in the future for different structures and that the conclusion I want.

Anyway, thank you very much for the heads-up and for the help!

1 Like