37
ArcView / Avenue / ArcGIS Customization

ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

  • View
    231

  • Download
    2

Embed Size (px)

Citation preview

Page 1: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

ArcView / Avenue / ArcGIS Customization

Page 2: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Basic Customization in ArcView 3.x

• Sources for scripts and extensions

• Installing an extension

• Adding and running a script

• Attaching a script to a button

• System scripts

• Startup and shutdown scripts

Page 3: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Sources for Scripts & Extensions

• ArcScripts (http://arcscripts.esri.com/)

• Sample Scripts and Extensions in the ArcView help (look under Sample scripts and extensions in the table of contents)

• Google

• Online communities– http://www.directionsmag.com/files/– http://software.geocomm.com/scripts/arcview/

Page 4: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Installing an Extension

On a Windows machine:

• Put the .avx file in the c:\esri\av_gis30\arcview\ext32 directory

• You can also set the USEREXT environment variable to use another location (if you have admin privileges)

Page 5: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Installing an Extension

On our UNIX system:

• Putting the .avx file in your home directory should make ArcView see it when you are logged in

• Or you can set an environment variable called USEREXT to point to a custom location and then put all your .avx files in that location

• Only the system administrator can install an extension so all users can see it

Page 6: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Adding a Script

• In the ArcView Project window, select the Scripts icon and then click New

• Either type, paste, or use the Script | Load Text File option to get your code in the new script window

• Use Script | Compile or the checkbox button to compile the script

• If you don’t get an error message, then the script compiled successfully

Page 7: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Running a script

• Some scripts can be run from the project window, just by clicking Run

• Others might need to be associated with a particular (open) document, like a view

• To associate a script with a view:1.Open the script2.Activate the necessary view3.Activate the script4.Choose Script | Run

Page 8: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Running a script

• A better way to make a script work with a view if you’re going to use it a lot is to put a new button on the View toolbar and associate it with the script

1. Make a view active

2. Double-click on an empty part of the toolbar

3. Make sure Type is View and Category is Buttons

4. Select a button and click New (this will create a new button next to the one you selected)

Page 9: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Running a Script

5. Select your new button

6. Double-click on the empty box next to Click (in the bottom part of the dialog)

7. Select the script you want to run

8. You can also set an icon for the button by double-clicking on the Icon section at the bottom of the Customize dialog

Page 10: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

System Scripts

• A lot of the scripts written by ESRI are available for you to use

• Use the customize dialog to see what script gets run by a button or menu item

• You can attach system scripts to your own custom buttons

Page 11: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Startup and Shutdown Scripts• You can make a script

automatically run when you open or shut down a project

• Choose Project | Properties

• Set scripts using the script selection buttons

• You can also set a working directory and a selection color using this dialog

Page 12: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Calculators

• Field calculator (attribute data)– Shape calculations– Number calculations– String calculations

• Map calculator (raster data)

Page 13: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Field Calculator

• To see a list of requests available for a data type, click the appropriate Type radio button and then scroll down the Requests list

• The example shown here converts a numeric ID to a string and puts it in a new field called NewField1

Page 14: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Field Calculator

• Operations on shapes are not shown in the Field Calculator itself

• To see what shape requests are available, open the ArcView help and go to the Shape (class) entry in the index

• You can’t use everything that is listed, but you can use the ones that return a number, string, or boolean and don’t require another shape (so you can use ReturnArea but not Contains)

Page 15: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Field Calculator

• You’ll have to type the request in yourself (don’t forget the period between [Shape] and the request!)

• This example computes the area of a shape (polygon) and puts it in a field called NewField1

Page 16: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Field Calculator

• Descriptions of all requests are in the ArcView help; either search on the name of the request you see in the dialog, or go to the following pages in the index to see a list of them all:– Shape (class)– Number (class)– String (class)– Date (class)

Page 17: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Field Calculator Examples

• Autonumber records: rec + 1

• Convert a number to string: [num].AsString

• Concatenate two string fields into one:– [str1] + [str2] (no space) – [str1] ++ [str2] (space between originals)

• Extract first 3 characters from a string: [str].Left(3)

Page 18: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Field Calculator Examples

• Convert a number to a string: [num].AsString

• Compute absolute value of a number: [num].Abs

• Get the maximum of two numeric fields: [num1] max [num2]

Page 19: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Map Calculator• Double-click on a

grid name and then you’ll be able to select request types from the list

• Use the AsGrid request to convert numbers to grids

• This example takes the base10 log of Grid1 and then adds 5 to that

Page 20: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Map Calculator Examples

• Create a grid that has true everywhere grid1 is NULL and false where grid1 has data: [grid1].IsNull

• Create a grid that has values from grid1 where grid3 is non-zero and values from grid2 everywhere else: [grid3].Con([grid1],[grid2])

• Mosaics 3 grids together: [grid1].Mosaic({[grid2],[grid3]})

• Check out the Grid (class) section in the help to see more requests

Page 21: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Basic Customization in ArcGIS

• Normal template

• Making your own toolbar

• The Visual Basic Editor

• Adding and running a Visual Basic script

• Attaching a script to a button

• Keyboard shortcuts

Page 22: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Normal Template

• Stores information (including customizations) for the ArcGIS application

• Anything saved in normal.mxt is available in all map documents

• Make sure you save customizations in the correct place (normal.mxt for global customizations, your .mxd file for project-specific customizations)

Page 23: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Making Your Own Toolbar

• Open the Customize dialog by either double-clicking on an empty spot in the toolbar or choosing Customize from the Tools menu

• Go to the Toolbars tab and click New• Name your toolbar and choose the

location to save it• Your new toolbar will open when you click

OK

Page 24: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Making Your Own Toolbar

• You can change the tooltip or icon, or delete a tool on your toolbar by right-clicking on it while the Customize dialog is open

• Go to the Commands tab in the Customize dialog

• Drag the commands you want onto your toolbar

Page 25: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

The Visual Basic Editor• Open the Visual Basic Editor

by choosing Tools | Macros | Visual Basic Editor

• The Project window shows all of the code VB code available in the current project

• Code can be in normal.mxt or in the current project

• Code that you’re adding will most likely be in a regular Module

Page 26: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Adding a Visual Basic Script

• Open the Visual Basic Editor

• Right-click on one of the Module folders and either import the file or insert a new Module

• If you didn’t import the file, paste the code into the new Module

• Make sure the code compiles by choosing Debug | Compile Project

Page 27: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Running a Visual Basic Script

• From the Visual Basic Editor, choose Run | Run Sub/UserForm while your cursor is in the procedure you want to run

• From ArcMap, open the Macros dialog by choosing Tools | Macros | Macros, and then select the procedure you want to run and click Run

Page 28: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Attaching a Script to a Button

• Open the Customize dialog

• Go to the Commands tab

• Go to the Macros category

• Drag the macro you want to attach to a toolbar

• Right-click on your new tool to change tooltips and icons

Page 29: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Creating a Tool with Unique Code

• Sometimes you might want to create a button that runs code specific to it (rather than contained in a separate module)

• Open the Customize dialog and go to the Commands tab

• Select the UIControls category and click New UIControl

• Make sure UIButtonControl is selected and click Create

Page 30: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Creating a Tool with Unique Code

• You can change the name of your control by clicking on it twice (slowly)

• Drag the tool to a toolbar

• Right-click on the new button and choose View Source in order to view (and edit) the code

Page 31: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Keyboard Shortcuts

• Open the Customize dialog and click on the Keyboard button

• Select the command you want to create a shortcut for

• Put your cursor in the Press new shortcut key box and press the key combination you want to use

• You will see if that combination is already assigned (Currently assigned to section)

• If you want to use that combination, click Assign

Page 32: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Basics of Avenue Programming

• Basic concepts

• Classes and objects

• Avenue requests to find objects

• Places to get help

Page 33: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Basic Avenue Concepts

• Object oriented, which means you have a collection of objects that you send requests to

• There are many classes of objects (views, themes, etc), and more than one object of each class can exist

• Think of a particular object as a (really smart) variable and its class as a data type

Page 34: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Basic Avenue Concepts

• An object is smart enough to do its own processing, which is why you send requests to it (you tell a theme to turn itself on, for example, rather than telling the main ArcView application to turn a specific theme on)

• Before you can do any processing, you need to get a “handle” to the object you want to do processing on

Page 35: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Basic Avenue Concepts

• For example, if you want to turn a theme on, you:1.Find the View

2.Find the Theme

3.Make the theme visible

myView = Av.FindDoc(“View1”)myTheme = myView.FindTheme(“Theme1”)myTheme.SetVisible(true)

Av.FindDoc(“View1”).FindTheme(“Theme1”).SetVisible(true)

Page 36: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Avenue Requests to Find Objects

• To find a view:

myView = Av.FindDoc(“view_name”)• To find a theme:

myTheme = myView.FindTheme(“theme_name”)• To get a vector theme’s attribute table:

myTable = myTheme.GetFTab• To get a field in an attribute table:

myField = myTable.FindField(“field_name”)

Page 37: ArcView / Avenue / ArcGIS Customization. Basic Customization in ArcView 3.x Sources for scripts and extensions Installing an extension Adding and running

Places to Get Help

• ArcView Help

• http://support.esri.com (the User Forums, Knowledge Base, and Downloads sections)

• Listservs at http://lists.directionsmag.com/discussion/