SelectElements - Property Line

Working on a project and I am trying to locate it within Forma. In each example I’ve seen the user selects a building in Forma, extracts a high or low Z value from a list of points, then uses that as the insertion point.

I am trying to use the center point of a real-world property boundary line as my project insertion point. Using SelectElements I can grab the property line, where it’s returned as Forma.Elements.Element. The Element.VolumeMesh node fails because there is no volume. Is there any other way to convert the property line so I can extract points and the min z-value?

Use Element.Footprint to get a PolyCurve for the Property line. Then use GetTerrain and Terrain.ElevationAt to get the elevation at each point :slight_smile:

I have an upcoming SetTransform node that can be used for positioning an Element, but for now just Translate the base geometry before creating the element :slight_smile:

1 Like

Thanks @havardh I’ll give that a shot!

1 Like

For locating a building inside a property line I like to use the following workflow:

  1. Construct the building so the base of it’s mass is centered on the identity coordinate system - basically extrude your building up from the internal origin.
  2. Get the minimum bounding box of the building, pull the minimum point of that, convert it to a vector, and extract the length.
  3. Select the site property and extract the footprint. Offset the resulting polycurve inward by the length of the minimum point vector. Patch this into a surface. By doing this offset you ensure the building will never cross the site boundary.
  4. Wire your surface into a Surface.CoordinateSystemAtParameter node with a number slider bound from 0 to 1 into the U and V parameters.
  5. Rotate the coordinate system on it’s XY plane by another number slider bound from 0 to 360.
  6. Extract the origin of the coordinate system, and use a Terrain.ElevationAt to find the elevation of the base point of the coordinate system. Translate the rotated coordinate system on the Z axis by that value.
  7. Use a Geometry.Transform node to position the building geometry at the coordinate system.

This is VERY powerful for placement of single family homes (and out buildings like shed, garages, etc.) on a lot.

2 Likes