Topography Simplication Recatangular Grid

Does anyone know how to do this?

https://www.youtube.com/watch?v=niDEj2t7eLk

The youtuber did not share their file, but I would like to simply a topo into a UV grid, and hopefully control the grid spacing.


Something like this? I cheated a little bit because I created a new topography instead of modifying an existing one (This would require python coding)

I actually think making a new topo surface is better than modifying the existing. @GregX Where is the imported surface coming from?

In this case I just created a mass with a funky surface, I thought you already had an imported surface to begin with (like in the video). Is this not the case?
If instead you want to smoothen out a topography withouth having other references you can follow this video:

I didn’t see an imported surface in the initial video. The end result is a topo surface with points distributed on a grid instead of on contour lines like at the end of the initial video. The video you just sent still doesn’t have even distribution of points. The hope is that this will normalize triangulation of the topography surface.


Please excuse me I misunderstood the video
In this example you can just select your topography, get its mesh,then convert the mesh to a polysurface (node from the Springs package) and then you just plug this in the Point.Project node of my previous post

I think my topography might be too complex, the surface by patch node won’t work.

Yeah I cheated a bit, in my graph I used a polycurve to create the outline of the topography because i only had outline points and I did not think about it while testing.
To get the outline you could try this:


(I get a yellow node because I went crazy on the topography points…)
The python code is this:

import clr
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

topo=UnwrapElement(IN[0])

OUT=[p.ToPoint() for p in topo.GetBoundaryPoints()]

This is what I’m doing:
I grab the topography, i read its mesh,convert it to a polysurface and then get its center point (UV=0.5,0.5). There surely is some bettere way to “flatten” this polysurface and then grab its outline but I tries this other approach:
With the python node I get the topography’s boundary points. These points however are not in order (like the numbers on a clock), so I must reorder them. To do so I draw lines connecting each boundary point to the center of the topography, calculate the angle between this line and the X axis, I then reorder the points with these angles. Then I just simply “flatten” the points (bringing them to the same height) so that I can create a closed polycurve and then a surface by patch.

Actually this is a quicker method with no python!

I really appreciate your deligience and patience, but I got another error this time with the pull onto plane none.
“Warning: No function called PullOntoPlane on a Function that takes Plane could be found”

Does the List.Flatten node give an output? When the nodes are light grey it means that they are “off”, maybe it wants a number for the “amount” input, something like 1 should do.
Ah also when you post these images could you also show the outputs of each node before the error? you can hover the mouse on the bottom right corner of each node and pin the preview

My apologies, I fixed it but now there’s an error right at the finish line.

The Point.Project is giving empty lists: it is probably because you are projecting the points upwards and not downards. To project them downwards use vector reverse as show in my first message!

All the points seem to being in a straight line instead of a grid.

image my first image

Working great!!! I apologize for my negligence on some of those and I really appreciate your patience and help!

1 Like