How to Identify Floor Span and Width, then create parameters with these values?

Hi Everyone,

I was quite surprised to find that Revit Floors don’t have Span Lengths or Widths.

I have just started using dynamo and initially tried to estimate the Floor dimensions using Bounding Boxes as that can give me the coordinates of the min and Max values of XYZ for each instance of floor, however if a floor is rotated, the estimation falls apart.

I have now tried to identify surfaces and collect the xyz points from the corners of each surface from each instance. I got stuck at identifying the points from the surfaces. can anyone help?

If however there is a simple method of identifying Floor Spans and Widths already please let me know as that is my end goal, so I can set them as instance parameters that I can schedule.

Any help would be amazing!

Cheers

Floors do have a “span direction” value built into revit which is used to define the direction which joists span. I think what you need is a means of pulling that element, set the coordinate system to use that rotation, and then pull the dimensions using those angles.

A means of getting the span direction can be found here:

The python script:

import clr

elist = IN[0]

elements = []
out_list = []

for i in range (0, len(elist)):
	elements.append(UnwrapElement(elist[i]))
	
	for i in elements:
		angle = i.SpanDirectionAngle
		
		out_list.append(angle)
		

OUT = out_list

Note that the output is in Radians. Give that a shot and see where you get.

1 Like

Have you tried Element.GetParameterValueByName and Widht or Length as input?

1 Like

Jacob Small,

Thank you so much for that script, I don’t know how to write python (YET)

Do you believe it to be possible to apply that angle to the bounding box/then I can get all the X,Y,Z Points of the Floors, which could be used to identify the Span Length.

How can I apply the rotation to the bounding box?

Cheers