Get location of floor slabs / floor seilings by their surface

Thanks in advance for your input. I am bit confused how to get the location / x-y-z coordinates of floor slabs.

The first two approaches, which i used to get the location of rooms and walls don´t work for slabs for some reason, even though they produce correct results for walls and rooms.

Element.Location+ (Clockwork) returns an empty list.
Element.GetLocation returns exception :“the position of the structural element is not a valid curve”

An alternative approach i tried, was getting the surface points of the slabs by Element.Faces and Surface.PointAtParameter.

Documentation for Surface.PointAtParameter:

  1. Surface.PointAtParameter returns the Point at a given UV Coordinate

I don´t fully understand, how the input parameters u and v interact inside the node. Do u and v represent %-values of the elements horizontal geometry? So, e.g. u=0.5 & v=0.5 i returns the center point of each base and shell surface of a slab element?

Is this is correct:
What confuses me in this context is: What is the result of an input for u,v >1,0, because in this case no exception gets thrown, although the point would be outside of the element´s surface.

Parameterabfrage.dyn (25.5 KB)

In Dynamo and Revit parameterization is often based on the untrimmed geometry, so points may not fall directly on the surface itself.

To illustrate this, in a brand new graph you can build a patched surface from a circle and use a Surface.PointAtParameter node to gather all points at parameters 0..1 on the U and V.

This link has some other useful info on parameterization of both Curves and Surfaces (exact link time may be off): 08 - Computational Geometry: Model / Physical types​ with Dynamo - YouTube

1 Like

Thank you for your answer, that makes sense. I will watch the video.

1 Like