Skip To Content

How Edit TIN works

Available with 3D Analyst license.

Use the Edit TIN tool to add features to a triangulated irregular network (TIN). An empty TIN, made from the Create TIN tool, can have features added to it. Additionally, a TIN that already had features added to it can have more added. The edits are saved to the input TIN. If you don't want the input TIN modified, use the Copy TIN tool and run Edit TIN tool on the copied dataset.

Feature classes composed of points, lines, or polygons may be used. One or more feature classes can be added at a time. Geometry is incorporated into the triangulation using a surface feature type. The available surface feature types are mass points, breaklines, clip polygons, erase polygons, replace polygons, and tag value fill polygons.

Mass points are added as individual nodes in the TIN.

Breaklines are enforced in the triangulation as a series of triangle edges. Steiner, or densification, points are added as needed to maintain conformance to Delaunay criteria.

Clip polygons delineate the data area, or interpolation zone, of the TIN. Their boundaries are enforced in the triangulation as breaklines. Triangles falling outside the polygons are masked. They become NoData as far as interpolation is concerned.

Erase polygons also influence the data area of the TIN. Their boundaries are enforced in the triangulation as breaklines. Triangles falling inside the polygons are masked.

Replace polygons are used to define flat areas. Their boundaries are enforced in the triangulation as breaklines using a constant height. All nodes inside the polygons have their z-values set to the same constant.

Tag value fill polygons assign integer values, which are used as a simple form of attribution, to triangles. Their boundaries are enforced in the triangulation as breaklines. Triangles inside these polygons are attributed with the tag values. Tags are stored as signed longs. Triangle tags represent user-defined criteria about area. Land-cover codes are an example. The TIN can subsequently be rendered by symbolizing the triangles based on these tags. The Identify tool also reports their value.

Points can only be added as mass points. Lines can be added as mass points or breaklines. Polygons can be added as clip, erase, replace, and value fill polygons as well as mass points and breaklines. When added as mass points, lines and polygons just add their vertices; there is no line or boundary enforcement.

Every surface feature type, other than mass points, can be specified as hard or soft. This distinction is significant to smooth interpolation (for example, the Natural Neighbors interpolant used by theTIN To Raster tool). Hard lines and polygon boundaries define distinct breaks in slope. Linear interpolation is used across these lines in what is an otherwise continuously smooth surface. Examples of hard features include curbs, streams, and shorelines. Soft lines and polygon boundaries do not interrupt surface smoothness. Soft features generally have no geomorphic significance but are needed in the triangulation nonetheless. An example of a soft feature is a soft clip polygon used to delineate the data area of the TIN. This type of polygon is often a study area or political boundary that has nothing to do with topography.

When features are added to a TIN, there needs to be some way to define where their heights come from. If you are inputting 3D features, you can specify the Shape field as the height source. This indicates the z-values will be taken directly from the feature geometry. When adding 2D features, you can reference a numeric field. You can also specify None, in which case the features will first have their heights interpolated from the TIN before being added to it. This requires that some features be added to the TIN without the None option, so there will be some heights available to interpolate from.

By default, the z-values of the Shape field will be used for calculations when inputting 3D data. If present, m-values stored with the geometry can be used instead by indicating FALSE for the use_z argument.