For Sale:The VB6 code for EV8 for ArcGIS

Inquire by Email to Geokinetic Systems Inc.

Of special interest:

Clean and Build (Polylines to Polygons)
Clean and Build: Polygons, Polylines, with intersection and dangle nodes.
Automate CAD to GIS: rapidly convert CAD layers to shapefiles
Reverse Engineering: a method to control removal of gaps and slivers.
Block Snap: a method to stretch/snap files or shapes to fit together.
Digitize efficiently: a method to digtize polygons via polylines using Clean and Build.

Summary of just some of the tools and functions...

EV8 Tool Bar

This is the main EV8 toolbar. It has a pulldown menu bar from which you can choose additional tools shown below.
Note that when using the tools, you do not run the arcGIS 'start editing/stop editing', EV8 automates all of that.

Attribute Read Edit Tool The read/edit tool allows you to simply click on an editable feature and edit or read its database table from a popup 'tabluar' dialog box. The number of tabs will automatically be created on the fly to adjust for the number of fields in the table. Changes in a new entry will recognize a change in case so you can just change a letter or number in a sequence if need be.

Feature Edit Tool This tool the feature edit tool. This is multi purpose. It will work either on features directly, or 'followers' created by any of the other tools. For example if any of the move tools were used and you see the move followers, you can click on those to move the nodes. It will work on 2D, 3D and/or M features.

You can grab and move as many nodes as you wish. Then by right clicking you can either dump or accept the changes. If accepted the edited feature will be written back to disk. If you goof, right click again to recover. If you had set a snapping value in the 'tolerance' box to the left, the node will snap to the closest node in any of the other features. You can change the snapping tolerance on the fly.

If the file you are working with is a 3D or M type, this tool will allow you to edit the Z and/or M values as you go. The Z and M boxes to the left will light up in context, first advising you of the current Z/M value.

XY Move, Drag, Stretch, Rotate Tools These work interactively. You may activate any number of editable vector files, or image files, and the tools will work on all of them at the same time, treating them as one. Image files show as rectangles in the follower.

The drag tool has a built in 'ortho'. You can set a reference 'pin' using the 'On-screen pin reference' function. If you use the rotate tool, the second mouse click will snap to this reference point and use it the rotation point. Similarly if you use the stretch tool the 'pin' will lock the stretch so it expands/contracts around this pin.

Features-to-Graphics Tool This tool is different from arcGIS's tools in that it draws 'classic' graphics. These are tagged so that you may use the 'Modify Graphics' function on them without having to activate them (handles). If the tool is active, you right click to bring up this function. If not you can run it from the EV8/Utility menu, or the pull down tools menu.

This function allows you to convert one type of graphic to another, and back again, merge, join lines, create a Qhull, and a variety of other transformations.

Quick Select This the graphics quick select, used to activate graphics.

Multi-purpose Write Tool If you have any on-screen followers, tagged graphics, or preview graphics resulting from any EV8 operation, this tool can be used instead of a right click. It is 'operations' sensitive, and will present you with the appropriate pop up menu.

Tools in the pulldown tool menu

This is the EV8 pulldown toolbar pulled from the main EV8 toolbar above.

SnapAll Tool This is tool snaps all gaps between adjacent point, polyline, or polygon features. You set a tolerance in the tolerance box, select a file, and pull a rectangle over the features you wish to snap together. The results show as on-screen preview graphics.

The snap is a move of one node towards another and not a fill. To continue you right click to either save or dump.

Build Polygons Tool and Build Polylines Tool (More>>) These are the 'clean and build' tools. The first one is for polygons, the other for polylines.

You may set a gap/extend tolerance in the tolerance box to the right of the tool. This will set the same tolerance for both gap jumping and line extending. Dangles outside of the tolerance will be ignored. Thus, if you have dangles which do not need to be closed with others, nor extended, you can leave the tolerance at zero. Such dangles are ignored in EV8.

In the case of the polygon tool, EV8 creates the polygons, and shows them on-screen as 'classic' graphics, but hidden in memory are polylines which are the cleaned polygon borders, as well as points representing the nodal intersections. All of these different elements carry the same coordinates of the source, and are therefore topologically correct. And very importantly, EV8 created points located at the ends of dangles. If you used the polyline clean and build tool, you get all of this except the polygons.

Having the dangle nodes provides a special advantage. They can be written to disk as a point file. Their XY coordinates are automatically added. These are perhaps gap pairs, or ends of lines needing extending. With this ability, it is not always best to go straight into polygon building even if that is your objective. For example, if you have a very large but 'dirty' file, you can use the polyline tool to pre-clean, sending the cleaned polylines to a file, along with the dangle nodes. You need only search amongst the dangle node file to fix the gaps and extends in the new 'almost' clean polyline file. Then you can run the polygon tool on the newly fixed polyline file. See the following tools designed for that purpose.

Gap Jump Tool and Extend Tool These two tools are for clean up prior to building. The first one is the gap jump tool, the second is the extend tool.

The gap jump tool and the extend tool can use a search tolerance setting in the tolerance box. If none is entered, the tools use a built-in screen based 'pixel' tolerance, otherwise they use the setting. A snap box with dimensions relating to this setting is shown when you first use the tool. The tool will snap onto a line end. If the gap jump tool is used the snap can be to any node along a line. In the case of the gap jump tool, if a node is within the snap box, the tool automatically snaps, finishes, and draws a preview graphic. The tool is now free for you to do more. In the case of the extend tool you draw the digitized line across another line to finish and the digitized line will snap back to the intersection point.

Donut Tool The purpose is to take any number of polygon features lying on top of and within, each other like pancakes, and nest them into each other like donuts to form islands.

3D Tool Click on the screen. The files are read from disk, and a birds eye follower is created plus a cross-hair reference circle is drawn, along with a small box showing on the southmost extent of the circle. Place the mouse inside this box, and pull it around and the follower morphs into a 3D view. If you pull the box around outside the circle, the follower will rotate, but you are still viewing birds eye. If you move the box in towards the circle center, the follower transform into 3D as if you were viewing it from an observation closer to the ground. If you press the shift key the view will be dynamic.

When this tool is chosen the Z box will change to an 'E' box, which is the expansion factor. You can set this on the fly. It expands Z values vertically by the amount entered in the box.

Note that you do not need a 3D file to view in 3D, you can use a 2D or M file, but you will only see a flat perspective.

Split tool It will split multi-point, polylines, and polygons. You can split as many as you wish and over as many features at once as you choose. Only those which are entirely crossed by a split line will be split.

You may also choose to split and proportion attributes, in which case a dialog box will pop up allowing you to select the fields whose values you want to be proportioned.

Proportioning is based on a calculation of the original record size and the new one. Both the original and new are calculated since both are spatially resized by virtue of the split. This function is recursive. This means you can split each feature many times at once, either by multiple crossing of a single splitting line or by many individual splitting lines.

Replicate tool It is actually a 'stamp replicate' in that once you select the features to replicate you can repeatedly 'stamp' them wherever you wish. A graphic will be created representing the features to be replicated. The 'stamp' is attached to the mouse cursor, so you can continue to 'stamp. The 'stamped' features will be appended to the original file, along with all attributes.

Line Direction and Flip Line With the Line Direction tool, the selected lines will show a two part graphic, a point, and a tail. This is the direction graphic. The point is the head, and is heading in the same direction as the line. To reverse direction use the Flip Line tool and select the lines you want, they will be reversed, and immediately written back to the database.

Digitize Tool This tool is file type sensitive. It creates the same type of element required by the selected file as you draw. Your selected files can be point, multipoint, polyline, and polygon.. 2D, or 3D/M files. It will also snap if a value is set, and will show a tolerance sized snap box.

If snapping is set, it will snap as you draw, to the closest feature. When you double click the follower will become a a preview 'classic' graphic and will remain just as with the other tools. You can continue to draw and snap.You can change the snapping tolerance on the fly by entering a new number in the tolerance box at any time. Similarly, you can enter new Z/M values on the fly so that the next node you create (a mouse click) will have the attributes of the values in these boxes.

Fast Clip and Fast Erase Select either of these tools to draw clipping polygons on the screen. You may draw as many as you wish. Then right click to use these to automatically clip or erase, or start over. A preview 'classic' graphic shows your results. Right click again and a different dialog box comes up allowing you to send the results to any existing (similar) file, or a new one, or to delete the previews.

Append Tool This works just like the replicate tool, but will write the selection to any similar existing file, or to a new one. Note, that as with all other appending operations in EV8, if there are no matching fields in the 'write-to' file for the data being sent, new ones will be automatically added to this file and populated. In the case of a new file, all fields will be copied over.

EV8 Menu Bars

There are two pull down menu items placed in the arcMap main menu bar.

Please note that some functions in the menu bar look like they are duplicated in the tool bar. This not the case because they will be different both in accuracy of data entry and operation. For example, the 'clean and build' menu function allows you more flexibilty in setting tolerances and other options than the 'clean and build' tool. Where an apparent duplication exist you should test both types.

Line Extract and Point Extract These two functions convert any number of files to either lines or points. At the same time you may change the type of feature from 2D to Z/M or Z/M to 2D. The line extract allows you to assemble 2D or Z/M polygon or polyline files. Thus you can collect 2D or Z/M lines into a single 2D file for subsequent clean and build operations. If you have a CAD containing multiple 3D polylineZ files extracted by the autoextract function, and are going to group them together to build polygons, you use this function.

Point extract is normally used to extract and thus establish the number of nodes existing in a file, but it also has applications in extracting Z/M values from multipointZM, or Z contour lines to be used in a TIN.

These functions allow you to append to an exist file, or write to new file.

Change File 2D Z/M This function allows you to append to an exist file, or write to new file, while changing the spatial type. If you have a file containing 3D polylineZ and are going to build polygons, you use this function. In the case where you convert 2D to Z or M all node values are set to zero.

Clean/Build from Polylines This function is similar to the build polygons and build polylines tool. But with this function a dialog box allows you to specify tolerance settings and output options. You may choose to output polylines or polygons. You can select an island making option, specify individual gap and extend tolerances, choose to output to file or graphics, and include dangles.

One option will allow you to have the operation work on lines sorted by values in the attribute table. With this option for example, you can have contour lines built individually by elevation. You use this where lines are very close to each other and you do not want gap jumps to branch over to adjacent lines. These are typically found in contour or similar structures.

Clean/Modify Polygons

Nest Islands If you chose not to create islands when building, you can do it later with this option. It has the advantage of allowing you to select the set to work on.

Remove Islands Where you want to delete islands or recover from making them accidentally, you use this function. When removing islands the island holes are closed and the island itself now sits on top of the underlying polygon, like a pancake. It will appear to still be an island, but can be moved or delete later.

Merge Polygons to Groups Here you can merge polygons into touching clusters or one large polygon. This function allows you to sum or average the numerical values in the database.

Build Intersections If you have overlapping polygons and require them to be made 'adjacent', you use this function. This intersects overlapping polygons and creates a new one where they overlap, then clips the old ones back to the new boundary.

Remove Slivers/Gaps This function will remove slivers and gaps based on an area ratio of slivers/ to non-slivers/gaps. Removal is by either absorption of slivers or snapping of gaps. Absorbed slivers are made into a null feature in the database. These can be eliminated by extracting the file to another one, having first selected the nulls (zero area) and reversing the selection.

Clipping, Geoprocessing Functions

Clip by Polygon Graphics Sets the geoprocessing form for graphic clips.

Clip by Polygon Feature Sets the geoprocessing form for feature clips.

Intersect Sets the geoprocessing form for for intersecting.

Union Sets the geoprocessing form for unioning.

All of these functions share a common theme. They are forms of cookie cutting. For this you need a cutter, which can be a graphic you draw on the screen, or selected features in a polygon file (all are used if nothing is selected). You may geoprocess as many files as you wish in batch mode.

In the case of a feature clip, you need one cutting file. But you may have a number of active polygon files. Then you will need to chose one as the cutter. You can do this interactively from a pulldown on the form. The non-selected files in this pulldown will be added to the target list. Any other active files in your map are added to the target list as well.

There are many available options to choose from. You may clip inside, or erase. You may copy all attributes or not, you may proportion attributes, in which case a list of available ones are presented. You check in the ones you want. You may output to graphics. You may output to files either new or appended to existing. When you have more than one target file, a matching list of available files is presented from which you chose the one matching your target. To select these you click on each target file in turn and select a matching file. You can go back and forth to reselect.

Note that all clipping functions recalculates area, lengths, and XY positions for each record either clipped or not, if the data is sent to file. Target files are never overwritten. Z/M files are not available for clipping.

Georeferencing Functions

A georeferencing form pops up. This is a multiple option form from which you can devise a wide range of operations. You may select any number of image and editable vector files, similar to the move tools. The georeferencing functions operate exactly like the move tool series, with the added capablity of precise parameter entry. Thus you can set exact rotation, translation, and scaling values. You will see no followers, rather the move is direct in that the files being repositioned are overwritten. All area, length, XY coordinates are recalculated.

The On-screen pin reference function allows you to plot, or created from screen graphics, a pin and reference rectangle on-screen. This can be rotated to exact values. This is a framework that acts as a 'goto' coordinate system, and allows you to match coordinates in your files to a new location while positioning, rescaling and rotating your selected files.

3D View/ExtrudeThis function acts like the 3D tool, but in this case you can enter exact view location values.


This function triangulates points from a point file. Input can be either 2D or 3D, or 2D with elevations in the attribute table. Output is a 3D polygon shapefile with surface area, slope, aspect, and illumination values automatically written to the attribute table.

File Functions

This is a series of file operations. The first one makes an empty duplicate of a selected file, and is used when you wish to digitize new spatial data using the old fields from this file. The next 'Make All/Selected' will make a new file and copy over any selected data. or all data if nothing is selected. And the 'Make New Shapefile' presents you with a form which allows you to choose the type of file as well as the number and types of fields you want.

Multiple Copy/Append to.. A form is presented from which you can choose matching files for each of the input files you wish to copy to others. You may make new files or batch append to existing files. For example you can append many into one. Selected features from each input file are copied, or all data if nothing is selected. If a field in the write-from file does not exist in the write-to file it will be added, and populated. The form sorts out matching file type, so you do not need to pre-select based on specific type.

Merge Many Into One A form is presented from which you can choose matching files for each of the input files you wish to copy to others. The input files are grouped into types. each group can be writtten to a matching selected file or a new one.

AutoExtract CAD/Themes A form is presented from which you can organize an automatic unravelling of the input file. You may choose to extract by any listed field. The output will be a set of new files, each containing only one classification group. You may have a complete CAD file as input. For example if you had a CAD built on 7 layers, and autoextracted based on the field 'layer' you would get 7 new files, each having data from one layer.

Write Attributes File-to-File This function is the point-in-poly concept taken to its logical conclusion. You activate two shapefiles, and run this function. A form appears,and you can set various connection criteria. Connection in this case means that the function takes all attribute data from one file and appends or writes it to another. If a field is missing in the write-to file it will be automatically added, but never duplicated.

A spatial search pattern is established by the options you set. The write-to file searches the write-from file within these parameters, and captures the attribute data from the first record it finds meeting the criteria, and writes it to the record which found it. You may repeat the search many times using selected records as a means of filtering out records you do not want.

Search pattern options are file type sensitive. You can use any file type against any other, point to polygon, line to polygon, polygon to polygon, point to line, line to line, polygon to line, and so on. You can even choose the mid-point, end-point, or start-point of lines. Thus, if you have a number of lines at a junction, you might choose the mid-point in order to clarify the search pattern.

Modify Graphics

This menu box pops up with a variety of tools concerned with graphics. The menu selections operate on specially tagged graphics which are tagged by some tools as well as these. It also works on selected graphics, ( ones with handles ). It does not work on followers.

Note that the graphics can be normal 2D, or Z/M. Z/M graphics can be extracted from Z/M files with the EV8 features to graphics tool. Thus you can create a 3D line from 3D points, and send these to a Z/M file. Where it reads 'Polyline' in the menu, it also can be taken to mean 'PolylineZ', or 'PolylineM' and so on with the others.

The central purpose of this tool is to allow you to transform one type of feature to another via the intermediary of the tagged graphic. But you can do much more. For example, with the 'point-to-point line' function you can create a single line from one point to the next nearest. Then if you want one single line made from these smaller line segments you run it again and click on Polyline. Thus by using a two stage process you can get many more combinations of results.

Polyline by Nearest and Polygon by Nearest are semi- build functions which try to assemble polylines or polygons from stringing the graphics together using the next nearest to the last used. If this fails then use the clean and build functions.

Convex Hull as it is called for those not familiar with this idea, is nothing more than a stringing together of all points on the outmost edge of a collection of elements. In this case a polygon is made, but if you want a polyline, you would run the tool again, and choose 'Polyline'. You can create rings within rings by doing a reverse selection against the last hull polyline and repeating the hull on each new set which is the set inside the last polyline. But further, you could select points by specific elevations and create a hull for each set, and sent it to file, thus making a kind-of contour file.

Modify Data Table

These are various utilities you will find useful for manipulating or calculating attributes. Some things to note. Area/Perimeter, length, and XY coordinate caclulations are based on the actual spatial data as stored in the file. Not on the projected shape.

Shapes do have attributes. In a shapefile, these are called Z and M values. The 'Attributes from Shapes' function will write the minimum/maximum Z and M values for the shape in each each record. Fields are automatically made and populated with these values, if the shape is ZM or M. Keep in mind that even though a name 'Z' is given to one of these, it is only a number, it could be elevation, and most likely is, but there is no law which say it has to be. You can take advantage of this fact, along with the fact that M is also only a number.

ZM Calculator

These are various utilities you will find useful for manipulating or calculating Z/M attributes and coordinate values.