Place objects on some topography

I’d assume two things here, but as always assumptions are often wrong so we may be way off. Only @VALENTINA.FEDE can confirm.

  1. This is related to the previous topic on converting GIS data imported into Revit over to BIM data in native Revit format, and the goal is to put ‘trees at the right elevation’.
  2. Element.Geometry really wants to be Element.Location, and the result of the location node would be a point for each family instance.
  3. Topografia is topography, and it will return a mesh if the geometry is correctly queried.

If the assumptions are correct…

  1. The topography can be converted from a Dynamo Mesh to a MeshToolkit mesh.
  2. The tree location points can then be pulled to a elevation well below the mesh by way of removing the Z component or using a Geometry.ClosestPointTo on the XY plane or the XY plane offset down a given distance.
  3. The tree points at the minimum elevation can be projected to the topography by way the Mesh.Project node in MeshToolkit.
  4. A vector can then be built between the points in the original location node to the poitns on the mesh (the result of the project node).
  5. The original tree elements in the SelectModelElement node can be moved byt he projected distance via the Element.MoveByVector node.

This would be a few orders of magnitude faster than converting to a PolySurface, never mind the intersection action or projection.

1 Like